DBA Data[Home] [Help]

PACKAGE BODY: APPS.XLA_00200_AAD_S_000002_PKG

Source


1 PACKAGE BODY XLA_00200_AAD_S_000002_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_000002_PKG                                        |
10 |                                                                       |
11 | DESCRIPTION                                                           |
12 |     Package generated From Product Accounting Definition              |
13 |      Name    : Accrual Basis                                          |
14 |      Code    : ACCRUAL                                                |
15 |      Owner   : PRODUCT                                                |
16 |      Version :                                                        |
17 |      AMB Context Code: DEFAULT                                        |
18 | HISTORY                                                               |
19 |     Generated at 30-03-2009 at 05:03:39 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_000002_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_000002_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_000002_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_000002_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 --Invoice Distribution Description
241  , p_source_1            IN VARCHAR2
242 )
243 RETURN VARCHAR2
244 IS
245 l_component_type        VARCHAR2(80)   ;
246 l_component_code        VARCHAR2(30)   ;
247 l_component_type_code   VARCHAR2(1)    ;
248 l_component_appl_id     INTEGER        ;
249 l_amb_context_code      VARCHAR2(30)   ;
250 l_ledger_language       VARCHAR2(30)   ;
251 l_source                VARCHAR2(1996) ;
252 l_description           VARCHAR2(2000) ;
253 l_log_module            VARCHAR2(240)  ;
254 BEGIN
255 IF g_log_enabled THEN
256       l_log_module := C_DEFAULT_MODULE||'.Description_1';
257 END IF;
258 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
259       trace
260          (p_msg      => 'BEGIN of Description_1'
261          ,p_level    => C_LEVEL_PROCEDURE
262          ,p_module   => l_log_module);
263 END IF;
264 
265 l_ledger_language       := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
266 l_component_type        := 'AMB_DESCRIPTION';
267 l_component_code        := 'JE_INV_DIST_DESCRIPTION';
268 l_component_type_code   := 'S';
269 l_component_appl_id     :=  200;
270 l_amb_context_code      := 'DEFAULT';
271 l_source                := NULL;
272 l_description           := NULL;
273 
274 
275   
276   l_source := SUBSTR(p_source_1,1,1996);
277   IF l_source IS NOT NULL THEN
278     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
279     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
280   END IF; 
281  l_description := SUBSTR(l_description,1,1996);
282   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
283         trace
284            (p_msg      => 'END of Description_1'
285            ,p_level    => C_LEVEL_PROCEDURE
286            ,p_module   => l_log_module);
287 
288   END IF;
289   RETURN l_description;
290 
291 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
292       trace
293          (p_msg      => 'END of Description_1'
294          ,p_level    => C_LEVEL_PROCEDURE
295          ,p_module   => l_log_module);
296 END IF;
297 RETURN NULL;
298 EXCEPTION
299   WHEN VALUE_ERROR THEN
300      IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
301             trace
302                (p_msg      => 'ERROR: '||sqlerrm
303                ,p_level    => C_LEVEL_EXCEPTION
304                ,p_module   => l_log_module);
305      END IF;
306      RAISE;
307  WHEN xla_exceptions_pkg.application_exception THEN
308       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
309       trace
310          (p_msg      => 'ERROR: '||sqlerrm
311          ,p_level    => C_LEVEL_EXCEPTION
312          ,p_module   => l_log_module);
316        xla_exceptions_pkg.raise_message
313       END IF;
314       RAISE;
315  WHEN OTHERS THEN
317            (p_location => 'XLA_00200_AAD_S_000002_PKG.Description_1');
318 END Description_1;
319 
320 ---------------------------------------
321 --
322 -- PRIVATE FUNCTION
323 --         Description_2
324 --
325 ---------------------------------------
326 FUNCTION Description_2 (
327   p_application_id      IN NUMBER
328 , p_ae_header_id        IN NUMBER DEFAULT NULL 
329 --Invoice Number
330  , p_source_3            IN VARCHAR2
331 --Invoice Date
332  , p_source_4            IN DATE
333 --Invoice Document Sequence Category
334  , p_source_5            IN VARCHAR2
335 --Document Sequence Name
336  , p_source_6            IN VARCHAR2
337 --Invoice Voucher Number from Sequential Numbering
338  , p_source_7            IN NUMBER
339 --Invoice Description
340  , p_source_8            IN VARCHAR2
341 )
342 RETURN VARCHAR2
343 IS
344 l_component_type        VARCHAR2(80)   ;
345 l_component_code        VARCHAR2(30)   ;
346 l_component_type_code   VARCHAR2(1)    ;
347 l_component_appl_id     INTEGER        ;
348 l_amb_context_code      VARCHAR2(30)   ;
349 l_ledger_language       VARCHAR2(30)   ;
350 l_source                VARCHAR2(1996) ;
351 l_description           VARCHAR2(2000) ;
352 l_log_module            VARCHAR2(240)  ;
353 BEGIN
354 IF g_log_enabled THEN
355       l_log_module := C_DEFAULT_MODULE||'.Description_2';
356 END IF;
357 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
358       trace
359          (p_msg      => 'BEGIN of Description_2'
360          ,p_level    => C_LEVEL_PROCEDURE
361          ,p_module   => l_log_module);
362 END IF;
363 
364 l_ledger_language       := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
365 l_component_type        := 'AMB_DESCRIPTION';
366 l_component_code        := 'JE_INV_HEADER _DESC';
367 l_component_type_code   := 'S';
368 l_component_appl_id     :=  200;
369 l_amb_context_code      := 'DEFAULT';
370 l_source                := NULL;
371 l_description           := NULL;
372 
373 
374  IF p_source_7 IS NOT NULL 
375  THEN 
376   
377   l_source := SUBSTR(
378 xla_ae_sources_pkg.GetSystemSourceChar(
379    p_source_code           => 'XLA_EVENT_TYPE_NAME'
380  , p_source_type_code      => 'Y'
381  , p_source_application_id =>  602
382 ),1,1996);
383   IF l_source IS NOT NULL THEN
384     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
385     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
386   END IF;  
387  IF 
388 l_ledger_language = 'US' THEN
389     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
390     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
391  END IF;  
392  IF 
393 l_ledger_language = 'US' THEN
394     l_description :=  SUBSTR(CONCAT(l_description,'Invoice Number:'),1,2000);
395     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
396  END IF;   
397   l_source := SUBSTR(p_source_3,1,1996);
398   IF l_source IS NOT NULL THEN
399     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
400     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
401   END IF;  
402  IF 
403 l_ledger_language = 'US' THEN
404     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
405     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
406  END IF;  
407  IF 
408 l_ledger_language = 'US' THEN
409     l_description :=  SUBSTR(CONCAT(l_description,'Date:'),1,2000);
410     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
411  END IF;   
412   l_source := SUBSTR(xla_ae_sources_pkg.DATE_TO_CHAR(p_source_4,
413                      xla_ae_journal_entry_pkg.g_cache_ledgers_info.nls_desc_language),1,1996);
414   IF l_source IS NOT NULL THEN
415     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
416     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
417   END IF;  
418  IF 
419 l_ledger_language = 'US' THEN
420     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
421     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
422  END IF;  
423  IF 
424 l_ledger_language = 'US' THEN
425     l_description :=  SUBSTR(CONCAT(l_description,'Document Sequence Category:'),1,2000);
426     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
427  END IF;   
428   l_source := SUBSTR(p_source_5,1,1996);
429   IF l_source IS NOT NULL THEN
430     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
431     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
432   END IF;  
433  IF 
434 l_ledger_language = 'US' THEN
435     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
436     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
437  END IF;  
438  IF 
439 l_ledger_language = 'US' THEN
440     l_description :=  SUBSTR(CONCAT(l_description,'Document Sequence Name:'),1,2000);
441     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
442  END IF;   
443   l_source := SUBSTR(p_source_6,1,1996);
444   IF l_source IS NOT NULL THEN
445     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
449 l_ledger_language = 'US' THEN
446     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
447   END IF;  
448  IF 
450     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
451     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
452  END IF;  
453  IF 
454 l_ledger_language = 'US' THEN
455     l_description :=  SUBSTR(CONCAT(l_description,'Invoice Voucher Number:'),1,2000);
456     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
457  END IF;   
458   l_source := SUBSTR(TO_CHAR(p_source_7),1,1996);
459   IF l_source IS NOT NULL THEN
460     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
461     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
462   END IF;  
463  IF 
464 l_ledger_language = 'US' THEN
465     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
466     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
467  END IF;  
468  IF 
469 l_ledger_language = 'US' THEN
470     l_description :=  SUBSTR(CONCAT(l_description,'Invoice Description:'),1,2000);
471     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
472  END IF;   
473   l_source := SUBSTR(p_source_8,1,1996);
474   IF l_source IS NOT NULL THEN
475     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
476     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
477   END IF; 
478  l_description := SUBSTR(l_description,1,1996);
479   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
480         trace
481            (p_msg      => 'END of Description_2'
482            ,p_level    => C_LEVEL_PROCEDURE
483            ,p_module   => l_log_module);
484 
485   END IF;
486   RETURN l_description;
487 
488  ELSIF p_source_7 IS NULL 
489  THEN 
490   
491   l_source := SUBSTR(
492 xla_ae_sources_pkg.GetSystemSourceChar(
493    p_source_code           => 'XLA_EVENT_TYPE_NAME'
494  , p_source_type_code      => 'Y'
495  , p_source_application_id =>  602
496 ),1,1996);
497   IF l_source IS NOT NULL THEN
498     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
499     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
500   END IF;  
501  IF 
502 l_ledger_language = 'US' THEN
503     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
504     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
505  END IF;  
506  IF 
507 l_ledger_language = 'US' THEN
508     l_description :=  SUBSTR(CONCAT(l_description,'Invoice Number:'),1,2000);
509     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
510  END IF;   
511   l_source := SUBSTR(p_source_3,1,1996);
512   IF l_source IS NOT NULL THEN
513     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
514     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
515   END IF;  
516  IF 
517 l_ledger_language = 'US' THEN
518     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
519     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
520  END IF;  
521  IF 
522 l_ledger_language = 'US' THEN
523     l_description :=  SUBSTR(CONCAT(l_description,'Invoice Date:'),1,2000);
524     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
525  END IF;   
526   l_source := SUBSTR(xla_ae_sources_pkg.DATE_TO_CHAR(p_source_4,
527                      xla_ae_journal_entry_pkg.g_cache_ledgers_info.nls_desc_language),1,1996);
528   IF l_source IS NOT NULL THEN
529     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
530     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
531   END IF;  
532  IF 
533 l_ledger_language = 'US' THEN
534     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
535     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
536  END IF;  
537  IF 
538 l_ledger_language = 'US' THEN
539     l_description :=  SUBSTR(CONCAT(l_description,'Invoice Description:'),1,2000);
540     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
541  END IF;   
542   l_source := SUBSTR(p_source_8,1,1996);
543   IF l_source IS NOT NULL THEN
544     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
545     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
546   END IF; 
547  l_description := SUBSTR(l_description,1,1996);
548   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
549         trace
550            (p_msg      => 'END of Description_2'
551            ,p_level    => C_LEVEL_PROCEDURE
552            ,p_module   => l_log_module);
553 
554   END IF;
555   RETURN l_description;
556 
557  END IF;
558 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
559       trace
560          (p_msg      => 'END of Description_2'
561          ,p_level    => C_LEVEL_PROCEDURE
562          ,p_module   => l_log_module);
563 END IF;
564 RETURN NULL;
565 EXCEPTION
566   WHEN VALUE_ERROR THEN
567      IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
568             trace
569                (p_msg      => 'ERROR: '||sqlerrm
570                ,p_level    => C_LEVEL_EXCEPTION
571                ,p_module   => l_log_module);
572      END IF;
573      RAISE;
574  WHEN xla_exceptions_pkg.application_exception THEN
575       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
576       trace
580       END IF;
577          (p_msg      => 'ERROR: '||sqlerrm
578          ,p_level    => C_LEVEL_EXCEPTION
579          ,p_module   => l_log_module);
581       RAISE;
582  WHEN OTHERS THEN
583        xla_exceptions_pkg.raise_message
584            (p_location => 'XLA_00200_AAD_S_000002_PKG.Description_2');
585 END Description_2;
586 
587 ---------------------------------------
588 --
589 -- PRIVATE FUNCTION
590 --         Description_3
591 --
592 ---------------------------------------
593 FUNCTION Description_3 (
594   p_application_id      IN NUMBER
595 , p_ae_header_id        IN NUMBER DEFAULT NULL 
596 --Document Sequence Name
597  , p_source_6            IN VARCHAR2
598 --Payment Document Voucher Number
599  , p_source_9            IN NUMBER
600 --Payment Transaction Number
601  , p_source_10            IN NUMBER
602 --Payment Document Date
603  , p_source_11            IN DATE
604 --Bank Account Name
605  , p_source_12            IN VARCHAR2
606 --Payment Currency Code
607  , p_source_13            IN VARCHAR2
608 )
609 RETURN VARCHAR2
610 IS
611 l_component_type        VARCHAR2(80)   ;
612 l_component_code        VARCHAR2(30)   ;
613 l_component_type_code   VARCHAR2(1)    ;
614 l_component_appl_id     INTEGER        ;
615 l_amb_context_code      VARCHAR2(30)   ;
616 l_ledger_language       VARCHAR2(30)   ;
617 l_source                VARCHAR2(1996) ;
618 l_description           VARCHAR2(2000) ;
619 l_log_module            VARCHAR2(240)  ;
620 BEGIN
621 IF g_log_enabled THEN
622       l_log_module := C_DEFAULT_MODULE||'.Description_3';
623 END IF;
624 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
625       trace
626          (p_msg      => 'BEGIN of Description_3'
627          ,p_level    => C_LEVEL_PROCEDURE
628          ,p_module   => l_log_module);
629 END IF;
630 
631 l_ledger_language       := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
632 l_component_type        := 'AMB_DESCRIPTION';
633 l_component_code        := 'JE_PAYMENT_HEADER_DESC';
634 l_component_type_code   := 'S';
635 l_component_appl_id     :=  200;
636 l_amb_context_code      := 'DEFAULT';
637 l_source                := NULL;
638 l_description           := NULL;
639 
640 
641  IF p_source_9 IS NOT NULL 
642  THEN 
643   
644   l_source := SUBSTR(
645 xla_ae_sources_pkg.GetSystemSourceChar(
646    p_source_code           => 'XLA_EVENT_TYPE_NAME'
647  , p_source_type_code      => 'Y'
648  , p_source_application_id =>  602
649 ),1,1996);
650   IF l_source IS NOT NULL THEN
651     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
652     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
653   END IF;  
654  IF 
655 l_ledger_language = 'US' THEN
656     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
657     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
658  END IF;  
659  IF 
660 l_ledger_language = 'US' THEN
661     l_description :=  SUBSTR(CONCAT(l_description,'Payment Document Sequence Name:'),1,2000);
662     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
663  END IF;   
664   l_source := SUBSTR(p_source_6,1,1996);
665   IF l_source IS NOT NULL THEN
666     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
667     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
668   END IF;  
669  IF 
670 l_ledger_language = 'US' THEN
671     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
672     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
673  END IF;  
674  IF 
675 l_ledger_language = 'US' THEN
676     l_description :=  SUBSTR(CONCAT(l_description,'Payment Document Sequence Number:'),1,2000);
677     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
678  END IF;   
679   l_source := SUBSTR(TO_CHAR(p_source_9),1,1996);
680   IF l_source IS NOT NULL THEN
681     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
682     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
683   END IF;  
684  IF 
685 l_ledger_language = 'US' THEN
686     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
687     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
688  END IF;  
689  IF 
690 l_ledger_language = 'US' THEN
691     l_description :=  SUBSTR(CONCAT(l_description,'Payment Number:'),1,2000);
692     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
693  END IF;   
694   l_source := SUBSTR(TO_CHAR(p_source_10),1,1996);
695   IF l_source IS NOT NULL THEN
696     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
697     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
698   END IF;  
699  IF 
700 l_ledger_language = 'US' THEN
701     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
702     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
703  END IF;  
704  IF 
705 l_ledger_language = 'US' THEN
706     l_description :=  SUBSTR(CONCAT(l_description,'Payment Date:'),1,2000);
707     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
708  END IF;   
709   l_source := SUBSTR(xla_ae_sources_pkg.DATE_TO_CHAR(p_source_11,
710                      xla_ae_journal_entry_pkg.g_cache_ledgers_info.nls_desc_language),1,1996);
711   IF l_source IS NOT NULL THEN
715  IF 
712     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
713     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
714   END IF;  
716 l_ledger_language = 'US' THEN
717     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
718     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
719  END IF;  
720  IF 
721 l_ledger_language = 'US' THEN
722     l_description :=  SUBSTR(CONCAT(l_description,'Bank Name:'),1,2000);
723     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
724  END IF;   
725   l_source := SUBSTR(p_source_12,1,1996);
726   IF l_source IS NOT NULL THEN
727     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
728     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
729   END IF;  
730  IF 
731 l_ledger_language = 'US' THEN
732     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
733     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
734  END IF;  
735  IF 
736 l_ledger_language = 'US' THEN
737     l_description :=  SUBSTR(CONCAT(l_description,'Payment Currency Code'),1,2000);
738     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
739  END IF;   
740   l_source := SUBSTR(p_source_13,1,1996);
741   IF l_source IS NOT NULL THEN
742     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
743     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
744   END IF; 
745  l_description := SUBSTR(l_description,1,1996);
746   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
747         trace
748            (p_msg      => 'END of Description_3'
749            ,p_level    => C_LEVEL_PROCEDURE
750            ,p_module   => l_log_module);
751 
752   END IF;
753   RETURN l_description;
754 
755  ELSIF p_source_9 IS NULL 
756  THEN 
757   
758   l_source := SUBSTR(
759 xla_ae_sources_pkg.GetSystemSourceChar(
760    p_source_code           => 'XLA_EVENT_TYPE_NAME'
761  , p_source_type_code      => 'Y'
762  , p_source_application_id =>  602
763 ),1,1996);
764   IF l_source IS NOT NULL THEN
765     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
766     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
767   END IF;  
768  IF 
769 l_ledger_language = 'US' THEN
770     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
771     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
772  END IF;  
773  IF 
774 l_ledger_language = 'US' THEN
775     l_description :=  SUBSTR(CONCAT(l_description,'Payment Number:'),1,2000);
776     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
777  END IF;   
778   l_source := SUBSTR(TO_CHAR(p_source_10),1,1996);
779   IF l_source IS NOT NULL THEN
780     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
781     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
782   END IF;  
783  IF 
784 l_ledger_language = 'US' THEN
785     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
786     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
787  END IF;  
788  IF 
789 l_ledger_language = 'US' THEN
790     l_description :=  SUBSTR(CONCAT(l_description,'Payment Date:'),1,2000);
791     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
792  END IF;   
793   l_source := SUBSTR(xla_ae_sources_pkg.DATE_TO_CHAR(p_source_11,
794                      xla_ae_journal_entry_pkg.g_cache_ledgers_info.nls_desc_language),1,1996);
795   IF l_source IS NOT NULL THEN
796     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
797     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
798   END IF;  
799  IF 
800 l_ledger_language = 'US' THEN
801     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
802     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
803  END IF;  
804  IF 
805 l_ledger_language = 'US' THEN
806     l_description :=  SUBSTR(CONCAT(l_description,'Bank Name:'),1,2000);
807     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
808  END IF;   
809   l_source := SUBSTR(p_source_12,1,1996);
810   IF l_source IS NOT NULL THEN
811     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
812     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
813   END IF;  
814  IF 
815 l_ledger_language = 'US' THEN
816     l_description :=  SUBSTR(CONCAT(l_description,','),1,2000);
817     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
818  END IF;  
819  IF 
820 l_ledger_language = 'US' THEN
821     l_description :=  SUBSTR(CONCAT(l_description,'Payment Currency Code'),1,2000);
822     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000); 
823  END IF;   
824   l_source := SUBSTR(p_source_13,1,1996);
825   IF l_source IS NOT NULL THEN
826     l_description :=  SUBSTR(CONCAT(l_description,l_source),1,2000);
827     l_description :=  SUBSTR(CONCAT(l_description,' '),1,2000);
828   END IF; 
829  l_description := SUBSTR(l_description,1,1996);
830   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
831         trace
832            (p_msg      => 'END of Description_3'
833            ,p_level    => C_LEVEL_PROCEDURE
834            ,p_module   => l_log_module);
835 
836   END IF;
837   RETURN l_description;
838 
839  END IF;
840 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
841       trace
845 END IF;
842          (p_msg      => 'END of Description_3'
843          ,p_level    => C_LEVEL_PROCEDURE
844          ,p_module   => l_log_module);
846 RETURN NULL;
847 EXCEPTION
848   WHEN VALUE_ERROR THEN
849      IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
850             trace
851                (p_msg      => 'ERROR: '||sqlerrm
852                ,p_level    => C_LEVEL_EXCEPTION
853                ,p_module   => l_log_module);
854      END IF;
855      RAISE;
856  WHEN xla_exceptions_pkg.application_exception THEN
857       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
858       trace
859          (p_msg      => 'ERROR: '||sqlerrm
860          ,p_level    => C_LEVEL_EXCEPTION
861          ,p_module   => l_log_module);
862       END IF;
863       RAISE;
864  WHEN OTHERS THEN
865        xla_exceptions_pkg.raise_message
866            (p_location => 'XLA_00200_AAD_S_000002_PKG.Description_3');
867 END Description_3;
868 
869 ---------------------------------------
870 --
871 -- PRIVATE FUNCTION
872 --         AcctDerRule_4
873 --
874 ---------------------------------------
875 FUNCTION AcctDerRule_4 (
876   p_application_id             IN NUMBER
877 , p_ae_header_id               IN NUMBER
878 , p_side                       IN VARCHAR2
879 , p_override_seg_flag          IN VARCHAR2 
880 --Bank Charges Account
881  , p_source_14            IN NUMBER
882 --Automatic Offsets Value
883  , p_source_15            IN VARCHAR2
884  , p_source_15_meaning    IN VARCHAR2
885 , x_transaction_coa_id         OUT NOCOPY NUMBER
886 , x_accounting_coa_id          OUT NOCOPY NUMBER
887 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
888 , x_flex_value_set_id          OUT NOCOPY NUMBER
889 , x_value_type_code            OUT NOCOPY VARCHAR2
890 , x_value_combination_id       OUT NOCOPY NUMBER
891 , x_value_segment_code         OUT NOCOPY VARCHAR2
892 )
893 RETURN VARCHAR2
894 IS
895 l_component_type       VARCHAR2(80)  ;
896 l_component_code       VARCHAR2(30)  ;
897 l_component_type_code  VARCHAR2(1)   ;
898 l_component_appl_id    INTEGER       ;
899 l_amb_context_code     VARCHAR2(30)  ;
900 l_log_module           VARCHAR2(240) ;
901 l_output_value         VARCHAR2(30)  ;
902 BEGIN
903 IF g_log_enabled THEN
904       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_4';
905 END IF;
906 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
907 
908       trace
909          (p_msg      => 'BEGIN of AcctDerRule_4'
910          ,p_level    => C_LEVEL_PROCEDURE
911          ,p_module   => l_log_module);
912 
913 END IF;
914 
915 l_component_type         := 'AMB_ADR';
916 l_component_code         := 'AP_BANK_CHARGES_NAT_ACCT_SEG';
917 l_component_type_code    := 'S';
918 l_component_appl_id      :=  200;
919 l_amb_context_code       := 'DEFAULT';
920 x_transaction_coa_id     :=  null;
921 x_accounting_coa_id      :=  null;
922 x_flexfield_segment_code := 'GL_ACCOUNT';
923 x_flex_value_set_id      :=  null ;
924 
925 
926  IF NVL(p_source_15,'
927 ') =  'ACCOUNT_SEGMENT_VALUE'
928  THEN 
929 --
930   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
931 
932       trace
933          (p_msg      => 'END of AcctDerRule_4'
934          ,p_level    => C_LEVEL_PROCEDURE
935          ,p_module   => l_log_module);
936 
937   END IF;
938   x_value_combination_id  := TO_NUMBER(p_source_14) ;
939   x_value_segment_code    := 'GL_ACCOUNT' ;
940   x_value_type_code       := 'S';
941   l_output_value          :=  null;
942   RETURN l_output_value;
943 
944  ELSE 
945     IF p_override_seg_flag = 'Y' THEN 
946        RETURN '#$NO_OVERRIDE#$';
947     END IF;
948  END IF;
949 
950 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
951 
952       trace
953          (p_msg      => 'END of AcctDerRule_4(invalid)'
954          ,p_level    => C_LEVEL_PROCEDURE
955          ,p_module   => l_log_module);
956 
957 END IF;
958 
959 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
960 x_value_combination_id  := null;
961 x_value_segment_code    := null;
962 x_value_type_code       := null;
963 l_output_value          := null;
964 xla_accounting_err_pkg.build_message
965                  (p_appli_s_name            => 'XLA'
966                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
967                  ,p_token_1                 => 'COMPONENT_NAME'
968                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
969                                                             l_component_type
970                                                           , l_component_code
971                                                           , l_component_type_code
972                                                           , l_component_appl_id
973                                                           , l_amb_context_code
974                                                           )
975                  ,p_token_2                 => 'OWNER'
976                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
977                                                         'XLA_OWNER_TYPE'
978                                                         ,l_component_type_code
979                                                         )
980                  ,p_token_3                 => 'PAD_NAME'
984                                                         'XLA_OWNER_TYPE'
981                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
982                  ,p_token_4                 => 'PAD_OWNER'
983                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
985                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
986                                                         )
987                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
988                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
989                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
990                  ,p_ae_header_id            => NULL
991 );
992 RETURN l_output_value;
993 EXCEPTION
994   WHEN xla_exceptions_pkg.application_exception THEN
995       RAISE;
996   WHEN OTHERS THEN
997        xla_exceptions_pkg.raise_message
998            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_4');
999 END AcctDerRule_4;
1000 --
1001 
1002 ---------------------------------------
1003 --
1004 -- PRIVATE FUNCTION
1005 --         AcctDerRule_5
1006 --
1007 ---------------------------------------
1008 FUNCTION AcctDerRule_5 (
1009   p_application_id             IN NUMBER
1010 , p_ae_header_id               IN NUMBER
1011 , p_side                       IN VARCHAR2
1012 , p_override_seg_flag          IN VARCHAR2 
1013 --Automatic Offsets Value
1014  , p_source_15            IN VARCHAR2
1015  , p_source_15_meaning    IN VARCHAR2
1016 --Bank Errors Account
1017  , p_source_16            IN NUMBER
1018 , x_transaction_coa_id         OUT NOCOPY NUMBER
1019 , x_accounting_coa_id          OUT NOCOPY NUMBER
1020 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1021 , x_flex_value_set_id          OUT NOCOPY NUMBER
1022 , x_value_type_code            OUT NOCOPY VARCHAR2
1023 , x_value_combination_id       OUT NOCOPY NUMBER
1024 , x_value_segment_code         OUT NOCOPY VARCHAR2
1025 )
1026 RETURN VARCHAR2
1027 IS
1028 l_component_type       VARCHAR2(80)  ;
1029 l_component_code       VARCHAR2(30)  ;
1030 l_component_type_code  VARCHAR2(1)   ;
1031 l_component_appl_id    INTEGER       ;
1032 l_amb_context_code     VARCHAR2(30)  ;
1033 l_log_module           VARCHAR2(240) ;
1034 l_output_value         VARCHAR2(30)  ;
1035 BEGIN
1036 IF g_log_enabled THEN
1037       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_5';
1038 END IF;
1039 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1040 
1041       trace
1042          (p_msg      => 'BEGIN of AcctDerRule_5'
1043          ,p_level    => C_LEVEL_PROCEDURE
1044          ,p_module   => l_log_module);
1045 
1046 END IF;
1047 
1048 l_component_type         := 'AMB_ADR';
1049 l_component_code         := 'AP_BANK_ERRORS_NAT_ACCT_SEG';
1050 l_component_type_code    := 'S';
1051 l_component_appl_id      :=  200;
1052 l_amb_context_code       := 'DEFAULT';
1053 x_transaction_coa_id     :=  null;
1054 x_accounting_coa_id      :=  null;
1055 x_flexfield_segment_code := 'GL_ACCOUNT';
1056 x_flex_value_set_id      :=  null ;
1057 
1058 
1059  IF NVL(p_source_15,'
1060 ') =  'ACCOUNT_SEGMENT_VALUE'
1061  THEN 
1062 --
1063   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1064 
1065       trace
1066          (p_msg      => 'END of AcctDerRule_5'
1067          ,p_level    => C_LEVEL_PROCEDURE
1068          ,p_module   => l_log_module);
1069 
1070   END IF;
1071   x_value_combination_id  := TO_NUMBER(p_source_16) ;
1072   x_value_segment_code    := 'GL_ACCOUNT' ;
1073   x_value_type_code       := 'S';
1074   l_output_value          :=  null;
1075   RETURN l_output_value;
1076 
1077  ELSE 
1078     IF p_override_seg_flag = 'Y' THEN 
1079        RETURN '#$NO_OVERRIDE#$';
1080     END IF;
1081  END IF;
1082 
1083 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1084 
1085       trace
1086          (p_msg      => 'END of AcctDerRule_5(invalid)'
1087          ,p_level    => C_LEVEL_PROCEDURE
1088          ,p_module   => l_log_module);
1089 
1090 END IF;
1091 
1092 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1093 x_value_combination_id  := null;
1094 x_value_segment_code    := null;
1095 x_value_type_code       := null;
1096 l_output_value          := null;
1097 xla_accounting_err_pkg.build_message
1098                  (p_appli_s_name            => 'XLA'
1099                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1100                  ,p_token_1                 => 'COMPONENT_NAME'
1101                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1102                                                             l_component_type
1103                                                           , l_component_code
1104                                                           , l_component_type_code
1105                                                           , l_component_appl_id
1106                                                           , l_amb_context_code
1107                                                           )
1108                  ,p_token_2                 => 'OWNER'
1109                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1110                                                         'XLA_OWNER_TYPE'
1114                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1111                                                         ,l_component_type_code
1112                                                         )
1113                  ,p_token_3                 => 'PAD_NAME'
1115                  ,p_token_4                 => 'PAD_OWNER'
1116                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1117                                                         'XLA_OWNER_TYPE'
1118                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1119                                                         )
1120                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1121                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1122                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1123                  ,p_ae_header_id            => NULL
1124 );
1125 RETURN l_output_value;
1126 EXCEPTION
1127   WHEN xla_exceptions_pkg.application_exception THEN
1128       RAISE;
1129   WHEN OTHERS THEN
1130        xla_exceptions_pkg.raise_message
1131            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_5');
1132 END AcctDerRule_5;
1133 --
1134 
1135 ---------------------------------------
1136 --
1137 -- PRIVATE FUNCTION
1138 --         AcctDerRule_6
1139 --
1140 ---------------------------------------
1141 FUNCTION AcctDerRule_6 (
1142   p_application_id             IN NUMBER
1143 , p_ae_header_id               IN NUMBER
1144 , p_side                       IN VARCHAR2
1145 , p_override_seg_flag          IN VARCHAR2 
1146 --Bank Cash Account
1147  , p_source_17            IN NUMBER
1148 , x_transaction_coa_id         OUT NOCOPY NUMBER
1149 , x_accounting_coa_id          OUT NOCOPY NUMBER
1150 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1151 , x_flex_value_set_id          OUT NOCOPY NUMBER
1152 , x_value_type_code            OUT NOCOPY VARCHAR2
1153 , x_value_combination_id       OUT NOCOPY NUMBER
1154 , x_value_segment_code         OUT NOCOPY VARCHAR2
1155 )
1156 RETURN VARCHAR2
1157 IS
1158 l_component_type       VARCHAR2(80)  ;
1159 l_component_code       VARCHAR2(30)  ;
1160 l_component_type_code  VARCHAR2(1)   ;
1161 l_component_appl_id    INTEGER       ;
1162 l_amb_context_code     VARCHAR2(30)  ;
1163 l_log_module           VARCHAR2(240) ;
1164 l_output_value         VARCHAR2(30)  ;
1165 BEGIN
1166 IF g_log_enabled THEN
1167       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_6';
1168 END IF;
1169 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1170 
1171       trace
1172          (p_msg      => 'BEGIN of AcctDerRule_6'
1173          ,p_level    => C_LEVEL_PROCEDURE
1174          ,p_module   => l_log_module);
1175 
1176 END IF;
1177 
1178 l_component_type         := 'AMB_ADR';
1179 l_component_code         := 'AP_CASH_NATURAL_ACCT_SEG';
1180 l_component_type_code    := 'S';
1181 l_component_appl_id      :=  200;
1182 l_amb_context_code       := 'DEFAULT';
1183 x_transaction_coa_id     :=  null;
1184 x_accounting_coa_id      :=  null;
1185 x_flexfield_segment_code := 'GL_ACCOUNT';
1186 x_flex_value_set_id      :=  null ;
1187 
1188 
1189 --
1190   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1191 
1192       trace
1193          (p_msg      => 'END of AcctDerRule_6'
1194          ,p_level    => C_LEVEL_PROCEDURE
1195          ,p_module   => l_log_module);
1196 
1197   END IF;
1198   x_value_combination_id  := TO_NUMBER(p_source_17) ;
1199   x_value_segment_code    := 'GL_ACCOUNT' ;
1200   x_value_type_code       := 'S';
1201   l_output_value          :=  null;
1202   RETURN l_output_value;
1203 
1204 
1205 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1206 
1207       trace
1208          (p_msg      => 'END of AcctDerRule_6(invalid)'
1209          ,p_level    => C_LEVEL_PROCEDURE
1210          ,p_module   => l_log_module);
1211 
1212 END IF;
1213 
1214 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1215 x_value_combination_id  := null;
1216 x_value_segment_code    := null;
1217 x_value_type_code       := null;
1218 l_output_value          := null;
1219 xla_accounting_err_pkg.build_message
1220                  (p_appli_s_name            => 'XLA'
1221                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1222                  ,p_token_1                 => 'COMPONENT_NAME'
1223                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1224                                                             l_component_type
1225                                                           , l_component_code
1226                                                           , l_component_type_code
1227                                                           , l_component_appl_id
1228                                                           , l_amb_context_code
1229                                                           )
1230                  ,p_token_2                 => 'OWNER'
1231                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1232                                                         'XLA_OWNER_TYPE'
1233                                                         ,l_component_type_code
1234                                                         )
1235                  ,p_token_3                 => 'PAD_NAME'
1239                                                         'XLA_OWNER_TYPE'
1236                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1237                  ,p_token_4                 => 'PAD_OWNER'
1238                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1240                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1241                                                         )
1242                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1243                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1244                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1245                  ,p_ae_header_id            => NULL
1246 );
1247 RETURN l_output_value;
1248 EXCEPTION
1249   WHEN xla_exceptions_pkg.application_exception THEN
1250       RAISE;
1251   WHEN OTHERS THEN
1252        xla_exceptions_pkg.raise_message
1253            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_6');
1254 END AcctDerRule_6;
1255 --
1256 
1257 ---------------------------------------
1258 --
1259 -- PRIVATE FUNCTION
1260 --         AcctDerRule_7
1261 --
1262 ---------------------------------------
1263 FUNCTION AcctDerRule_7 (
1264   p_application_id             IN NUMBER
1265 , p_ae_header_id               IN NUMBER
1266 , p_side                       IN VARCHAR2
1267 , p_override_seg_flag          IN VARCHAR2 
1268 --Automatic Offsets Value
1269  , p_source_15            IN VARCHAR2
1270  , p_source_15_meaning    IN VARCHAR2
1271 --System Discount Account
1272  , p_source_18            IN NUMBER
1273 --Discount Distribution Method
1274  , p_source_19            IN VARCHAR2
1275  , p_source_19_meaning    IN VARCHAR2
1276 , x_transaction_coa_id         OUT NOCOPY NUMBER
1277 , x_accounting_coa_id          OUT NOCOPY NUMBER
1278 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1279 , x_flex_value_set_id          OUT NOCOPY NUMBER
1280 , x_value_type_code            OUT NOCOPY VARCHAR2
1281 , x_value_combination_id       OUT NOCOPY NUMBER
1282 , x_value_segment_code         OUT NOCOPY VARCHAR2
1283 )
1284 RETURN VARCHAR2
1285 IS
1286 l_component_type       VARCHAR2(80)  ;
1287 l_component_code       VARCHAR2(30)  ;
1288 l_component_type_code  VARCHAR2(1)   ;
1289 l_component_appl_id    INTEGER       ;
1290 l_amb_context_code     VARCHAR2(30)  ;
1291 l_log_module           VARCHAR2(240) ;
1292 l_output_value         VARCHAR2(30)  ;
1293 BEGIN
1294 IF g_log_enabled THEN
1295       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_7';
1296 END IF;
1297 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1298 
1299       trace
1300          (p_msg      => 'BEGIN of AcctDerRule_7'
1301          ,p_level    => C_LEVEL_PROCEDURE
1302          ,p_module   => l_log_module);
1303 
1304 END IF;
1305 
1306 l_component_type         := 'AMB_ADR';
1307 l_component_code         := 'AP_DISCOUNT_NAT_ACCT_SEG';
1308 l_component_type_code    := 'S';
1309 l_component_appl_id      :=  200;
1310 l_amb_context_code       := 'DEFAULT';
1311 x_transaction_coa_id     :=  null;
1312 x_accounting_coa_id      :=  null;
1313 x_flexfield_segment_code := 'GL_ACCOUNT';
1314 x_flex_value_set_id      :=  null ;
1315 
1316 
1317  IF NVL(p_source_19,'
1318 ') =  'SYSTEM' AND 
1319 NVL(p_source_15,'
1320 ') =  'ACCOUNT_SEGMENT_VALUE'
1321  THEN 
1322 --
1323   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1324 
1325       trace
1326          (p_msg      => 'END of AcctDerRule_7'
1327          ,p_level    => C_LEVEL_PROCEDURE
1328          ,p_module   => l_log_module);
1329 
1330   END IF;
1331   x_value_combination_id  := TO_NUMBER(p_source_18) ;
1332   x_value_segment_code    := 'GL_ACCOUNT' ;
1333   x_value_type_code       := 'S';
1334   l_output_value          :=  null;
1335   RETURN l_output_value;
1336 
1337  ELSE 
1338     IF p_override_seg_flag = 'Y' THEN 
1339        RETURN '#$NO_OVERRIDE#$';
1340     END IF;
1341  END IF;
1342 
1343 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1344 
1345       trace
1346          (p_msg      => 'END of AcctDerRule_7(invalid)'
1347          ,p_level    => C_LEVEL_PROCEDURE
1348          ,p_module   => l_log_module);
1349 
1350 END IF;
1351 
1352 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1353 x_value_combination_id  := null;
1354 x_value_segment_code    := null;
1355 x_value_type_code       := null;
1356 l_output_value          := null;
1357 xla_accounting_err_pkg.build_message
1358                  (p_appli_s_name            => 'XLA'
1359                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1360                  ,p_token_1                 => 'COMPONENT_NAME'
1361                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1362                                                             l_component_type
1363                                                           , l_component_code
1364                                                           , l_component_type_code
1365                                                           , l_component_appl_id
1366                                                           , l_amb_context_code
1367                                                           )
1368                  ,p_token_2                 => 'OWNER'
1372                                                         )
1369                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1370                                                         'XLA_OWNER_TYPE'
1371                                                         ,l_component_type_code
1373                  ,p_token_3                 => 'PAD_NAME'
1374                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1375                  ,p_token_4                 => 'PAD_OWNER'
1376                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1377                                                         'XLA_OWNER_TYPE'
1378                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1379                                                         )
1380                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1381                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1382                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1383                  ,p_ae_header_id            => NULL
1384 );
1385 RETURN l_output_value;
1386 EXCEPTION
1387   WHEN xla_exceptions_pkg.application_exception THEN
1388       RAISE;
1389   WHEN OTHERS THEN
1390        xla_exceptions_pkg.raise_message
1391            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_7');
1392 END AcctDerRule_7;
1393 --
1394 
1395 ---------------------------------------
1396 --
1397 -- PRIVATE FUNCTION
1398 --         AcctDerRule_8
1399 --
1400 ---------------------------------------
1401 FUNCTION AcctDerRule_8 (
1402   p_application_id             IN NUMBER
1403 , p_ae_header_id               IN NUMBER
1404 , p_side                       IN VARCHAR2
1405 , p_override_seg_flag          IN VARCHAR2 
1406 --Automatic Offsets Value
1407  , p_source_15            IN VARCHAR2
1408  , p_source_15_meaning    IN VARCHAR2
1409 --Purchase Order Rate Variance Gain Account
1410  , p_source_20            IN NUMBER
1411 --Invoice Distribution Ledger Amount
1412  , p_source_21            IN NUMBER
1413 --Destination Type of the PO Distribution
1414  , p_source_22            IN VARCHAR2
1415  , p_source_22_meaning    IN VARCHAR2
1416 --Purchase Order Rate Variance Loss Account
1417  , p_source_23            IN NUMBER
1418 , x_transaction_coa_id         OUT NOCOPY NUMBER
1419 , x_accounting_coa_id          OUT NOCOPY NUMBER
1420 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1421 , x_flex_value_set_id          OUT NOCOPY NUMBER
1422 , x_value_type_code            OUT NOCOPY VARCHAR2
1423 , x_value_combination_id       OUT NOCOPY NUMBER
1424 , x_value_segment_code         OUT NOCOPY VARCHAR2
1425 )
1426 RETURN VARCHAR2
1427 IS
1428 l_component_type       VARCHAR2(80)  ;
1429 l_component_code       VARCHAR2(30)  ;
1430 l_component_type_code  VARCHAR2(1)   ;
1431 l_component_appl_id    INTEGER       ;
1432 l_amb_context_code     VARCHAR2(30)  ;
1433 l_log_module           VARCHAR2(240) ;
1434 l_output_value         VARCHAR2(30)  ;
1435 BEGIN
1436 IF g_log_enabled THEN
1437       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_8';
1438 END IF;
1439 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1440 
1441       trace
1442          (p_msg      => 'BEGIN of AcctDerRule_8'
1443          ,p_level    => C_LEVEL_PROCEDURE
1444          ,p_module   => l_log_module);
1445 
1446 END IF;
1447 
1448 l_component_type         := 'AMB_ADR';
1449 l_component_code         := 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG';
1450 l_component_type_code    := 'S';
1451 l_component_appl_id      :=  200;
1452 l_amb_context_code       := 'DEFAULT';
1453 x_transaction_coa_id     :=  null;
1454 x_accounting_coa_id      :=  null;
1455 x_flexfield_segment_code := 'GL_ACCOUNT';
1456 x_flex_value_set_id      :=  null ;
1457 
1458 
1459  IF NVL(p_source_15,'
1460 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1461 p_source_21 <  0 AND 
1462 NVL(p_source_22,'
1463 ') =  'INVENTORY'
1464  THEN 
1465 --
1466   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1467 
1468       trace
1469          (p_msg      => 'END of AcctDerRule_8'
1470          ,p_level    => C_LEVEL_PROCEDURE
1471          ,p_module   => l_log_module);
1472 
1473   END IF;
1474   x_value_combination_id  := TO_NUMBER(p_source_20) ;
1475   x_value_segment_code    := 'GL_ACCOUNT' ;
1476   x_value_type_code       := 'S';
1477   l_output_value          :=  null;
1478   RETURN l_output_value;
1479 
1480  ELSIF NVL(p_source_15,'
1481 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1482 p_source_21 >  0 AND 
1483 NVL(p_source_22,'
1484 ') =  'INVENTORY'
1485  THEN 
1486 --
1487   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1488 
1489       trace
1490          (p_msg      => 'END of AcctDerRule_8'
1491          ,p_level    => C_LEVEL_PROCEDURE
1492          ,p_module   => l_log_module);
1493 
1494   END IF;
1495   x_value_combination_id  := TO_NUMBER(p_source_23) ;
1496   x_value_segment_code    := 'GL_ACCOUNT' ;
1497   x_value_type_code       := 'S';
1498   l_output_value          :=  null;
1499   RETURN l_output_value;
1500 
1501  ELSE 
1502     IF p_override_seg_flag = 'Y' THEN 
1503        RETURN '#$NO_OVERRIDE#$';
1504     END IF;
1505  END IF;
1506 
1507 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1508 
1509       trace
1513 
1510          (p_msg      => 'END of AcctDerRule_8(invalid)'
1511          ,p_level    => C_LEVEL_PROCEDURE
1512          ,p_module   => l_log_module);
1514 END IF;
1515 
1516 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1517 x_value_combination_id  := null;
1518 x_value_segment_code    := null;
1519 x_value_type_code       := null;
1520 l_output_value          := null;
1521 xla_accounting_err_pkg.build_message
1522                  (p_appli_s_name            => 'XLA'
1523                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1524                  ,p_token_1                 => 'COMPONENT_NAME'
1525                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1526                                                             l_component_type
1527                                                           , l_component_code
1528                                                           , l_component_type_code
1529                                                           , l_component_appl_id
1530                                                           , l_amb_context_code
1531                                                           )
1532                  ,p_token_2                 => 'OWNER'
1533                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1534                                                         'XLA_OWNER_TYPE'
1535                                                         ,l_component_type_code
1536                                                         )
1537                  ,p_token_3                 => 'PAD_NAME'
1538                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1539                  ,p_token_4                 => 'PAD_OWNER'
1540                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1541                                                         'XLA_OWNER_TYPE'
1542                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1543                                                         )
1544                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1545                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1546                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1547                  ,p_ae_header_id            => NULL
1548 );
1549 RETURN l_output_value;
1550 EXCEPTION
1551   WHEN xla_exceptions_pkg.application_exception THEN
1552       RAISE;
1553   WHEN OTHERS THEN
1554        xla_exceptions_pkg.raise_message
1555            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_8');
1556 END AcctDerRule_8;
1557 --
1558 
1559 ---------------------------------------
1560 --
1561 -- PRIVATE FUNCTION
1562 --         AcctDerRule_9
1563 --
1564 ---------------------------------------
1565 FUNCTION AcctDerRule_9 (
1566   p_application_id             IN NUMBER
1567 , p_ae_header_id               IN NUMBER
1568 , p_side                       IN VARCHAR2
1569 , p_override_seg_flag          IN VARCHAR2 
1570 --Automatic Offsets Value
1571  , p_source_15            IN VARCHAR2
1572  , p_source_15_meaning    IN VARCHAR2
1573 --Purchase Order Rate Variance Gain Account
1574  , p_source_20            IN NUMBER
1575 --Destination Type of the PO Distribution
1576  , p_source_22            IN VARCHAR2
1577  , p_source_22_meaning    IN VARCHAR2
1578 , x_transaction_coa_id         OUT NOCOPY NUMBER
1579 , x_accounting_coa_id          OUT NOCOPY NUMBER
1580 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1581 , x_flex_value_set_id          OUT NOCOPY NUMBER
1582 , x_value_type_code            OUT NOCOPY VARCHAR2
1583 , x_value_combination_id       OUT NOCOPY NUMBER
1584 , x_value_segment_code         OUT NOCOPY VARCHAR2
1585 )
1586 RETURN VARCHAR2
1587 IS
1588 l_component_type       VARCHAR2(80)  ;
1589 l_component_code       VARCHAR2(30)  ;
1590 l_component_type_code  VARCHAR2(1)   ;
1591 l_component_appl_id    INTEGER       ;
1592 l_amb_context_code     VARCHAR2(30)  ;
1593 l_log_module           VARCHAR2(240) ;
1594 l_output_value         VARCHAR2(30)  ;
1595 BEGIN
1596 IF g_log_enabled THEN
1597       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_9';
1598 END IF;
1599 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1600 
1601       trace
1602          (p_msg      => 'BEGIN of AcctDerRule_9'
1603          ,p_level    => C_LEVEL_PROCEDURE
1604          ,p_module   => l_log_module);
1605 
1606 END IF;
1607 
1608 l_component_type         := 'AMB_ADR';
1609 l_component_code         := 'AP_ERV_GAIN_NAT_ACCT_SEG';
1610 l_component_type_code    := 'S';
1611 l_component_appl_id      :=  200;
1612 l_amb_context_code       := 'DEFAULT';
1613 x_transaction_coa_id     :=  null;
1614 x_accounting_coa_id      :=  null;
1615 x_flexfield_segment_code := 'GL_ACCOUNT';
1616 x_flex_value_set_id      :=  null ;
1617 
1618 
1619  IF NVL(p_source_15,'
1620 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1621 NVL(p_source_22,'
1622 ') =  'INVENTORY'
1623  THEN 
1624 --
1625   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1626 
1627       trace
1628          (p_msg      => 'END of AcctDerRule_9'
1629          ,p_level    => C_LEVEL_PROCEDURE
1630          ,p_module   => l_log_module);
1631 
1632   END IF;
1636   l_output_value          :=  null;
1633   x_value_combination_id  := TO_NUMBER(p_source_20) ;
1634   x_value_segment_code    := 'GL_ACCOUNT' ;
1635   x_value_type_code       := 'S';
1637   RETURN l_output_value;
1638 
1639  ELSE 
1640     IF p_override_seg_flag = 'Y' THEN 
1641        RETURN '#$NO_OVERRIDE#$';
1642     END IF;
1643  END IF;
1644 
1645 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1646 
1647       trace
1648          (p_msg      => 'END of AcctDerRule_9(invalid)'
1649          ,p_level    => C_LEVEL_PROCEDURE
1650          ,p_module   => l_log_module);
1651 
1652 END IF;
1653 
1654 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1655 x_value_combination_id  := null;
1656 x_value_segment_code    := null;
1657 x_value_type_code       := null;
1658 l_output_value          := null;
1659 xla_accounting_err_pkg.build_message
1660                  (p_appli_s_name            => 'XLA'
1661                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1662                  ,p_token_1                 => 'COMPONENT_NAME'
1663                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1664                                                             l_component_type
1665                                                           , l_component_code
1666                                                           , l_component_type_code
1667                                                           , l_component_appl_id
1668                                                           , l_amb_context_code
1669                                                           )
1670                  ,p_token_2                 => 'OWNER'
1671                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1672                                                         'XLA_OWNER_TYPE'
1673                                                         ,l_component_type_code
1674                                                         )
1675                  ,p_token_3                 => 'PAD_NAME'
1676                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1677                  ,p_token_4                 => 'PAD_OWNER'
1678                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1679                                                         'XLA_OWNER_TYPE'
1680                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1681                                                         )
1682                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1683                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1684                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1685                  ,p_ae_header_id            => NULL
1686 );
1687 RETURN l_output_value;
1688 EXCEPTION
1689   WHEN xla_exceptions_pkg.application_exception THEN
1690       RAISE;
1691   WHEN OTHERS THEN
1692        xla_exceptions_pkg.raise_message
1693            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_9');
1694 END AcctDerRule_9;
1695 --
1696 
1697 ---------------------------------------
1698 --
1699 -- PRIVATE FUNCTION
1700 --         AcctDerRule_10
1701 --
1702 ---------------------------------------
1703 FUNCTION AcctDerRule_10 (
1704   p_application_id             IN NUMBER
1705 , p_ae_header_id               IN NUMBER
1706 , p_side                       IN VARCHAR2
1707 , p_override_seg_flag          IN VARCHAR2 
1708 --Automatic Offsets Value
1709  , p_source_15            IN VARCHAR2
1710  , p_source_15_meaning    IN VARCHAR2
1711 --Destination Type of the PO Distribution
1712  , p_source_22            IN VARCHAR2
1713  , p_source_22_meaning    IN VARCHAR2
1714 --Purchase Order Rate Variance Loss Account
1715  , p_source_23            IN NUMBER
1716 , x_transaction_coa_id         OUT NOCOPY NUMBER
1717 , x_accounting_coa_id          OUT NOCOPY NUMBER
1718 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1719 , x_flex_value_set_id          OUT NOCOPY NUMBER
1720 , x_value_type_code            OUT NOCOPY VARCHAR2
1721 , x_value_combination_id       OUT NOCOPY NUMBER
1722 , x_value_segment_code         OUT NOCOPY VARCHAR2
1723 )
1724 RETURN VARCHAR2
1725 IS
1726 l_component_type       VARCHAR2(80)  ;
1727 l_component_code       VARCHAR2(30)  ;
1728 l_component_type_code  VARCHAR2(1)   ;
1729 l_component_appl_id    INTEGER       ;
1730 l_amb_context_code     VARCHAR2(30)  ;
1731 l_log_module           VARCHAR2(240) ;
1732 l_output_value         VARCHAR2(30)  ;
1733 BEGIN
1734 IF g_log_enabled THEN
1735       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_10';
1736 END IF;
1737 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1738 
1739       trace
1740          (p_msg      => 'BEGIN of AcctDerRule_10'
1741          ,p_level    => C_LEVEL_PROCEDURE
1742          ,p_module   => l_log_module);
1743 
1744 END IF;
1745 
1746 l_component_type         := 'AMB_ADR';
1747 l_component_code         := 'AP_ERV_LOSS_NAT_ACCT_SEG';
1748 l_component_type_code    := 'S';
1749 l_component_appl_id      :=  200;
1750 l_amb_context_code       := 'DEFAULT';
1751 x_transaction_coa_id     :=  null;
1752 x_accounting_coa_id      :=  null;
1753 x_flexfield_segment_code := 'GL_ACCOUNT';
1754 x_flex_value_set_id      :=  null ;
1755 
1756 
1760 ') =  'INVENTORY'
1757  IF NVL(p_source_15,'
1758 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1759 NVL(p_source_22,'
1761  THEN 
1762 --
1763   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1764 
1765       trace
1766          (p_msg      => 'END of AcctDerRule_10'
1767          ,p_level    => C_LEVEL_PROCEDURE
1768          ,p_module   => l_log_module);
1769 
1770   END IF;
1771   x_value_combination_id  := TO_NUMBER(p_source_23) ;
1772   x_value_segment_code    := 'GL_ACCOUNT' ;
1773   x_value_type_code       := 'S';
1774   l_output_value          :=  null;
1775   RETURN l_output_value;
1776 
1777  ELSE 
1778     IF p_override_seg_flag = 'Y' THEN 
1779        RETURN '#$NO_OVERRIDE#$';
1780     END IF;
1781  END IF;
1782 
1783 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1784 
1785       trace
1786          (p_msg      => 'END of AcctDerRule_10(invalid)'
1787          ,p_level    => C_LEVEL_PROCEDURE
1788          ,p_module   => l_log_module);
1789 
1790 END IF;
1791 
1792 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1793 x_value_combination_id  := null;
1794 x_value_segment_code    := null;
1795 x_value_type_code       := null;
1796 l_output_value          := null;
1797 xla_accounting_err_pkg.build_message
1798                  (p_appli_s_name            => 'XLA'
1799                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
1800                  ,p_token_1                 => 'COMPONENT_NAME'
1801                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
1802                                                             l_component_type
1803                                                           , l_component_code
1804                                                           , l_component_type_code
1805                                                           , l_component_appl_id
1806                                                           , l_amb_context_code
1807                                                           )
1808                  ,p_token_2                 => 'OWNER'
1809                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
1810                                                         'XLA_OWNER_TYPE'
1811                                                         ,l_component_type_code
1812                                                         )
1813                  ,p_token_3                 => 'PAD_NAME'
1814                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1815                  ,p_token_4                 => 'PAD_OWNER'
1816                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
1817                                                         'XLA_OWNER_TYPE'
1818                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1819                                                         )
1820                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1821                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1822                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1823                  ,p_ae_header_id            => NULL
1824 );
1825 RETURN l_output_value;
1826 EXCEPTION
1827   WHEN xla_exceptions_pkg.application_exception THEN
1828       RAISE;
1829   WHEN OTHERS THEN
1830        xla_exceptions_pkg.raise_message
1831            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_10');
1832 END AcctDerRule_10;
1833 --
1834 
1835 ---------------------------------------
1836 --
1837 -- PRIVATE FUNCTION
1838 --         AcctDerRule_11
1839 --
1840 ---------------------------------------
1841 FUNCTION AcctDerRule_11 (
1842   p_application_id             IN NUMBER
1843 , p_ae_header_id               IN NUMBER
1844 , p_side                       IN VARCHAR2
1845 , p_override_seg_flag          IN VARCHAR2 
1846 --Automatic Offsets Value
1847  , p_source_15            IN VARCHAR2
1848  , p_source_15_meaning    IN VARCHAR2
1849 --Bank Future Dated Payment Account
1850  , p_source_24            IN NUMBER
1851 --Future Dated Payment Account Source Option
1852  , p_source_25            IN VARCHAR2
1853  , p_source_25_meaning    IN VARCHAR2
1854 --Financials Options Future Dated Payment Account
1855  , p_source_26            IN NUMBER
1856 --Supplier Site Future Dated Payment Account
1857  , p_source_27            IN NUMBER
1858 , x_transaction_coa_id         OUT NOCOPY NUMBER
1859 , x_accounting_coa_id          OUT NOCOPY NUMBER
1860 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
1861 , x_flex_value_set_id          OUT NOCOPY NUMBER
1862 , x_value_type_code            OUT NOCOPY VARCHAR2
1863 , x_value_combination_id       OUT NOCOPY NUMBER
1864 , x_value_segment_code         OUT NOCOPY VARCHAR2
1865 )
1866 RETURN VARCHAR2
1867 IS
1868 l_component_type       VARCHAR2(80)  ;
1869 l_component_code       VARCHAR2(30)  ;
1870 l_component_type_code  VARCHAR2(1)   ;
1871 l_component_appl_id    INTEGER       ;
1872 l_amb_context_code     VARCHAR2(30)  ;
1873 l_log_module           VARCHAR2(240) ;
1874 l_output_value         VARCHAR2(30)  ;
1875 BEGIN
1876 IF g_log_enabled THEN
1877       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_11';
1878 END IF;
1879 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1880 
1881       trace
1882          (p_msg      => 'BEGIN of AcctDerRule_11'
1883          ,p_level    => C_LEVEL_PROCEDURE
1884          ,p_module   => l_log_module);
1885 
1889 l_component_code         := 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG';
1886 END IF;
1887 
1888 l_component_type         := 'AMB_ADR';
1890 l_component_type_code    := 'S';
1891 l_component_appl_id      :=  200;
1892 l_amb_context_code       := 'DEFAULT';
1893 x_transaction_coa_id     :=  null;
1894 x_accounting_coa_id      :=  null;
1895 x_flexfield_segment_code := 'GL_ACCOUNT';
1896 x_flex_value_set_id      :=  null ;
1897 
1898 
1899  IF (NVL(p_source_15,'
1900 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1901 NVL(p_source_25,'
1902 ') =  'BANK ACCOUNT') AND 
1903 TO_NUMBER(p_source_24) IS NOT NULL 
1904  THEN 
1905 --
1906   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1907 
1908       trace
1909          (p_msg      => 'END of AcctDerRule_11'
1910          ,p_level    => C_LEVEL_PROCEDURE
1911          ,p_module   => l_log_module);
1912 
1913   END IF;
1914   x_value_combination_id  := TO_NUMBER(p_source_24) ;
1915   x_value_segment_code    := 'GL_ACCOUNT' ;
1916   x_value_type_code       := 'S';
1917   l_output_value          :=  null;
1918   RETURN l_output_value;
1919 
1920  ELSIF NVL(p_source_15,'
1921 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1922 NVL(p_source_25,'
1923 ') =  'BANK ACCOUNT'
1924  THEN 
1925 --
1926   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1927 
1928       trace
1929          (p_msg      => 'END of AcctDerRule_11'
1930          ,p_level    => C_LEVEL_PROCEDURE
1931          ,p_module   => l_log_module);
1932 
1933   END IF;
1934   x_value_combination_id  := TO_NUMBER(p_source_26) ;
1935   x_value_segment_code    := 'GL_ACCOUNT' ;
1936   x_value_type_code       := 'S';
1937   l_output_value          :=  null;
1938   RETURN l_output_value;
1939 
1940  ELSIF NVL(p_source_15,'
1941 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1942 NVL(p_source_25,'
1943 ') =  'SUPPLIER SITE' AND 
1944 TO_NUMBER(p_source_27) IS NOT NULL 
1945  THEN 
1946 --
1947   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1948 
1949       trace
1950          (p_msg      => 'END of AcctDerRule_11'
1951          ,p_level    => C_LEVEL_PROCEDURE
1952          ,p_module   => l_log_module);
1953 
1954   END IF;
1955   x_value_combination_id  := TO_NUMBER(p_source_27) ;
1956   x_value_segment_code    := 'GL_ACCOUNT' ;
1957   x_value_type_code       := 'S';
1958   l_output_value          :=  null;
1959   RETURN l_output_value;
1960 
1961  ELSIF NVL(p_source_15,'
1962 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
1963 NVL(p_source_25,'
1964 ') =  'SUPPLIER SITE'
1965  THEN 
1966 --
1967   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1968 
1969       trace
1970          (p_msg      => 'END of AcctDerRule_11'
1971          ,p_level    => C_LEVEL_PROCEDURE
1972          ,p_module   => l_log_module);
1973 
1974   END IF;
1975   x_value_combination_id  := TO_NUMBER(p_source_26) ;
1976   x_value_segment_code    := 'GL_ACCOUNT' ;
1977   x_value_type_code       := 'S';
1978   l_output_value          :=  null;
1979   RETURN l_output_value;
1980 
1981  ELSE 
1982     IF p_override_seg_flag = 'Y' THEN 
1983        RETURN '#$NO_OVERRIDE#$';
1984     END IF;
1985  END IF;
1986 
1987 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1988 
1989       trace
1990          (p_msg      => 'END of AcctDerRule_11(invalid)'
1991          ,p_level    => C_LEVEL_PROCEDURE
1992          ,p_module   => l_log_module);
1993 
1994 END IF;
1995 
1996 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1997 x_value_combination_id  := null;
1998 x_value_segment_code    := null;
1999 x_value_type_code       := null;
2000 l_output_value          := null;
2001 xla_accounting_err_pkg.build_message
2002                  (p_appli_s_name            => 'XLA'
2003                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2004                  ,p_token_1                 => 'COMPONENT_NAME'
2005                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2006                                                             l_component_type
2007                                                           , l_component_code
2008                                                           , l_component_type_code
2009                                                           , l_component_appl_id
2010                                                           , l_amb_context_code
2011                                                           )
2012                  ,p_token_2                 => 'OWNER'
2013                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2014                                                         'XLA_OWNER_TYPE'
2015                                                         ,l_component_type_code
2016                                                         )
2017                  ,p_token_3                 => 'PAD_NAME'
2018                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2019                  ,p_token_4                 => 'PAD_OWNER'
2020                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2021                                                         'XLA_OWNER_TYPE'
2022                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2026                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2023                                                         )
2024                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2025                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2027                  ,p_ae_header_id            => NULL
2028 );
2029 RETURN l_output_value;
2030 EXCEPTION
2031   WHEN xla_exceptions_pkg.application_exception THEN
2032       RAISE;
2033   WHEN OTHERS THEN
2034        xla_exceptions_pkg.raise_message
2035            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_11');
2036 END AcctDerRule_11;
2037 --
2038 
2039 ---------------------------------------
2040 --
2041 -- PRIVATE FUNCTION
2042 --         AcctDerRule_12
2043 --
2044 ---------------------------------------
2045 FUNCTION AcctDerRule_12 (
2046   p_application_id             IN NUMBER
2047 , p_ae_header_id               IN NUMBER
2048 , p_side                       IN VARCHAR2
2049 , p_override_seg_flag          IN VARCHAR2 
2050 --Interest Account
2051  , p_source_28            IN NUMBER
2052 --Prorate Interest Invoice Across Distributions Option
2053  , p_source_29            IN VARCHAR2
2054 , x_transaction_coa_id         OUT NOCOPY NUMBER
2055 , x_accounting_coa_id          OUT NOCOPY NUMBER
2056 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2057 , x_flex_value_set_id          OUT NOCOPY NUMBER
2058 , x_value_type_code            OUT NOCOPY VARCHAR2
2059 , x_value_combination_id       OUT NOCOPY NUMBER
2060 , x_value_segment_code         OUT NOCOPY VARCHAR2
2061 )
2062 RETURN VARCHAR2
2063 IS
2064 l_component_type       VARCHAR2(80)  ;
2065 l_component_code       VARCHAR2(30)  ;
2066 l_component_type_code  VARCHAR2(1)   ;
2067 l_component_appl_id    INTEGER       ;
2068 l_amb_context_code     VARCHAR2(30)  ;
2069 l_log_module           VARCHAR2(240) ;
2070 l_output_value         VARCHAR2(30)  ;
2071 BEGIN
2072 IF g_log_enabled THEN
2073       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_12';
2074 END IF;
2075 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2076 
2077       trace
2078          (p_msg      => 'BEGIN of AcctDerRule_12'
2079          ,p_level    => C_LEVEL_PROCEDURE
2080          ,p_module   => l_log_module);
2081 
2082 END IF;
2083 
2084 l_component_type         := 'AMB_ADR';
2085 l_component_code         := 'AP_INTEREST_NAT_ACCT_SEG';
2086 l_component_type_code    := 'S';
2087 l_component_appl_id      :=  200;
2088 l_amb_context_code       := 'DEFAULT';
2089 x_transaction_coa_id     :=  null;
2090 x_accounting_coa_id      :=  null;
2091 x_flexfield_segment_code := 'GL_ACCOUNT';
2092 x_flex_value_set_id      :=  null ;
2093 
2094 
2095  IF NVL(p_source_29,'
2096 ') =  'Y'
2097  THEN 
2098 --
2099   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2100 
2101       trace
2102          (p_msg      => 'END of AcctDerRule_12'
2103          ,p_level    => C_LEVEL_PROCEDURE
2104          ,p_module   => l_log_module);
2105 
2106   END IF;
2107   x_value_combination_id  := TO_NUMBER(p_source_28) ;
2108   x_value_segment_code    := 'GL_ACCOUNT' ;
2109   x_value_type_code       := 'S';
2110   l_output_value          :=  null;
2111   RETURN l_output_value;
2112 
2113  ELSE 
2114     IF p_override_seg_flag = 'Y' THEN 
2115        RETURN '#$NO_OVERRIDE#$';
2116     END IF;
2117  END IF;
2118 
2119 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2120 
2121       trace
2122          (p_msg      => 'END of AcctDerRule_12(invalid)'
2123          ,p_level    => C_LEVEL_PROCEDURE
2124          ,p_module   => l_log_module);
2125 
2126 END IF;
2127 
2128 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2129 x_value_combination_id  := null;
2130 x_value_segment_code    := null;
2131 x_value_type_code       := null;
2132 l_output_value          := null;
2133 xla_accounting_err_pkg.build_message
2134                  (p_appli_s_name            => 'XLA'
2135                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2136                  ,p_token_1                 => 'COMPONENT_NAME'
2137                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2138                                                             l_component_type
2139                                                           , l_component_code
2140                                                           , l_component_type_code
2141                                                           , l_component_appl_id
2142                                                           , l_amb_context_code
2143                                                           )
2144                  ,p_token_2                 => 'OWNER'
2145                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2146                                                         'XLA_OWNER_TYPE'
2147                                                         ,l_component_type_code
2148                                                         )
2149                  ,p_token_3                 => 'PAD_NAME'
2150                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2151                  ,p_token_4                 => 'PAD_OWNER'
2152                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2156                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2153                                                         'XLA_OWNER_TYPE'
2154                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2155                                                         )
2157                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2158                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2159                  ,p_ae_header_id            => NULL
2160 );
2161 RETURN l_output_value;
2162 EXCEPTION
2163   WHEN xla_exceptions_pkg.application_exception THEN
2164       RAISE;
2165   WHEN OTHERS THEN
2166        xla_exceptions_pkg.raise_message
2167            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_12');
2168 END AcctDerRule_12;
2169 --
2170 
2171 ---------------------------------------
2172 --
2173 -- PRIVATE FUNCTION
2174 --         AcctDerRule_13
2175 --
2176 ---------------------------------------
2177 FUNCTION AcctDerRule_13 (
2178   p_application_id             IN NUMBER
2179 , p_ae_header_id               IN NUMBER
2180 , p_side                       IN VARCHAR2
2181 , p_override_seg_flag          IN VARCHAR2 
2182 --Invoice Distribution Account
2183  , p_source_30            IN NUMBER
2184 --Prepaid Expense Account Source Option
2185  , p_source_31            IN VARCHAR2
2186  , p_source_31_meaning    IN VARCHAR2
2187 --Purchase Order Number
2188  , p_source_32            IN VARCHAR2
2189 --Invoice Distribution Type
2190  , p_source_33            IN VARCHAR2
2191  , p_source_33_meaning    IN VARCHAR2
2192 , x_transaction_coa_id         OUT NOCOPY NUMBER
2193 , x_accounting_coa_id          OUT NOCOPY NUMBER
2194 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2195 , x_flex_value_set_id          OUT NOCOPY NUMBER
2196 , x_value_type_code            OUT NOCOPY VARCHAR2
2197 , x_value_combination_id       OUT NOCOPY NUMBER
2198 , x_value_segment_code         OUT NOCOPY VARCHAR2
2199 )
2200 RETURN VARCHAR2
2201 IS
2202 l_component_type       VARCHAR2(80)  ;
2203 l_component_code       VARCHAR2(30)  ;
2204 l_component_type_code  VARCHAR2(1)   ;
2205 l_component_appl_id    INTEGER       ;
2206 l_amb_context_code     VARCHAR2(30)  ;
2207 l_log_module           VARCHAR2(240) ;
2208 l_output_value         VARCHAR2(30)  ;
2209 BEGIN
2210 IF g_log_enabled THEN
2211       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_13';
2212 END IF;
2213 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2214 
2215       trace
2216          (p_msg      => 'BEGIN of AcctDerRule_13'
2217          ,p_level    => C_LEVEL_PROCEDURE
2218          ,p_module   => l_log_module);
2219 
2220 END IF;
2221 
2222 l_component_type         := 'AMB_ADR';
2223 l_component_code         := 'AP_INVOICE_DIST_NAT_ACCT_ITEM';
2224 l_component_type_code    := 'S';
2225 l_component_appl_id      :=  200;
2226 l_amb_context_code       := 'DEFAULT';
2227 x_transaction_coa_id     :=  null;
2228 x_accounting_coa_id      :=  null;
2229 x_flexfield_segment_code := 'GL_ACCOUNT';
2230 x_flex_value_set_id      :=  null ;
2231 
2232 
2233  IF NVL(p_source_31,'
2234 ') =  'Y' AND 
2235 p_source_32 IS NOT NULL AND 
2236 NVL(p_source_33,'
2237 ') =  'ITEM'
2238  THEN 
2239 --
2240   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2241 
2242       trace
2243          (p_msg      => 'END of AcctDerRule_13'
2244          ,p_level    => C_LEVEL_PROCEDURE
2245          ,p_module   => l_log_module);
2246 
2247   END IF;
2248   x_value_combination_id  := TO_NUMBER(p_source_30) ;
2249   x_value_segment_code    := 'GL_ACCOUNT' ;
2250   x_value_type_code       := 'S';
2251   l_output_value          :=  null;
2252   RETURN l_output_value;
2253 
2254  ELSE 
2255     IF p_override_seg_flag = 'Y' THEN 
2256        RETURN '#$NO_OVERRIDE#$';
2257     END IF;
2258  END IF;
2259 
2260 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2261 
2262       trace
2263          (p_msg      => 'END of AcctDerRule_13(invalid)'
2264          ,p_level    => C_LEVEL_PROCEDURE
2265          ,p_module   => l_log_module);
2266 
2267 END IF;
2268 
2269 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2270 x_value_combination_id  := null;
2271 x_value_segment_code    := null;
2272 x_value_type_code       := null;
2273 l_output_value          := null;
2274 xla_accounting_err_pkg.build_message
2275                  (p_appli_s_name            => 'XLA'
2276                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2277                  ,p_token_1                 => 'COMPONENT_NAME'
2278                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2279                                                             l_component_type
2280                                                           , l_component_code
2281                                                           , l_component_type_code
2282                                                           , l_component_appl_id
2283                                                           , l_amb_context_code
2284                                                           )
2285                  ,p_token_2                 => 'OWNER'
2286                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2290                  ,p_token_3                 => 'PAD_NAME'
2287                                                         'XLA_OWNER_TYPE'
2288                                                         ,l_component_type_code
2289                                                         )
2291                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2292                  ,p_token_4                 => 'PAD_OWNER'
2293                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2294                                                         'XLA_OWNER_TYPE'
2295                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2296                                                         )
2297                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2298                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2299                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2300                  ,p_ae_header_id            => NULL
2301 );
2302 RETURN l_output_value;
2303 EXCEPTION
2304   WHEN xla_exceptions_pkg.application_exception THEN
2305       RAISE;
2306   WHEN OTHERS THEN
2307        xla_exceptions_pkg.raise_message
2308            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_13');
2309 END AcctDerRule_13;
2310 --
2311 
2312 ---------------------------------------
2313 --
2314 -- PRIVATE FUNCTION
2315 --         AcctDerRule_14
2316 --
2317 ---------------------------------------
2318 FUNCTION AcctDerRule_14 (
2319   p_application_id             IN NUMBER
2320 , p_ae_header_id               IN NUMBER
2321 , p_side                       IN VARCHAR2
2322 , p_override_seg_flag          IN VARCHAR2 
2323 --Automatic Offsets Value
2324  , p_source_15            IN VARCHAR2
2325  , p_source_15_meaning    IN VARCHAR2
2326 --Invoice Distribution Account
2327  , p_source_30            IN NUMBER
2328 , x_transaction_coa_id         OUT NOCOPY NUMBER
2329 , x_accounting_coa_id          OUT NOCOPY NUMBER
2330 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2331 , x_flex_value_set_id          OUT NOCOPY NUMBER
2332 , x_value_type_code            OUT NOCOPY VARCHAR2
2333 , x_value_combination_id       OUT NOCOPY NUMBER
2334 , x_value_segment_code         OUT NOCOPY VARCHAR2
2335 )
2336 RETURN VARCHAR2
2337 IS
2338 l_component_type       VARCHAR2(80)  ;
2339 l_component_code       VARCHAR2(30)  ;
2340 l_component_type_code  VARCHAR2(1)   ;
2341 l_component_appl_id    INTEGER       ;
2342 l_amb_context_code     VARCHAR2(30)  ;
2343 l_log_module           VARCHAR2(240) ;
2344 l_output_value         VARCHAR2(30)  ;
2345 BEGIN
2346 IF g_log_enabled THEN
2347       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_14';
2348 END IF;
2349 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2350 
2351       trace
2352          (p_msg      => 'BEGIN of AcctDerRule_14'
2353          ,p_level    => C_LEVEL_PROCEDURE
2354          ,p_module   => l_log_module);
2355 
2356 END IF;
2357 
2358 l_component_type         := 'AMB_ADR';
2359 l_component_code         := 'AP_INVOICE_DIST_NAT_ACCT_SEG';
2360 l_component_type_code    := 'S';
2361 l_component_appl_id      :=  200;
2362 l_amb_context_code       := 'DEFAULT';
2363 x_transaction_coa_id     :=  null;
2364 x_accounting_coa_id      :=  null;
2365 x_flexfield_segment_code := 'GL_ACCOUNT';
2366 x_flex_value_set_id      :=  null ;
2367 
2368 
2369  IF NVL(p_source_15,'
2370 ') =  'ACCOUNT_SEGMENT_VALUE'
2371  THEN 
2372 --
2373   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2374 
2375       trace
2376          (p_msg      => 'END of AcctDerRule_14'
2377          ,p_level    => C_LEVEL_PROCEDURE
2378          ,p_module   => l_log_module);
2379 
2380   END IF;
2381   x_value_combination_id  := TO_NUMBER(p_source_30) ;
2382   x_value_segment_code    := 'GL_ACCOUNT' ;
2383   x_value_type_code       := 'S';
2384   l_output_value          :=  null;
2385   RETURN l_output_value;
2386 
2387  ELSE 
2388     IF p_override_seg_flag = 'Y' THEN 
2389        RETURN '#$NO_OVERRIDE#$';
2390     END IF;
2391  END IF;
2392 
2393 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2394 
2395       trace
2396          (p_msg      => 'END of AcctDerRule_14(invalid)'
2397          ,p_level    => C_LEVEL_PROCEDURE
2398          ,p_module   => l_log_module);
2399 
2400 END IF;
2401 
2402 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2403 x_value_combination_id  := null;
2404 x_value_segment_code    := null;
2405 x_value_type_code       := null;
2406 l_output_value          := null;
2407 xla_accounting_err_pkg.build_message
2408                  (p_appli_s_name            => 'XLA'
2409                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2410                  ,p_token_1                 => 'COMPONENT_NAME'
2411                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2412                                                             l_component_type
2413                                                           , l_component_code
2414                                                           , l_component_type_code
2415                                                           , l_component_appl_id
2416                                                           , l_amb_context_code
2417                                                           )
2418                  ,p_token_2                 => 'OWNER'
2419                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2423                  ,p_token_3                 => 'PAD_NAME'
2420                                                         'XLA_OWNER_TYPE'
2421                                                         ,l_component_type_code
2422                                                         )
2424                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2425                  ,p_token_4                 => 'PAD_OWNER'
2426                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2427                                                         'XLA_OWNER_TYPE'
2428                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2429                                                         )
2430                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2431                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2432                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2433                  ,p_ae_header_id            => NULL
2434 );
2435 RETURN l_output_value;
2436 EXCEPTION
2437   WHEN xla_exceptions_pkg.application_exception THEN
2438       RAISE;
2439   WHEN OTHERS THEN
2440        xla_exceptions_pkg.raise_message
2441            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_14');
2442 END AcctDerRule_14;
2443 --
2444 
2445 ---------------------------------------
2446 --
2447 -- PRIVATE FUNCTION
2448 --         AcctDerRule_15
2449 --
2450 ---------------------------------------
2451 FUNCTION AcctDerRule_15 (
2452   p_application_id             IN NUMBER
2453 , p_ae_header_id               IN NUMBER
2454 , p_side                       IN VARCHAR2
2455 , p_override_seg_flag          IN VARCHAR2 
2456 --Invoice Liability Account
2457  , p_source_34            IN NUMBER
2458 , x_transaction_coa_id         OUT NOCOPY NUMBER
2459 , x_accounting_coa_id          OUT NOCOPY NUMBER
2460 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2461 , x_flex_value_set_id          OUT NOCOPY NUMBER
2462 , x_value_type_code            OUT NOCOPY VARCHAR2
2463 , x_value_combination_id       OUT NOCOPY NUMBER
2464 , x_value_segment_code         OUT NOCOPY VARCHAR2
2465 )
2466 RETURN VARCHAR2
2467 IS
2468 l_component_type       VARCHAR2(80)  ;
2469 l_component_code       VARCHAR2(30)  ;
2470 l_component_type_code  VARCHAR2(1)   ;
2471 l_component_appl_id    INTEGER       ;
2472 l_amb_context_code     VARCHAR2(30)  ;
2473 l_log_module           VARCHAR2(240) ;
2474 l_output_value         VARCHAR2(30)  ;
2475 BEGIN
2476 IF g_log_enabled THEN
2477       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_15';
2478 END IF;
2479 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2480 
2481       trace
2482          (p_msg      => 'BEGIN of AcctDerRule_15'
2483          ,p_level    => C_LEVEL_PROCEDURE
2484          ,p_module   => l_log_module);
2485 
2486 END IF;
2487 
2488 l_component_type         := 'AMB_ADR';
2489 l_component_code         := 'AP_LIAB_NAT_ACCT_SEG';
2490 l_component_type_code    := 'S';
2491 l_component_appl_id      :=  200;
2492 l_amb_context_code       := 'DEFAULT';
2493 x_transaction_coa_id     :=  null;
2494 x_accounting_coa_id      :=  null;
2495 x_flexfield_segment_code := 'GL_ACCOUNT';
2496 x_flex_value_set_id      :=  null ;
2497 
2498 
2499 --
2500   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2501 
2502       trace
2503          (p_msg      => 'END of AcctDerRule_15'
2504          ,p_level    => C_LEVEL_PROCEDURE
2505          ,p_module   => l_log_module);
2506 
2507   END IF;
2508   x_value_combination_id  := TO_NUMBER(p_source_34) ;
2509   x_value_segment_code    := 'GL_ACCOUNT' ;
2510   x_value_type_code       := 'S';
2511   l_output_value          :=  null;
2512   RETURN l_output_value;
2513 
2514 
2515 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2516 
2517       trace
2518          (p_msg      => 'END of AcctDerRule_15(invalid)'
2519          ,p_level    => C_LEVEL_PROCEDURE
2520          ,p_module   => l_log_module);
2521 
2522 END IF;
2523 
2524 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2525 x_value_combination_id  := null;
2526 x_value_segment_code    := null;
2527 x_value_type_code       := null;
2528 l_output_value          := null;
2529 xla_accounting_err_pkg.build_message
2530                  (p_appli_s_name            => 'XLA'
2531                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2532                  ,p_token_1                 => 'COMPONENT_NAME'
2533                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2534                                                             l_component_type
2535                                                           , l_component_code
2536                                                           , l_component_type_code
2537                                                           , l_component_appl_id
2538                                                           , l_amb_context_code
2539                                                           )
2540                  ,p_token_2                 => 'OWNER'
2541                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2542                                                         'XLA_OWNER_TYPE'
2543                                                         ,l_component_type_code
2547                  ,p_token_4                 => 'PAD_OWNER'
2544                                                         )
2545                  ,p_token_3                 => 'PAD_NAME'
2546                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2548                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2549                                                         'XLA_OWNER_TYPE'
2550                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2551                                                         )
2552                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2553                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2554                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2555                  ,p_ae_header_id            => NULL
2556 );
2557 RETURN l_output_value;
2558 EXCEPTION
2559   WHEN xla_exceptions_pkg.application_exception THEN
2560       RAISE;
2561   WHEN OTHERS THEN
2562        xla_exceptions_pkg.raise_message
2563            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_15');
2564 END AcctDerRule_15;
2565 --
2566 
2567 ---------------------------------------
2568 --
2569 -- PRIVATE FUNCTION
2570 --         AcctDerRule_16
2571 --
2572 ---------------------------------------
2573 FUNCTION AcctDerRule_16 (
2574   p_application_id             IN NUMBER
2575 , p_ae_header_id               IN NUMBER
2576 , p_side                       IN VARCHAR2
2577 , p_override_seg_flag          IN VARCHAR2 
2578 --Bank Cash Clearing Account
2579  , p_source_35            IN NUMBER
2580 , x_transaction_coa_id         OUT NOCOPY NUMBER
2581 , x_accounting_coa_id          OUT NOCOPY NUMBER
2582 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2583 , x_flex_value_set_id          OUT NOCOPY NUMBER
2584 , x_value_type_code            OUT NOCOPY VARCHAR2
2585 , x_value_combination_id       OUT NOCOPY NUMBER
2586 , x_value_segment_code         OUT NOCOPY VARCHAR2
2587 )
2588 RETURN VARCHAR2
2589 IS
2590 l_component_type       VARCHAR2(80)  ;
2591 l_component_code       VARCHAR2(30)  ;
2592 l_component_type_code  VARCHAR2(1)   ;
2593 l_component_appl_id    INTEGER       ;
2594 l_amb_context_code     VARCHAR2(30)  ;
2595 l_log_module           VARCHAR2(240) ;
2596 l_output_value         VARCHAR2(30)  ;
2597 BEGIN
2598 IF g_log_enabled THEN
2599       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_16';
2600 END IF;
2601 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2602 
2603       trace
2604          (p_msg      => 'BEGIN of AcctDerRule_16'
2605          ,p_level    => C_LEVEL_PROCEDURE
2606          ,p_module   => l_log_module);
2607 
2608 END IF;
2609 
2610 l_component_type         := 'AMB_ADR';
2611 l_component_code         := 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL';
2612 l_component_type_code    := 'S';
2613 l_component_appl_id      :=  200;
2614 l_amb_context_code       := 'DEFAULT';
2615 x_transaction_coa_id     :=  null;
2616 x_accounting_coa_id      :=  null;
2617 x_flexfield_segment_code := 'GL_ACCOUNT';
2618 x_flex_value_set_id      :=  null ;
2619 
2620 
2621 --
2622   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2623 
2624       trace
2625          (p_msg      => 'END of AcctDerRule_16'
2626          ,p_level    => C_LEVEL_PROCEDURE
2627          ,p_module   => l_log_module);
2628 
2629   END IF;
2630   x_value_combination_id  := TO_NUMBER(p_source_35) ;
2631   x_value_segment_code    := 'GL_ACCOUNT' ;
2632   x_value_type_code       := 'S';
2633   l_output_value          :=  null;
2634   RETURN l_output_value;
2635 
2636 
2637 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2638 
2639       trace
2640          (p_msg      => 'END of AcctDerRule_16(invalid)'
2641          ,p_level    => C_LEVEL_PROCEDURE
2642          ,p_module   => l_log_module);
2643 
2644 END IF;
2645 
2646 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2647 x_value_combination_id  := null;
2648 x_value_segment_code    := null;
2649 x_value_type_code       := null;
2650 l_output_value          := null;
2651 xla_accounting_err_pkg.build_message
2652                  (p_appli_s_name            => 'XLA'
2653                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2654                  ,p_token_1                 => 'COMPONENT_NAME'
2655                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2656                                                             l_component_type
2657                                                           , l_component_code
2658                                                           , l_component_type_code
2659                                                           , l_component_appl_id
2660                                                           , l_amb_context_code
2661                                                           )
2662                  ,p_token_2                 => 'OWNER'
2663                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2664                                                         'XLA_OWNER_TYPE'
2665                                                         ,l_component_type_code
2666                                                         )
2667                  ,p_token_3                 => 'PAD_NAME'
2671                                                         'XLA_OWNER_TYPE'
2668                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2669                  ,p_token_4                 => 'PAD_OWNER'
2670                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2672                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2673                                                         )
2674                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2675                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2676                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2677                  ,p_ae_header_id            => NULL
2678 );
2679 RETURN l_output_value;
2680 EXCEPTION
2681   WHEN xla_exceptions_pkg.application_exception THEN
2682       RAISE;
2683   WHEN OTHERS THEN
2684        xla_exceptions_pkg.raise_message
2685            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_16');
2686 END AcctDerRule_16;
2687 --
2688 
2689 ---------------------------------------
2690 --
2691 -- PRIVATE FUNCTION
2692 --         AcctDerRule_17
2693 --
2694 ---------------------------------------
2695 FUNCTION AcctDerRule_17 (
2696   p_application_id             IN NUMBER
2697 , p_ae_header_id               IN NUMBER
2698 , p_side                       IN VARCHAR2
2699 , p_override_seg_flag          IN VARCHAR2 
2700 --Automatic Offsets Value
2701  , p_source_15            IN VARCHAR2
2702  , p_source_15_meaning    IN VARCHAR2
2703 --Internal Realized Gain Account
2704  , p_source_36            IN NUMBER
2705 --Bank Gain Account
2706  , p_source_37            IN NUMBER
2707 , x_transaction_coa_id         OUT NOCOPY NUMBER
2708 , x_accounting_coa_id          OUT NOCOPY NUMBER
2709 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2710 , x_flex_value_set_id          OUT NOCOPY NUMBER
2711 , x_value_type_code            OUT NOCOPY VARCHAR2
2712 , x_value_combination_id       OUT NOCOPY NUMBER
2713 , x_value_segment_code         OUT NOCOPY VARCHAR2
2714 )
2715 RETURN VARCHAR2
2716 IS
2717 l_component_type       VARCHAR2(80)  ;
2718 l_component_code       VARCHAR2(30)  ;
2719 l_component_type_code  VARCHAR2(1)   ;
2720 l_component_appl_id    INTEGER       ;
2721 l_amb_context_code     VARCHAR2(30)  ;
2722 l_log_module           VARCHAR2(240) ;
2723 l_output_value         VARCHAR2(30)  ;
2724 BEGIN
2725 IF g_log_enabled THEN
2726       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_17';
2727 END IF;
2728 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2729 
2730       trace
2731          (p_msg      => 'BEGIN of AcctDerRule_17'
2732          ,p_level    => C_LEVEL_PROCEDURE
2733          ,p_module   => l_log_module);
2734 
2735 END IF;
2736 
2737 l_component_type         := 'AMB_ADR';
2738 l_component_code         := 'AP_REAL_GAIN_NAT_ACCT_SEG';
2739 l_component_type_code    := 'S';
2740 l_component_appl_id      :=  200;
2741 l_amb_context_code       := 'DEFAULT';
2742 x_transaction_coa_id     :=  null;
2743 x_accounting_coa_id      :=  null;
2744 x_flexfield_segment_code := 'GL_ACCOUNT';
2745 x_flex_value_set_id      :=  null ;
2746 
2747 
2748  IF NVL(p_source_15,'
2749 ') =  'ACCOUNT_SEGMENT_VALUE'
2750  THEN 
2751 --
2752   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2753 
2754       trace
2755          (p_msg      => 'END of AcctDerRule_17'
2756          ,p_level    => C_LEVEL_PROCEDURE
2757          ,p_module   => l_log_module);
2758 
2759   END IF;
2760   x_value_combination_id  := TO_NUMBER(p_source_36) ;
2761   x_value_segment_code    := 'GL_ACCOUNT' ;
2762   x_value_type_code       := 'S';
2763   l_output_value          :=  null;
2764   RETURN l_output_value;
2765 
2766  ELSIF NVL(p_source_15,'
2767 ') =  'ACCOUNT_SEGMENT_VALUE'
2768  THEN 
2769 --
2770   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2771 
2772       trace
2773          (p_msg      => 'END of AcctDerRule_17'
2774          ,p_level    => C_LEVEL_PROCEDURE
2775          ,p_module   => l_log_module);
2776 
2777   END IF;
2778   x_value_combination_id  := TO_NUMBER(p_source_37) ;
2779   x_value_segment_code    := 'GL_ACCOUNT' ;
2780   x_value_type_code       := 'S';
2781   l_output_value          :=  null;
2782   RETURN l_output_value;
2783 
2784  ELSE 
2785     IF p_override_seg_flag = 'Y' THEN 
2786        RETURN '#$NO_OVERRIDE#$';
2787     END IF;
2788  END IF;
2789 
2790 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2791 
2792       trace
2793          (p_msg      => 'END of AcctDerRule_17(invalid)'
2794          ,p_level    => C_LEVEL_PROCEDURE
2795          ,p_module   => l_log_module);
2796 
2797 END IF;
2798 
2799 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2800 x_value_combination_id  := null;
2801 x_value_segment_code    := null;
2802 x_value_type_code       := null;
2803 l_output_value          := null;
2804 xla_accounting_err_pkg.build_message
2805                  (p_appli_s_name            => 'XLA'
2806                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2807                  ,p_token_1                 => 'COMPONENT_NAME'
2811                                                           , l_component_type_code
2808                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2809                                                             l_component_type
2810                                                           , l_component_code
2812                                                           , l_component_appl_id
2813                                                           , l_amb_context_code
2814                                                           )
2815                  ,p_token_2                 => 'OWNER'
2816                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2817                                                         'XLA_OWNER_TYPE'
2818                                                         ,l_component_type_code
2819                                                         )
2820                  ,p_token_3                 => 'PAD_NAME'
2821                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2822                  ,p_token_4                 => 'PAD_OWNER'
2823                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2824                                                         'XLA_OWNER_TYPE'
2825                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2826                                                         )
2827                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2828                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2829                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2830                  ,p_ae_header_id            => NULL
2831 );
2832 RETURN l_output_value;
2833 EXCEPTION
2834   WHEN xla_exceptions_pkg.application_exception THEN
2835       RAISE;
2836   WHEN OTHERS THEN
2837        xla_exceptions_pkg.raise_message
2838            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_17');
2839 END AcctDerRule_17;
2840 --
2841 
2842 ---------------------------------------
2843 --
2844 -- PRIVATE FUNCTION
2845 --         AcctDerRule_18
2846 --
2847 ---------------------------------------
2848 FUNCTION AcctDerRule_18 (
2849   p_application_id             IN NUMBER
2850 , p_ae_header_id               IN NUMBER
2851 , p_side                       IN VARCHAR2
2852 , p_override_seg_flag          IN VARCHAR2 
2853 --Automatic Offsets Value
2854  , p_source_15            IN VARCHAR2
2855  , p_source_15_meaning    IN VARCHAR2
2856 --Internal Realized Loss Account
2857  , p_source_38            IN NUMBER
2858 --Bank Loss Account
2859  , p_source_39            IN NUMBER
2860 , x_transaction_coa_id         OUT NOCOPY NUMBER
2861 , x_accounting_coa_id          OUT NOCOPY NUMBER
2862 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
2863 , x_flex_value_set_id          OUT NOCOPY NUMBER
2864 , x_value_type_code            OUT NOCOPY VARCHAR2
2865 , x_value_combination_id       OUT NOCOPY NUMBER
2866 , x_value_segment_code         OUT NOCOPY VARCHAR2
2867 )
2868 RETURN VARCHAR2
2869 IS
2870 l_component_type       VARCHAR2(80)  ;
2871 l_component_code       VARCHAR2(30)  ;
2872 l_component_type_code  VARCHAR2(1)   ;
2873 l_component_appl_id    INTEGER       ;
2874 l_amb_context_code     VARCHAR2(30)  ;
2875 l_log_module           VARCHAR2(240) ;
2876 l_output_value         VARCHAR2(30)  ;
2877 BEGIN
2878 IF g_log_enabled THEN
2879       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_18';
2880 END IF;
2881 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2882 
2883       trace
2884          (p_msg      => 'BEGIN of AcctDerRule_18'
2885          ,p_level    => C_LEVEL_PROCEDURE
2886          ,p_module   => l_log_module);
2887 
2888 END IF;
2889 
2890 l_component_type         := 'AMB_ADR';
2891 l_component_code         := 'AP_REAL_LOSS_NAT_ACCT_SEG';
2892 l_component_type_code    := 'S';
2893 l_component_appl_id      :=  200;
2894 l_amb_context_code       := 'DEFAULT';
2895 x_transaction_coa_id     :=  null;
2896 x_accounting_coa_id      :=  null;
2897 x_flexfield_segment_code := 'GL_ACCOUNT';
2898 x_flex_value_set_id      :=  null ;
2899 
2900 
2901  IF NVL(p_source_15,'
2902 ') =  'ACCOUNT_SEGMENT_VALUE'
2903  THEN 
2904 --
2905   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2906 
2907       trace
2908          (p_msg      => 'END of AcctDerRule_18'
2909          ,p_level    => C_LEVEL_PROCEDURE
2910          ,p_module   => l_log_module);
2911 
2912   END IF;
2913   x_value_combination_id  := TO_NUMBER(p_source_38) ;
2914   x_value_segment_code    := 'GL_ACCOUNT' ;
2915   x_value_type_code       := 'S';
2916   l_output_value          :=  null;
2917   RETURN l_output_value;
2918 
2919  ELSIF NVL(p_source_15,'
2920 ') =  'ACCOUNT_SEGMENT_VALUE'
2921  THEN 
2922 --
2923   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2924 
2925       trace
2926          (p_msg      => 'END of AcctDerRule_18'
2927          ,p_level    => C_LEVEL_PROCEDURE
2928          ,p_module   => l_log_module);
2929 
2930   END IF;
2931   x_value_combination_id  := TO_NUMBER(p_source_39) ;
2932   x_value_segment_code    := 'GL_ACCOUNT' ;
2933   x_value_type_code       := 'S';
2934   l_output_value          :=  null;
2935   RETURN l_output_value;
2936 
2937  ELSE 
2938     IF p_override_seg_flag = 'Y' THEN 
2939        RETURN '#$NO_OVERRIDE#$';
2943 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2940     END IF;
2941  END IF;
2942 
2944 
2945       trace
2946          (p_msg      => 'END of AcctDerRule_18(invalid)'
2947          ,p_level    => C_LEVEL_PROCEDURE
2948          ,p_module   => l_log_module);
2949 
2950 END IF;
2951 
2952 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2953 x_value_combination_id  := null;
2954 x_value_segment_code    := null;
2955 x_value_type_code       := null;
2956 l_output_value          := null;
2957 xla_accounting_err_pkg.build_message
2958                  (p_appli_s_name            => 'XLA'
2959                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
2960                  ,p_token_1                 => 'COMPONENT_NAME'
2961                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
2962                                                             l_component_type
2963                                                           , l_component_code
2964                                                           , l_component_type_code
2965                                                           , l_component_appl_id
2966                                                           , l_amb_context_code
2967                                                           )
2968                  ,p_token_2                 => 'OWNER'
2969                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
2970                                                         'XLA_OWNER_TYPE'
2971                                                         ,l_component_type_code
2972                                                         )
2973                  ,p_token_3                 => 'PAD_NAME'
2974                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2975                  ,p_token_4                 => 'PAD_OWNER'
2976                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
2977                                                         'XLA_OWNER_TYPE'
2978                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2979                                                         )
2980                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2981                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2982                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2983                  ,p_ae_header_id            => NULL
2984 );
2985 RETURN l_output_value;
2986 EXCEPTION
2987   WHEN xla_exceptions_pkg.application_exception THEN
2988       RAISE;
2989   WHEN OTHERS THEN
2990        xla_exceptions_pkg.raise_message
2991            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_18');
2992 END AcctDerRule_18;
2993 --
2994 
2995 ---------------------------------------
2996 --
2997 -- PRIVATE FUNCTION
2998 --         AcctDerRule_19
2999 --
3000 ---------------------------------------
3001 FUNCTION AcctDerRule_19 (
3002   p_application_id             IN NUMBER
3003 , p_ae_header_id               IN NUMBER
3004 , p_side                       IN VARCHAR2
3005 , p_override_seg_flag          IN VARCHAR2 
3006 --Retainage Account
3007  , p_source_40            IN NUMBER
3008 , x_transaction_coa_id         OUT NOCOPY NUMBER
3009 , x_accounting_coa_id          OUT NOCOPY NUMBER
3010 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
3011 , x_flex_value_set_id          OUT NOCOPY NUMBER
3012 , x_value_type_code            OUT NOCOPY VARCHAR2
3013 , x_value_combination_id       OUT NOCOPY NUMBER
3014 , x_value_segment_code         OUT NOCOPY VARCHAR2
3015 )
3016 RETURN VARCHAR2
3017 IS
3018 l_component_type       VARCHAR2(80)  ;
3019 l_component_code       VARCHAR2(30)  ;
3020 l_component_type_code  VARCHAR2(1)   ;
3021 l_component_appl_id    INTEGER       ;
3022 l_amb_context_code     VARCHAR2(30)  ;
3023 l_log_module           VARCHAR2(240) ;
3024 l_output_value         VARCHAR2(30)  ;
3025 BEGIN
3026 IF g_log_enabled THEN
3027       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_19';
3028 END IF;
3029 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3030 
3031       trace
3032          (p_msg      => 'BEGIN of AcctDerRule_19'
3033          ,p_level    => C_LEVEL_PROCEDURE
3034          ,p_module   => l_log_module);
3035 
3036 END IF;
3037 
3038 l_component_type         := 'AMB_ADR';
3039 l_component_code         := 'AP_RETAIN_NAT_ACCT_SEG';
3040 l_component_type_code    := 'S';
3041 l_component_appl_id      :=  200;
3042 l_amb_context_code       := 'DEFAULT';
3043 x_transaction_coa_id     :=  null;
3044 x_accounting_coa_id      :=  null;
3045 x_flexfield_segment_code := 'GL_ACCOUNT';
3046 x_flex_value_set_id      :=  null ;
3047 
3048 
3049 --
3050   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3051 
3052       trace
3053          (p_msg      => 'END of AcctDerRule_19'
3054          ,p_level    => C_LEVEL_PROCEDURE
3055          ,p_module   => l_log_module);
3056 
3057   END IF;
3058   x_value_combination_id  := TO_NUMBER(p_source_40) ;
3059   x_value_segment_code    := 'GL_ACCOUNT' ;
3060   x_value_type_code       := 'S';
3061   l_output_value          :=  null;
3062   RETURN l_output_value;
3063 
3064 
3065 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3066 
3067       trace
3071 
3068          (p_msg      => 'END of AcctDerRule_19(invalid)'
3069          ,p_level    => C_LEVEL_PROCEDURE
3070          ,p_module   => l_log_module);
3072 END IF;
3073 
3074 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3075 x_value_combination_id  := null;
3076 x_value_segment_code    := null;
3077 x_value_type_code       := null;
3078 l_output_value          := null;
3079 xla_accounting_err_pkg.build_message
3080                  (p_appli_s_name            => 'XLA'
3081                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3082                  ,p_token_1                 => 'COMPONENT_NAME'
3083                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3084                                                             l_component_type
3085                                                           , l_component_code
3086                                                           , l_component_type_code
3087                                                           , l_component_appl_id
3088                                                           , l_amb_context_code
3089                                                           )
3090                  ,p_token_2                 => 'OWNER'
3091                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3092                                                         'XLA_OWNER_TYPE'
3093                                                         ,l_component_type_code
3094                                                         )
3095                  ,p_token_3                 => 'PAD_NAME'
3096                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3097                  ,p_token_4                 => 'PAD_OWNER'
3098                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3099                                                         'XLA_OWNER_TYPE'
3100                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3101                                                         )
3102                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3103                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3104                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3105                  ,p_ae_header_id            => NULL
3106 );
3107 RETURN l_output_value;
3108 EXCEPTION
3109   WHEN xla_exceptions_pkg.application_exception THEN
3110       RAISE;
3111   WHEN OTHERS THEN
3112        xla_exceptions_pkg.raise_message
3113            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_19');
3114 END AcctDerRule_19;
3115 --
3116 
3117 ---------------------------------------
3118 --
3119 -- PRIVATE FUNCTION
3120 --         AcctDerRule_20
3121 --
3122 ---------------------------------------
3123 FUNCTION AcctDerRule_20 (
3124   p_application_id             IN NUMBER
3125 , p_ae_header_id               IN NUMBER
3126 , p_side                       IN VARCHAR2
3127 , p_override_seg_flag          IN VARCHAR2 
3128 --Payables Options Tax Difference Account
3129  , p_source_41            IN NUMBER
3130 , x_transaction_coa_id         OUT NOCOPY NUMBER
3131 , x_accounting_coa_id          OUT NOCOPY NUMBER
3132 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
3133 , x_flex_value_set_id          OUT NOCOPY NUMBER
3134 , x_value_type_code            OUT NOCOPY VARCHAR2
3135 , x_value_combination_id       OUT NOCOPY NUMBER
3136 , x_value_segment_code         OUT NOCOPY VARCHAR2
3137 )
3138 RETURN VARCHAR2
3139 IS
3140 l_component_type       VARCHAR2(80)  ;
3141 l_component_code       VARCHAR2(30)  ;
3142 l_component_type_code  VARCHAR2(1)   ;
3143 l_component_appl_id    INTEGER       ;
3144 l_amb_context_code     VARCHAR2(30)  ;
3145 l_log_module           VARCHAR2(240) ;
3146 l_output_value         VARCHAR2(30)  ;
3147 BEGIN
3148 IF g_log_enabled THEN
3149       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_20';
3150 END IF;
3151 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3152 
3153       trace
3154          (p_msg      => 'BEGIN of AcctDerRule_20'
3155          ,p_level    => C_LEVEL_PROCEDURE
3156          ,p_module   => l_log_module);
3157 
3158 END IF;
3159 
3160 l_component_type         := 'AMB_ADR';
3161 l_component_code         := 'AP_TAX_DIFFERENCE_NAT_ACCT';
3162 l_component_type_code    := 'S';
3163 l_component_appl_id      :=  200;
3164 l_amb_context_code       := 'DEFAULT';
3165 x_transaction_coa_id     :=  null;
3166 x_accounting_coa_id      :=  null;
3167 x_flexfield_segment_code := 'GL_ACCOUNT';
3168 x_flex_value_set_id      :=  null ;
3169 
3170 
3171 --
3172   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3173 
3174       trace
3175          (p_msg      => 'END of AcctDerRule_20'
3176          ,p_level    => C_LEVEL_PROCEDURE
3177          ,p_module   => l_log_module);
3178 
3179   END IF;
3180   x_value_combination_id  := TO_NUMBER(p_source_41) ;
3181   x_value_segment_code    := 'GL_ACCOUNT' ;
3182   x_value_type_code       := 'S';
3183   l_output_value          :=  null;
3184   RETURN l_output_value;
3185 
3186 
3187 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3188 
3189       trace
3193 
3190          (p_msg      => 'END of AcctDerRule_20(invalid)'
3191          ,p_level    => C_LEVEL_PROCEDURE
3192          ,p_module   => l_log_module);
3194 END IF;
3195 
3196 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3197 x_value_combination_id  := null;
3198 x_value_segment_code    := null;
3199 x_value_type_code       := null;
3200 l_output_value          := null;
3201 xla_accounting_err_pkg.build_message
3202                  (p_appli_s_name            => 'XLA'
3203                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3204                  ,p_token_1                 => 'COMPONENT_NAME'
3205                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3206                                                             l_component_type
3207                                                           , l_component_code
3208                                                           , l_component_type_code
3209                                                           , l_component_appl_id
3210                                                           , l_amb_context_code
3211                                                           )
3212                  ,p_token_2                 => 'OWNER'
3213                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3214                                                         'XLA_OWNER_TYPE'
3215                                                         ,l_component_type_code
3216                                                         )
3217                  ,p_token_3                 => 'PAD_NAME'
3218                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3219                  ,p_token_4                 => 'PAD_OWNER'
3220                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3221                                                         'XLA_OWNER_TYPE'
3222                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3223                                                         )
3224                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3225                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3226                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3227                  ,p_ae_header_id            => NULL
3228 );
3229 RETURN l_output_value;
3230 EXCEPTION
3231   WHEN xla_exceptions_pkg.application_exception THEN
3232       RAISE;
3233   WHEN OTHERS THEN
3234        xla_exceptions_pkg.raise_message
3235            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_20');
3236 END AcctDerRule_20;
3237 --
3238 
3239 ---------------------------------------
3240 --
3241 -- PRIVATE FUNCTION
3242 --         AcctDerRule_21
3243 --
3244 ---------------------------------------
3245 FUNCTION AcctDerRule_21 (
3246   p_application_id             IN NUMBER
3247 , p_ae_header_id               IN NUMBER
3248 , p_side                       IN VARCHAR2
3249 , p_override_seg_flag          IN VARCHAR2 
3250 --Automatic Offsets Value
3251  , p_source_15            IN VARCHAR2
3252  , p_source_15_meaning    IN VARCHAR2
3253 --Discount Distribution Method
3254  , p_source_19            IN VARCHAR2
3255  , p_source_19_meaning    IN VARCHAR2
3256 --Invoice Distribution Account
3257  , p_source_30            IN NUMBER
3258 , x_transaction_coa_id         OUT NOCOPY NUMBER
3259 , x_accounting_coa_id          OUT NOCOPY NUMBER
3260 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
3261 , x_flex_value_set_id          OUT NOCOPY NUMBER
3262 , x_value_type_code            OUT NOCOPY VARCHAR2
3263 , x_value_combination_id       OUT NOCOPY NUMBER
3264 , x_value_segment_code         OUT NOCOPY VARCHAR2
3265 )
3266 RETURN VARCHAR2
3267 IS
3268 l_component_type       VARCHAR2(80)  ;
3269 l_component_code       VARCHAR2(30)  ;
3270 l_component_type_code  VARCHAR2(1)   ;
3271 l_component_appl_id    INTEGER       ;
3272 l_amb_context_code     VARCHAR2(30)  ;
3273 l_log_module           VARCHAR2(240) ;
3274 l_output_value         VARCHAR2(30)  ;
3275 BEGIN
3276 IF g_log_enabled THEN
3277       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_21';
3278 END IF;
3279 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3280 
3281       trace
3282          (p_msg      => 'BEGIN of AcctDerRule_21'
3283          ,p_level    => C_LEVEL_PROCEDURE
3284          ,p_module   => l_log_module);
3285 
3286 END IF;
3287 
3288 l_component_type         := 'AMB_ADR';
3289 l_component_code         := 'AP_DISCOUNT_BAL_ACCT_SEG';
3290 l_component_type_code    := 'S';
3291 l_component_appl_id      :=  200;
3292 l_amb_context_code       := 'DEFAULT';
3293 x_transaction_coa_id     :=  null;
3294 x_accounting_coa_id      :=  null;
3295 x_flexfield_segment_code := 'GL_BALANCING';
3296 x_flex_value_set_id      :=  null ;
3297 
3298 
3299  IF NVL(p_source_19,'
3300 ') =  'SYSTEM' AND 
3301 NVL(p_source_15,'
3302 ') =  'BALANCING_SEGMENT'
3303  THEN 
3304 --
3305   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3306 
3307       trace
3308          (p_msg      => 'END of AcctDerRule_21'
3309          ,p_level    => C_LEVEL_PROCEDURE
3310          ,p_module   => l_log_module);
3311 
3312   END IF;
3313   x_value_combination_id  := TO_NUMBER(p_source_30) ;
3314   x_value_segment_code    := 'GL_BALANCING' ;
3318 
3315   x_value_type_code       := 'S';
3316   l_output_value          :=  null;
3317   RETURN l_output_value;
3319  ELSE 
3320     IF p_override_seg_flag = 'Y' THEN 
3321        RETURN '#$NO_OVERRIDE#$';
3322     END IF;
3323  END IF;
3324 
3325 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3326 
3327       trace
3328          (p_msg      => 'END of AcctDerRule_21(invalid)'
3329          ,p_level    => C_LEVEL_PROCEDURE
3330          ,p_module   => l_log_module);
3331 
3332 END IF;
3333 
3334 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3335 x_value_combination_id  := null;
3336 x_value_segment_code    := null;
3337 x_value_type_code       := null;
3338 l_output_value          := null;
3339 xla_accounting_err_pkg.build_message
3340                  (p_appli_s_name            => 'XLA'
3341                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3342                  ,p_token_1                 => 'COMPONENT_NAME'
3343                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3344                                                             l_component_type
3345                                                           , l_component_code
3346                                                           , l_component_type_code
3347                                                           , l_component_appl_id
3348                                                           , l_amb_context_code
3349                                                           )
3350                  ,p_token_2                 => 'OWNER'
3351                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3352                                                         'XLA_OWNER_TYPE'
3353                                                         ,l_component_type_code
3354                                                         )
3355                  ,p_token_3                 => 'PAD_NAME'
3356                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3357                  ,p_token_4                 => 'PAD_OWNER'
3358                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3359                                                         'XLA_OWNER_TYPE'
3360                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3361                                                         )
3362                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3363                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3364                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3365                  ,p_ae_header_id            => NULL
3366 );
3367 RETURN l_output_value;
3368 EXCEPTION
3369   WHEN xla_exceptions_pkg.application_exception THEN
3370       RAISE;
3371   WHEN OTHERS THEN
3372        xla_exceptions_pkg.raise_message
3373            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_21');
3374 END AcctDerRule_21;
3375 --
3376 
3377 ---------------------------------------
3378 --
3379 -- PRIVATE FUNCTION
3380 --         AcctDerRule_22
3381 --
3382 ---------------------------------------
3383 FUNCTION AcctDerRule_22 (
3384   p_application_id             IN NUMBER
3385 , p_ae_header_id               IN NUMBER
3386 , p_side                       IN VARCHAR2
3387 , p_override_seg_flag          IN VARCHAR2 
3388 --Automatic Offsets Value
3389  , p_source_15            IN VARCHAR2
3390  , p_source_15_meaning    IN VARCHAR2
3391 --Invoice Distribution Account
3392  , p_source_30            IN NUMBER
3393 , x_transaction_coa_id         OUT NOCOPY NUMBER
3394 , x_accounting_coa_id          OUT NOCOPY NUMBER
3395 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
3396 , x_flex_value_set_id          OUT NOCOPY NUMBER
3397 , x_value_type_code            OUT NOCOPY VARCHAR2
3398 , x_value_combination_id       OUT NOCOPY NUMBER
3399 , x_value_segment_code         OUT NOCOPY VARCHAR2
3400 )
3401 RETURN VARCHAR2
3402 IS
3403 l_component_type       VARCHAR2(80)  ;
3404 l_component_code       VARCHAR2(30)  ;
3405 l_component_type_code  VARCHAR2(1)   ;
3406 l_component_appl_id    INTEGER       ;
3407 l_amb_context_code     VARCHAR2(30)  ;
3408 l_log_module           VARCHAR2(240) ;
3409 l_output_value         VARCHAR2(30)  ;
3410 BEGIN
3411 IF g_log_enabled THEN
3412       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_22';
3413 END IF;
3414 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3415 
3416       trace
3417          (p_msg      => 'BEGIN of AcctDerRule_22'
3418          ,p_level    => C_LEVEL_PROCEDURE
3419          ,p_module   => l_log_module);
3420 
3421 END IF;
3422 
3423 l_component_type         := 'AMB_ADR';
3424 l_component_code         := 'AP_INV_DIST_BAL_SEG';
3425 l_component_type_code    := 'S';
3426 l_component_appl_id      :=  200;
3427 l_amb_context_code       := 'DEFAULT';
3428 x_transaction_coa_id     :=  null;
3429 x_accounting_coa_id      :=  null;
3430 x_flexfield_segment_code := 'GL_BALANCING';
3431 x_flex_value_set_id      :=  null ;
3432 
3433 
3434  IF NVL(p_source_15,'
3435 ') =  'BALANCING_SEGMENT'
3436  THEN 
3437 --
3438   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3439 
3440       trace
3441          (p_msg      => 'END of AcctDerRule_22'
3442          ,p_level    => C_LEVEL_PROCEDURE
3446   x_value_combination_id  := TO_NUMBER(p_source_30) ;
3443          ,p_module   => l_log_module);
3444 
3445   END IF;
3447   x_value_segment_code    := 'GL_BALANCING' ;
3448   x_value_type_code       := 'S';
3449   l_output_value          :=  null;
3450   RETURN l_output_value;
3451 
3452  ELSE 
3453     IF p_override_seg_flag = 'Y' THEN 
3454        RETURN '#$NO_OVERRIDE#$';
3455     END IF;
3456  END IF;
3457 
3458 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3459 
3460       trace
3461          (p_msg      => 'END of AcctDerRule_22(invalid)'
3462          ,p_level    => C_LEVEL_PROCEDURE
3463          ,p_module   => l_log_module);
3464 
3465 END IF;
3466 
3467 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3468 x_value_combination_id  := null;
3469 x_value_segment_code    := null;
3470 x_value_type_code       := null;
3471 l_output_value          := null;
3472 xla_accounting_err_pkg.build_message
3473                  (p_appli_s_name            => 'XLA'
3474                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3475                  ,p_token_1                 => 'COMPONENT_NAME'
3476                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3477                                                             l_component_type
3478                                                           , l_component_code
3479                                                           , l_component_type_code
3480                                                           , l_component_appl_id
3481                                                           , l_amb_context_code
3482                                                           )
3483                  ,p_token_2                 => 'OWNER'
3484                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3485                                                         'XLA_OWNER_TYPE'
3486                                                         ,l_component_type_code
3487                                                         )
3488                  ,p_token_3                 => 'PAD_NAME'
3489                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3490                  ,p_token_4                 => 'PAD_OWNER'
3491                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3492                                                         'XLA_OWNER_TYPE'
3493                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3494                                                         )
3495                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3496                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3497                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3498                  ,p_ae_header_id            => NULL
3499 );
3500 RETURN l_output_value;
3501 EXCEPTION
3502   WHEN xla_exceptions_pkg.application_exception THEN
3503       RAISE;
3504   WHEN OTHERS THEN
3505        xla_exceptions_pkg.raise_message
3506            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_22');
3507 END AcctDerRule_22;
3508 --
3509 
3510 ---------------------------------------
3511 --
3512 -- PRIVATE FUNCTION
3513 --         AcctDerRule_23
3514 --
3515 ---------------------------------------
3516 FUNCTION AcctDerRule_23 (
3517   p_application_id             IN NUMBER
3518 , p_ae_header_id               IN NUMBER
3519 , p_side                       IN VARCHAR2
3520 , p_override_seg_flag          IN VARCHAR2 
3521 --Automatic Offsets Value
3522  , p_source_15            IN VARCHAR2
3523  , p_source_15_meaning    IN VARCHAR2
3524 --Destination Type of the PO Distribution
3525  , p_source_22            IN VARCHAR2
3526  , p_source_22_meaning    IN VARCHAR2
3527 --Invoice Distribution Account
3528  , p_source_30            IN NUMBER
3529 , x_transaction_coa_id         OUT NOCOPY NUMBER
3530 , x_accounting_coa_id          OUT NOCOPY NUMBER
3531 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
3532 , x_flex_value_set_id          OUT NOCOPY NUMBER
3533 , x_value_type_code            OUT NOCOPY VARCHAR2
3534 , x_value_combination_id       OUT NOCOPY NUMBER
3535 , x_value_segment_code         OUT NOCOPY VARCHAR2
3536 )
3537 RETURN VARCHAR2
3538 IS
3539 l_component_type       VARCHAR2(80)  ;
3540 l_component_code       VARCHAR2(30)  ;
3541 l_component_type_code  VARCHAR2(1)   ;
3542 l_component_appl_id    INTEGER       ;
3543 l_amb_context_code     VARCHAR2(30)  ;
3544 l_log_module           VARCHAR2(240) ;
3545 l_output_value         VARCHAR2(30)  ;
3546 BEGIN
3547 IF g_log_enabled THEN
3548       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_23';
3549 END IF;
3550 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3551 
3552       trace
3553          (p_msg      => 'BEGIN of AcctDerRule_23'
3554          ,p_level    => C_LEVEL_PROCEDURE
3555          ,p_module   => l_log_module);
3556 
3557 END IF;
3558 
3559 l_component_type         := 'AMB_ADR';
3560 l_component_code         := 'AP_RELATED_DIST_BAL_SEG';
3561 l_component_type_code    := 'S';
3562 l_component_appl_id      :=  200;
3563 l_amb_context_code       := 'DEFAULT';
3564 x_transaction_coa_id     :=  null;
3565 x_accounting_coa_id      :=  null;
3566 x_flexfield_segment_code := 'GL_BALANCING';
3570  IF NVL(p_source_15,'
3567 x_flex_value_set_id      :=  null ;
3568 
3569 
3571 ') =  'BALANCING_SEGMENT' AND 
3572 NVL(p_source_22,'
3573 ') =  'INVENTORY'
3574  THEN 
3575 --
3576   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3577 
3578       trace
3579          (p_msg      => 'END of AcctDerRule_23'
3580          ,p_level    => C_LEVEL_PROCEDURE
3581          ,p_module   => l_log_module);
3582 
3583   END IF;
3584   x_value_combination_id  := TO_NUMBER(p_source_30) ;
3585   x_value_segment_code    := 'GL_BALANCING' ;
3586   x_value_type_code       := 'S';
3587   l_output_value          :=  null;
3588   RETURN l_output_value;
3589 
3590  ELSE 
3591     IF p_override_seg_flag = 'Y' THEN 
3592        RETURN '#$NO_OVERRIDE#$';
3593     END IF;
3594  END IF;
3595 
3596 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3597 
3598       trace
3599          (p_msg      => 'END of AcctDerRule_23(invalid)'
3600          ,p_level    => C_LEVEL_PROCEDURE
3601          ,p_module   => l_log_module);
3602 
3603 END IF;
3604 
3605 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3606 x_value_combination_id  := null;
3607 x_value_segment_code    := null;
3608 x_value_type_code       := null;
3609 l_output_value          := null;
3610 xla_accounting_err_pkg.build_message
3611                  (p_appli_s_name            => 'XLA'
3612                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3613                  ,p_token_1                 => 'COMPONENT_NAME'
3614                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3615                                                             l_component_type
3616                                                           , l_component_code
3617                                                           , l_component_type_code
3618                                                           , l_component_appl_id
3619                                                           , l_amb_context_code
3620                                                           )
3621                  ,p_token_2                 => 'OWNER'
3622                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3623                                                         'XLA_OWNER_TYPE'
3624                                                         ,l_component_type_code
3625                                                         )
3626                  ,p_token_3                 => 'PAD_NAME'
3627                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3628                  ,p_token_4                 => 'PAD_OWNER'
3629                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3630                                                         'XLA_OWNER_TYPE'
3631                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3632                                                         )
3633                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3634                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3635                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3636                  ,p_ae_header_id            => NULL
3637 );
3638 RETURN l_output_value;
3639 EXCEPTION
3640   WHEN xla_exceptions_pkg.application_exception THEN
3641       RAISE;
3642   WHEN OTHERS THEN
3643        xla_exceptions_pkg.raise_message
3644            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_23');
3645 END AcctDerRule_23;
3646 --
3647 
3648 ---------------------------------------
3649 --
3650 -- PRIVATE FUNCTION
3651 --         AcctDerRule_24
3652 --
3653 ---------------------------------------
3654 FUNCTION AcctDerRule_24 (
3655   p_application_id             IN NUMBER
3656 , p_ae_header_id               IN NUMBER
3657 , p_side                       IN VARCHAR2
3658 , p_override_seg_flag          IN VARCHAR2 
3659 --Automatic Offsets Value
3660  , p_source_15            IN VARCHAR2
3661  , p_source_15_meaning    IN VARCHAR2
3662 --Retainage Related Item Distribution Account
3663  , p_source_42            IN NUMBER
3664 , x_transaction_coa_id         OUT NOCOPY NUMBER
3665 , x_accounting_coa_id          OUT NOCOPY NUMBER
3666 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
3667 , x_flex_value_set_id          OUT NOCOPY NUMBER
3668 , x_value_type_code            OUT NOCOPY VARCHAR2
3669 , x_value_combination_id       OUT NOCOPY NUMBER
3670 , x_value_segment_code         OUT NOCOPY VARCHAR2
3671 )
3672 RETURN VARCHAR2
3673 IS
3674 l_component_type       VARCHAR2(80)  ;
3675 l_component_code       VARCHAR2(30)  ;
3676 l_component_type_code  VARCHAR2(1)   ;
3677 l_component_appl_id    INTEGER       ;
3678 l_amb_context_code     VARCHAR2(30)  ;
3679 l_log_module           VARCHAR2(240) ;
3680 l_output_value         VARCHAR2(30)  ;
3681 BEGIN
3682 IF g_log_enabled THEN
3683       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_24';
3684 END IF;
3685 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3686 
3687       trace
3688          (p_msg      => 'BEGIN of AcctDerRule_24'
3689          ,p_level    => C_LEVEL_PROCEDURE
3690          ,p_module   => l_log_module);
3691 
3692 END IF;
3693 
3694 l_component_type         := 'AMB_ADR';
3695 l_component_code         := 'AP_RETAIN_RELATED_BAL_SEG';
3699 x_transaction_coa_id     :=  null;
3696 l_component_type_code    := 'S';
3697 l_component_appl_id      :=  200;
3698 l_amb_context_code       := 'DEFAULT';
3700 x_accounting_coa_id      :=  null;
3701 x_flexfield_segment_code := 'GL_BALANCING';
3702 x_flex_value_set_id      :=  null ;
3703 
3704 
3705  IF NVL(p_source_15,'
3706 ') =  'BALANCING_SEGMENT'
3707  THEN 
3708 --
3709   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3710 
3711       trace
3712          (p_msg      => 'END of AcctDerRule_24'
3713          ,p_level    => C_LEVEL_PROCEDURE
3714          ,p_module   => l_log_module);
3715 
3716   END IF;
3717   x_value_combination_id  := TO_NUMBER(p_source_42) ;
3718   x_value_segment_code    := 'GL_BALANCING' ;
3719   x_value_type_code       := 'S';
3720   l_output_value          :=  null;
3721   RETURN l_output_value;
3722 
3723  ELSE 
3724     IF p_override_seg_flag = 'Y' THEN 
3725        RETURN '#$NO_OVERRIDE#$';
3726     END IF;
3727  END IF;
3728 
3729 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3730 
3731       trace
3732          (p_msg      => 'END of AcctDerRule_24(invalid)'
3733          ,p_level    => C_LEVEL_PROCEDURE
3734          ,p_module   => l_log_module);
3735 
3736 END IF;
3737 
3738 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3739 x_value_combination_id  := null;
3740 x_value_segment_code    := null;
3741 x_value_type_code       := null;
3742 l_output_value          := null;
3743 xla_accounting_err_pkg.build_message
3744                  (p_appli_s_name            => 'XLA'
3745                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3746                  ,p_token_1                 => 'COMPONENT_NAME'
3747                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3748                                                             l_component_type
3749                                                           , l_component_code
3750                                                           , l_component_type_code
3751                                                           , l_component_appl_id
3752                                                           , l_amb_context_code
3753                                                           )
3754                  ,p_token_2                 => 'OWNER'
3755                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3756                                                         'XLA_OWNER_TYPE'
3757                                                         ,l_component_type_code
3758                                                         )
3759                  ,p_token_3                 => 'PAD_NAME'
3760                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3761                  ,p_token_4                 => 'PAD_OWNER'
3762                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3763                                                         'XLA_OWNER_TYPE'
3764                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3765                                                         )
3766                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3767                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3768                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3769                  ,p_ae_header_id            => NULL
3770 );
3771 RETURN l_output_value;
3772 EXCEPTION
3773   WHEN xla_exceptions_pkg.application_exception THEN
3774       RAISE;
3775   WHEN OTHERS THEN
3776        xla_exceptions_pkg.raise_message
3777            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_24');
3778 END AcctDerRule_24;
3779 --
3780 
3781 ---------------------------------------
3782 --
3783 -- PRIVATE FUNCTION
3784 --         AcctDerRule_25
3785 --
3786 ---------------------------------------
3787 FUNCTION AcctDerRule_25 (
3788   p_application_id             IN NUMBER
3789 , p_ae_header_id               IN NUMBER
3790 , p_side                       IN VARCHAR2
3791 , p_override_seg_flag          IN VARCHAR2 
3792 --Automatic Offsets Value
3793  , p_source_15            IN VARCHAR2
3794  , p_source_15_meaning    IN VARCHAR2
3795 --Withholding Related Distribution Account
3796  , p_source_43            IN NUMBER
3797 , x_transaction_coa_id         OUT NOCOPY NUMBER
3798 , x_accounting_coa_id          OUT NOCOPY NUMBER
3799 , x_flexfield_segment_code     OUT NOCOPY VARCHAR2
3800 , x_flex_value_set_id          OUT NOCOPY NUMBER
3801 , x_value_type_code            OUT NOCOPY VARCHAR2
3802 , x_value_combination_id       OUT NOCOPY NUMBER
3803 , x_value_segment_code         OUT NOCOPY VARCHAR2
3804 )
3805 RETURN VARCHAR2
3806 IS
3807 l_component_type       VARCHAR2(80)  ;
3808 l_component_code       VARCHAR2(30)  ;
3809 l_component_type_code  VARCHAR2(1)   ;
3810 l_component_appl_id    INTEGER       ;
3811 l_amb_context_code     VARCHAR2(30)  ;
3812 l_log_module           VARCHAR2(240) ;
3813 l_output_value         VARCHAR2(30)  ;
3814 BEGIN
3815 IF g_log_enabled THEN
3816       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_25';
3817 END IF;
3818 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3819 
3820       trace
3821          (p_msg      => 'BEGIN of AcctDerRule_25'
3822          ,p_level    => C_LEVEL_PROCEDURE
3826 
3823          ,p_module   => l_log_module);
3824 
3825 END IF;
3827 l_component_type         := 'AMB_ADR';
3828 l_component_code         := 'AP_WH_RELATED_DIST_BAL_SEG';
3829 l_component_type_code    := 'S';
3830 l_component_appl_id      :=  200;
3831 l_amb_context_code       := 'DEFAULT';
3832 x_transaction_coa_id     :=  null;
3833 x_accounting_coa_id      :=  null;
3834 x_flexfield_segment_code := 'GL_BALANCING';
3835 x_flex_value_set_id      :=  null ;
3836 
3837 
3838  IF NVL(p_source_15,'
3839 ') =  'BALANCING_SEGMENT'
3840  THEN 
3841 --
3842   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3843 
3844       trace
3845          (p_msg      => 'END of AcctDerRule_25'
3846          ,p_level    => C_LEVEL_PROCEDURE
3847          ,p_module   => l_log_module);
3848 
3849   END IF;
3850   x_value_combination_id  := TO_NUMBER(p_source_43) ;
3851   x_value_segment_code    := 'GL_BALANCING' ;
3852   x_value_type_code       := 'S';
3853   l_output_value          :=  null;
3854   RETURN l_output_value;
3855 
3856  ELSE 
3857     IF p_override_seg_flag = 'Y' THEN 
3858        RETURN '#$NO_OVERRIDE#$';
3859     END IF;
3860  END IF;
3861 
3862 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3863 
3864       trace
3865          (p_msg      => 'END of AcctDerRule_25(invalid)'
3866          ,p_level    => C_LEVEL_PROCEDURE
3867          ,p_module   => l_log_module);
3868 
3869 END IF;
3870 
3871 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
3872 x_value_combination_id  := null;
3873 x_value_segment_code    := null;
3874 x_value_type_code       := null;
3875 l_output_value          := null;
3876 xla_accounting_err_pkg.build_message
3877                  (p_appli_s_name            => 'XLA'
3878                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
3879                  ,p_token_1                 => 'COMPONENT_NAME'
3880                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
3881                                                             l_component_type
3882                                                           , l_component_code
3883                                                           , l_component_type_code
3884                                                           , l_component_appl_id
3885                                                           , l_amb_context_code
3886                                                           )
3887                  ,p_token_2                 => 'OWNER'
3888                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
3889                                                         'XLA_OWNER_TYPE'
3890                                                         ,l_component_type_code
3891                                                         )
3892                  ,p_token_3                 => 'PAD_NAME'
3893                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
3894                  ,p_token_4                 => 'PAD_OWNER'
3895                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
3896                                                         'XLA_OWNER_TYPE'
3897                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
3898                                                         )
3899                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
3900                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
3901                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
3902                  ,p_ae_header_id            => NULL
3903 );
3904 RETURN l_output_value;
3905 EXCEPTION
3906   WHEN xla_exceptions_pkg.application_exception THEN
3907       RAISE;
3908   WHEN OTHERS THEN
3909        xla_exceptions_pkg.raise_message
3910            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_25');
3911 END AcctDerRule_25;
3912 --
3913 
3914 ---------------------------------------
3915 --
3916 -- PRIVATE FUNCTION
3917 --         AcctDerRule_26
3918 --
3919 ---------------------------------------
3920 FUNCTION AcctDerRule_26 (
3921   p_application_id              IN NUMBER
3922 , p_ae_header_id                IN NUMBER
3923 , p_side                        IN VARCHAR2 
3924 --Bank Charges Account
3925  , p_source_14            IN NUMBER
3926 --Automatic Offsets Value
3927  , p_source_15            IN VARCHAR2
3928  , p_source_15_meaning    IN VARCHAR2
3929 --Invoice Distribution Account
3930  , p_source_30            IN NUMBER
3931 , x_transaction_coa_id         OUT NOCOPY NUMBER
3932 , x_accounting_coa_id          OUT NOCOPY NUMBER
3933 , x_value_type_code            OUT NOCOPY VARCHAR2
3934 )
3935 RETURN NUMBER
3936 IS
3937 l_component_type       VARCHAR2(80)  ;
3938 l_component_code       VARCHAR2(30)  ;
3939 l_component_type_code  VARCHAR2(1)   ;
3940 l_component_appl_id    INTEGER       ;
3941 l_amb_context_code     VARCHAR2(30)  ;
3942 l_log_module           VARCHAR2(240) ;
3943 l_output_value         NUMBER        ;
3944 BEGIN
3945 IF g_log_enabled THEN
3946       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_26';
3947 END IF;
3948 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3949       trace
3950          (p_msg      => 'BEGIN of AcctDerRule_26'
3951          ,p_level    => C_LEVEL_PROCEDURE
3955 l_component_type         := 'AMB_ADR';
3952          ,p_module   => l_log_module);
3953 END IF;
3954 --
3956 l_component_code         := 'AP_BANK_CHARGES';
3957 l_component_type_code    := 'S';
3958 l_component_appl_id      :=  200;
3959 l_amb_context_code       := 'DEFAULT';
3960 x_transaction_coa_id     :=  null;
3961 x_accounting_coa_id      :=  null;
3962 --
3963 
3964  IF NVL(p_source_15,'
3965 ') <>  'ACCOUNT_SEGMENT_VALUE'
3966  THEN 
3967  --
3968   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3969       trace
3970          (p_msg      => 'END of AcctDerRule_26'
3971          ,p_level    => C_LEVEL_PROCEDURE
3972          ,p_module   => l_log_module);
3973   END IF;
3974   x_value_type_code := 'S';
3975   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_14));
3976   RETURN l_output_value;
3977 
3978  ELSIF NVL(p_source_15,'
3979 ') =  'ACCOUNT_SEGMENT_VALUE'
3980  THEN 
3981  --
3982   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3983       trace
3984          (p_msg      => 'END of AcctDerRule_26'
3985          ,p_level    => C_LEVEL_PROCEDURE
3986          ,p_module   => l_log_module);
3987   END IF;
3988   x_value_type_code := 'S';
3989   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_30));
3990   RETURN l_output_value;
3991 
3992  END IF;
3993 --
3994 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3995       trace
3996          (p_msg      => 'END of AcctDerRule_26(invalid)'
3997          ,p_level    => C_LEVEL_PROCEDURE
3998          ,p_module   => l_log_module);
3999 END IF;
4000 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4001 x_value_type_code := null;
4002 l_output_value    := null;
4003 xla_accounting_err_pkg.build_message
4004                  (p_appli_s_name            => 'XLA'
4005                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4006                  ,p_token_1                 => 'COMPONENT_NAME'
4007                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4008                                                             l_component_type
4009                                                           , l_component_code
4010                                                           , l_component_type_code
4011                                                           , l_component_appl_id
4012                                                           , l_amb_context_code
4013                                                           )
4014                  ,p_token_2                 => 'OWNER'
4015                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4016                                                         'XLA_OWNER_TYPE'
4017                                                         ,l_component_type_code
4018                                                         )
4019                  ,p_token_3                 => 'PAD_NAME'
4020                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4021                  ,p_token_4                 => 'PAD_OWNER'
4022                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4023                                                         'XLA_OWNER_TYPE'
4024                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4025                                                         )
4026                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4027                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4028                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4029                  ,p_ae_header_id            => NULL
4030 );
4031 RETURN l_output_value;
4032 EXCEPTION
4033   WHEN xla_exceptions_pkg.application_exception THEN
4034       RAISE;
4035   WHEN OTHERS THEN
4036        xla_exceptions_pkg.raise_message
4037            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_26');
4038 END AcctDerRule_26;
4039 --
4040 
4041 ---------------------------------------
4042 --
4043 -- PRIVATE FUNCTION
4044 --         AcctDerRule_27
4045 --
4046 ---------------------------------------
4047 FUNCTION AcctDerRule_27 (
4048   p_application_id              IN NUMBER
4049 , p_ae_header_id                IN NUMBER
4050 , p_side                        IN VARCHAR2 
4051 --Automatic Offsets Value
4052  , p_source_15            IN VARCHAR2
4053  , p_source_15_meaning    IN VARCHAR2
4054 --Bank Errors Account
4055  , p_source_16            IN NUMBER
4056 --Invoice Distribution Account
4057  , p_source_30            IN NUMBER
4058 , x_transaction_coa_id         OUT NOCOPY NUMBER
4059 , x_accounting_coa_id          OUT NOCOPY NUMBER
4060 , x_value_type_code            OUT NOCOPY VARCHAR2
4061 )
4062 RETURN NUMBER
4063 IS
4064 l_component_type       VARCHAR2(80)  ;
4065 l_component_code       VARCHAR2(30)  ;
4066 l_component_type_code  VARCHAR2(1)   ;
4067 l_component_appl_id    INTEGER       ;
4068 l_amb_context_code     VARCHAR2(30)  ;
4069 l_log_module           VARCHAR2(240) ;
4070 l_output_value         NUMBER        ;
4071 BEGIN
4072 IF g_log_enabled THEN
4073       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_27';
4074 END IF;
4075 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4076       trace
4077          (p_msg      => 'BEGIN of AcctDerRule_27'
4078          ,p_level    => C_LEVEL_PROCEDURE
4082 l_component_type         := 'AMB_ADR';
4079          ,p_module   => l_log_module);
4080 END IF;
4081 --
4083 l_component_code         := 'AP_BANK_ERRORS';
4084 l_component_type_code    := 'S';
4085 l_component_appl_id      :=  200;
4086 l_amb_context_code       := 'DEFAULT';
4087 x_transaction_coa_id     :=  null;
4088 x_accounting_coa_id      :=  null;
4089 --
4090 
4091  IF NVL(p_source_15,'
4092 ') <>  'ACCOUNT_SEGMENT_VALUE'
4093  THEN 
4094  --
4095   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4096       trace
4097          (p_msg      => 'END of AcctDerRule_27'
4098          ,p_level    => C_LEVEL_PROCEDURE
4099          ,p_module   => l_log_module);
4100   END IF;
4101   x_value_type_code := 'S';
4102   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_16));
4103   RETURN l_output_value;
4104 
4105  ELSIF NVL(p_source_15,'
4106 ') =  'ACCOUNT_SEGMENT_VALUE'
4107  THEN 
4108  --
4109   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4110       trace
4111          (p_msg      => 'END of AcctDerRule_27'
4112          ,p_level    => C_LEVEL_PROCEDURE
4113          ,p_module   => l_log_module);
4114   END IF;
4115   x_value_type_code := 'S';
4116   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_30));
4117   RETURN l_output_value;
4118 
4119  END IF;
4120 --
4121 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4122       trace
4123          (p_msg      => 'END of AcctDerRule_27(invalid)'
4124          ,p_level    => C_LEVEL_PROCEDURE
4125          ,p_module   => l_log_module);
4126 END IF;
4127 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4128 x_value_type_code := null;
4129 l_output_value    := null;
4130 xla_accounting_err_pkg.build_message
4131                  (p_appli_s_name            => 'XLA'
4132                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4133                  ,p_token_1                 => 'COMPONENT_NAME'
4134                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4135                                                             l_component_type
4136                                                           , l_component_code
4137                                                           , l_component_type_code
4138                                                           , l_component_appl_id
4139                                                           , l_amb_context_code
4140                                                           )
4141                  ,p_token_2                 => 'OWNER'
4142                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4143                                                         'XLA_OWNER_TYPE'
4144                                                         ,l_component_type_code
4145                                                         )
4146                  ,p_token_3                 => 'PAD_NAME'
4147                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4148                  ,p_token_4                 => 'PAD_OWNER'
4149                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4150                                                         'XLA_OWNER_TYPE'
4151                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4152                                                         )
4153                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4154                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4155                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4156                  ,p_ae_header_id            => NULL
4157 );
4158 RETURN l_output_value;
4159 EXCEPTION
4160   WHEN xla_exceptions_pkg.application_exception THEN
4161       RAISE;
4162   WHEN OTHERS THEN
4163        xla_exceptions_pkg.raise_message
4164            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_27');
4165 END AcctDerRule_27;
4166 --
4167 
4168 ---------------------------------------
4169 --
4170 -- PRIVATE FUNCTION
4171 --         AcctDerRule_28
4172 --
4173 ---------------------------------------
4174 FUNCTION AcctDerRule_28 (
4175   p_application_id              IN NUMBER
4176 , p_ae_header_id                IN NUMBER
4177 , p_side                        IN VARCHAR2 
4178 --Bank Cash Account
4179  , p_source_17            IN NUMBER
4180 , x_transaction_coa_id         OUT NOCOPY NUMBER
4181 , x_accounting_coa_id          OUT NOCOPY NUMBER
4182 , x_value_type_code            OUT NOCOPY VARCHAR2
4183 )
4184 RETURN NUMBER
4185 IS
4186 l_component_type       VARCHAR2(80)  ;
4187 l_component_code       VARCHAR2(30)  ;
4188 l_component_type_code  VARCHAR2(1)   ;
4189 l_component_appl_id    INTEGER       ;
4190 l_amb_context_code     VARCHAR2(30)  ;
4191 l_log_module           VARCHAR2(240) ;
4192 l_output_value         NUMBER        ;
4193 BEGIN
4194 IF g_log_enabled THEN
4195       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_28';
4196 END IF;
4197 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4198       trace
4199          (p_msg      => 'BEGIN of AcctDerRule_28'
4200          ,p_level    => C_LEVEL_PROCEDURE
4201          ,p_module   => l_log_module);
4202 END IF;
4203 --
4204 l_component_type         := 'AMB_ADR';
4205 l_component_code         := 'AP_CASH';
4206 l_component_type_code    := 'S';
4210 x_accounting_coa_id      :=  null;
4207 l_component_appl_id      :=  200;
4208 l_amb_context_code       := 'DEFAULT';
4209 x_transaction_coa_id     :=  null;
4211 --
4212 
4213  --
4214   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4215       trace
4216          (p_msg      => 'END of AcctDerRule_28'
4217          ,p_level    => C_LEVEL_PROCEDURE
4218          ,p_module   => l_log_module);
4219   END IF;
4220   x_value_type_code := 'S';
4221   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_17));
4222   RETURN l_output_value;
4223 
4224 --
4225 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4226       trace
4227          (p_msg      => 'END of AcctDerRule_28(invalid)'
4228          ,p_level    => C_LEVEL_PROCEDURE
4229          ,p_module   => l_log_module);
4230 END IF;
4231 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4232 x_value_type_code := null;
4233 l_output_value    := null;
4234 xla_accounting_err_pkg.build_message
4235                  (p_appli_s_name            => 'XLA'
4236                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4237                  ,p_token_1                 => 'COMPONENT_NAME'
4238                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4239                                                             l_component_type
4240                                                           , l_component_code
4241                                                           , l_component_type_code
4242                                                           , l_component_appl_id
4243                                                           , l_amb_context_code
4244                                                           )
4245                  ,p_token_2                 => 'OWNER'
4246                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4247                                                         'XLA_OWNER_TYPE'
4248                                                         ,l_component_type_code
4249                                                         )
4250                  ,p_token_3                 => 'PAD_NAME'
4251                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4252                  ,p_token_4                 => 'PAD_OWNER'
4253                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4254                                                         'XLA_OWNER_TYPE'
4255                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4256                                                         )
4257                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4258                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4259                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4260                  ,p_ae_header_id            => NULL
4261 );
4262 RETURN l_output_value;
4263 EXCEPTION
4264   WHEN xla_exceptions_pkg.application_exception THEN
4265       RAISE;
4266   WHEN OTHERS THEN
4267        xla_exceptions_pkg.raise_message
4268            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_28');
4269 END AcctDerRule_28;
4270 --
4271 
4272 ---------------------------------------
4273 --
4274 -- PRIVATE FUNCTION
4275 --         AcctDerRule_29
4276 --
4277 ---------------------------------------
4278 FUNCTION AcctDerRule_29 (
4279   p_application_id              IN NUMBER
4280 , p_ae_header_id                IN NUMBER
4281 , p_side                        IN VARCHAR2 
4282 --Automatic Offsets Value
4283  , p_source_15            IN VARCHAR2
4284  , p_source_15_meaning    IN VARCHAR2
4285 --System Discount Account
4286  , p_source_18            IN NUMBER
4287 --Discount Distribution Method
4288  , p_source_19            IN VARCHAR2
4289  , p_source_19_meaning    IN VARCHAR2
4290 --Invoice Distribution Account
4291  , p_source_30            IN NUMBER
4292 --Invoice Distribution Type
4293  , p_source_33            IN VARCHAR2
4294  , p_source_33_meaning    IN VARCHAR2
4295 --Discount Account
4296  , p_source_44            IN NUMBER
4297 --Purchase Order Charge Account
4298  , p_source_45            IN NUMBER
4299 --Purchase Order Variance Account
4300  , p_source_46            IN NUMBER
4301 , x_transaction_coa_id         OUT NOCOPY NUMBER
4302 , x_accounting_coa_id          OUT NOCOPY NUMBER
4303 , x_value_type_code            OUT NOCOPY VARCHAR2
4304 )
4305 RETURN NUMBER
4306 IS
4307 l_component_type       VARCHAR2(80)  ;
4308 l_component_code       VARCHAR2(30)  ;
4309 l_component_type_code  VARCHAR2(1)   ;
4310 l_component_appl_id    INTEGER       ;
4311 l_amb_context_code     VARCHAR2(30)  ;
4312 l_log_module           VARCHAR2(240) ;
4313 l_output_value         NUMBER        ;
4314 BEGIN
4315 IF g_log_enabled THEN
4316       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_29';
4317 END IF;
4318 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4319       trace
4320          (p_msg      => 'BEGIN of AcctDerRule_29'
4321          ,p_level    => C_LEVEL_PROCEDURE
4322          ,p_module   => l_log_module);
4323 END IF;
4324 --
4325 l_component_type         := 'AMB_ADR';
4326 l_component_code         := 'AP_DISCOUNT';
4327 l_component_type_code    := 'S';
4328 l_component_appl_id      :=  200;
4329 l_amb_context_code       := 'DEFAULT';
4330 x_transaction_coa_id     :=  null;
4331 x_accounting_coa_id      :=  null;
4335 ') =  'SYSTEM' AND 
4332 --
4333 
4334  IF NVL(p_source_19,'
4336 NVL(p_source_15,'
4337 ') <>  'ACCOUNT_SEGMENT_VALUE'
4338  THEN 
4339  --
4340   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4341       trace
4342          (p_msg      => 'END of AcctDerRule_29'
4343          ,p_level    => C_LEVEL_PROCEDURE
4344          ,p_module   => l_log_module);
4345   END IF;
4346   x_value_type_code := 'S';
4347   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_44));
4348   RETURN l_output_value;
4349 
4350  ELSIF NVL(p_source_19,'
4351 ') =  'SYSTEM' AND 
4352 NVL(p_source_15,'
4353 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
4354 NVL(p_source_33,'
4355 ') <>  'ACCRUAL'
4356  THEN 
4357  --
4358   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4359       trace
4360          (p_msg      => 'END of AcctDerRule_29'
4361          ,p_level    => C_LEVEL_PROCEDURE
4362          ,p_module   => l_log_module);
4363   END IF;
4364   x_value_type_code := 'S';
4365   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_30));
4366   RETURN l_output_value;
4367 
4368  ELSIF NVL(p_source_19,'
4369 ') =  'SYSTEM' AND 
4370 NVL(p_source_15,'
4371 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
4372 NVL(p_source_33,'
4373 ') =  'ACCRUAL'
4374  THEN 
4375  --
4376   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4377       trace
4378          (p_msg      => 'END of AcctDerRule_29'
4379          ,p_level    => C_LEVEL_PROCEDURE
4380          ,p_module   => l_log_module);
4381   END IF;
4382   x_value_type_code := 'S';
4383   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_45));
4384   RETURN l_output_value;
4385 
4386  ELSIF NVL(p_source_19,'
4387 ') =  'EXPENSE' AND 
4388 NVL(p_source_33,'
4389 ') <>  'ACCRUAL'
4390  THEN 
4391  --
4392   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4393       trace
4394          (p_msg      => 'END of AcctDerRule_29'
4395          ,p_level    => C_LEVEL_PROCEDURE
4396          ,p_module   => l_log_module);
4397   END IF;
4398   x_value_type_code := 'S';
4399   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_30));
4400   RETURN l_output_value;
4401 
4402  ELSIF NVL(p_source_19,'
4403 ') =  'EXPENSE' AND 
4404 NVL(p_source_33,'
4405 ') =  'ACCRUAL'
4406  THEN 
4407  --
4408   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4409       trace
4410          (p_msg      => 'END of AcctDerRule_29'
4411          ,p_level    => C_LEVEL_PROCEDURE
4412          ,p_module   => l_log_module);
4413   END IF;
4414   x_value_type_code := 'S';
4415   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_46));
4416   RETURN l_output_value;
4417 
4418  ELSIF NVL(p_source_19,'
4419 ') =  'TAX' AND 
4420 NVL(p_source_15,'
4421 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
4422 (NVL(p_source_33,'
4423 ') =  'REC_TAX' OR 
4424 NVL(p_source_33,'
4425 ') =  'NONREC_TAX' OR 
4426 NVL(p_source_33,'
4427 ') =  'TIPV' OR 
4428 NVL(p_source_33,'
4429 ') =  'TRV')
4430  THEN 
4431  --
4432   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4433       trace
4434          (p_msg      => 'END of AcctDerRule_29'
4435          ,p_level    => C_LEVEL_PROCEDURE
4436          ,p_module   => l_log_module);
4437   END IF;
4438   x_value_type_code := 'S';
4439   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_30));
4440   RETURN l_output_value;
4441 
4442  ELSIF NVL(p_source_19,'
4443 ') =  'TAX' AND 
4444 NVL(p_source_15,'
4445 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
4446 (NVL(p_source_33,'
4447 ') <>  'REC_TAX' OR 
4448 NVL(p_source_33,'
4449 ') <>  'NONREC_TAX' OR 
4450 NVL(p_source_33,'
4451 ') <>  'TIPV' OR 
4452 NVL(p_source_33,'
4453 ') <>  'TRV')
4454  THEN 
4455  --
4456   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4457       trace
4458          (p_msg      => 'END of AcctDerRule_29'
4459          ,p_level    => C_LEVEL_PROCEDURE
4460          ,p_module   => l_log_module);
4461   END IF;
4462   x_value_type_code := 'S';
4463   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_18));
4464   RETURN l_output_value;
4465 
4466  ELSIF NVL(p_source_19,'
4467 ') =  'TAX' AND 
4468 NVL(p_source_15,'
4469 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
4470 NVL(p_source_33,'
4471 ') <>  'ACCRUAL'
4472  THEN 
4473  --
4474   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4475       trace
4476          (p_msg      => 'END of AcctDerRule_29'
4477          ,p_level    => C_LEVEL_PROCEDURE
4478          ,p_module   => l_log_module);
4479   END IF;
4480   x_value_type_code := 'S';
4481   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_30));
4482   RETURN l_output_value;
4483 
4484  ELSIF NVL(p_source_19,'
4485 ') =  'TAX' AND 
4486 NVL(p_source_15,'
4487 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
4488 NVL(p_source_33,'
4489 ') =  'ACCRUAL'
4490  THEN 
4491  --
4492   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4493       trace
4494          (p_msg      => 'END of AcctDerRule_29'
4495          ,p_level    => C_LEVEL_PROCEDURE
4496          ,p_module   => l_log_module);
4497   END IF;
4498   x_value_type_code := 'S';
4499   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_45));
4500   RETURN l_output_value;
4501 
4502  END IF;
4503 --
4507          ,p_level    => C_LEVEL_PROCEDURE
4504 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4505       trace
4506          (p_msg      => 'END of AcctDerRule_29(invalid)'
4508          ,p_module   => l_log_module);
4509 END IF;
4510 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4511 x_value_type_code := null;
4512 l_output_value    := null;
4513 xla_accounting_err_pkg.build_message
4514                  (p_appli_s_name            => 'XLA'
4515                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4516                  ,p_token_1                 => 'COMPONENT_NAME'
4517                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4518                                                             l_component_type
4519                                                           , l_component_code
4520                                                           , l_component_type_code
4521                                                           , l_component_appl_id
4522                                                           , l_amb_context_code
4523                                                           )
4524                  ,p_token_2                 => 'OWNER'
4525                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4526                                                         'XLA_OWNER_TYPE'
4527                                                         ,l_component_type_code
4528                                                         )
4529                  ,p_token_3                 => 'PAD_NAME'
4530                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4531                  ,p_token_4                 => 'PAD_OWNER'
4532                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4533                                                         'XLA_OWNER_TYPE'
4534                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4535                                                         )
4536                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4537                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4538                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4539                  ,p_ae_header_id            => NULL
4540 );
4541 RETURN l_output_value;
4542 EXCEPTION
4543   WHEN xla_exceptions_pkg.application_exception THEN
4544       RAISE;
4545   WHEN OTHERS THEN
4546        xla_exceptions_pkg.raise_message
4547            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_29');
4548 END AcctDerRule_29;
4549 --
4550 
4551 ---------------------------------------
4552 --
4553 -- PRIVATE FUNCTION
4554 --         AcctDerRule_30
4555 --
4556 ---------------------------------------
4557 FUNCTION AcctDerRule_30 (
4558   p_application_id              IN NUMBER
4559 , p_ae_header_id                IN NUMBER
4560 , p_side                        IN VARCHAR2 
4561 --Automatic Offsets Value
4562  , p_source_15            IN VARCHAR2
4563  , p_source_15_meaning    IN VARCHAR2
4564 --Purchase Order Rate Variance Gain Account
4565  , p_source_20            IN NUMBER
4566 --Invoice Distribution Ledger Amount
4567  , p_source_21            IN NUMBER
4568 --Destination Type of the PO Distribution
4569  , p_source_22            IN VARCHAR2
4570  , p_source_22_meaning    IN VARCHAR2
4571 --Purchase Order Rate Variance Loss Account
4572  , p_source_23            IN NUMBER
4573 --Invoice Distribution Account
4574  , p_source_30            IN NUMBER
4575 --Automatic Offsets Flag
4576  , p_source_47            IN VARCHAR2
4577  , p_source_47_meaning    IN VARCHAR2
4578 , x_transaction_coa_id         OUT NOCOPY NUMBER
4579 , x_accounting_coa_id          OUT NOCOPY NUMBER
4580 , x_value_type_code            OUT NOCOPY VARCHAR2
4581 )
4582 RETURN NUMBER
4583 IS
4584 l_component_type       VARCHAR2(80)  ;
4585 l_component_code       VARCHAR2(30)  ;
4586 l_component_type_code  VARCHAR2(1)   ;
4587 l_component_appl_id    INTEGER       ;
4588 l_amb_context_code     VARCHAR2(30)  ;
4589 l_log_module           VARCHAR2(240) ;
4590 l_output_value         NUMBER        ;
4591 BEGIN
4592 IF g_log_enabled THEN
4593       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_30';
4594 END IF;
4595 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4596       trace
4597          (p_msg      => 'BEGIN of AcctDerRule_30'
4598          ,p_level    => C_LEVEL_PROCEDURE
4599          ,p_module   => l_log_module);
4600 END IF;
4601 --
4602 l_component_type         := 'AMB_ADR';
4603 l_component_code         := 'AP_EXCHG_TAXEXCHG_RATE_VAR';
4604 l_component_type_code    := 'S';
4605 l_component_appl_id      :=  200;
4606 l_amb_context_code       := 'DEFAULT';
4607 x_transaction_coa_id     :=  null;
4608 x_accounting_coa_id      :=  null;
4609 --
4610 
4611  IF NVL(p_source_22,'
4612 ') =  'EXPENSE' OR 
4613 (NVL(p_source_22,'
4614 ') =  'INVENTORY' AND 
4615 NVL(p_source_15,'
4616 ') =  'ACCOUNT_SEGMENT_VALUE')
4617  THEN 
4618  --
4619   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4620       trace
4621          (p_msg      => 'END of AcctDerRule_30'
4622          ,p_level    => C_LEVEL_PROCEDURE
4623          ,p_module   => l_log_module);
4624   END IF;
4628 
4625   x_value_type_code := 'S';
4626   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_30));
4627   RETURN l_output_value;
4629  ELSIF NVL(p_source_22,'
4630 ') <>  'EXPENSE' AND 
4631 p_source_21 <=  0 AND 
4632 (NVL(p_source_47,'
4633 ') =  'N' OR 
4634 NVL(p_source_15,'
4635 ') =  'BALANCING_SEGMENT')
4636  THEN 
4637  --
4638   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4639       trace
4640          (p_msg      => 'END of AcctDerRule_30'
4641          ,p_level    => C_LEVEL_PROCEDURE
4642          ,p_module   => l_log_module);
4643   END IF;
4644   x_value_type_code := 'S';
4645   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_20));
4646   RETURN l_output_value;
4647 
4648  ELSIF NVL(p_source_22,'
4649 ') <>  'EXPENSE' AND 
4650 p_source_21 >  0 AND 
4651 (NVL(p_source_47,'
4652 ') =  'N' OR 
4653 NVL(p_source_15,'
4654 ') =  'BALANCING_SEGMENT')
4655  THEN 
4656  --
4657   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4658       trace
4659          (p_msg      => 'END of AcctDerRule_30'
4660          ,p_level    => C_LEVEL_PROCEDURE
4661          ,p_module   => l_log_module);
4662   END IF;
4663   x_value_type_code := 'S';
4664   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_23));
4665   RETURN l_output_value;
4666 
4667  END IF;
4668 --
4669 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4670       trace
4671          (p_msg      => 'END of AcctDerRule_30(invalid)'
4672          ,p_level    => C_LEVEL_PROCEDURE
4673          ,p_module   => l_log_module);
4674 END IF;
4675 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4676 x_value_type_code := null;
4677 l_output_value    := null;
4678 xla_accounting_err_pkg.build_message
4679                  (p_appli_s_name            => 'XLA'
4680                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4681                  ,p_token_1                 => 'COMPONENT_NAME'
4682                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4683                                                             l_component_type
4684                                                           , l_component_code
4685                                                           , l_component_type_code
4686                                                           , l_component_appl_id
4687                                                           , l_amb_context_code
4688                                                           )
4689                  ,p_token_2                 => 'OWNER'
4690                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4691                                                         'XLA_OWNER_TYPE'
4692                                                         ,l_component_type_code
4693                                                         )
4694                  ,p_token_3                 => 'PAD_NAME'
4695                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4696                  ,p_token_4                 => 'PAD_OWNER'
4697                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4698                                                         'XLA_OWNER_TYPE'
4699                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4700                                                         )
4701                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4702                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4703                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4704                  ,p_ae_header_id            => NULL
4705 );
4706 RETURN l_output_value;
4707 EXCEPTION
4708   WHEN xla_exceptions_pkg.application_exception THEN
4709       RAISE;
4710   WHEN OTHERS THEN
4711        xla_exceptions_pkg.raise_message
4712            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_30');
4713 END AcctDerRule_30;
4714 --
4715 
4716 ---------------------------------------
4717 --
4718 -- PRIVATE FUNCTION
4719 --         AcctDerRule_31
4720 --
4721 ---------------------------------------
4722 FUNCTION AcctDerRule_31 (
4723   p_application_id              IN NUMBER
4724 , p_ae_header_id                IN NUMBER
4725 , p_side                        IN VARCHAR2 
4726 --Automatic Offsets Value
4727  , p_source_15            IN VARCHAR2
4728  , p_source_15_meaning    IN VARCHAR2
4729 --Bank Future Dated Payment Account
4730  , p_source_24            IN NUMBER
4731 --Future Dated Payment Account Source Option
4732  , p_source_25            IN VARCHAR2
4733  , p_source_25_meaning    IN VARCHAR2
4734 --Financials Options Future Dated Payment Account
4735  , p_source_26            IN NUMBER
4736 --Supplier Site Future Dated Payment Account
4737  , p_source_27            IN NUMBER
4738 --Invoice Distribution Account
4739  , p_source_30            IN NUMBER
4740 , x_transaction_coa_id         OUT NOCOPY NUMBER
4741 , x_accounting_coa_id          OUT NOCOPY NUMBER
4742 , x_value_type_code            OUT NOCOPY VARCHAR2
4743 )
4744 RETURN NUMBER
4745 IS
4746 l_component_type       VARCHAR2(80)  ;
4747 l_component_code       VARCHAR2(30)  ;
4748 l_component_type_code  VARCHAR2(1)   ;
4749 l_component_appl_id    INTEGER       ;
4750 l_amb_context_code     VARCHAR2(30)  ;
4751 l_log_module           VARCHAR2(240) ;
4752 l_output_value         NUMBER        ;
4753 BEGIN
4754 IF g_log_enabled THEN
4758       trace
4755       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_31';
4756 END IF;
4757 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4759          (p_msg      => 'BEGIN of AcctDerRule_31'
4760          ,p_level    => C_LEVEL_PROCEDURE
4761          ,p_module   => l_log_module);
4762 END IF;
4763 --
4764 l_component_type         := 'AMB_ADR';
4765 l_component_code         := 'AP_FUTURE_DATED_PMT';
4766 l_component_type_code    := 'S';
4767 l_component_appl_id      :=  200;
4768 l_amb_context_code       := 'DEFAULT';
4769 x_transaction_coa_id     :=  null;
4770 x_accounting_coa_id      :=  null;
4771 --
4772 
4773  IF NVL(p_source_15,'
4774 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
4775 NVL(p_source_25,'
4776 ') =  'BANK ACCOUNT' AND 
4777 TO_NUMBER(p_source_24) IS NOT NULL 
4778  THEN 
4779  --
4780   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4781       trace
4782          (p_msg      => 'END of AcctDerRule_31'
4783          ,p_level    => C_LEVEL_PROCEDURE
4784          ,p_module   => l_log_module);
4785   END IF;
4786   x_value_type_code := 'S';
4787   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_24));
4788   RETURN l_output_value;
4789 
4790  ELSIF NVL(p_source_15,'
4791 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
4792 NVL(p_source_25,'
4793 ') =  'BANK ACCOUNT'
4794  THEN 
4795  --
4796   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4797       trace
4798          (p_msg      => 'END of AcctDerRule_31'
4799          ,p_level    => C_LEVEL_PROCEDURE
4800          ,p_module   => l_log_module);
4801   END IF;
4802   x_value_type_code := 'S';
4803   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_26));
4804   RETURN l_output_value;
4805 
4806  ELSIF NVL(p_source_15,'
4807 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
4808 NVL(p_source_25,'
4809 ') =  'SUPPLIER SITE' AND 
4810 TO_NUMBER(p_source_27) IS NOT NULL 
4811  THEN 
4812  --
4813   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4814       trace
4815          (p_msg      => 'END of AcctDerRule_31'
4816          ,p_level    => C_LEVEL_PROCEDURE
4817          ,p_module   => l_log_module);
4818   END IF;
4819   x_value_type_code := 'S';
4820   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_27));
4821   RETURN l_output_value;
4822 
4823  ELSIF NVL(p_source_15,'
4824 ') <>  'ACCOUNT_SEGMENT_VALUE' AND 
4825 NVL(p_source_25,'
4826 ') =  'SUPPLIER SITE'
4827  THEN 
4828  --
4829   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4830       trace
4831          (p_msg      => 'END of AcctDerRule_31'
4832          ,p_level    => C_LEVEL_PROCEDURE
4833          ,p_module   => l_log_module);
4834   END IF;
4835   x_value_type_code := 'S';
4836   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_26));
4837   RETURN l_output_value;
4838 
4839  ELSIF NVL(p_source_15,'
4840 ') =  'ACCOUNT_SEGMENT_VALUE'
4841  THEN 
4842  --
4843   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4844       trace
4845          (p_msg      => 'END of AcctDerRule_31'
4846          ,p_level    => C_LEVEL_PROCEDURE
4847          ,p_module   => l_log_module);
4848   END IF;
4849   x_value_type_code := 'S';
4850   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_30));
4851   RETURN l_output_value;
4852 
4853  END IF;
4854 --
4855 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4856       trace
4857          (p_msg      => 'END of AcctDerRule_31(invalid)'
4858          ,p_level    => C_LEVEL_PROCEDURE
4859          ,p_module   => l_log_module);
4860 END IF;
4861 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4862 x_value_type_code := null;
4863 l_output_value    := null;
4864 xla_accounting_err_pkg.build_message
4865                  (p_appli_s_name            => 'XLA'
4866                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4867                  ,p_token_1                 => 'COMPONENT_NAME'
4868                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4869                                                             l_component_type
4870                                                           , l_component_code
4871                                                           , l_component_type_code
4872                                                           , l_component_appl_id
4873                                                           , l_amb_context_code
4874                                                           )
4875                  ,p_token_2                 => 'OWNER'
4876                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
4877                                                         'XLA_OWNER_TYPE'
4878                                                         ,l_component_type_code
4879                                                         )
4880                  ,p_token_3                 => 'PAD_NAME'
4881                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
4882                  ,p_token_4                 => 'PAD_OWNER'
4883                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
4884                                                         'XLA_OWNER_TYPE'
4885                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
4886                                                         )
4890                  ,p_ae_header_id            => NULL
4887                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
4888                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
4889                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
4891 );
4892 RETURN l_output_value;
4893 EXCEPTION
4894   WHEN xla_exceptions_pkg.application_exception THEN
4895       RAISE;
4896   WHEN OTHERS THEN
4897        xla_exceptions_pkg.raise_message
4898            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_31');
4899 END AcctDerRule_31;
4900 --
4901 
4902 ---------------------------------------
4903 --
4904 -- PRIVATE FUNCTION
4905 --         AcctDerRule_32
4906 --
4907 ---------------------------------------
4908 FUNCTION AcctDerRule_32 (
4909   p_application_id              IN NUMBER
4910 , p_ae_header_id                IN NUMBER
4911 , p_side                        IN VARCHAR2 
4912 --Interest Account
4913  , p_source_28            IN NUMBER
4914 --Prorate Interest Invoice Across Distributions Option
4915  , p_source_29            IN VARCHAR2
4916 --Invoice Distribution Account
4917  , p_source_30            IN NUMBER
4918 , x_transaction_coa_id         OUT NOCOPY NUMBER
4919 , x_accounting_coa_id          OUT NOCOPY NUMBER
4920 , x_value_type_code            OUT NOCOPY VARCHAR2
4921 )
4922 RETURN NUMBER
4923 IS
4924 l_component_type       VARCHAR2(80)  ;
4925 l_component_code       VARCHAR2(30)  ;
4926 l_component_type_code  VARCHAR2(1)   ;
4927 l_component_appl_id    INTEGER       ;
4928 l_amb_context_code     VARCHAR2(30)  ;
4929 l_log_module           VARCHAR2(240) ;
4930 l_output_value         NUMBER        ;
4931 BEGIN
4932 IF g_log_enabled THEN
4933       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_32';
4934 END IF;
4935 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4936       trace
4937          (p_msg      => 'BEGIN of AcctDerRule_32'
4938          ,p_level    => C_LEVEL_PROCEDURE
4939          ,p_module   => l_log_module);
4940 END IF;
4941 --
4942 l_component_type         := 'AMB_ADR';
4943 l_component_code         := 'AP_INTEREST';
4944 l_component_type_code    := 'S';
4945 l_component_appl_id      :=  200;
4946 l_amb_context_code       := 'DEFAULT';
4947 x_transaction_coa_id     :=  null;
4948 x_accounting_coa_id      :=  null;
4949 --
4950 
4951  IF NVL(p_source_29,'
4952 ') =  'N'
4953  THEN 
4954  --
4955   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4956       trace
4957          (p_msg      => 'END of AcctDerRule_32'
4958          ,p_level    => C_LEVEL_PROCEDURE
4959          ,p_module   => l_log_module);
4960   END IF;
4961   x_value_type_code := 'S';
4962   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_28));
4963   RETURN l_output_value;
4964 
4965  ELSIF NVL(p_source_29,'
4966 ') =  'Y'
4967  THEN 
4968  --
4969   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4970       trace
4971          (p_msg      => 'END of AcctDerRule_32'
4972          ,p_level    => C_LEVEL_PROCEDURE
4973          ,p_module   => l_log_module);
4974   END IF;
4975   x_value_type_code := 'S';
4976   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_30));
4977   RETURN l_output_value;
4978 
4979  END IF;
4980 --
4981 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4982       trace
4983          (p_msg      => 'END of AcctDerRule_32(invalid)'
4984          ,p_level    => C_LEVEL_PROCEDURE
4985          ,p_module   => l_log_module);
4986 END IF;
4987 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
4988 x_value_type_code := null;
4989 l_output_value    := null;
4990 xla_accounting_err_pkg.build_message
4991                  (p_appli_s_name            => 'XLA'
4992                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
4993                  ,p_token_1                 => 'COMPONENT_NAME'
4994                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
4995                                                             l_component_type
4996                                                           , l_component_code
4997                                                           , l_component_type_code
4998                                                           , l_component_appl_id
4999                                                           , l_amb_context_code
5000                                                           )
5001                  ,p_token_2                 => 'OWNER'
5002                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5003                                                         'XLA_OWNER_TYPE'
5004                                                         ,l_component_type_code
5005                                                         )
5006                  ,p_token_3                 => 'PAD_NAME'
5007                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5008                  ,p_token_4                 => 'PAD_OWNER'
5009                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5010                                                         'XLA_OWNER_TYPE'
5011                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5012                                                         )
5016                  ,p_ae_header_id            => NULL
5013                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5014                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5015                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5017 );
5018 RETURN l_output_value;
5019 EXCEPTION
5020   WHEN xla_exceptions_pkg.application_exception THEN
5021       RAISE;
5022   WHEN OTHERS THEN
5023        xla_exceptions_pkg.raise_message
5024            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_32');
5025 END AcctDerRule_32;
5026 --
5027 
5028 ---------------------------------------
5029 --
5030 -- PRIVATE FUNCTION
5031 --         AcctDerRule_33
5032 --
5033 ---------------------------------------
5034 FUNCTION AcctDerRule_33 (
5035   p_application_id              IN NUMBER
5036 , p_ae_header_id                IN NUMBER
5037 , p_side                        IN VARCHAR2 
5038 --Invoice Distribution Account
5039  , p_source_30            IN NUMBER
5040 , x_transaction_coa_id         OUT NOCOPY NUMBER
5041 , x_accounting_coa_id          OUT NOCOPY NUMBER
5042 , x_value_type_code            OUT NOCOPY VARCHAR2
5043 )
5044 RETURN NUMBER
5045 IS
5046 l_component_type       VARCHAR2(80)  ;
5047 l_component_code       VARCHAR2(30)  ;
5048 l_component_type_code  VARCHAR2(1)   ;
5049 l_component_appl_id    INTEGER       ;
5050 l_amb_context_code     VARCHAR2(30)  ;
5051 l_log_module           VARCHAR2(240) ;
5052 l_output_value         NUMBER        ;
5053 BEGIN
5054 IF g_log_enabled THEN
5055       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_33';
5056 END IF;
5057 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5058       trace
5059          (p_msg      => 'BEGIN of AcctDerRule_33'
5060          ,p_level    => C_LEVEL_PROCEDURE
5061          ,p_module   => l_log_module);
5062 END IF;
5063 --
5064 l_component_type         := 'AMB_ADR';
5065 l_component_code         := 'AP_INVOICE_DIST';
5066 l_component_type_code    := 'S';
5067 l_component_appl_id      :=  200;
5068 l_amb_context_code       := 'DEFAULT';
5069 x_transaction_coa_id     :=  null;
5070 x_accounting_coa_id      :=  null;
5071 --
5072 
5073  --
5074   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5075       trace
5076          (p_msg      => 'END of AcctDerRule_33'
5077          ,p_level    => C_LEVEL_PROCEDURE
5078          ,p_module   => l_log_module);
5079   END IF;
5080   x_value_type_code := 'S';
5081   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_30));
5082   RETURN l_output_value;
5083 
5084 --
5085 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5086       trace
5087          (p_msg      => 'END of AcctDerRule_33(invalid)'
5088          ,p_level    => C_LEVEL_PROCEDURE
5089          ,p_module   => l_log_module);
5090 END IF;
5091 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5092 x_value_type_code := null;
5093 l_output_value    := null;
5094 xla_accounting_err_pkg.build_message
5095                  (p_appli_s_name            => 'XLA'
5096                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5097                  ,p_token_1                 => 'COMPONENT_NAME'
5098                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5099                                                             l_component_type
5100                                                           , l_component_code
5101                                                           , l_component_type_code
5102                                                           , l_component_appl_id
5103                                                           , l_amb_context_code
5104                                                           )
5105                  ,p_token_2                 => 'OWNER'
5106                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5107                                                         'XLA_OWNER_TYPE'
5108                                                         ,l_component_type_code
5109                                                         )
5110                  ,p_token_3                 => 'PAD_NAME'
5111                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5112                  ,p_token_4                 => 'PAD_OWNER'
5113                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5114                                                         'XLA_OWNER_TYPE'
5115                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5116                                                         )
5117                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5118                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5119                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5120                  ,p_ae_header_id            => NULL
5121 );
5122 RETURN l_output_value;
5123 EXCEPTION
5124   WHEN xla_exceptions_pkg.application_exception THEN
5125       RAISE;
5126   WHEN OTHERS THEN
5127        xla_exceptions_pkg.raise_message
5128            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_33');
5129 END AcctDerRule_33;
5130 --
5131 
5132 ---------------------------------------
5133 --
5137 ---------------------------------------
5134 -- PRIVATE FUNCTION
5135 --         AcctDerRule_34
5136 --
5138 FUNCTION AcctDerRule_34 (
5139   p_application_id              IN NUMBER
5140 , p_ae_header_id                IN NUMBER
5141 , p_side                        IN VARCHAR2 
5142 --Invoice Liability Account
5143  , p_source_34            IN NUMBER
5144 , x_transaction_coa_id         OUT NOCOPY NUMBER
5145 , x_accounting_coa_id          OUT NOCOPY NUMBER
5146 , x_value_type_code            OUT NOCOPY VARCHAR2
5147 )
5148 RETURN NUMBER
5149 IS
5150 l_component_type       VARCHAR2(80)  ;
5151 l_component_code       VARCHAR2(30)  ;
5152 l_component_type_code  VARCHAR2(1)   ;
5153 l_component_appl_id    INTEGER       ;
5154 l_amb_context_code     VARCHAR2(30)  ;
5155 l_log_module           VARCHAR2(240) ;
5156 l_output_value         NUMBER        ;
5157 BEGIN
5158 IF g_log_enabled THEN
5159       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_34';
5160 END IF;
5161 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5162       trace
5163          (p_msg      => 'BEGIN of AcctDerRule_34'
5164          ,p_level    => C_LEVEL_PROCEDURE
5165          ,p_module   => l_log_module);
5166 END IF;
5167 --
5168 l_component_type         := 'AMB_ADR';
5169 l_component_code         := 'AP_LIAB';
5170 l_component_type_code    := 'S';
5171 l_component_appl_id      :=  200;
5172 l_amb_context_code       := 'DEFAULT';
5173 x_transaction_coa_id     :=  null;
5174 x_accounting_coa_id      :=  null;
5175 --
5176 
5177  --
5178   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5179       trace
5180          (p_msg      => 'END of AcctDerRule_34'
5181          ,p_level    => C_LEVEL_PROCEDURE
5182          ,p_module   => l_log_module);
5183   END IF;
5184   x_value_type_code := 'S';
5185   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_34));
5186   RETURN l_output_value;
5187 
5188 --
5189 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5190       trace
5191          (p_msg      => 'END of AcctDerRule_34(invalid)'
5192          ,p_level    => C_LEVEL_PROCEDURE
5193          ,p_module   => l_log_module);
5194 END IF;
5195 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5196 x_value_type_code := null;
5197 l_output_value    := null;
5198 xla_accounting_err_pkg.build_message
5199                  (p_appli_s_name            => 'XLA'
5200                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5201                  ,p_token_1                 => 'COMPONENT_NAME'
5202                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5203                                                             l_component_type
5204                                                           , l_component_code
5205                                                           , l_component_type_code
5206                                                           , l_component_appl_id
5207                                                           , l_amb_context_code
5208                                                           )
5209                  ,p_token_2                 => 'OWNER'
5210                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5211                                                         'XLA_OWNER_TYPE'
5212                                                         ,l_component_type_code
5213                                                         )
5214                  ,p_token_3                 => 'PAD_NAME'
5215                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5216                  ,p_token_4                 => 'PAD_OWNER'
5217                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5218                                                         'XLA_OWNER_TYPE'
5219                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5220                                                         )
5221                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5222                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5223                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5224                  ,p_ae_header_id            => NULL
5225 );
5226 RETURN l_output_value;
5227 EXCEPTION
5228   WHEN xla_exceptions_pkg.application_exception THEN
5229       RAISE;
5230   WHEN OTHERS THEN
5231        xla_exceptions_pkg.raise_message
5232            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_34');
5233 END AcctDerRule_34;
5234 --
5235 
5236 ---------------------------------------
5237 --
5238 -- PRIVATE FUNCTION
5239 --         AcctDerRule_35
5240 --
5241 ---------------------------------------
5242 FUNCTION AcctDerRule_35 (
5243   p_application_id              IN NUMBER
5244 , p_ae_header_id                IN NUMBER
5245 , p_side                        IN VARCHAR2 
5246 --Payment Card Accrued Account
5247  , p_source_48            IN NUMBER
5248 , x_transaction_coa_id         OUT NOCOPY NUMBER
5249 , x_accounting_coa_id          OUT NOCOPY NUMBER
5250 , x_value_type_code            OUT NOCOPY VARCHAR2
5251 )
5252 RETURN NUMBER
5253 IS
5254 l_component_type       VARCHAR2(80)  ;
5255 l_component_code       VARCHAR2(30)  ;
5256 l_component_type_code  VARCHAR2(1)   ;
5257 l_component_appl_id    INTEGER       ;
5258 l_amb_context_code     VARCHAR2(30)  ;
5262 IF g_log_enabled THEN
5259 l_log_module           VARCHAR2(240) ;
5260 l_output_value         NUMBER        ;
5261 BEGIN
5263       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_35';
5264 END IF;
5265 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5266       trace
5267          (p_msg      => 'BEGIN of AcctDerRule_35'
5268          ,p_level    => C_LEVEL_PROCEDURE
5269          ,p_module   => l_log_module);
5270 END IF;
5271 --
5272 l_component_type         := 'AMB_ADR';
5273 l_component_code         := 'AP_PAYCARD_ACCRUED_ADR';
5274 l_component_type_code    := 'S';
5275 l_component_appl_id      :=  200;
5276 l_amb_context_code       := 'DEFAULT';
5277 x_transaction_coa_id     :=  null;
5278 x_accounting_coa_id      :=  null;
5279 --
5280 
5281  --
5282   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5283       trace
5284          (p_msg      => 'END of AcctDerRule_35'
5285          ,p_level    => C_LEVEL_PROCEDURE
5286          ,p_module   => l_log_module);
5287   END IF;
5288   x_value_type_code := 'S';
5289   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_48));
5290   RETURN l_output_value;
5291 
5292 --
5293 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5294       trace
5295          (p_msg      => 'END of AcctDerRule_35(invalid)'
5296          ,p_level    => C_LEVEL_PROCEDURE
5297          ,p_module   => l_log_module);
5298 END IF;
5299 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5300 x_value_type_code := null;
5301 l_output_value    := null;
5302 xla_accounting_err_pkg.build_message
5303                  (p_appli_s_name            => 'XLA'
5304                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5305                  ,p_token_1                 => 'COMPONENT_NAME'
5306                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5307                                                             l_component_type
5308                                                           , l_component_code
5309                                                           , l_component_type_code
5310                                                           , l_component_appl_id
5311                                                           , l_amb_context_code
5312                                                           )
5313                  ,p_token_2                 => 'OWNER'
5314                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5315                                                         'XLA_OWNER_TYPE'
5316                                                         ,l_component_type_code
5317                                                         )
5318                  ,p_token_3                 => 'PAD_NAME'
5319                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5320                  ,p_token_4                 => 'PAD_OWNER'
5321                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5322                                                         'XLA_OWNER_TYPE'
5323                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5324                                                         )
5325                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5326                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5327                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5328                  ,p_ae_header_id            => NULL
5329 );
5330 RETURN l_output_value;
5331 EXCEPTION
5332   WHEN xla_exceptions_pkg.application_exception THEN
5333       RAISE;
5334   WHEN OTHERS THEN
5335        xla_exceptions_pkg.raise_message
5336            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_35');
5337 END AcctDerRule_35;
5338 --
5339 
5340 ---------------------------------------
5341 --
5342 -- PRIVATE FUNCTION
5343 --         AcctDerRule_36
5344 --
5345 ---------------------------------------
5346 FUNCTION AcctDerRule_36 (
5347   p_application_id              IN NUMBER
5348 , p_ae_header_id                IN NUMBER
5349 , p_side                        IN VARCHAR2 
5350 --Bank Cash Clearing Account
5351  , p_source_35            IN NUMBER
5352 , x_transaction_coa_id         OUT NOCOPY NUMBER
5353 , x_accounting_coa_id          OUT NOCOPY NUMBER
5354 , x_value_type_code            OUT NOCOPY VARCHAR2
5355 )
5356 RETURN NUMBER
5357 IS
5358 l_component_type       VARCHAR2(80)  ;
5359 l_component_code       VARCHAR2(30)  ;
5360 l_component_type_code  VARCHAR2(1)   ;
5361 l_component_appl_id    INTEGER       ;
5362 l_amb_context_code     VARCHAR2(30)  ;
5363 l_log_module           VARCHAR2(240) ;
5364 l_output_value         NUMBER        ;
5365 BEGIN
5366 IF g_log_enabled THEN
5367       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_36';
5368 END IF;
5369 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5370       trace
5371          (p_msg      => 'BEGIN of AcctDerRule_36'
5372          ,p_level    => C_LEVEL_PROCEDURE
5373          ,p_module   => l_log_module);
5374 END IF;
5375 --
5376 l_component_type         := 'AMB_ADR';
5377 l_component_code         := 'AP_PMT_CASH_CLEAR';
5378 l_component_type_code    := 'S';
5379 l_component_appl_id      :=  200;
5380 l_amb_context_code       := 'DEFAULT';
5381 x_transaction_coa_id     :=  null;
5382 x_accounting_coa_id      :=  null;
5383 --
5384 
5385  --
5386   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5387       trace
5388          (p_msg      => 'END of AcctDerRule_36'
5389          ,p_level    => C_LEVEL_PROCEDURE
5393   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_35));
5390          ,p_module   => l_log_module);
5391   END IF;
5392   x_value_type_code := 'S';
5394   RETURN l_output_value;
5395 
5396 --
5397 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5398       trace
5399          (p_msg      => 'END of AcctDerRule_36(invalid)'
5400          ,p_level    => C_LEVEL_PROCEDURE
5401          ,p_module   => l_log_module);
5402 END IF;
5403 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5404 x_value_type_code := null;
5405 l_output_value    := null;
5406 xla_accounting_err_pkg.build_message
5407                  (p_appli_s_name            => 'XLA'
5408                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5409                  ,p_token_1                 => 'COMPONENT_NAME'
5410                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5411                                                             l_component_type
5412                                                           , l_component_code
5413                                                           , l_component_type_code
5414                                                           , l_component_appl_id
5415                                                           , l_amb_context_code
5416                                                           )
5417                  ,p_token_2                 => 'OWNER'
5418                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5419                                                         'XLA_OWNER_TYPE'
5420                                                         ,l_component_type_code
5421                                                         )
5422                  ,p_token_3                 => 'PAD_NAME'
5423                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5424                  ,p_token_4                 => 'PAD_OWNER'
5425                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5426                                                         'XLA_OWNER_TYPE'
5427                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5428                                                         )
5429                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5430                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5431                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5432                  ,p_ae_header_id            => NULL
5433 );
5434 RETURN l_output_value;
5435 EXCEPTION
5436   WHEN xla_exceptions_pkg.application_exception THEN
5437       RAISE;
5438   WHEN OTHERS THEN
5439        xla_exceptions_pkg.raise_message
5440            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_36');
5441 END AcctDerRule_36;
5442 --
5443 
5444 ---------------------------------------
5445 --
5446 -- PRIVATE FUNCTION
5447 --         AcctDerRule_37
5448 --
5449 ---------------------------------------
5450 FUNCTION AcctDerRule_37 (
5451   p_application_id              IN NUMBER
5452 , p_ae_header_id                IN NUMBER
5453 , p_side                        IN VARCHAR2 
5454 --Invoice Distribution Account
5455  , p_source_30            IN NUMBER
5456 --Prepaid Expense Account Source Option
5457  , p_source_31            IN VARCHAR2
5458  , p_source_31_meaning    IN VARCHAR2
5459 --Purchase Order Number
5460  , p_source_32            IN VARCHAR2
5461 --Invoice Distribution Type
5462  , p_source_33            IN VARCHAR2
5463  , p_source_33_meaning    IN VARCHAR2
5464 --Purchase Order Charge Account
5465  , p_source_45            IN NUMBER
5466 , x_transaction_coa_id         OUT NOCOPY NUMBER
5467 , x_accounting_coa_id          OUT NOCOPY NUMBER
5468 , x_value_type_code            OUT NOCOPY VARCHAR2
5469 )
5470 RETURN NUMBER
5471 IS
5472 l_component_type       VARCHAR2(80)  ;
5473 l_component_code       VARCHAR2(30)  ;
5474 l_component_type_code  VARCHAR2(1)   ;
5475 l_component_appl_id    INTEGER       ;
5476 l_amb_context_code     VARCHAR2(30)  ;
5477 l_log_module           VARCHAR2(240) ;
5478 l_output_value         NUMBER        ;
5479 BEGIN
5480 IF g_log_enabled THEN
5481       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_37';
5482 END IF;
5483 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5484       trace
5485          (p_msg      => 'BEGIN of AcctDerRule_37'
5486          ,p_level    => C_LEVEL_PROCEDURE
5487          ,p_module   => l_log_module);
5488 END IF;
5489 --
5490 l_component_type         := 'AMB_ADR';
5491 l_component_code         := 'AP_PREPAY_INVOICE_DIST';
5492 l_component_type_code    := 'S';
5493 l_component_appl_id      :=  200;
5494 l_amb_context_code       := 'DEFAULT';
5495 x_transaction_coa_id     :=  null;
5496 x_accounting_coa_id      :=  null;
5497 --
5498 
5499  IF NVL(p_source_31,'
5500 ') <>  'Y' OR 
5501 (NVL(p_source_31,'
5502 ') =  'Y' AND 
5503 p_source_32 IS NULL )
5504  THEN 
5505  --
5506   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5507       trace
5508          (p_msg      => 'END of AcctDerRule_37'
5509          ,p_level    => C_LEVEL_PROCEDURE
5510          ,p_module   => l_log_module);
5511   END IF;
5512   x_value_type_code := 'S';
5513   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_30));
5514   RETURN l_output_value;
5515 
5516  ELSIF NVL(p_source_31,'
5517 ') =  'Y' AND 
5518 p_source_32 IS NOT NULL AND 
5519 NVL(p_source_33,'
5523   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5520 ') =  'ITEM'
5521  THEN 
5522  --
5524       trace
5525          (p_msg      => 'END of AcctDerRule_37'
5526          ,p_level    => C_LEVEL_PROCEDURE
5527          ,p_module   => l_log_module);
5528   END IF;
5529   x_value_type_code := 'S';
5530   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_45));
5531   RETURN l_output_value;
5532 
5533  END IF;
5534 --
5535 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5536       trace
5537          (p_msg      => 'END of AcctDerRule_37(invalid)'
5538          ,p_level    => C_LEVEL_PROCEDURE
5539          ,p_module   => l_log_module);
5540 END IF;
5541 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5542 x_value_type_code := null;
5543 l_output_value    := null;
5544 xla_accounting_err_pkg.build_message
5545                  (p_appli_s_name            => 'XLA'
5546                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5547                  ,p_token_1                 => 'COMPONENT_NAME'
5548                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5549                                                             l_component_type
5550                                                           , l_component_code
5551                                                           , l_component_type_code
5552                                                           , l_component_appl_id
5553                                                           , l_amb_context_code
5554                                                           )
5555                  ,p_token_2                 => 'OWNER'
5556                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5557                                                         'XLA_OWNER_TYPE'
5558                                                         ,l_component_type_code
5559                                                         )
5560                  ,p_token_3                 => 'PAD_NAME'
5561                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5562                  ,p_token_4                 => 'PAD_OWNER'
5563                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5564                                                         'XLA_OWNER_TYPE'
5565                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5566                                                         )
5567                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5568                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5569                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5570                  ,p_ae_header_id            => NULL
5571 );
5572 RETURN l_output_value;
5573 EXCEPTION
5574   WHEN xla_exceptions_pkg.application_exception THEN
5575       RAISE;
5576   WHEN OTHERS THEN
5577        xla_exceptions_pkg.raise_message
5578            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_37');
5579 END AcctDerRule_37;
5580 --
5581 
5582 ---------------------------------------
5583 --
5584 -- PRIVATE FUNCTION
5585 --         AcctDerRule_38
5586 --
5587 ---------------------------------------
5588 FUNCTION AcctDerRule_38 (
5589   p_application_id              IN NUMBER
5590 , p_ae_header_id                IN NUMBER
5591 , p_side                        IN VARCHAR2 
5592 --Automatic Offsets Value
5593  , p_source_15            IN VARCHAR2
5594  , p_source_15_meaning    IN VARCHAR2
5595 --Invoice Distribution Account
5596  , p_source_30            IN NUMBER
5597 --Internal Realized Gain Account
5598  , p_source_36            IN NUMBER
5599 --Bank Gain Account
5600  , p_source_37            IN NUMBER
5601 , x_transaction_coa_id         OUT NOCOPY NUMBER
5602 , x_accounting_coa_id          OUT NOCOPY NUMBER
5603 , x_value_type_code            OUT NOCOPY VARCHAR2
5604 )
5605 RETURN NUMBER
5606 IS
5607 l_component_type       VARCHAR2(80)  ;
5608 l_component_code       VARCHAR2(30)  ;
5609 l_component_type_code  VARCHAR2(1)   ;
5610 l_component_appl_id    INTEGER       ;
5611 l_amb_context_code     VARCHAR2(30)  ;
5612 l_log_module           VARCHAR2(240) ;
5613 l_output_value         NUMBER        ;
5614 BEGIN
5615 IF g_log_enabled THEN
5616       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_38';
5617 END IF;
5618 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5619       trace
5620          (p_msg      => 'BEGIN of AcctDerRule_38'
5621          ,p_level    => C_LEVEL_PROCEDURE
5622          ,p_module   => l_log_module);
5623 END IF;
5624 --
5625 l_component_type         := 'AMB_ADR';
5626 l_component_code         := 'AP_REAL_GAIN';
5627 l_component_type_code    := 'S';
5628 l_component_appl_id      :=  200;
5629 l_amb_context_code       := 'DEFAULT';
5630 x_transaction_coa_id     :=  null;
5631 x_accounting_coa_id      :=  null;
5632 --
5633 
5634  IF NVL(p_source_15,'
5635 ') <>  'ACCOUNT_SEGMENT_VALUE'
5636  THEN 
5637  --
5638   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5639       trace
5640          (p_msg      => 'END of AcctDerRule_38'
5641          ,p_level    => C_LEVEL_PROCEDURE
5642          ,p_module   => l_log_module);
5643   END IF;
5644   x_value_type_code := 'S';
5645   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_36));
5646   RETURN l_output_value;
5650  THEN 
5647 
5648  ELSIF NVL(p_source_15,'
5649 ') <>  'ACCOUNT_SEGMENT_VALUE'
5651  --
5652   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5653       trace
5654          (p_msg      => 'END of AcctDerRule_38'
5655          ,p_level    => C_LEVEL_PROCEDURE
5656          ,p_module   => l_log_module);
5657   END IF;
5658   x_value_type_code := 'S';
5659   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_37));
5660   RETURN l_output_value;
5661 
5662  ELSIF NVL(p_source_15,'
5663 ') =  'ACCOUNT_SEGMENT_VALUE'
5664  THEN 
5665  --
5666   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5667       trace
5668          (p_msg      => 'END of AcctDerRule_38'
5669          ,p_level    => C_LEVEL_PROCEDURE
5670          ,p_module   => l_log_module);
5671   END IF;
5672   x_value_type_code := 'S';
5673   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_30));
5674   RETURN l_output_value;
5675 
5676  END IF;
5677 --
5678 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5679       trace
5680          (p_msg      => 'END of AcctDerRule_38(invalid)'
5681          ,p_level    => C_LEVEL_PROCEDURE
5682          ,p_module   => l_log_module);
5683 END IF;
5684 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5685 x_value_type_code := null;
5686 l_output_value    := null;
5687 xla_accounting_err_pkg.build_message
5688                  (p_appli_s_name            => 'XLA'
5689                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5690                  ,p_token_1                 => 'COMPONENT_NAME'
5691                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5692                                                             l_component_type
5693                                                           , l_component_code
5694                                                           , l_component_type_code
5695                                                           , l_component_appl_id
5696                                                           , l_amb_context_code
5697                                                           )
5698                  ,p_token_2                 => 'OWNER'
5699                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5700                                                         'XLA_OWNER_TYPE'
5701                                                         ,l_component_type_code
5702                                                         )
5703                  ,p_token_3                 => 'PAD_NAME'
5704                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5705                  ,p_token_4                 => 'PAD_OWNER'
5706                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5707                                                         'XLA_OWNER_TYPE'
5708                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5709                                                         )
5710                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5711                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5712                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5713                  ,p_ae_header_id            => NULL
5714 );
5715 RETURN l_output_value;
5716 EXCEPTION
5717   WHEN xla_exceptions_pkg.application_exception THEN
5718       RAISE;
5719   WHEN OTHERS THEN
5720        xla_exceptions_pkg.raise_message
5721            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_38');
5722 END AcctDerRule_38;
5723 --
5724 
5725 ---------------------------------------
5726 --
5727 -- PRIVATE FUNCTION
5728 --         AcctDerRule_39
5729 --
5730 ---------------------------------------
5731 FUNCTION AcctDerRule_39 (
5732   p_application_id              IN NUMBER
5733 , p_ae_header_id                IN NUMBER
5734 , p_side                        IN VARCHAR2 
5735 --Automatic Offsets Value
5736  , p_source_15            IN VARCHAR2
5737  , p_source_15_meaning    IN VARCHAR2
5738 --Invoice Distribution Account
5739  , p_source_30            IN NUMBER
5740 --Internal Realized Loss Account
5741  , p_source_38            IN NUMBER
5742 --Bank Loss Account
5743  , p_source_39            IN NUMBER
5744 , x_transaction_coa_id         OUT NOCOPY NUMBER
5745 , x_accounting_coa_id          OUT NOCOPY NUMBER
5746 , x_value_type_code            OUT NOCOPY VARCHAR2
5747 )
5748 RETURN NUMBER
5749 IS
5750 l_component_type       VARCHAR2(80)  ;
5751 l_component_code       VARCHAR2(30)  ;
5752 l_component_type_code  VARCHAR2(1)   ;
5753 l_component_appl_id    INTEGER       ;
5754 l_amb_context_code     VARCHAR2(30)  ;
5755 l_log_module           VARCHAR2(240) ;
5756 l_output_value         NUMBER        ;
5757 BEGIN
5758 IF g_log_enabled THEN
5759       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_39';
5760 END IF;
5761 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5762       trace
5763          (p_msg      => 'BEGIN of AcctDerRule_39'
5764          ,p_level    => C_LEVEL_PROCEDURE
5765          ,p_module   => l_log_module);
5766 END IF;
5767 --
5768 l_component_type         := 'AMB_ADR';
5769 l_component_code         := 'AP_REAL_LOSS';
5770 l_component_type_code    := 'S';
5771 l_component_appl_id      :=  200;
5772 l_amb_context_code       := 'DEFAULT';
5773 x_transaction_coa_id     :=  null;
5777  IF NVL(p_source_15,'
5774 x_accounting_coa_id      :=  null;
5775 --
5776 
5778 ') <>  'ACCOUNT_SEGMENT_VALUE'
5779  THEN 
5780  --
5781   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5782       trace
5783          (p_msg      => 'END of AcctDerRule_39'
5784          ,p_level    => C_LEVEL_PROCEDURE
5785          ,p_module   => l_log_module);
5786   END IF;
5787   x_value_type_code := 'S';
5788   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_38));
5789   RETURN l_output_value;
5790 
5791  ELSIF NVL(p_source_15,'
5792 ') <>  'ACCOUNT_SEGMENT_VALUE'
5793  THEN 
5794  --
5795   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5796       trace
5797          (p_msg      => 'END of AcctDerRule_39'
5798          ,p_level    => C_LEVEL_PROCEDURE
5799          ,p_module   => l_log_module);
5800   END IF;
5801   x_value_type_code := 'S';
5802   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_39));
5803   RETURN l_output_value;
5804 
5805  ELSIF NVL(p_source_15,'
5806 ') =  'ACCOUNT_SEGMENT_VALUE'
5807  THEN 
5808  --
5809   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5810       trace
5811          (p_msg      => 'END of AcctDerRule_39'
5812          ,p_level    => C_LEVEL_PROCEDURE
5813          ,p_module   => l_log_module);
5814   END IF;
5815   x_value_type_code := 'S';
5816   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_30));
5817   RETURN l_output_value;
5818 
5819  END IF;
5820 --
5821 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5822       trace
5823          (p_msg      => 'END of AcctDerRule_39(invalid)'
5824          ,p_level    => C_LEVEL_PROCEDURE
5825          ,p_module   => l_log_module);
5826 END IF;
5827 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5828 x_value_type_code := null;
5829 l_output_value    := null;
5830 xla_accounting_err_pkg.build_message
5831                  (p_appli_s_name            => 'XLA'
5832                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5833                  ,p_token_1                 => 'COMPONENT_NAME'
5834                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5835                                                             l_component_type
5836                                                           , l_component_code
5837                                                           , l_component_type_code
5838                                                           , l_component_appl_id
5839                                                           , l_amb_context_code
5840                                                           )
5841                  ,p_token_2                 => 'OWNER'
5842                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5843                                                         'XLA_OWNER_TYPE'
5844                                                         ,l_component_type_code
5845                                                         )
5846                  ,p_token_3                 => 'PAD_NAME'
5847                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5848                  ,p_token_4                 => 'PAD_OWNER'
5849                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5850                                                         'XLA_OWNER_TYPE'
5851                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5852                                                         )
5853                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5854                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5855                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5856                  ,p_ae_header_id            => NULL
5857 );
5858 RETURN l_output_value;
5859 EXCEPTION
5860   WHEN xla_exceptions_pkg.application_exception THEN
5861       RAISE;
5862   WHEN OTHERS THEN
5863        xla_exceptions_pkg.raise_message
5864            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_39');
5865 END AcctDerRule_39;
5866 --
5867 
5868 ---------------------------------------
5869 --
5870 -- PRIVATE FUNCTION
5871 --         AcctDerRule_40
5872 --
5873 ---------------------------------------
5874 FUNCTION AcctDerRule_40 (
5875   p_application_id              IN NUMBER
5876 , p_ae_header_id                IN NUMBER
5877 , p_side                        IN VARCHAR2 
5878 --Automatic Offsets Value
5879  , p_source_15            IN VARCHAR2
5880  , p_source_15_meaning    IN VARCHAR2
5881 --Invoice Distribution Account
5882  , p_source_30            IN NUMBER
5883 --Retainage Related Item Distribution Account
5884  , p_source_42            IN NUMBER
5885 , x_transaction_coa_id         OUT NOCOPY NUMBER
5886 , x_accounting_coa_id          OUT NOCOPY NUMBER
5887 , x_value_type_code            OUT NOCOPY VARCHAR2
5888 )
5889 RETURN NUMBER
5890 IS
5891 l_component_type       VARCHAR2(80)  ;
5892 l_component_code       VARCHAR2(30)  ;
5893 l_component_type_code  VARCHAR2(1)   ;
5894 l_component_appl_id    INTEGER       ;
5895 l_amb_context_code     VARCHAR2(30)  ;
5896 l_log_module           VARCHAR2(240) ;
5897 l_output_value         NUMBER        ;
5898 BEGIN
5899 IF g_log_enabled THEN
5900       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_40';
5901 END IF;
5905          ,p_level    => C_LEVEL_PROCEDURE
5902 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5903       trace
5904          (p_msg      => 'BEGIN of AcctDerRule_40'
5906          ,p_module   => l_log_module);
5907 END IF;
5908 --
5909 l_component_type         := 'AMB_ADR';
5910 l_component_code         := 'AP_RETAINAGE';
5911 l_component_type_code    := 'S';
5912 l_component_appl_id      :=  200;
5913 l_amb_context_code       := 'DEFAULT';
5914 x_transaction_coa_id     :=  null;
5915 x_accounting_coa_id      :=  null;
5916 --
5917 
5918  IF NVL(p_source_15,'
5919 ') <>  'ACCOUNT_SEGMENT_VALUE'
5920  THEN 
5921  --
5922   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5923       trace
5924          (p_msg      => 'END of AcctDerRule_40'
5925          ,p_level    => C_LEVEL_PROCEDURE
5926          ,p_module   => l_log_module);
5927   END IF;
5928   x_value_type_code := 'S';
5929   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_30));
5930   RETURN l_output_value;
5931 
5932  ELSIF NVL(p_source_15,'
5933 ') =  'ACCOUNT_SEGMENT_VALUE'
5934  THEN 
5935  --
5936   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5937       trace
5938          (p_msg      => 'END of AcctDerRule_40'
5939          ,p_level    => C_LEVEL_PROCEDURE
5940          ,p_module   => l_log_module);
5941   END IF;
5942   x_value_type_code := 'S';
5943   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_42));
5944   RETURN l_output_value;
5945 
5946  END IF;
5947 --
5948 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5949       trace
5950          (p_msg      => 'END of AcctDerRule_40(invalid)'
5951          ,p_level    => C_LEVEL_PROCEDURE
5952          ,p_module   => l_log_module);
5953 END IF;
5954 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
5955 x_value_type_code := null;
5956 l_output_value    := null;
5957 xla_accounting_err_pkg.build_message
5958                  (p_appli_s_name            => 'XLA'
5959                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
5960                  ,p_token_1                 => 'COMPONENT_NAME'
5961                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
5962                                                             l_component_type
5963                                                           , l_component_code
5964                                                           , l_component_type_code
5965                                                           , l_component_appl_id
5966                                                           , l_amb_context_code
5967                                                           )
5968                  ,p_token_2                 => 'OWNER'
5969                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
5970                                                         'XLA_OWNER_TYPE'
5971                                                         ,l_component_type_code
5972                                                         )
5973                  ,p_token_3                 => 'PAD_NAME'
5974                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
5975                  ,p_token_4                 => 'PAD_OWNER'
5976                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
5977                                                         'XLA_OWNER_TYPE'
5978                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
5979                                                         )
5980                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
5981                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
5982                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
5983                  ,p_ae_header_id            => NULL
5984 );
5985 RETURN l_output_value;
5986 EXCEPTION
5987   WHEN xla_exceptions_pkg.application_exception THEN
5988       RAISE;
5989   WHEN OTHERS THEN
5990        xla_exceptions_pkg.raise_message
5991            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_40');
5992 END AcctDerRule_40;
5993 --
5994 
5995 ---------------------------------------
5996 --
5997 -- PRIVATE FUNCTION
5998 --         AcctDerRule_41
5999 --
6000 ---------------------------------------
6001 FUNCTION AcctDerRule_41 (
6002   p_application_id              IN NUMBER
6003 , p_ae_header_id                IN NUMBER
6004 , p_side                        IN VARCHAR2 
6005 --Automatic Offsets Value
6006  , p_source_15            IN VARCHAR2
6007  , p_source_15_meaning    IN VARCHAR2
6008 --Invoice Distribution Account
6009  , p_source_30            IN NUMBER
6010 --Payables Options Rounding Account
6011  , p_source_49            IN NUMBER
6012 , x_transaction_coa_id         OUT NOCOPY NUMBER
6013 , x_accounting_coa_id          OUT NOCOPY NUMBER
6014 , x_value_type_code            OUT NOCOPY VARCHAR2
6015 )
6016 RETURN NUMBER
6017 IS
6018 l_component_type       VARCHAR2(80)  ;
6019 l_component_code       VARCHAR2(30)  ;
6020 l_component_type_code  VARCHAR2(1)   ;
6021 l_component_appl_id    INTEGER       ;
6022 l_amb_context_code     VARCHAR2(30)  ;
6023 l_log_module           VARCHAR2(240) ;
6024 l_output_value         NUMBER        ;
6025 BEGIN
6026 IF g_log_enabled THEN
6027       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_41';
6028 END IF;
6032          ,p_level    => C_LEVEL_PROCEDURE
6029 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6030       trace
6031          (p_msg      => 'BEGIN of AcctDerRule_41'
6033          ,p_module   => l_log_module);
6034 END IF;
6035 --
6036 l_component_type         := 'AMB_ADR';
6037 l_component_code         := 'AP_ROUNDING';
6038 l_component_type_code    := 'S';
6039 l_component_appl_id      :=  200;
6040 l_amb_context_code       := 'DEFAULT';
6041 x_transaction_coa_id     :=  null;
6042 x_accounting_coa_id      :=  null;
6043 --
6044 
6045  IF NVL(p_source_15,'
6046 ') <>  'ACCOUNT_SEGMENT_VALUE'
6047  THEN 
6048  --
6049   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6050       trace
6051          (p_msg      => 'END of AcctDerRule_41'
6052          ,p_level    => C_LEVEL_PROCEDURE
6053          ,p_module   => l_log_module);
6054   END IF;
6055   x_value_type_code := 'S';
6056   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_49));
6057   RETURN l_output_value;
6058 
6059  ELSIF NVL(p_source_15,'
6060 ') =  'ACCOUNT_SEGMENT_VALUE'
6061  THEN 
6062  --
6063   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6064       trace
6065          (p_msg      => 'END of AcctDerRule_41'
6066          ,p_level    => C_LEVEL_PROCEDURE
6067          ,p_module   => l_log_module);
6068   END IF;
6069   x_value_type_code := 'S';
6070   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_30));
6071   RETURN l_output_value;
6072 
6073  END IF;
6074 --
6075 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6076       trace
6077          (p_msg      => 'END of AcctDerRule_41(invalid)'
6078          ,p_level    => C_LEVEL_PROCEDURE
6079          ,p_module   => l_log_module);
6080 END IF;
6081 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
6082 x_value_type_code := null;
6083 l_output_value    := null;
6084 xla_accounting_err_pkg.build_message
6085                  (p_appli_s_name            => 'XLA'
6086                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
6087                  ,p_token_1                 => 'COMPONENT_NAME'
6088                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
6089                                                             l_component_type
6090                                                           , l_component_code
6091                                                           , l_component_type_code
6092                                                           , l_component_appl_id
6093                                                           , l_amb_context_code
6094                                                           )
6095                  ,p_token_2                 => 'OWNER'
6096                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
6097                                                         'XLA_OWNER_TYPE'
6098                                                         ,l_component_type_code
6099                                                         )
6100                  ,p_token_3                 => 'PAD_NAME'
6101                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
6102                  ,p_token_4                 => 'PAD_OWNER'
6103                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
6104                                                         'XLA_OWNER_TYPE'
6105                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
6106                                                         )
6107                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
6108                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
6109                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
6110                  ,p_ae_header_id            => NULL
6111 );
6112 RETURN l_output_value;
6113 EXCEPTION
6114   WHEN xla_exceptions_pkg.application_exception THEN
6115       RAISE;
6116   WHEN OTHERS THEN
6117        xla_exceptions_pkg.raise_message
6118            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_41');
6119 END AcctDerRule_41;
6120 --
6121 
6122 ---------------------------------------
6123 --
6124 -- PRIVATE FUNCTION
6125 --         AcctDerRule_42
6126 --
6127 ---------------------------------------
6128 FUNCTION AcctDerRule_42 (
6129   p_application_id              IN NUMBER
6130 , p_ae_header_id                IN NUMBER
6131 , p_side                        IN VARCHAR2 
6132 --Self-Assessed Tax Account
6133  , p_source_50            IN NUMBER
6134 , x_transaction_coa_id         OUT NOCOPY NUMBER
6135 , x_accounting_coa_id          OUT NOCOPY NUMBER
6136 , x_value_type_code            OUT NOCOPY VARCHAR2
6137 )
6138 RETURN NUMBER
6139 IS
6140 l_component_type       VARCHAR2(80)  ;
6141 l_component_code       VARCHAR2(30)  ;
6142 l_component_type_code  VARCHAR2(1)   ;
6143 l_component_appl_id    INTEGER       ;
6144 l_amb_context_code     VARCHAR2(30)  ;
6145 l_log_module           VARCHAR2(240) ;
6146 l_output_value         NUMBER        ;
6147 BEGIN
6148 IF g_log_enabled THEN
6149       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_42';
6150 END IF;
6151 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6152       trace
6153          (p_msg      => 'BEGIN of AcctDerRule_42'
6154          ,p_level    => C_LEVEL_PROCEDURE
6155          ,p_module   => l_log_module);
6159 l_component_code         := 'AP_SELF_ASSESSED_TAX';
6156 END IF;
6157 --
6158 l_component_type         := 'AMB_ADR';
6160 l_component_type_code    := 'S';
6161 l_component_appl_id      :=  200;
6162 l_amb_context_code       := 'DEFAULT';
6163 x_transaction_coa_id     :=  null;
6164 x_accounting_coa_id      :=  null;
6165 --
6166 
6167  --
6168   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6169       trace
6170          (p_msg      => 'END of AcctDerRule_42'
6171          ,p_level    => C_LEVEL_PROCEDURE
6172          ,p_module   => l_log_module);
6173   END IF;
6174   x_value_type_code := 'S';
6175   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_50));
6176   RETURN l_output_value;
6177 
6178 --
6179 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6180       trace
6181          (p_msg      => 'END of AcctDerRule_42(invalid)'
6182          ,p_level    => C_LEVEL_PROCEDURE
6183          ,p_module   => l_log_module);
6184 END IF;
6185 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
6186 x_value_type_code := null;
6187 l_output_value    := null;
6188 xla_accounting_err_pkg.build_message
6189                  (p_appli_s_name            => 'XLA'
6190                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
6191                  ,p_token_1                 => 'COMPONENT_NAME'
6192                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
6193                                                             l_component_type
6194                                                           , l_component_code
6195                                                           , l_component_type_code
6196                                                           , l_component_appl_id
6197                                                           , l_amb_context_code
6198                                                           )
6199                  ,p_token_2                 => 'OWNER'
6200                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
6201                                                         'XLA_OWNER_TYPE'
6202                                                         ,l_component_type_code
6203                                                         )
6204                  ,p_token_3                 => 'PAD_NAME'
6205                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
6206                  ,p_token_4                 => 'PAD_OWNER'
6207                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
6208                                                         'XLA_OWNER_TYPE'
6209                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
6210                                                         )
6211                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
6212                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
6213                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
6214                  ,p_ae_header_id            => NULL
6215 );
6216 RETURN l_output_value;
6217 EXCEPTION
6218   WHEN xla_exceptions_pkg.application_exception THEN
6219       RAISE;
6220   WHEN OTHERS THEN
6221        xla_exceptions_pkg.raise_message
6222            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_42');
6223 END AcctDerRule_42;
6224 --
6225 
6226 ---------------------------------------
6227 --
6228 -- PRIVATE FUNCTION
6229 --         AcctDerRule_43
6230 --
6231 ---------------------------------------
6232 FUNCTION AcctDerRule_43 (
6233   p_application_id              IN NUMBER
6234 , p_ae_header_id                IN NUMBER
6235 , p_side                        IN VARCHAR2 
6236 --Self-Assessed Tax Liability Account
6237  , p_source_51            IN NUMBER
6238 , x_transaction_coa_id         OUT NOCOPY NUMBER
6239 , x_accounting_coa_id          OUT NOCOPY NUMBER
6240 , x_value_type_code            OUT NOCOPY VARCHAR2
6241 )
6242 RETURN NUMBER
6243 IS
6244 l_component_type       VARCHAR2(80)  ;
6245 l_component_code       VARCHAR2(30)  ;
6246 l_component_type_code  VARCHAR2(1)   ;
6247 l_component_appl_id    INTEGER       ;
6248 l_amb_context_code     VARCHAR2(30)  ;
6249 l_log_module           VARCHAR2(240) ;
6250 l_output_value         NUMBER        ;
6251 BEGIN
6252 IF g_log_enabled THEN
6253       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_43';
6254 END IF;
6255 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6256       trace
6257          (p_msg      => 'BEGIN of AcctDerRule_43'
6258          ,p_level    => C_LEVEL_PROCEDURE
6259          ,p_module   => l_log_module);
6260 END IF;
6261 --
6262 l_component_type         := 'AMB_ADR';
6263 l_component_code         := 'AP_SELF_ASSESSED_TAX_LIAB';
6264 l_component_type_code    := 'S';
6265 l_component_appl_id      :=  200;
6266 l_amb_context_code       := 'DEFAULT';
6267 x_transaction_coa_id     :=  null;
6268 x_accounting_coa_id      :=  null;
6269 --
6270 
6271  --
6272   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6273       trace
6274          (p_msg      => 'END of AcctDerRule_43'
6275          ,p_level    => C_LEVEL_PROCEDURE
6276          ,p_module   => l_log_module);
6277   END IF;
6278   x_value_type_code := 'S';
6282 --
6279   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_51));
6280   RETURN l_output_value;
6281 
6283 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6284       trace
6285          (p_msg      => 'END of AcctDerRule_43(invalid)'
6286          ,p_level    => C_LEVEL_PROCEDURE
6287          ,p_module   => l_log_module);
6288 END IF;
6289 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
6290 x_value_type_code := null;
6291 l_output_value    := null;
6292 xla_accounting_err_pkg.build_message
6293                  (p_appli_s_name            => 'XLA'
6294                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
6295                  ,p_token_1                 => 'COMPONENT_NAME'
6296                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
6297                                                             l_component_type
6298                                                           , l_component_code
6299                                                           , l_component_type_code
6300                                                           , l_component_appl_id
6301                                                           , l_amb_context_code
6302                                                           )
6303                  ,p_token_2                 => 'OWNER'
6304                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
6305                                                         'XLA_OWNER_TYPE'
6306                                                         ,l_component_type_code
6307                                                         )
6308                  ,p_token_3                 => 'PAD_NAME'
6309                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
6310                  ,p_token_4                 => 'PAD_OWNER'
6311                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
6312                                                         'XLA_OWNER_TYPE'
6313                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
6314                                                         )
6315                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
6316                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
6317                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
6318                  ,p_ae_header_id            => NULL
6319 );
6320 RETURN l_output_value;
6321 EXCEPTION
6322   WHEN xla_exceptions_pkg.application_exception THEN
6323       RAISE;
6324   WHEN OTHERS THEN
6325        xla_exceptions_pkg.raise_message
6326            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_43');
6327 END AcctDerRule_43;
6328 --
6329 
6330 ---------------------------------------
6331 --
6332 -- PRIVATE FUNCTION
6333 --         AcctDerRule_44
6334 --
6335 ---------------------------------------
6336 FUNCTION AcctDerRule_44 (
6337   p_application_id              IN NUMBER
6338 , p_ae_header_id                IN NUMBER
6339 , p_side                        IN VARCHAR2 
6340 --Recoverable Tax Account
6341  , p_source_52            IN NUMBER
6342 , x_transaction_coa_id         OUT NOCOPY NUMBER
6343 , x_accounting_coa_id          OUT NOCOPY NUMBER
6344 , x_value_type_code            OUT NOCOPY VARCHAR2
6345 )
6346 RETURN NUMBER
6347 IS
6348 l_component_type       VARCHAR2(80)  ;
6349 l_component_code       VARCHAR2(30)  ;
6350 l_component_type_code  VARCHAR2(1)   ;
6351 l_component_appl_id    INTEGER       ;
6352 l_amb_context_code     VARCHAR2(30)  ;
6353 l_log_module           VARCHAR2(240) ;
6354 l_output_value         NUMBER        ;
6355 BEGIN
6356 IF g_log_enabled THEN
6357       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_44';
6358 END IF;
6359 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6360       trace
6361          (p_msg      => 'BEGIN of AcctDerRule_44'
6362          ,p_level    => C_LEVEL_PROCEDURE
6363          ,p_module   => l_log_module);
6364 END IF;
6365 --
6366 l_component_type         := 'AMB_ADR';
6367 l_component_code         := 'AP_TAX_ACCOUNT';
6368 l_component_type_code    := 'S';
6369 l_component_appl_id      :=  200;
6370 l_amb_context_code       := 'DEFAULT';
6371 x_transaction_coa_id     :=  null;
6372 x_accounting_coa_id      :=  null;
6373 --
6374 
6375  --
6376   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6377       trace
6378          (p_msg      => 'END of AcctDerRule_44'
6379          ,p_level    => C_LEVEL_PROCEDURE
6380          ,p_module   => l_log_module);
6381   END IF;
6382   x_value_type_code := 'S';
6383   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_52));
6384   RETURN l_output_value;
6385 
6386 --
6387 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6388       trace
6389          (p_msg      => 'END of AcctDerRule_44(invalid)'
6390          ,p_level    => C_LEVEL_PROCEDURE
6391          ,p_module   => l_log_module);
6392 END IF;
6393 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
6394 x_value_type_code := null;
6395 l_output_value    := null;
6396 xla_accounting_err_pkg.build_message
6397                  (p_appli_s_name            => 'XLA'
6398                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
6399                  ,p_token_1                 => 'COMPONENT_NAME'
6403                                                           , l_component_type_code
6400                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
6401                                                             l_component_type
6402                                                           , l_component_code
6404                                                           , l_component_appl_id
6405                                                           , l_amb_context_code
6406                                                           )
6407                  ,p_token_2                 => 'OWNER'
6408                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
6409                                                         'XLA_OWNER_TYPE'
6410                                                         ,l_component_type_code
6411                                                         )
6412                  ,p_token_3                 => 'PAD_NAME'
6413                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
6414                  ,p_token_4                 => 'PAD_OWNER'
6415                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
6416                                                         'XLA_OWNER_TYPE'
6417                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
6418                                                         )
6419                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
6420                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
6421                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
6422                  ,p_ae_header_id            => NULL
6423 );
6424 RETURN l_output_value;
6425 EXCEPTION
6426   WHEN xla_exceptions_pkg.application_exception THEN
6427       RAISE;
6428   WHEN OTHERS THEN
6429        xla_exceptions_pkg.raise_message
6430            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_44');
6431 END AcctDerRule_44;
6432 --
6433 
6434 ---------------------------------------
6435 --
6436 -- PRIVATE FUNCTION
6437 --         AcctDerRule_45
6438 --
6439 ---------------------------------------
6440 FUNCTION AcctDerRule_45 (
6441   p_application_id              IN NUMBER
6442 , p_ae_header_id                IN NUMBER
6443 , p_side                        IN VARCHAR2 
6444 --Automatic Offsets Value
6445  , p_source_15            IN VARCHAR2
6446  , p_source_15_meaning    IN VARCHAR2
6447 --Invoice Distribution Account
6448  , p_source_30            IN NUMBER
6449 --Payables Options Tax Difference Account
6450  , p_source_41            IN NUMBER
6451 , x_transaction_coa_id         OUT NOCOPY NUMBER
6452 , x_accounting_coa_id          OUT NOCOPY NUMBER
6453 , x_value_type_code            OUT NOCOPY VARCHAR2
6454 )
6455 RETURN NUMBER
6456 IS
6457 l_component_type       VARCHAR2(80)  ;
6458 l_component_code       VARCHAR2(30)  ;
6459 l_component_type_code  VARCHAR2(1)   ;
6460 l_component_appl_id    INTEGER       ;
6461 l_amb_context_code     VARCHAR2(30)  ;
6462 l_log_module           VARCHAR2(240) ;
6463 l_output_value         NUMBER        ;
6464 BEGIN
6465 IF g_log_enabled THEN
6466       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_45';
6467 END IF;
6468 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6469       trace
6470          (p_msg      => 'BEGIN of AcctDerRule_45'
6471          ,p_level    => C_LEVEL_PROCEDURE
6472          ,p_module   => l_log_module);
6473 END IF;
6474 --
6475 l_component_type         := 'AMB_ADR';
6476 l_component_code         := 'AP_TAX_DIFFERENCE';
6477 l_component_type_code    := 'S';
6478 l_component_appl_id      :=  200;
6479 l_amb_context_code       := 'DEFAULT';
6480 x_transaction_coa_id     :=  null;
6481 x_accounting_coa_id      :=  null;
6482 --
6483 
6484  IF NVL(p_source_15,'
6485 ') <>  'ACCOUNT_SEGMENT_VALUE'
6486  THEN 
6487  --
6488   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6489       trace
6490          (p_msg      => 'END of AcctDerRule_45'
6491          ,p_level    => C_LEVEL_PROCEDURE
6492          ,p_module   => l_log_module);
6493   END IF;
6494   x_value_type_code := 'S';
6495   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_41));
6496   RETURN l_output_value;
6497 
6498  ELSIF NVL(p_source_15,'
6499 ') =  'ACCOUNT_SEGMENT_VALUE'
6500  THEN 
6501  --
6502   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6503       trace
6504          (p_msg      => 'END of AcctDerRule_45'
6505          ,p_level    => C_LEVEL_PROCEDURE
6506          ,p_module   => l_log_module);
6507   END IF;
6508   x_value_type_code := 'S';
6509   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_30));
6510   RETURN l_output_value;
6511 
6512  END IF;
6513 --
6514 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6515       trace
6516          (p_msg      => 'END of AcctDerRule_45(invalid)'
6517          ,p_level    => C_LEVEL_PROCEDURE
6518          ,p_module   => l_log_module);
6519 END IF;
6520 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
6521 x_value_type_code := null;
6522 l_output_value    := null;
6523 xla_accounting_err_pkg.build_message
6524                  (p_appli_s_name            => 'XLA'
6525                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
6529                                                           , l_component_code
6526                  ,p_token_1                 => 'COMPONENT_NAME'
6527                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
6528                                                             l_component_type
6530                                                           , l_component_type_code
6531                                                           , l_component_appl_id
6532                                                           , l_amb_context_code
6533                                                           )
6534                  ,p_token_2                 => 'OWNER'
6535                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
6536                                                         'XLA_OWNER_TYPE'
6537                                                         ,l_component_type_code
6538                                                         )
6539                  ,p_token_3                 => 'PAD_NAME'
6540                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
6541                  ,p_token_4                 => 'PAD_OWNER'
6542                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
6543                                                         'XLA_OWNER_TYPE'
6544                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
6545                                                         )
6546                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
6547                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
6548                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
6549                  ,p_ae_header_id            => NULL
6550 );
6551 RETURN l_output_value;
6552 EXCEPTION
6553   WHEN xla_exceptions_pkg.application_exception THEN
6554       RAISE;
6555   WHEN OTHERS THEN
6556        xla_exceptions_pkg.raise_message
6557            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_45');
6558 END AcctDerRule_45;
6559 --
6560 
6561 ---------------------------------------
6562 --
6563 -- PRIVATE FUNCTION
6564 --         AcctDerRule_46
6565 --
6566 ---------------------------------------
6567 FUNCTION AcctDerRule_46 (
6568   p_application_id              IN NUMBER
6569 , p_ae_header_id                IN NUMBER
6570 , p_side                        IN VARCHAR2 
6571 --Automatic Offsets Value
6572  , p_source_15            IN VARCHAR2
6573  , p_source_15_meaning    IN VARCHAR2
6574 --Invoice Distribution Account
6575  , p_source_30            IN NUMBER
6576 --Withholding Related Distribution Account
6577  , p_source_43            IN NUMBER
6578 , x_transaction_coa_id         OUT NOCOPY NUMBER
6579 , x_accounting_coa_id          OUT NOCOPY NUMBER
6580 , x_value_type_code            OUT NOCOPY VARCHAR2
6581 )
6582 RETURN NUMBER
6583 IS
6584 l_component_type       VARCHAR2(80)  ;
6585 l_component_code       VARCHAR2(30)  ;
6586 l_component_type_code  VARCHAR2(1)   ;
6587 l_component_appl_id    INTEGER       ;
6588 l_amb_context_code     VARCHAR2(30)  ;
6589 l_log_module           VARCHAR2(240) ;
6590 l_output_value         NUMBER        ;
6591 BEGIN
6592 IF g_log_enabled THEN
6593       l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_46';
6594 END IF;
6595 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6596       trace
6597          (p_msg      => 'BEGIN of AcctDerRule_46'
6598          ,p_level    => C_LEVEL_PROCEDURE
6599          ,p_module   => l_log_module);
6600 END IF;
6601 --
6602 l_component_type         := 'AMB_ADR';
6603 l_component_code         := 'AP_WH_DIST_ACCT';
6604 l_component_type_code    := 'S';
6605 l_component_appl_id      :=  200;
6606 l_amb_context_code       := 'DEFAULT';
6607 x_transaction_coa_id     :=  null;
6608 x_accounting_coa_id      :=  null;
6609 --
6610 
6611  IF NVL(p_source_15,'
6612 ') <>  'ACCOUNT_SEGMENT_VALUE'
6613  THEN 
6614  --
6615   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6616       trace
6617          (p_msg      => 'END of AcctDerRule_46'
6618          ,p_level    => C_LEVEL_PROCEDURE
6619          ,p_module   => l_log_module);
6620   END IF;
6621   x_value_type_code := 'S';
6622   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_30));
6623   RETURN l_output_value;
6624 
6625  ELSIF NVL(p_source_15,'
6626 ') =  'ACCOUNT_SEGMENT_VALUE'
6627  THEN 
6628  --
6629   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6630       trace
6631          (p_msg      => 'END of AcctDerRule_46'
6632          ,p_level    => C_LEVEL_PROCEDURE
6633          ,p_module   => l_log_module);
6634   END IF;
6635   x_value_type_code := 'S';
6636   l_output_value    := TO_NUMBER(TO_NUMBER(p_source_43));
6637   RETURN l_output_value;
6638 
6639  END IF;
6640 --
6641 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6642       trace
6643          (p_msg      => 'END of AcctDerRule_46(invalid)'
6644          ,p_level    => C_LEVEL_PROCEDURE
6645          ,p_module   => l_log_module);
6646 END IF;
6647 xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
6648 x_value_type_code := null;
6649 l_output_value    := null;
6650 xla_accounting_err_pkg.build_message
6651                  (p_appli_s_name            => 'XLA'
6655                                                             l_component_type
6652                  ,p_msg_name                => 'XLA_AP_INVALID_ADR'
6653                  ,p_token_1                 => 'COMPONENT_NAME'
6654                  ,p_value_1                 => xla_ae_sources_pkg.GetComponentName (
6656                                                           , l_component_code
6657                                                           , l_component_type_code
6658                                                           , l_component_appl_id
6659                                                           , l_amb_context_code
6660                                                           )
6661                  ,p_token_2                 => 'OWNER'
6662                  ,p_value_2                 => xla_lookups_pkg.get_meaning(
6663                                                         'XLA_OWNER_TYPE'
6664                                                         ,l_component_type_code
6665                                                         )
6666                  ,p_token_3                 => 'PAD_NAME'
6667                  ,p_value_3                 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
6668                  ,p_token_4                 => 'PAD_OWNER'
6669                  ,p_value_4                 => xla_lookups_pkg.get_meaning(
6670                                                         'XLA_OWNER_TYPE'
6671                                                         ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
6672                                                         )
6673                  ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
6674                  ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
6675                  ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
6676                  ,p_ae_header_id            => NULL
6677 );
6678 RETURN l_output_value;
6679 EXCEPTION
6680   WHEN xla_exceptions_pkg.application_exception THEN
6681       RAISE;
6682   WHEN OTHERS THEN
6683        xla_exceptions_pkg.raise_message
6684            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctDerRule_46');
6685 END AcctDerRule_46;
6686 --
6687 
6688 ---------------------------------------
6689 --
6690 -- PRIVATE FUNCTION
6691 --         AcctLineType_47
6692 --
6693 ---------------------------------------
6694 PROCEDURE AcctLineType_47 (
6695   p_application_id        IN NUMBER
6696  ,p_event_id              IN NUMBER
6697  ,p_calculate_acctd_flag  IN VARCHAR2
6698  ,p_calculate_g_l_flag    IN VARCHAR2
6699  ,p_actual_flag           IN OUT VARCHAR2
6700  ,p_balance_type_code     OUT VARCHAR2
6701  ,p_gain_or_loss_ref      OUT VARCHAR2
6702  
6703 --Invoice Distribution Description
6704  , p_source_1            IN VARCHAR2
6705 --Invoice Distribution Ledger Amount
6706  , p_source_21            IN NUMBER
6707 --Invoice Distribution Account
6708  , p_source_30            IN NUMBER
6709 --Invoice Distribution Type
6710  , p_source_33            IN VARCHAR2
6711  , p_source_33_meaning    IN VARCHAR2
6712 --Accounting Reversal Indicator
6713  , p_source_53            IN VARCHAR2
6714 --Distribution Link Type
6715  , p_source_55            IN VARCHAR2
6716 --Allocation to Main Distribution Identifier
6717  , p_source_57            IN NUMBER
6718 --Invoice Identifier
6719  , p_source_58            IN NUMBER
6720 --Business Flow Purchasing Application Identifier
6721  , p_source_59            IN NUMBER
6722 --Business Flow Purchase Order Distribution Type
6723  , p_source_60            IN VARCHAR2
6724 --Business Flow Purchase Order Entity Code
6725  , p_source_61            IN VARCHAR2
6726 --Business Flow Purchase Order Distribution Identifier
6727  , p_source_62            IN NUMBER
6728 --Business Flow Purchasing Document Identifier
6729  , p_source_63            IN NUMBER
6730 --Invoice Distribution Identifier
6731  , p_source_64            IN NUMBER
6732 --Payables Encumbrance Upgrade Credit Account
6733  , p_source_65            IN NUMBER
6734 --Payables Encumbrance Upgrade Credit Amount
6735  , p_source_66            IN NUMBER
6736 --Invoice Currency Code
6737  , p_source_67            IN VARCHAR2
6738 --Payables Encumbrance Upgrade Credit Base Amount
6739  , p_source_68            IN NUMBER
6740 --Payables Encumbrance Upgrade Debit Account
6741  , p_source_69            IN NUMBER
6742 --Payables Encumbrance Upgrade Debit Amount
6743  , p_source_70            IN NUMBER
6744 --Payables Encumbrance Upgrade Debit Base Amount
6745  , p_source_71            IN NUMBER
6746 --Payables Encumbrance Upgrade Option
6747  , p_source_72            IN VARCHAR2
6748 --Invoice Distribution Amount
6749  , p_source_73            IN NUMBER
6750 --Purchase Order Exchange Rate Date
6751  , p_source_74            IN DATE
6752 --Purchase Order Exchange Rate
6753  , p_source_75            IN NUMBER
6754 --Purchase Order Exchange Rate Type
6755  , p_source_76            IN VARCHAR2
6756 --Deferred Accounting End Date
6757  , p_source_77            IN DATE
6758 --Deferred Accounting Option
6759  , p_source_78            IN VARCHAR2
6760 --Deferred Accounting Start Date
6761  , p_source_79            IN DATE
6762 --Override Accounted Amount Indicator
6763  , p_source_80            IN VARCHAR2
6764  , p_source_80_meaning    IN VARCHAR2
6765 --Invoice Supplier Identifier
6766  , p_source_81            IN NUMBER
6767 --Invoice Supplier Site Identifier
6768  , p_source_82            IN NUMBER
6772  , p_source_84            IN NUMBER
6769 --Third Party Type
6770  , p_source_83            IN VARCHAR2
6771 --Parent Reversal Identifier
6773 --Invoice Distribution Statistical Amount
6774  , p_source_85            IN NUMBER
6775 --Invoice Distribution Tax Line Identifier
6776  , p_source_86            IN NUMBER
6777 --Invoice Distribution Tax Distribution Identifier from Tax
6778  , p_source_87            IN NUMBER
6779 --Invoice Distribution Summary Tax Line Identifier
6780  , p_source_88            IN NUMBER
6781 --Payables Upgrade Credit Encumbrance Type Identifier
6782  , p_source_89            IN NUMBER
6783 --Payables Upgrade Debit Encumbrance Type Identifier
6784  , p_source_90            IN NUMBER
6785 )
6786 IS
6787 
6788 l_component_type              VARCHAR2(80);
6789 l_component_code              VARCHAR2(30);
6790 l_component_type_code         VARCHAR2(1);
6791 l_component_appl_id           INTEGER;
6792 l_amb_context_code            VARCHAR2(30);
6793 l_entity_code                 VARCHAR2(30);
6794 l_event_class_code            VARCHAR2(30);
6795 l_ae_header_id                NUMBER;
6796 l_event_type_code             VARCHAR2(30);
6797 l_line_definition_code        VARCHAR2(30);
6798 l_line_definition_owner_code  VARCHAR2(1);
6799 --
6800 -- adr variables
6801 l_segment                     VARCHAR2(30);
6802 l_ccid                        NUMBER;
6803 l_adr_transaction_coa_id      NUMBER;
6804 l_adr_accounting_coa_id       NUMBER;
6805 l_adr_flexfield_segment_code  VARCHAR2(30);
6806 l_adr_flex_value_set_id       NUMBER;
6807 l_adr_value_type_code         VARCHAR2(30);
6808 l_adr_value_combination_id    NUMBER;
6809 l_adr_value_segment_code      VARCHAR2(30);
6810 
6811 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
6812 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
6813 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
6814 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
6815 
6816 -- 4262811 Variables ------------------------------------------------------------------------------------------
6817 l_entered_amt_idx             NUMBER;
6818 l_accted_amt_idx              NUMBER;
6819 l_acc_rev_flag                VARCHAR2(1);
6820 l_accrual_line_num            NUMBER;
6821 l_tmp_amt                     NUMBER;
6822 l_acc_rev_natural_side_code   VARCHAR2(1);
6823 
6824 l_num_entries                 NUMBER;
6825 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
6826 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
6827 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
6828 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
6829 l_recog_line_1                NUMBER;
6830 l_recog_line_2                NUMBER;
6831 
6832 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
6833 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
6834 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
6835 
6836 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
6837 
6838 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
6839 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
6840 
6841 ---------------------------------------------------------------------------------------------------------------
6842 
6843 
6844 --
6845 -- bulk performance
6846 --
6847 l_balance_type_code           VARCHAR2(1);
6848 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
6849 l_log_module                  VARCHAR2(240);
6850 
6851 --
6852 -- Upgrade strategy
6853 --
6854 l_actual_upg_option           VARCHAR2(1);
6855 l_enc_upg_option           VARCHAR2(1);
6856 
6857 --
6858 BEGIN
6859 --
6860 IF g_log_enabled THEN
6861       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_47';
6862 END IF;
6863 --
6864 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6865 
6866       trace
6867          (p_msg      => 'BEGIN of AcctLineType_47'
6868          ,p_level    => C_LEVEL_PROCEDURE
6869          ,p_module   => l_log_module);
6870 
6871 END IF;
6872 --
6873 l_component_type             := 'AMB_JLT';
6874 l_component_code             := 'AP_ACCRUAL_CM';
6875 l_component_type_code        := 'S';
6876 l_component_appl_id          :=  200;
6877 l_amb_context_code           := 'DEFAULT';
6878 l_entity_code                := 'AP_INVOICES';
6879 l_event_class_code           := 'CREDIT MEMOS';
6880 l_event_type_code            := 'CREDIT MEMOS_ALL';
6881 l_line_definition_owner_code := 'S';
6882 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
6883 --
6884 l_balance_type_code          := 'A';
6885 l_segment                     := NULL;
6886 l_ccid                        := NULL;
6887 l_adr_transaction_coa_id      := NULL;
6888 l_adr_accounting_coa_id       := NULL;
6889 l_adr_flexfield_segment_code  := NULL;
6890 l_adr_flex_value_set_id       := NULL;
6891 l_adr_value_type_code         := NULL;
6892 l_adr_value_combination_id    := NULL;
6893 l_adr_value_segment_code      := NULL;
6894 
6895 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
6896 l_bflow_class_code           := '';    -- 4219869 Business Flow
6897 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
6901 l_bflow_applied_to_amt       := NULL; -- 5132302
6898 l_budgetary_control_flag     := 'N';
6899 
6900 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
6902 l_entered_amt_idx            := NULL;          -- 4262811
6903 l_accted_amt_idx             := NULL;          -- 4262811
6904 l_acc_rev_flag               := NULL;          -- 4262811
6905 l_accrual_line_num           := NULL;          -- 4262811
6906 l_tmp_amt                    := NULL;          -- 4262811
6907 --
6908  
6909 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
6910     l_balance_type_code <> 'B' THEN
6911 IF NVL(p_source_33,'
6912 ') =  'RETROACCRUAL' OR 
6913 NVL(p_source_33,'
6914 ') =  'ACCRUAL'
6915  THEN 
6916 
6917    --
6918    XLA_AE_LINES_PKG.SetNewLine;
6919 
6920    p_balance_type_code          := l_balance_type_code;
6921    -- set the flag so later we will know whether the gain loss line needs to be created
6922    
6923    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
6924      p_actual_flag :='A';
6925    END IF;
6926 
6927    --
6928    -- bulk performance
6929    --
6930    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
6931                                       p_header_num   => 0); -- 4262811
6932    --
6933    -- set accounting line options
6934    --
6935    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
6936            p_natural_side_code          => 'D'
6937          , p_gain_or_loss_flag          => 'N'
6938          , p_gl_transfer_mode_code      => 'S'
6939          , p_acct_entry_type_code       => 'A'
6940          , p_switch_side_flag           => 'Y'
6941          , p_merge_duplicate_code       => 'A'
6942          );
6943    --
6944    l_acc_rev_natural_side_code := 'C';  -- 4262811
6945    -- 
6946    --
6947    -- set accounting line type info
6948    --
6949    xla_ae_lines_pkg.SetAcctLineType
6950       (p_component_type             => l_component_type
6951       ,p_event_type_code            => l_event_type_code
6952       ,p_line_definition_owner_code => l_line_definition_owner_code
6953       ,p_line_definition_code       => l_line_definition_code
6954       ,p_accounting_line_code       => l_component_code
6955       ,p_accounting_line_type_code  => l_component_type_code
6956       ,p_accounting_line_appl_id    => l_component_appl_id
6957       ,p_amb_context_code           => l_amb_context_code
6958       ,p_entity_code                => l_entity_code
6959       ,p_event_class_code           => l_event_class_code);
6960    --
6961    -- set accounting class
6962    --
6963    xla_ae_lines_pkg.SetAcctClass(
6964            p_accounting_class_code  => 'ACCRUAL'
6965          , p_ae_header_id           => l_ae_header_id
6966          );
6967 
6968    --
6969    -- set rounding class
6970    --
6971    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
6972                       'ACCRUAL';
6973 
6974    --
6975    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
6976    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
6977    --
6978    -- bulk performance
6979    --
6980    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
6981 
6982    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
6983       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
6984 
6985    -- 4955764
6986    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6987       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
6988 
6989    -- 4458381 Public Sector Enh
6990    
6991    --
6992    -- set accounting attributes for the line type
6993    --
6994    l_entered_amt_idx := 23;
6995    l_accted_amt_idx  := 28;
6996    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
6997    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
6998    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
6999    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
7000    l_rec_acct_attrs.array_num_value(2)  := 
7001 xla_ae_sources_pkg.GetSystemSourceNum(
7002    p_source_code           => 'XLA_EVENT_APPL_ID'
7003  , p_source_type_code      => 'Y'
7004  , p_source_application_id =>  602
7005 );
7006    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
7007    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
7008    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
7009    l_rec_acct_attrs.array_char_value(4)  := 
7010 xla_ae_sources_pkg.GetSystemSourceChar(
7011    p_source_code           => 'XLA_ENTITY_CODE'
7012  , p_source_type_code      => 'Y'
7013  , p_source_application_id =>  602
7014 );
7015    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
7016    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
7017    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
7018    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
7019    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
7020    l_rec_acct_attrs.array_num_value(7)  := p_source_59;
7021    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
7025    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
7022    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
7023    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
7024    l_rec_acct_attrs.array_char_value(9)  := p_source_61;
7026    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_62);
7027    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
7028    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_63);
7029    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
7030    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
7031    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
7032    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
7033    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
7034    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
7035    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
7036    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
7037    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
7038    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
7039    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
7040    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
7041    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
7042    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
7043    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
7044    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
7045    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
7046    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
7047    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
7048    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
7049    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
7050    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
7051    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
7052    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
7053    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
7054    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
7055    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
7056    l_rec_acct_attrs.array_date_value(25)  := p_source_74;
7057    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
7058    l_rec_acct_attrs.array_num_value(26)  := p_source_75;
7059    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
7060    l_rec_acct_attrs.array_char_value(27)  := p_source_76;
7061    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
7062    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
7063    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
7064    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
7065    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
7066    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
7067    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
7068    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
7069    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
7070    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
7071    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
7072    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
7073    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
7074    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
7075    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
7076    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
7077    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
7078    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
7079    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
7080    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
7081    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
7082    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
7083    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
7084    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
7085    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
7086    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
7087    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
7088    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
7089    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
7090    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
7091    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
7092    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
7093 
7094    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
7095    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
7096 
7097    ---------------------------------------------------------------------------------------------------------------
7098    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
7099    ---------------------------------------------------------------------------------------------------------------
7100    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
7101 
7102    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7103    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7104 
7105    IF xla_accounting_cache_pkg.GetValueChar
7109 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
7106          (p_source_code         => 'LEDGER_CATEGORY_CODE'
7107          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
7108    AND l_bflow_method_code = 'PRIOR_ENTRY'
7110    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
7111          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
7112        )
7113    THEN
7114          xla_ae_lines_pkg.BflowUpgEntry
7115            (p_business_method_code    => l_bflow_method_code
7116            ,p_business_class_code     => l_bflow_class_code
7117            ,p_balance_type            => l_balance_type_code);
7118    ELSE
7119       NULL;
7120 -- No business flow processing for business flow method of NONE.
7121    END IF;
7122 
7123    --
7124    -- call analytical criteria
7125    --
7126    
7127    --
7128    -- call description
7129    --
7130    
7131 xla_ae_lines_pkg.SetLineDescription(
7132    p_ae_header_id => l_ae_header_id
7133   ,p_description  => Description_1 (
7134      p_application_id         => p_application_id
7135    , p_ae_header_id           => l_ae_header_id 
7136 , p_source_1 => p_source_1
7137    )
7138 );
7139 
7140 
7141    --
7142    -- call ADRs
7143    -- Bug 4922099
7144    --
7145    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7146         (NVL(l_actual_upg_option, 'N') = 'O') OR
7147         (NVL(l_enc_upg_option, 'N') = 'O')
7148       )
7149    THEN
7150    NULL;
7151    --
7152    --
7153    
7154   l_ccid := AcctDerRule_33(
7155            p_application_id           => p_application_id
7156          , p_ae_header_id             => l_ae_header_id 
7157 , p_source_30 => p_source_30
7158          , x_transaction_coa_id       => l_adr_transaction_coa_id
7159          , x_accounting_coa_id        => l_adr_accounting_coa_id
7160          , x_value_type_code          => l_adr_value_type_code
7161          , p_side                     => 'NA'
7162    );
7163 
7164    xla_ae_lines_pkg.set_ccid(
7165     p_code_combination_id          => l_ccid
7166   , p_value_type_code              => l_adr_value_type_code
7167   , p_transaction_coa_id           => l_adr_transaction_coa_id
7168   , p_accounting_coa_id            => l_adr_accounting_coa_id
7169   , p_adr_code                     => 'AP_INVOICE_DIST'
7170   , p_adr_type_code                => 'S'
7171   , p_component_type               => l_component_type
7172   , p_component_code               => l_component_code
7173   , p_component_type_code          => l_component_type_code
7174   , p_component_appl_id            => l_component_appl_id
7175   , p_amb_context_code             => l_amb_context_code
7176   , p_side                         => 'NA'
7177   );
7178 
7179 
7180    --
7181    --
7182    END IF;
7183    --
7184    -- Bug 4922099
7185    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
7186           (NVL(l_enc_upg_option, 'N') = 'O')
7187         ) AND
7188         (l_bflow_method_code = 'PRIOR_ENTRY')
7189       )
7190    THEN
7191       IF
7192       --
7193       1 = 2
7194       --
7195       THEN
7196       xla_accounting_err_pkg.build_message
7197                                     (p_appli_s_name            => 'XLA'
7198                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7199                                     ,p_token_1                 => 'LINE_NUMBER'
7200                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
7201                                     ,p_token_2                 => 'LINE_TYPE_NAME'
7202                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
7203                                                                              l_component_type
7204                                                                             ,l_component_code
7205                                                                             ,l_component_type_code
7206                                                                             ,l_component_appl_id
7207                                                                             ,l_amb_context_code
7208                                                                             ,l_entity_code
7209                                                                             ,l_event_class_code
7210                                                                            )
7211                                     ,p_token_3                 => 'OWNER'
7212                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
7213                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
7214                                                                           ,p_lookup_code    => l_component_type_code
7215                                                                          )
7216                                     ,p_token_4                 => 'PRODUCT_NAME'
7217                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
7218                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
7219                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
7220                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
7224         IF (C_LEVEL_ERROR>= g_log_level) THEN
7221                                     ,p_ae_header_id            =>  NULL
7222                                        );
7223 
7225                  trace
7226                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7227                       ,p_level    => C_LEVEL_ERROR
7228                       ,p_module   => l_log_module);
7229         END IF;
7230       END IF;
7231    END IF;
7232    --
7233    --
7234    ------------------------------------------------------------------------------------------------
7235    -- 4219869 Business Flow
7236    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
7237    -- Prior Entry.  Currently, the following code is always generated.
7238    ------------------------------------------------------------------------------------------------
7239    XLA_AE_LINES_PKG.ValidateCurrentLine;
7240 
7241    ------------------------------------------------------------------------------------
7242    -- 4219869 Business Flow
7243    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
7244    ------------------------------------------------------------------------------------
7245    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7246 
7247    ----------------------------------------------------------------------------------
7248    -- 4219869 Business Flow
7249    -- Update journal entry status -- Need to generate this within IF <condition>
7250    ----------------------------------------------------------------------------------
7251    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7252          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
7253          ,p_balance_type_code => l_balance_type_code
7254          );
7255 
7256    -------------------------------------------------------------------------------------------
7257    -- 4262811 - Generate the Accrual Reversal lines
7258    -------------------------------------------------------------------------------------------
7259    BEGIN
7260       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
7261                               (g_array_event(p_event_id).array_value_num('header_index'));
7262       IF l_acc_rev_flag IS NULL THEN
7263          l_acc_rev_flag := 'N';
7264       END IF;
7265    EXCEPTION
7266       WHEN OTHERS THEN
7267          l_acc_rev_flag := 'N';
7268    END;
7269    --
7270    IF (l_acc_rev_flag = 'Y') THEN
7271 
7272        -- 4645092  ------------------------------------------------------------------------------
7273        -- To allow MPA report to determine if it should generate report process
7274        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
7275        ------------------------------------------------------------------------------------------
7276 
7277        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
7278        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
7279    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
7280    -- call ADRs
7281    -- Bug 4922099
7282    --
7283    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7284         (NVL(l_actual_upg_option, 'N') = 'O') OR
7285         (NVL(l_enc_upg_option, 'N') = 'O')
7286       )
7287    THEN
7288    NULL;
7289    --
7290    --
7291    
7292   l_ccid := AcctDerRule_33(
7293            p_application_id           => p_application_id
7294          , p_ae_header_id             => l_ae_header_id 
7295 , p_source_30 => p_source_30
7296          , x_transaction_coa_id       => l_adr_transaction_coa_id
7297          , x_accounting_coa_id        => l_adr_accounting_coa_id
7298          , x_value_type_code          => l_adr_value_type_code
7299          , p_side                     => 'NA'
7300    );
7301 
7302    xla_ae_lines_pkg.set_ccid(
7303     p_code_combination_id          => l_ccid
7304   , p_value_type_code              => l_adr_value_type_code
7305   , p_transaction_coa_id           => l_adr_transaction_coa_id
7306   , p_accounting_coa_id            => l_adr_accounting_coa_id
7307   , p_adr_code                     => 'AP_INVOICE_DIST'
7308   , p_adr_type_code                => 'S'
7309   , p_component_type               => l_component_type
7310   , p_component_code               => l_component_code
7311   , p_component_type_code          => l_component_type_code
7312   , p_component_appl_id            => l_component_appl_id
7313   , p_amb_context_code             => l_amb_context_code
7314   , p_side                         => 'NA'
7315   );
7316 
7317 
7318    --
7319    --
7320    END IF;
7321 
7322        --
7323        -- Update the line information that should be overwritten
7324        --
7325        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
7326                                          p_header_num   => 1);
7327        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
7328 
7329        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
7330 
7331        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
7332           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
7333        END IF;
7334 
7335       --
7336       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
7337       --
7341           ---------------------------------------------------------------------------------------------------
7338       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
7339           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
7340       ELSE
7342           -- 4262811a Switch Sign
7343           ---------------------------------------------------------------------------------------------------
7344           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
7345           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7346                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7347           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7348                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7349           -- 5132302
7350           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
7351                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7352 
7353       END IF;
7354 
7355       -- 4955764
7356       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7357       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
7358 
7359 
7360       XLA_AE_LINES_PKG.ValidateCurrentLine;
7361       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7362 
7363       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7364                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
7365                ,p_balance_type_code => l_balance_type_code);
7366 
7367    END IF;
7368 
7369    -----------------------------------------------------------------------------------------
7370    -- 4262811 Multiperiod Accounting
7371    -----------------------------------------------------------------------------------------
7372      -- No MPA option is assigned.
7373 
7374 
7375 END IF;
7376 END IF;
7377 --
7378 
7379 --
7380 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7381    trace
7382       (p_msg      => 'END of AcctLineType_47'
7383       ,p_level    => C_LEVEL_PROCEDURE
7384       ,p_module   => l_log_module);
7385 END IF;
7386 --
7387 EXCEPTION
7388   WHEN xla_exceptions_pkg.application_exception THEN
7389       RAISE;
7390   WHEN OTHERS THEN
7391        xla_exceptions_pkg.raise_message
7392            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_47');
7393 END AcctLineType_47;
7394 --
7395 
7396 ---------------------------------------
7397 --
7398 -- PRIVATE FUNCTION
7399 --         AcctLineType_48
7400 --
7401 ---------------------------------------
7402 PROCEDURE AcctLineType_48 (
7403   p_application_id        IN NUMBER
7404  ,p_event_id              IN NUMBER
7405  ,p_calculate_acctd_flag  IN VARCHAR2
7406  ,p_calculate_g_l_flag    IN VARCHAR2
7407  ,p_actual_flag           IN OUT VARCHAR2
7408  ,p_balance_type_code     OUT VARCHAR2
7409  ,p_gain_or_loss_ref      OUT VARCHAR2
7410  
7411 --Invoice Distribution Description
7412  , p_source_1            IN VARCHAR2
7413 --Invoice Distribution Ledger Amount
7414  , p_source_21            IN NUMBER
7415 --Invoice Distribution Account
7416  , p_source_30            IN NUMBER
7417 --Invoice Distribution Type
7418  , p_source_33            IN VARCHAR2
7419  , p_source_33_meaning    IN VARCHAR2
7420 --Accounting Reversal Indicator
7421  , p_source_53            IN VARCHAR2
7422 --Distribution Link Type
7423  , p_source_55            IN VARCHAR2
7424 --Allocation to Main Distribution Identifier
7425  , p_source_57            IN NUMBER
7426 --Invoice Identifier
7427  , p_source_58            IN NUMBER
7428 --Business Flow Purchasing Application Identifier
7429  , p_source_59            IN NUMBER
7430 --Business Flow Purchase Order Distribution Type
7431  , p_source_60            IN VARCHAR2
7432 --Business Flow Purchase Order Entity Code
7433  , p_source_61            IN VARCHAR2
7434 --Business Flow Purchase Order Distribution Identifier
7435  , p_source_62            IN NUMBER
7436 --Business Flow Purchasing Document Identifier
7437  , p_source_63            IN NUMBER
7438 --Invoice Distribution Identifier
7439  , p_source_64            IN NUMBER
7440 --Payables Encumbrance Upgrade Credit Account
7441  , p_source_65            IN NUMBER
7442 --Payables Encumbrance Upgrade Credit Amount
7443  , p_source_66            IN NUMBER
7444 --Invoice Currency Code
7445  , p_source_67            IN VARCHAR2
7446 --Payables Encumbrance Upgrade Credit Base Amount
7447  , p_source_68            IN NUMBER
7448 --Payables Encumbrance Upgrade Debit Account
7449  , p_source_69            IN NUMBER
7450 --Payables Encumbrance Upgrade Debit Amount
7451  , p_source_70            IN NUMBER
7452 --Payables Encumbrance Upgrade Debit Base Amount
7453  , p_source_71            IN NUMBER
7454 --Payables Encumbrance Upgrade Option
7455  , p_source_72            IN VARCHAR2
7456 --Invoice Distribution Amount
7457  , p_source_73            IN NUMBER
7458 --Purchase Order Exchange Rate Date
7459  , p_source_74            IN DATE
7460 --Purchase Order Exchange Rate
7461  , p_source_75            IN NUMBER
7462 --Purchase Order Exchange Rate Type
7466 --Deferred Accounting Option
7463  , p_source_76            IN VARCHAR2
7464 --Deferred Accounting End Date
7465  , p_source_77            IN DATE
7467  , p_source_78            IN VARCHAR2
7468 --Deferred Accounting Start Date
7469  , p_source_79            IN DATE
7470 --Override Accounted Amount Indicator
7471  , p_source_80            IN VARCHAR2
7472  , p_source_80_meaning    IN VARCHAR2
7473 --Invoice Supplier Identifier
7474  , p_source_81            IN NUMBER
7475 --Invoice Supplier Site Identifier
7476  , p_source_82            IN NUMBER
7477 --Third Party Type
7478  , p_source_83            IN VARCHAR2
7479 --Parent Reversal Identifier
7480  , p_source_84            IN NUMBER
7481 --Invoice Distribution Tax Line Identifier
7482  , p_source_86            IN NUMBER
7483 --Invoice Distribution Tax Distribution Identifier from Tax
7484  , p_source_87            IN NUMBER
7485 --Invoice Distribution Summary Tax Line Identifier
7486  , p_source_88            IN NUMBER
7487 --Payables Upgrade Credit Encumbrance Type Identifier
7488  , p_source_89            IN NUMBER
7489 --Payables Upgrade Debit Encumbrance Type Identifier
7490  , p_source_90            IN NUMBER
7491 )
7492 IS
7493 
7494 l_component_type              VARCHAR2(80);
7495 l_component_code              VARCHAR2(30);
7496 l_component_type_code         VARCHAR2(1);
7497 l_component_appl_id           INTEGER;
7498 l_amb_context_code            VARCHAR2(30);
7499 l_entity_code                 VARCHAR2(30);
7500 l_event_class_code            VARCHAR2(30);
7501 l_ae_header_id                NUMBER;
7502 l_event_type_code             VARCHAR2(30);
7503 l_line_definition_code        VARCHAR2(30);
7504 l_line_definition_owner_code  VARCHAR2(1);
7505 --
7506 -- adr variables
7507 l_segment                     VARCHAR2(30);
7508 l_ccid                        NUMBER;
7509 l_adr_transaction_coa_id      NUMBER;
7510 l_adr_accounting_coa_id       NUMBER;
7511 l_adr_flexfield_segment_code  VARCHAR2(30);
7512 l_adr_flex_value_set_id       NUMBER;
7513 l_adr_value_type_code         VARCHAR2(30);
7514 l_adr_value_combination_id    NUMBER;
7515 l_adr_value_segment_code      VARCHAR2(30);
7516 
7517 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
7518 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
7519 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
7520 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
7521 
7522 -- 4262811 Variables ------------------------------------------------------------------------------------------
7523 l_entered_amt_idx             NUMBER;
7524 l_accted_amt_idx              NUMBER;
7525 l_acc_rev_flag                VARCHAR2(1);
7526 l_accrual_line_num            NUMBER;
7527 l_tmp_amt                     NUMBER;
7528 l_acc_rev_natural_side_code   VARCHAR2(1);
7529 
7530 l_num_entries                 NUMBER;
7531 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
7532 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
7533 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
7534 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
7535 l_recog_line_1                NUMBER;
7536 l_recog_line_2                NUMBER;
7537 
7538 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
7539 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
7540 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
7541 
7542 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
7543 
7544 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
7545 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
7546 
7547 ---------------------------------------------------------------------------------------------------------------
7548 
7549 
7550 --
7551 -- bulk performance
7552 --
7553 l_balance_type_code           VARCHAR2(1);
7554 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
7555 l_log_module                  VARCHAR2(240);
7556 
7557 --
7558 -- Upgrade strategy
7559 --
7560 l_actual_upg_option           VARCHAR2(1);
7561 l_enc_upg_option           VARCHAR2(1);
7562 
7563 --
7564 BEGIN
7565 --
7566 IF g_log_enabled THEN
7567       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_48';
7568 END IF;
7569 --
7570 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7571 
7572       trace
7573          (p_msg      => 'BEGIN of AcctLineType_48'
7574          ,p_level    => C_LEVEL_PROCEDURE
7575          ,p_module   => l_log_module);
7576 
7577 END IF;
7578 --
7579 l_component_type             := 'AMB_JLT';
7580 l_component_code             := 'AP_ACCRUAL_DM';
7581 l_component_type_code        := 'S';
7582 l_component_appl_id          :=  200;
7583 l_amb_context_code           := 'DEFAULT';
7584 l_entity_code                := 'AP_INVOICES';
7585 l_event_class_code           := 'DEBIT MEMOS';
7586 l_event_type_code            := 'DEBIT MEMOS_ALL';
7587 l_line_definition_owner_code := 'S';
7588 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
7589 --
7590 l_balance_type_code          := 'A';
7591 l_segment                     := NULL;
7592 l_ccid                        := NULL;
7593 l_adr_transaction_coa_id      := NULL;
7597 l_adr_value_type_code         := NULL;
7594 l_adr_accounting_coa_id       := NULL;
7595 l_adr_flexfield_segment_code  := NULL;
7596 l_adr_flex_value_set_id       := NULL;
7598 l_adr_value_combination_id    := NULL;
7599 l_adr_value_segment_code      := NULL;
7600 
7601 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
7602 l_bflow_class_code           := '';    -- 4219869 Business Flow
7603 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
7604 l_budgetary_control_flag     := 'N';
7605 
7606 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
7607 l_bflow_applied_to_amt       := NULL; -- 5132302
7608 l_entered_amt_idx            := NULL;          -- 4262811
7609 l_accted_amt_idx             := NULL;          -- 4262811
7610 l_acc_rev_flag               := NULL;          -- 4262811
7611 l_accrual_line_num           := NULL;          -- 4262811
7612 l_tmp_amt                    := NULL;          -- 4262811
7613 --
7614  
7615 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
7616     l_balance_type_code <> 'B' THEN
7617 IF NVL(p_source_33,'
7618 ') =  'RETROACCRUAL' OR 
7619 NVL(p_source_33,'
7620 ') =  'ACCRUAL'
7621  THEN 
7622 
7623    --
7624    XLA_AE_LINES_PKG.SetNewLine;
7625 
7626    p_balance_type_code          := l_balance_type_code;
7627    -- set the flag so later we will know whether the gain loss line needs to be created
7628    
7629    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
7630      p_actual_flag :='A';
7631    END IF;
7632 
7633    --
7634    -- bulk performance
7635    --
7636    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
7637                                       p_header_num   => 0); -- 4262811
7638    --
7639    -- set accounting line options
7640    --
7641    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
7642            p_natural_side_code          => 'D'
7643          , p_gain_or_loss_flag          => 'N'
7644          , p_gl_transfer_mode_code      => 'S'
7645          , p_acct_entry_type_code       => 'A'
7646          , p_switch_side_flag           => 'Y'
7647          , p_merge_duplicate_code       => 'A'
7648          );
7649    --
7650    l_acc_rev_natural_side_code := 'C';  -- 4262811
7651    -- 
7652    --
7653    -- set accounting line type info
7654    --
7655    xla_ae_lines_pkg.SetAcctLineType
7656       (p_component_type             => l_component_type
7657       ,p_event_type_code            => l_event_type_code
7658       ,p_line_definition_owner_code => l_line_definition_owner_code
7659       ,p_line_definition_code       => l_line_definition_code
7660       ,p_accounting_line_code       => l_component_code
7661       ,p_accounting_line_type_code  => l_component_type_code
7662       ,p_accounting_line_appl_id    => l_component_appl_id
7663       ,p_amb_context_code           => l_amb_context_code
7664       ,p_entity_code                => l_entity_code
7665       ,p_event_class_code           => l_event_class_code);
7666    --
7667    -- set accounting class
7668    --
7669    xla_ae_lines_pkg.SetAcctClass(
7670            p_accounting_class_code  => 'ACCRUAL'
7671          , p_ae_header_id           => l_ae_header_id
7672          );
7673 
7674    --
7675    -- set rounding class
7676    --
7677    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
7678                       'ACCRUAL';
7679 
7680    --
7681    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
7682    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
7683    --
7684    -- bulk performance
7685    --
7686    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
7687 
7688    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
7689       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
7690 
7691    -- 4955764
7692    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7693       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
7694 
7695    -- 4458381 Public Sector Enh
7696    
7697    --
7698    -- set accounting attributes for the line type
7699    --
7700    l_entered_amt_idx := 23;
7701    l_accted_amt_idx  := 28;
7702    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
7703    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
7704    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
7705    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
7706    l_rec_acct_attrs.array_num_value(2)  := 
7707 xla_ae_sources_pkg.GetSystemSourceNum(
7708    p_source_code           => 'XLA_EVENT_APPL_ID'
7709  , p_source_type_code      => 'Y'
7710  , p_source_application_id =>  602
7711 );
7712    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
7713    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
7714    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
7715    l_rec_acct_attrs.array_char_value(4)  := 
7716 xla_ae_sources_pkg.GetSystemSourceChar(
7717    p_source_code           => 'XLA_ENTITY_CODE'
7718  , p_source_type_code      => 'Y'
7719  , p_source_application_id =>  602
7720 );
7721    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
7725    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
7722    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
7723    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
7724    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
7726    l_rec_acct_attrs.array_num_value(7)  := p_source_59;
7727    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
7728    l_rec_acct_attrs.array_char_value(8)  := p_source_60;
7729    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
7730    l_rec_acct_attrs.array_char_value(9)  := p_source_61;
7731    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
7732    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_62);
7733    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
7734    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_63);
7735    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
7736    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
7737    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
7738    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
7739    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
7740    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
7741    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
7742    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
7743    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
7744    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
7745    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
7746    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
7747    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
7748    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
7749    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
7750    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
7751    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
7752    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
7753    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
7754    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
7755    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
7756    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
7757    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
7758    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
7759    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
7760    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
7761    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
7762    l_rec_acct_attrs.array_date_value(25)  := p_source_74;
7763    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
7764    l_rec_acct_attrs.array_num_value(26)  := p_source_75;
7765    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
7766    l_rec_acct_attrs.array_char_value(27)  := p_source_76;
7767    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
7768    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
7769    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
7770    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
7771    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
7772    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
7773    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
7774    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
7775    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
7776    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
7777    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
7778    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
7779    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
7780    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
7781    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
7782    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
7783    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
7784    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
7785    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
7786    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
7787    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
7788    l_rec_acct_attrs.array_num_value(38)  := p_source_86;
7789    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
7790    l_rec_acct_attrs.array_num_value(39)  := p_source_87;
7791    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
7792    l_rec_acct_attrs.array_num_value(40)  := p_source_88;
7793    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
7794    l_rec_acct_attrs.array_num_value(41)  := p_source_89;
7795    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
7796    l_rec_acct_attrs.array_num_value(42)  := p_source_90;
7797 
7798    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
7799    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
7800 
7801    ---------------------------------------------------------------------------------------------------------------
7802    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
7803    ---------------------------------------------------------------------------------------------------------------
7804    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
7805 
7809    IF xla_accounting_cache_pkg.GetValueChar
7806    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7807    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7808 
7810          (p_source_code         => 'LEDGER_CATEGORY_CODE'
7811          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
7812    AND l_bflow_method_code = 'PRIOR_ENTRY'
7813 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
7814    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
7815          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
7816        )
7817    THEN
7818          xla_ae_lines_pkg.BflowUpgEntry
7819            (p_business_method_code    => l_bflow_method_code
7820            ,p_business_class_code     => l_bflow_class_code
7821            ,p_balance_type            => l_balance_type_code);
7822    ELSE
7823       NULL;
7824 -- No business flow processing for business flow method of NONE.
7825    END IF;
7826 
7827    --
7828    -- call analytical criteria
7829    --
7830    
7831    --
7832    -- call description
7833    --
7834    
7835 xla_ae_lines_pkg.SetLineDescription(
7836    p_ae_header_id => l_ae_header_id
7837   ,p_description  => Description_1 (
7838      p_application_id         => p_application_id
7839    , p_ae_header_id           => l_ae_header_id 
7840 , p_source_1 => p_source_1
7841    )
7842 );
7843 
7844 
7845    --
7846    -- call ADRs
7847    -- Bug 4922099
7848    --
7849    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7850         (NVL(l_actual_upg_option, 'N') = 'O') OR
7851         (NVL(l_enc_upg_option, 'N') = 'O')
7852       )
7853    THEN
7854    NULL;
7855    --
7856    --
7857    
7858   l_ccid := AcctDerRule_33(
7859            p_application_id           => p_application_id
7860          , p_ae_header_id             => l_ae_header_id 
7861 , p_source_30 => p_source_30
7862          , x_transaction_coa_id       => l_adr_transaction_coa_id
7863          , x_accounting_coa_id        => l_adr_accounting_coa_id
7864          , x_value_type_code          => l_adr_value_type_code
7865          , p_side                     => 'NA'
7866    );
7867 
7868    xla_ae_lines_pkg.set_ccid(
7869     p_code_combination_id          => l_ccid
7870   , p_value_type_code              => l_adr_value_type_code
7871   , p_transaction_coa_id           => l_adr_transaction_coa_id
7872   , p_accounting_coa_id            => l_adr_accounting_coa_id
7873   , p_adr_code                     => 'AP_INVOICE_DIST'
7874   , p_adr_type_code                => 'S'
7875   , p_component_type               => l_component_type
7876   , p_component_code               => l_component_code
7877   , p_component_type_code          => l_component_type_code
7878   , p_component_appl_id            => l_component_appl_id
7879   , p_amb_context_code             => l_amb_context_code
7880   , p_side                         => 'NA'
7881   );
7882 
7883 
7884    --
7885    --
7886    END IF;
7887    --
7888    -- Bug 4922099
7889    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
7890           (NVL(l_enc_upg_option, 'N') = 'O')
7891         ) AND
7892         (l_bflow_method_code = 'PRIOR_ENTRY')
7893       )
7894    THEN
7895       IF
7896       --
7897       1 = 2
7898       --
7899       THEN
7900       xla_accounting_err_pkg.build_message
7901                                     (p_appli_s_name            => 'XLA'
7902                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7903                                     ,p_token_1                 => 'LINE_NUMBER'
7904                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
7905                                     ,p_token_2                 => 'LINE_TYPE_NAME'
7906                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
7907                                                                              l_component_type
7908                                                                             ,l_component_code
7909                                                                             ,l_component_type_code
7910                                                                             ,l_component_appl_id
7911                                                                             ,l_amb_context_code
7912                                                                             ,l_entity_code
7913                                                                             ,l_event_class_code
7914                                                                            )
7915                                     ,p_token_3                 => 'OWNER'
7916                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
7917                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
7918                                                                           ,p_lookup_code    => l_component_type_code
7919                                                                          )
7920                                     ,p_token_4                 => 'PRODUCT_NAME'
7924                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
7921                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
7922                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
7923                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
7925                                     ,p_ae_header_id            =>  NULL
7926                                        );
7927 
7928         IF (C_LEVEL_ERROR>= g_log_level) THEN
7929                  trace
7930                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7931                       ,p_level    => C_LEVEL_ERROR
7932                       ,p_module   => l_log_module);
7933         END IF;
7934       END IF;
7935    END IF;
7936    --
7937    --
7938    ------------------------------------------------------------------------------------------------
7939    -- 4219869 Business Flow
7940    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
7941    -- Prior Entry.  Currently, the following code is always generated.
7942    ------------------------------------------------------------------------------------------------
7943    XLA_AE_LINES_PKG.ValidateCurrentLine;
7944 
7945    ------------------------------------------------------------------------------------
7946    -- 4219869 Business Flow
7947    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
7948    ------------------------------------------------------------------------------------
7949    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7950 
7951    ----------------------------------------------------------------------------------
7952    -- 4219869 Business Flow
7953    -- Update journal entry status -- Need to generate this within IF <condition>
7954    ----------------------------------------------------------------------------------
7955    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7956          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
7957          ,p_balance_type_code => l_balance_type_code
7958          );
7959 
7960    -------------------------------------------------------------------------------------------
7961    -- 4262811 - Generate the Accrual Reversal lines
7962    -------------------------------------------------------------------------------------------
7963    BEGIN
7964       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
7965                               (g_array_event(p_event_id).array_value_num('header_index'));
7966       IF l_acc_rev_flag IS NULL THEN
7967          l_acc_rev_flag := 'N';
7968       END IF;
7969    EXCEPTION
7970       WHEN OTHERS THEN
7971          l_acc_rev_flag := 'N';
7972    END;
7973    --
7974    IF (l_acc_rev_flag = 'Y') THEN
7975 
7976        -- 4645092  ------------------------------------------------------------------------------
7977        -- To allow MPA report to determine if it should generate report process
7978        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
7979        ------------------------------------------------------------------------------------------
7980 
7981        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
7982        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
7983    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
7984    -- call ADRs
7985    -- Bug 4922099
7986    --
7987    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7988         (NVL(l_actual_upg_option, 'N') = 'O') OR
7989         (NVL(l_enc_upg_option, 'N') = 'O')
7990       )
7991    THEN
7992    NULL;
7993    --
7994    --
7995    
7996   l_ccid := AcctDerRule_33(
7997            p_application_id           => p_application_id
7998          , p_ae_header_id             => l_ae_header_id 
7999 , p_source_30 => p_source_30
8000          , x_transaction_coa_id       => l_adr_transaction_coa_id
8001          , x_accounting_coa_id        => l_adr_accounting_coa_id
8002          , x_value_type_code          => l_adr_value_type_code
8003          , p_side                     => 'NA'
8004    );
8005 
8006    xla_ae_lines_pkg.set_ccid(
8007     p_code_combination_id          => l_ccid
8008   , p_value_type_code              => l_adr_value_type_code
8009   , p_transaction_coa_id           => l_adr_transaction_coa_id
8010   , p_accounting_coa_id            => l_adr_accounting_coa_id
8011   , p_adr_code                     => 'AP_INVOICE_DIST'
8012   , p_adr_type_code                => 'S'
8013   , p_component_type               => l_component_type
8014   , p_component_code               => l_component_code
8015   , p_component_type_code          => l_component_type_code
8016   , p_component_appl_id            => l_component_appl_id
8017   , p_amb_context_code             => l_amb_context_code
8018   , p_side                         => 'NA'
8019   );
8020 
8021 
8022    --
8023    --
8024    END IF;
8025 
8026        --
8027        -- Update the line information that should be overwritten
8028        --
8029        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
8030                                          p_header_num   => 1);
8031        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
8032 
8033        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
8034 
8038 
8035        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
8036           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
8037        END IF;
8039       --
8040       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
8041       --
8042       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
8043           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
8044       ELSE
8045           ---------------------------------------------------------------------------------------------------
8046           -- 4262811a Switch Sign
8047           ---------------------------------------------------------------------------------------------------
8048           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
8049           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8050                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8051           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8052                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8053           -- 5132302
8054           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
8055                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8056 
8057       END IF;
8058 
8059       -- 4955764
8060       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8061       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
8062 
8063 
8064       XLA_AE_LINES_PKG.ValidateCurrentLine;
8065       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8066 
8067       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8068                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
8069                ,p_balance_type_code => l_balance_type_code);
8070 
8071    END IF;
8072 
8073    -----------------------------------------------------------------------------------------
8074    -- 4262811 Multiperiod Accounting
8075    -----------------------------------------------------------------------------------------
8076      -- No MPA option is assigned.
8077 
8078 
8079 END IF;
8080 END IF;
8081 --
8082 
8083 --
8084 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8085    trace
8086       (p_msg      => 'END of AcctLineType_48'
8087       ,p_level    => C_LEVEL_PROCEDURE
8088       ,p_module   => l_log_module);
8089 END IF;
8090 --
8091 EXCEPTION
8092   WHEN xla_exceptions_pkg.application_exception THEN
8093       RAISE;
8094   WHEN OTHERS THEN
8095        xla_exceptions_pkg.raise_message
8096            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_48');
8097 END AcctLineType_48;
8098 --
8099 
8100 ---------------------------------------
8101 --
8102 -- PRIVATE FUNCTION
8103 --         AcctLineType_49
8104 --
8105 ---------------------------------------
8106 PROCEDURE AcctLineType_49 (
8107   p_application_id        IN NUMBER
8108  ,p_event_id              IN NUMBER
8109  ,p_calculate_acctd_flag  IN VARCHAR2
8110  ,p_calculate_g_l_flag    IN VARCHAR2
8111  ,p_actual_flag           IN OUT VARCHAR2
8112  ,p_balance_type_code     OUT VARCHAR2
8113  ,p_gain_or_loss_ref      OUT VARCHAR2
8114  
8115 --Invoice Distribution Description
8116  , p_source_1            IN VARCHAR2
8117 --Invoice Distribution Ledger Amount
8118  , p_source_21            IN NUMBER
8119 --Invoice Distribution Account
8120  , p_source_30            IN NUMBER
8121 --Invoice Distribution Type
8122  , p_source_33            IN VARCHAR2
8123  , p_source_33_meaning    IN VARCHAR2
8124 --Accounting Reversal Indicator
8125  , p_source_53            IN VARCHAR2
8126 --Distribution Link Type
8127  , p_source_55            IN VARCHAR2
8128 --Allocation to Main Distribution Identifier
8129  , p_source_57            IN NUMBER
8130 --Invoice Identifier
8131  , p_source_58            IN NUMBER
8132 --Business Flow Purchasing Application Identifier
8133  , p_source_59            IN NUMBER
8134 --Business Flow Purchase Order Distribution Type
8135  , p_source_60            IN VARCHAR2
8136 --Business Flow Purchase Order Entity Code
8137  , p_source_61            IN VARCHAR2
8138 --Business Flow Purchase Order Distribution Identifier
8139  , p_source_62            IN NUMBER
8140 --Business Flow Purchasing Document Identifier
8141  , p_source_63            IN NUMBER
8142 --Invoice Distribution Identifier
8143  , p_source_64            IN NUMBER
8144 --Payables Encumbrance Upgrade Credit Account
8145  , p_source_65            IN NUMBER
8146 --Payables Encumbrance Upgrade Credit Amount
8147  , p_source_66            IN NUMBER
8148 --Invoice Currency Code
8149  , p_source_67            IN VARCHAR2
8150 --Payables Encumbrance Upgrade Credit Base Amount
8151  , p_source_68            IN NUMBER
8152 --Payables Encumbrance Upgrade Debit Account
8153  , p_source_69            IN NUMBER
8154 --Payables Encumbrance Upgrade Debit Amount
8155  , p_source_70            IN NUMBER
8156 --Payables Encumbrance Upgrade Debit Base Amount
8157  , p_source_71            IN NUMBER
8161  , p_source_73            IN NUMBER
8158 --Payables Encumbrance Upgrade Option
8159  , p_source_72            IN VARCHAR2
8160 --Invoice Distribution Amount
8162 --Purchase Order Exchange Rate Date
8163  , p_source_74            IN DATE
8164 --Purchase Order Exchange Rate
8165  , p_source_75            IN NUMBER
8166 --Purchase Order Exchange Rate Type
8167  , p_source_76            IN VARCHAR2
8168 --Deferred Accounting End Date
8169  , p_source_77            IN DATE
8170 --Deferred Accounting Option
8171  , p_source_78            IN VARCHAR2
8172 --Deferred Accounting Start Date
8173  , p_source_79            IN DATE
8174 --Override Accounted Amount Indicator
8175  , p_source_80            IN VARCHAR2
8176  , p_source_80_meaning    IN VARCHAR2
8177 --Invoice Supplier Identifier
8178  , p_source_81            IN NUMBER
8179 --Invoice Supplier Site Identifier
8180  , p_source_82            IN NUMBER
8181 --Third Party Type
8182  , p_source_83            IN VARCHAR2
8183 --Parent Reversal Identifier
8184  , p_source_84            IN NUMBER
8185 --Invoice Distribution Statistical Amount
8186  , p_source_85            IN NUMBER
8187 --Invoice Distribution Tax Line Identifier
8188  , p_source_86            IN NUMBER
8189 --Invoice Distribution Tax Distribution Identifier from Tax
8190  , p_source_87            IN NUMBER
8191 --Invoice Distribution Summary Tax Line Identifier
8192  , p_source_88            IN NUMBER
8193 --Payables Upgrade Credit Encumbrance Type Identifier
8194  , p_source_89            IN NUMBER
8195 --Payables Upgrade Debit Encumbrance Type Identifier
8196  , p_source_90            IN NUMBER
8197 )
8198 IS
8199 
8200 l_component_type              VARCHAR2(80);
8201 l_component_code              VARCHAR2(30);
8202 l_component_type_code         VARCHAR2(1);
8203 l_component_appl_id           INTEGER;
8204 l_amb_context_code            VARCHAR2(30);
8205 l_entity_code                 VARCHAR2(30);
8206 l_event_class_code            VARCHAR2(30);
8207 l_ae_header_id                NUMBER;
8208 l_event_type_code             VARCHAR2(30);
8209 l_line_definition_code        VARCHAR2(30);
8210 l_line_definition_owner_code  VARCHAR2(1);
8211 --
8212 -- adr variables
8213 l_segment                     VARCHAR2(30);
8214 l_ccid                        NUMBER;
8215 l_adr_transaction_coa_id      NUMBER;
8216 l_adr_accounting_coa_id       NUMBER;
8217 l_adr_flexfield_segment_code  VARCHAR2(30);
8218 l_adr_flex_value_set_id       NUMBER;
8219 l_adr_value_type_code         VARCHAR2(30);
8220 l_adr_value_combination_id    NUMBER;
8221 l_adr_value_segment_code      VARCHAR2(30);
8222 
8223 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
8224 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
8225 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
8226 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
8227 
8228 -- 4262811 Variables ------------------------------------------------------------------------------------------
8229 l_entered_amt_idx             NUMBER;
8230 l_accted_amt_idx              NUMBER;
8231 l_acc_rev_flag                VARCHAR2(1);
8232 l_accrual_line_num            NUMBER;
8233 l_tmp_amt                     NUMBER;
8234 l_acc_rev_natural_side_code   VARCHAR2(1);
8235 
8236 l_num_entries                 NUMBER;
8237 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
8238 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
8239 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
8240 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
8241 l_recog_line_1                NUMBER;
8242 l_recog_line_2                NUMBER;
8243 
8244 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
8245 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
8246 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
8247 
8248 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
8249 
8250 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
8251 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
8252 
8253 ---------------------------------------------------------------------------------------------------------------
8254 
8255 
8256 --
8257 -- bulk performance
8258 --
8259 l_balance_type_code           VARCHAR2(1);
8260 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
8261 l_log_module                  VARCHAR2(240);
8262 
8263 --
8264 -- Upgrade strategy
8265 --
8266 l_actual_upg_option           VARCHAR2(1);
8267 l_enc_upg_option           VARCHAR2(1);
8268 
8269 --
8270 BEGIN
8271 --
8272 IF g_log_enabled THEN
8273       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_49';
8274 END IF;
8275 --
8276 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8277 
8278       trace
8279          (p_msg      => 'BEGIN of AcctLineType_49'
8280          ,p_level    => C_LEVEL_PROCEDURE
8281          ,p_module   => l_log_module);
8282 
8283 END IF;
8284 --
8285 l_component_type             := 'AMB_JLT';
8286 l_component_code             := 'AP_ACCRUAL_INV';
8287 l_component_type_code        := 'S';
8288 l_component_appl_id          :=  200;
8292 l_event_type_code            := 'INVOICES_ALL';
8289 l_amb_context_code           := 'DEFAULT';
8290 l_entity_code                := 'AP_INVOICES';
8291 l_event_class_code           := 'INVOICES';
8293 l_line_definition_owner_code := 'S';
8294 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
8295 --
8296 l_balance_type_code          := 'A';
8297 l_segment                     := NULL;
8298 l_ccid                        := NULL;
8299 l_adr_transaction_coa_id      := NULL;
8300 l_adr_accounting_coa_id       := NULL;
8301 l_adr_flexfield_segment_code  := NULL;
8302 l_adr_flex_value_set_id       := NULL;
8303 l_adr_value_type_code         := NULL;
8304 l_adr_value_combination_id    := NULL;
8305 l_adr_value_segment_code      := NULL;
8306 
8307 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
8308 l_bflow_class_code           := '';    -- 4219869 Business Flow
8309 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
8310 l_budgetary_control_flag     := 'N';
8311 
8312 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
8313 l_bflow_applied_to_amt       := NULL; -- 5132302
8314 l_entered_amt_idx            := NULL;          -- 4262811
8315 l_accted_amt_idx             := NULL;          -- 4262811
8316 l_acc_rev_flag               := NULL;          -- 4262811
8317 l_accrual_line_num           := NULL;          -- 4262811
8318 l_tmp_amt                    := NULL;          -- 4262811
8319 --
8320  
8321 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
8322     l_balance_type_code <> 'B' THEN
8323 IF NVL(p_source_33,'
8324 ') =  'RETROACCRUAL' OR 
8325 NVL(p_source_33,'
8326 ') =  'ACCRUAL'
8327  THEN 
8328 
8329    --
8330    XLA_AE_LINES_PKG.SetNewLine;
8331 
8332    p_balance_type_code          := l_balance_type_code;
8333    -- set the flag so later we will know whether the gain loss line needs to be created
8334    
8335    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
8336      p_actual_flag :='A';
8337    END IF;
8338 
8339    --
8340    -- bulk performance
8341    --
8342    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
8343                                       p_header_num   => 0); -- 4262811
8344    --
8345    -- set accounting line options
8346    --
8347    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
8348            p_natural_side_code          => 'D'
8349          , p_gain_or_loss_flag          => 'N'
8350          , p_gl_transfer_mode_code      => 'S'
8351          , p_acct_entry_type_code       => 'A'
8352          , p_switch_side_flag           => 'Y'
8353          , p_merge_duplicate_code       => 'A'
8354          );
8355    --
8356    l_acc_rev_natural_side_code := 'C';  -- 4262811
8357    -- 
8358    --
8359    -- set accounting line type info
8360    --
8361    xla_ae_lines_pkg.SetAcctLineType
8362       (p_component_type             => l_component_type
8363       ,p_event_type_code            => l_event_type_code
8364       ,p_line_definition_owner_code => l_line_definition_owner_code
8365       ,p_line_definition_code       => l_line_definition_code
8366       ,p_accounting_line_code       => l_component_code
8367       ,p_accounting_line_type_code  => l_component_type_code
8368       ,p_accounting_line_appl_id    => l_component_appl_id
8369       ,p_amb_context_code           => l_amb_context_code
8370       ,p_entity_code                => l_entity_code
8371       ,p_event_class_code           => l_event_class_code);
8372    --
8373    -- set accounting class
8374    --
8375    xla_ae_lines_pkg.SetAcctClass(
8376            p_accounting_class_code  => 'ACCRUAL'
8377          , p_ae_header_id           => l_ae_header_id
8378          );
8379 
8380    --
8381    -- set rounding class
8382    --
8383    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
8384                       'ACCRUAL';
8385 
8386    --
8387    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
8388    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
8389    --
8390    -- bulk performance
8391    --
8392    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
8393 
8394    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
8395       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
8396 
8397    -- 4955764
8398    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8399       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
8400 
8401    -- 4458381 Public Sector Enh
8402    
8403    --
8404    -- set accounting attributes for the line type
8405    --
8406    l_entered_amt_idx := 24;
8407    l_accted_amt_idx  := 29;
8408    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
8409    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
8410    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
8411    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
8412    l_rec_acct_attrs.array_num_value(2)  := 
8413 xla_ae_sources_pkg.GetSystemSourceNum(
8414    p_source_code           => 'XLA_EVENT_APPL_ID'
8415  , p_source_type_code      => 'Y'
8419    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
8416  , p_source_application_id =>  602
8417 );
8418    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
8420    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
8421    l_rec_acct_attrs.array_char_value(4)  := 
8422 xla_ae_sources_pkg.GetSystemSourceChar(
8423    p_source_code           => 'XLA_ENTITY_CODE'
8424  , p_source_type_code      => 'Y'
8425  , p_source_application_id =>  602
8426 );
8427    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
8428    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
8429    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
8430    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
8431    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
8432    l_rec_acct_attrs.array_num_value(7)  := p_source_73;
8433    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
8434    l_rec_acct_attrs.array_num_value(8)  := p_source_59;
8435    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
8436    l_rec_acct_attrs.array_char_value(9)  := p_source_60;
8437    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
8438    l_rec_acct_attrs.array_char_value(10)  := p_source_61;
8439    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
8440    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_62);
8441    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
8442    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_63);
8443    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
8444    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_64);
8445    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
8446    l_rec_acct_attrs.array_char_value(14)  := p_source_55;
8447    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
8448    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
8449    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
8450    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
8451    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
8452    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
8453    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
8454    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
8455    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
8456    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
8457    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
8458    l_rec_acct_attrs.array_num_value(20)  := p_source_70;
8459    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
8460    l_rec_acct_attrs.array_char_value(21)  := p_source_67;
8461    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
8462    l_rec_acct_attrs.array_num_value(22)  := p_source_71;
8463    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
8464    l_rec_acct_attrs.array_char_value(23)  := p_source_72;
8465    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
8466    l_rec_acct_attrs.array_num_value(24)  := p_source_73;
8467    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
8468    l_rec_acct_attrs.array_char_value(25)  := p_source_67;
8469    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
8470    l_rec_acct_attrs.array_date_value(26)  := p_source_74;
8471    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
8472    l_rec_acct_attrs.array_num_value(27)  := p_source_75;
8473    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
8474    l_rec_acct_attrs.array_char_value(28)  := p_source_76;
8475    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
8476    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
8477    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
8478    l_rec_acct_attrs.array_date_value(30)  := p_source_77;
8479    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
8480    l_rec_acct_attrs.array_char_value(31)  := p_source_78;
8481    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
8482    l_rec_acct_attrs.array_date_value(32)  := p_source_79;
8483    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
8484    l_rec_acct_attrs.array_char_value(33)  := p_source_80;
8485    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
8486    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
8487    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
8488    l_rec_acct_attrs.array_num_value(35)  := p_source_82;
8489    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
8490    l_rec_acct_attrs.array_char_value(36)  := p_source_83;
8491    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
8492    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_84);
8493    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
8494    l_rec_acct_attrs.array_char_value(38)  := p_source_55;
8495    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
8496    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
8497    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
8498    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
8499    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
8500    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
8501    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
8502    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
8503    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
8504    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
8505    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
8509    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
8506    l_rec_acct_attrs.array_num_value(44)  := p_source_90;
8507 
8508    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
8510 
8511    ---------------------------------------------------------------------------------------------------------------
8512    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
8513    ---------------------------------------------------------------------------------------------------------------
8514    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
8515 
8516    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8517    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8518 
8519    IF xla_accounting_cache_pkg.GetValueChar
8520          (p_source_code         => 'LEDGER_CATEGORY_CODE'
8521          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
8522    AND l_bflow_method_code = 'PRIOR_ENTRY'
8523 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
8524    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
8525          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
8526        )
8527    THEN
8528          xla_ae_lines_pkg.BflowUpgEntry
8529            (p_business_method_code    => l_bflow_method_code
8530            ,p_business_class_code     => l_bflow_class_code
8531            ,p_balance_type            => l_balance_type_code);
8532    ELSE
8533       NULL;
8534 -- No business flow processing for business flow method of NONE.
8535    END IF;
8536 
8537    --
8538    -- call analytical criteria
8539    --
8540    
8541    --
8542    -- call description
8543    --
8544    
8545 xla_ae_lines_pkg.SetLineDescription(
8546    p_ae_header_id => l_ae_header_id
8547   ,p_description  => Description_1 (
8548      p_application_id         => p_application_id
8549    , p_ae_header_id           => l_ae_header_id 
8550 , p_source_1 => p_source_1
8551    )
8552 );
8553 
8554 
8555    --
8556    -- call ADRs
8557    -- Bug 4922099
8558    --
8559    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8560         (NVL(l_actual_upg_option, 'N') = 'O') OR
8561         (NVL(l_enc_upg_option, 'N') = 'O')
8562       )
8563    THEN
8564    NULL;
8565    --
8566    --
8567    
8568   l_ccid := AcctDerRule_33(
8569            p_application_id           => p_application_id
8570          , p_ae_header_id             => l_ae_header_id 
8571 , p_source_30 => p_source_30
8572          , x_transaction_coa_id       => l_adr_transaction_coa_id
8573          , x_accounting_coa_id        => l_adr_accounting_coa_id
8574          , x_value_type_code          => l_adr_value_type_code
8575          , p_side                     => 'NA'
8576    );
8577 
8578    xla_ae_lines_pkg.set_ccid(
8579     p_code_combination_id          => l_ccid
8580   , p_value_type_code              => l_adr_value_type_code
8581   , p_transaction_coa_id           => l_adr_transaction_coa_id
8582   , p_accounting_coa_id            => l_adr_accounting_coa_id
8583   , p_adr_code                     => 'AP_INVOICE_DIST'
8584   , p_adr_type_code                => 'S'
8585   , p_component_type               => l_component_type
8586   , p_component_code               => l_component_code
8587   , p_component_type_code          => l_component_type_code
8588   , p_component_appl_id            => l_component_appl_id
8589   , p_amb_context_code             => l_amb_context_code
8590   , p_side                         => 'NA'
8591   );
8592 
8593 
8594    --
8595    --
8596    END IF;
8597    --
8598    -- Bug 4922099
8599    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
8600           (NVL(l_enc_upg_option, 'N') = 'O')
8601         ) AND
8602         (l_bflow_method_code = 'PRIOR_ENTRY')
8603       )
8604    THEN
8605       IF
8606       --
8607       1 = 2
8608       --
8609       THEN
8610       xla_accounting_err_pkg.build_message
8611                                     (p_appli_s_name            => 'XLA'
8612                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8613                                     ,p_token_1                 => 'LINE_NUMBER'
8614                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
8615                                     ,p_token_2                 => 'LINE_TYPE_NAME'
8616                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
8617                                                                              l_component_type
8618                                                                             ,l_component_code
8619                                                                             ,l_component_type_code
8620                                                                             ,l_component_appl_id
8621                                                                             ,l_amb_context_code
8622                                                                             ,l_entity_code
8623                                                                             ,l_event_class_code
8624                                                                            )
8625                                     ,p_token_3                 => 'OWNER'
8626                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
8630                                     ,p_token_4                 => 'PRODUCT_NAME'
8627                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
8628                                                                           ,p_lookup_code    => l_component_type_code
8629                                                                          )
8631                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
8632                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8633                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8634                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
8635                                     ,p_ae_header_id            =>  NULL
8636                                        );
8637 
8638         IF (C_LEVEL_ERROR>= g_log_level) THEN
8639                  trace
8640                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8641                       ,p_level    => C_LEVEL_ERROR
8642                       ,p_module   => l_log_module);
8643         END IF;
8644       END IF;
8645    END IF;
8646    --
8647    --
8648    ------------------------------------------------------------------------------------------------
8649    -- 4219869 Business Flow
8650    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
8651    -- Prior Entry.  Currently, the following code is always generated.
8652    ------------------------------------------------------------------------------------------------
8653    XLA_AE_LINES_PKG.ValidateCurrentLine;
8654 
8655    ------------------------------------------------------------------------------------
8656    -- 4219869 Business Flow
8657    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
8658    ------------------------------------------------------------------------------------
8659    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8660 
8661    ----------------------------------------------------------------------------------
8662    -- 4219869 Business Flow
8663    -- Update journal entry status -- Need to generate this within IF <condition>
8664    ----------------------------------------------------------------------------------
8665    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8666          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
8667          ,p_balance_type_code => l_balance_type_code
8668          );
8669 
8670    -------------------------------------------------------------------------------------------
8671    -- 4262811 - Generate the Accrual Reversal lines
8672    -------------------------------------------------------------------------------------------
8673    BEGIN
8674       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
8675                               (g_array_event(p_event_id).array_value_num('header_index'));
8676       IF l_acc_rev_flag IS NULL THEN
8677          l_acc_rev_flag := 'N';
8678       END IF;
8679    EXCEPTION
8680       WHEN OTHERS THEN
8681          l_acc_rev_flag := 'N';
8682    END;
8683    --
8684    IF (l_acc_rev_flag = 'Y') THEN
8685 
8686        -- 4645092  ------------------------------------------------------------------------------
8687        -- To allow MPA report to determine if it should generate report process
8688        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
8689        ------------------------------------------------------------------------------------------
8690 
8691        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
8692        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
8693    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
8694    -- call ADRs
8695    -- Bug 4922099
8696    --
8697    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8698         (NVL(l_actual_upg_option, 'N') = 'O') OR
8699         (NVL(l_enc_upg_option, 'N') = 'O')
8700       )
8701    THEN
8702    NULL;
8703    --
8704    --
8705    
8706   l_ccid := AcctDerRule_33(
8707            p_application_id           => p_application_id
8708          , p_ae_header_id             => l_ae_header_id 
8709 , p_source_30 => p_source_30
8710          , x_transaction_coa_id       => l_adr_transaction_coa_id
8711          , x_accounting_coa_id        => l_adr_accounting_coa_id
8712          , x_value_type_code          => l_adr_value_type_code
8713          , p_side                     => 'NA'
8714    );
8715 
8716    xla_ae_lines_pkg.set_ccid(
8717     p_code_combination_id          => l_ccid
8718   , p_value_type_code              => l_adr_value_type_code
8719   , p_transaction_coa_id           => l_adr_transaction_coa_id
8720   , p_accounting_coa_id            => l_adr_accounting_coa_id
8721   , p_adr_code                     => 'AP_INVOICE_DIST'
8722   , p_adr_type_code                => 'S'
8723   , p_component_type               => l_component_type
8724   , p_component_code               => l_component_code
8725   , p_component_type_code          => l_component_type_code
8726   , p_component_appl_id            => l_component_appl_id
8727   , p_amb_context_code             => l_amb_context_code
8728   , p_side                         => 'NA'
8729   );
8730 
8731 
8732    --
8733    --
8734    END IF;
8735 
8736        --
8740                                          p_header_num   => 1);
8737        -- Update the line information that should be overwritten
8738        --
8739        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
8741        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
8742 
8743        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
8744 
8745        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
8746           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
8747        END IF;
8748 
8749       --
8750       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
8751       --
8752       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
8753           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
8754       ELSE
8755           ---------------------------------------------------------------------------------------------------
8756           -- 4262811a Switch Sign
8757           ---------------------------------------------------------------------------------------------------
8758           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
8759           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8760                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8761           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8762                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8763           -- 5132302
8764           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
8765                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8766 
8767       END IF;
8768 
8769       -- 4955764
8770       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8771       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
8772 
8773 
8774       XLA_AE_LINES_PKG.ValidateCurrentLine;
8775       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8776 
8777       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8778                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
8779                ,p_balance_type_code => l_balance_type_code);
8780 
8781    END IF;
8782 
8783    -----------------------------------------------------------------------------------------
8784    -- 4262811 Multiperiod Accounting
8785    -----------------------------------------------------------------------------------------
8786      -- No MPA option is assigned.
8787 
8788 
8789 END IF;
8790 END IF;
8791 --
8792 
8793 --
8794 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8795    trace
8796       (p_msg      => 'END of AcctLineType_49'
8797       ,p_level    => C_LEVEL_PROCEDURE
8798       ,p_module   => l_log_module);
8799 END IF;
8800 --
8801 EXCEPTION
8802   WHEN xla_exceptions_pkg.application_exception THEN
8803       RAISE;
8804   WHEN OTHERS THEN
8805        xla_exceptions_pkg.raise_message
8806            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_49');
8807 END AcctLineType_49;
8808 --
8809 
8810 ---------------------------------------
8811 --
8812 -- PRIVATE FUNCTION
8813 --         AcctLineType_50
8814 --
8815 ---------------------------------------
8816 PROCEDURE AcctLineType_50 (
8817   p_application_id        IN NUMBER
8818  ,p_event_id              IN NUMBER
8819  ,p_calculate_acctd_flag  IN VARCHAR2
8820  ,p_calculate_g_l_flag    IN VARCHAR2
8821  ,p_actual_flag           IN OUT VARCHAR2
8822  ,p_balance_type_code     OUT VARCHAR2
8823  ,p_gain_or_loss_ref      OUT VARCHAR2
8824  
8825 --Invoice Distribution Description
8826  , p_source_1            IN VARCHAR2
8827 --Invoice Distribution Ledger Amount
8828  , p_source_21            IN NUMBER
8829 --Invoice Distribution Account
8830  , p_source_30            IN NUMBER
8831 --Invoice Distribution Type
8832  , p_source_33            IN VARCHAR2
8833  , p_source_33_meaning    IN VARCHAR2
8834 --Accounting Reversal Indicator
8835  , p_source_53            IN VARCHAR2
8836 --Distribution Link Type
8837  , p_source_55            IN VARCHAR2
8838 --Allocation to Main Distribution Identifier
8839  , p_source_57            IN NUMBER
8840 --Invoice Identifier
8841  , p_source_58            IN NUMBER
8842 --Invoice Distribution Identifier
8843  , p_source_64            IN NUMBER
8844 --Payables Encumbrance Upgrade Credit Account
8845  , p_source_65            IN NUMBER
8846 --Payables Encumbrance Upgrade Credit Amount
8847  , p_source_66            IN NUMBER
8848 --Invoice Currency Code
8849  , p_source_67            IN VARCHAR2
8850 --Payables Encumbrance Upgrade Credit Base Amount
8851  , p_source_68            IN NUMBER
8852 --Payables Encumbrance Upgrade Debit Account
8853  , p_source_69            IN NUMBER
8854 --Payables Encumbrance Upgrade Debit Amount
8855  , p_source_70            IN NUMBER
8856 --Payables Encumbrance Upgrade Debit Base Amount
8857  , p_source_71            IN NUMBER
8858 --Payables Encumbrance Upgrade Option
8859  , p_source_72            IN VARCHAR2
8863  , p_source_74            IN DATE
8860 --Invoice Distribution Amount
8861  , p_source_73            IN NUMBER
8862 --Purchase Order Exchange Rate Date
8864 --Purchase Order Exchange Rate
8865  , p_source_75            IN NUMBER
8866 --Purchase Order Exchange Rate Type
8867  , p_source_76            IN VARCHAR2
8868 --Deferred Accounting End Date
8869  , p_source_77            IN DATE
8870 --Deferred Accounting Option
8871  , p_source_78            IN VARCHAR2
8872 --Deferred Accounting Start Date
8873  , p_source_79            IN DATE
8874 --Override Accounted Amount Indicator
8875  , p_source_80            IN VARCHAR2
8876  , p_source_80_meaning    IN VARCHAR2
8877 --Invoice Supplier Identifier
8878  , p_source_81            IN NUMBER
8879 --Invoice Supplier Site Identifier
8880  , p_source_82            IN NUMBER
8881 --Third Party Type
8882  , p_source_83            IN VARCHAR2
8883 --Parent Reversal Identifier
8884  , p_source_84            IN NUMBER
8885 --Invoice Distribution Statistical Amount
8886  , p_source_85            IN NUMBER
8887 --Invoice Distribution Tax Line Identifier
8888  , p_source_86            IN NUMBER
8889 --Invoice Distribution Tax Distribution Identifier from Tax
8890  , p_source_87            IN NUMBER
8891 --Invoice Distribution Summary Tax Line Identifier
8892  , p_source_88            IN NUMBER
8893 --Payables Upgrade Credit Encumbrance Type Identifier
8894  , p_source_89            IN NUMBER
8895 --Payables Upgrade Debit Encumbrance Type Identifier
8896  , p_source_90            IN NUMBER
8897 --Business Flow Accounts Payable Application Identifier
8898  , p_source_91            IN NUMBER
8899 --Business Flow Invoice Distribution Type
8900  , p_source_92            IN VARCHAR2
8901 --Business Flow Invoice Entity Code
8902  , p_source_93            IN VARCHAR2
8903 --Business Flow Invoice Distribution Identifier
8904  , p_source_94            IN NUMBER
8905 --Business Flow Invoice Identifier
8906  , p_source_95            IN NUMBER
8907 )
8908 IS
8909 
8910 l_component_type              VARCHAR2(80);
8911 l_component_code              VARCHAR2(30);
8912 l_component_type_code         VARCHAR2(1);
8913 l_component_appl_id           INTEGER;
8914 l_amb_context_code            VARCHAR2(30);
8915 l_entity_code                 VARCHAR2(30);
8916 l_event_class_code            VARCHAR2(30);
8917 l_ae_header_id                NUMBER;
8918 l_event_type_code             VARCHAR2(30);
8919 l_line_definition_code        VARCHAR2(30);
8920 l_line_definition_owner_code  VARCHAR2(1);
8921 --
8922 -- adr variables
8923 l_segment                     VARCHAR2(30);
8924 l_ccid                        NUMBER;
8925 l_adr_transaction_coa_id      NUMBER;
8926 l_adr_accounting_coa_id       NUMBER;
8927 l_adr_flexfield_segment_code  VARCHAR2(30);
8928 l_adr_flex_value_set_id       NUMBER;
8929 l_adr_value_type_code         VARCHAR2(30);
8930 l_adr_value_combination_id    NUMBER;
8931 l_adr_value_segment_code      VARCHAR2(30);
8932 
8933 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
8934 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
8935 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
8936 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
8937 
8938 -- 4262811 Variables ------------------------------------------------------------------------------------------
8939 l_entered_amt_idx             NUMBER;
8940 l_accted_amt_idx              NUMBER;
8941 l_acc_rev_flag                VARCHAR2(1);
8942 l_accrual_line_num            NUMBER;
8943 l_tmp_amt                     NUMBER;
8944 l_acc_rev_natural_side_code   VARCHAR2(1);
8945 
8946 l_num_entries                 NUMBER;
8947 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
8948 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
8949 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
8950 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
8951 l_recog_line_1                NUMBER;
8952 l_recog_line_2                NUMBER;
8953 
8954 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
8955 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
8956 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
8957 
8958 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
8959 
8960 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
8961 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
8962 
8963 ---------------------------------------------------------------------------------------------------------------
8964 
8965 
8966 --
8967 -- bulk performance
8968 --
8969 l_balance_type_code           VARCHAR2(1);
8970 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
8971 l_log_module                  VARCHAR2(240);
8972 
8973 --
8974 -- Upgrade strategy
8975 --
8976 l_actual_upg_option           VARCHAR2(1);
8977 l_enc_upg_option           VARCHAR2(1);
8978 
8979 --
8980 BEGIN
8981 --
8982 IF g_log_enabled THEN
8983       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_50';
8984 END IF;
8985 --
8986 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8987 
8988       trace
8989          (p_msg      => 'BEGIN of AcctLineType_50'
8990          ,p_level    => C_LEVEL_PROCEDURE
8994 --
8991          ,p_module   => l_log_module);
8992 
8993 END IF;
8995 l_component_type             := 'AMB_JLT';
8996 l_component_code             := 'AP_ACCRUAL_PREPAY';
8997 l_component_type_code        := 'S';
8998 l_component_appl_id          :=  200;
8999 l_amb_context_code           := 'DEFAULT';
9000 l_entity_code                := 'AP_INVOICES';
9001 l_event_class_code           := 'PREPAYMENTS';
9002 l_event_type_code            := 'PREPAYMENTS_ALL';
9003 l_line_definition_owner_code := 'S';
9004 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
9005 --
9006 l_balance_type_code          := 'A';
9007 l_segment                     := NULL;
9008 l_ccid                        := NULL;
9009 l_adr_transaction_coa_id      := NULL;
9010 l_adr_accounting_coa_id       := NULL;
9011 l_adr_flexfield_segment_code  := NULL;
9012 l_adr_flex_value_set_id       := NULL;
9013 l_adr_value_type_code         := NULL;
9014 l_adr_value_combination_id    := NULL;
9015 l_adr_value_segment_code      := NULL;
9016 
9017 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
9018 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
9019 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
9020 l_budgetary_control_flag     := 'N';
9021 
9022 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
9023 l_bflow_applied_to_amt       := NULL; -- 5132302
9024 l_entered_amt_idx            := NULL;          -- 4262811
9025 l_accted_amt_idx             := NULL;          -- 4262811
9026 l_acc_rev_flag               := NULL;          -- 4262811
9027 l_accrual_line_num           := NULL;          -- 4262811
9028 l_tmp_amt                    := NULL;          -- 4262811
9029 --
9030  
9031 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
9032     l_balance_type_code <> 'B' THEN
9033 IF NVL(p_source_33,'
9034 ') =  'RETROACCRUAL' OR 
9035 NVL(p_source_33,'
9036 ') =  'ACCRUAL'
9037  THEN 
9038 
9039    --
9040    XLA_AE_LINES_PKG.SetNewLine;
9041 
9042    p_balance_type_code          := l_balance_type_code;
9043    -- set the flag so later we will know whether the gain loss line needs to be created
9044    
9045    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
9046      p_actual_flag :='A';
9047    END IF;
9048 
9049    --
9050    -- bulk performance
9051    --
9052    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
9053                                       p_header_num   => 0); -- 4262811
9054    --
9055    -- set accounting line options
9056    --
9057    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
9058            p_natural_side_code          => 'D'
9059          , p_gain_or_loss_flag          => 'N'
9060          , p_gl_transfer_mode_code      => 'S'
9061          , p_acct_entry_type_code       => 'A'
9062          , p_switch_side_flag           => 'Y'
9063          , p_merge_duplicate_code       => 'A'
9064          );
9065    --
9066    l_acc_rev_natural_side_code := 'C';  -- 4262811
9067    -- 
9068    --
9069    -- set accounting line type info
9070    --
9071    xla_ae_lines_pkg.SetAcctLineType
9072       (p_component_type             => l_component_type
9073       ,p_event_type_code            => l_event_type_code
9074       ,p_line_definition_owner_code => l_line_definition_owner_code
9075       ,p_line_definition_code       => l_line_definition_code
9076       ,p_accounting_line_code       => l_component_code
9077       ,p_accounting_line_type_code  => l_component_type_code
9078       ,p_accounting_line_appl_id    => l_component_appl_id
9079       ,p_amb_context_code           => l_amb_context_code
9080       ,p_entity_code                => l_entity_code
9081       ,p_event_class_code           => l_event_class_code);
9082    --
9083    -- set accounting class
9084    --
9085    xla_ae_lines_pkg.SetAcctClass(
9086            p_accounting_class_code  => 'ACCRUAL'
9087          , p_ae_header_id           => l_ae_header_id
9088          );
9089 
9090    --
9091    -- set rounding class
9092    --
9093    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
9094                       'ACCRUAL';
9095 
9096    --
9097    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
9098    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
9099    --
9100    -- bulk performance
9101    --
9102    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
9103 
9104    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
9105       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9106 
9107    -- 4955764
9108    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9109       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
9110 
9111    -- 4458381 Public Sector Enh
9112    
9113    --
9114    -- set accounting attributes for the line type
9115    --
9116    l_entered_amt_idx := 23;
9117    l_accted_amt_idx  := 28;
9118    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
9119    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
9120    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
9124    p_source_code           => 'XLA_EVENT_APPL_ID'
9121    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
9122    l_rec_acct_attrs.array_num_value(2)  := 
9123 xla_ae_sources_pkg.GetSystemSourceNum(
9125  , p_source_type_code      => 'Y'
9126  , p_source_application_id =>  602
9127 );
9128    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
9129    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
9130    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
9131    l_rec_acct_attrs.array_char_value(4)  := 
9132 xla_ae_sources_pkg.GetSystemSourceChar(
9133    p_source_code           => 'XLA_ENTITY_CODE'
9134  , p_source_type_code      => 'Y'
9135  , p_source_application_id =>  602
9136 );
9137    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
9138    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
9139    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
9140    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
9141    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
9142    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
9143    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
9144    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
9145    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
9146    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
9147    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
9148    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
9149    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
9150    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
9151    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
9152    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
9153    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
9154    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
9155    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
9156    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
9157    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
9158    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
9159    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
9160    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
9161    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
9162    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
9163    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
9164    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
9165    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
9166    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
9167    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
9168    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
9169    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
9170    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
9171    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
9172    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
9173    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
9174    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
9175    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
9176    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
9177    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
9178    l_rec_acct_attrs.array_date_value(25)  := p_source_74;
9179    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
9180    l_rec_acct_attrs.array_num_value(26)  := p_source_75;
9181    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
9182    l_rec_acct_attrs.array_char_value(27)  := p_source_76;
9183    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
9184    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
9185    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
9186    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
9187    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
9188    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
9189    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
9190    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
9191    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
9192    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
9193    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
9194    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
9195    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
9196    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
9197    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
9198    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
9199    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
9200    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
9201    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
9202    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
9203    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
9204    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
9205    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
9206    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
9207    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
9208    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
9212    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
9209    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
9210    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
9211    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
9213    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
9214    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
9215 
9216    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
9217    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
9218 
9219    ---------------------------------------------------------------------------------------------------------------
9220    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
9221    ---------------------------------------------------------------------------------------------------------------
9222    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
9223 
9224    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9225    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9226 
9227    IF xla_accounting_cache_pkg.GetValueChar
9228          (p_source_code         => 'LEDGER_CATEGORY_CODE'
9229          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9230    AND l_bflow_method_code = 'PRIOR_ENTRY'
9231 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
9232    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
9233          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
9234        )
9235    THEN
9236          xla_ae_lines_pkg.BflowUpgEntry
9237            (p_business_method_code    => l_bflow_method_code
9238            ,p_business_class_code     => l_bflow_class_code
9239            ,p_balance_type            => l_balance_type_code);
9240    ELSE
9241       NULL;
9242 -- No business flow processing for business flow method of NONE.
9243    END IF;
9244 
9245    --
9246    -- call analytical criteria
9247    --
9248    
9249    --
9250    -- call description
9251    --
9252    
9253 xla_ae_lines_pkg.SetLineDescription(
9254    p_ae_header_id => l_ae_header_id
9255   ,p_description  => Description_1 (
9256      p_application_id         => p_application_id
9257    , p_ae_header_id           => l_ae_header_id 
9258 , p_source_1 => p_source_1
9259    )
9260 );
9261 
9262 
9263    --
9264    -- call ADRs
9265    -- Bug 4922099
9266    --
9267    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9268         (NVL(l_actual_upg_option, 'N') = 'O') OR
9269         (NVL(l_enc_upg_option, 'N') = 'O')
9270       )
9271    THEN
9272    NULL;
9273    --
9274    --
9275    
9276   l_ccid := AcctDerRule_33(
9277            p_application_id           => p_application_id
9278          , p_ae_header_id             => l_ae_header_id 
9279 , p_source_30 => p_source_30
9280          , x_transaction_coa_id       => l_adr_transaction_coa_id
9281          , x_accounting_coa_id        => l_adr_accounting_coa_id
9282          , x_value_type_code          => l_adr_value_type_code
9283          , p_side                     => 'NA'
9284    );
9285 
9286    xla_ae_lines_pkg.set_ccid(
9287     p_code_combination_id          => l_ccid
9288   , p_value_type_code              => l_adr_value_type_code
9289   , p_transaction_coa_id           => l_adr_transaction_coa_id
9290   , p_accounting_coa_id            => l_adr_accounting_coa_id
9291   , p_adr_code                     => 'AP_INVOICE_DIST'
9292   , p_adr_type_code                => 'S'
9293   , p_component_type               => l_component_type
9294   , p_component_code               => l_component_code
9295   , p_component_type_code          => l_component_type_code
9296   , p_component_appl_id            => l_component_appl_id
9297   , p_amb_context_code             => l_amb_context_code
9298   , p_side                         => 'NA'
9299   );
9300 
9301 
9302    --
9303    --
9304    END IF;
9305    --
9306    -- Bug 4922099
9307    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
9308           (NVL(l_enc_upg_option, 'N') = 'O')
9309         ) AND
9310         (l_bflow_method_code = 'PRIOR_ENTRY')
9311       )
9312    THEN
9313       IF
9314       --
9315       1 = 2
9316       --
9317       THEN
9318       xla_accounting_err_pkg.build_message
9319                                     (p_appli_s_name            => 'XLA'
9320                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9321                                     ,p_token_1                 => 'LINE_NUMBER'
9322                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
9323                                     ,p_token_2                 => 'LINE_TYPE_NAME'
9324                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
9325                                                                              l_component_type
9326                                                                             ,l_component_code
9327                                                                             ,l_component_type_code
9331                                                                             ,l_event_class_code
9328                                                                             ,l_component_appl_id
9329                                                                             ,l_amb_context_code
9330                                                                             ,l_entity_code
9332                                                                            )
9333                                     ,p_token_3                 => 'OWNER'
9334                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
9335                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
9336                                                                           ,p_lookup_code    => l_component_type_code
9337                                                                          )
9338                                     ,p_token_4                 => 'PRODUCT_NAME'
9339                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
9340                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
9341                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
9342                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
9343                                     ,p_ae_header_id            =>  NULL
9344                                        );
9345 
9346         IF (C_LEVEL_ERROR>= g_log_level) THEN
9347                  trace
9348                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9349                       ,p_level    => C_LEVEL_ERROR
9350                       ,p_module   => l_log_module);
9351         END IF;
9352       END IF;
9353    END IF;
9354    --
9355    --
9356    ------------------------------------------------------------------------------------------------
9357    -- 4219869 Business Flow
9358    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
9359    -- Prior Entry.  Currently, the following code is always generated.
9360    ------------------------------------------------------------------------------------------------
9361    XLA_AE_LINES_PKG.ValidateCurrentLine;
9362 
9363    ------------------------------------------------------------------------------------
9364    -- 4219869 Business Flow
9365    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
9366    ------------------------------------------------------------------------------------
9367    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9368 
9369    ----------------------------------------------------------------------------------
9370    -- 4219869 Business Flow
9371    -- Update journal entry status -- Need to generate this within IF <condition>
9372    ----------------------------------------------------------------------------------
9373    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9374          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
9375          ,p_balance_type_code => l_balance_type_code
9376          );
9377 
9378    -------------------------------------------------------------------------------------------
9379    -- 4262811 - Generate the Accrual Reversal lines
9380    -------------------------------------------------------------------------------------------
9381    BEGIN
9382       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
9383                               (g_array_event(p_event_id).array_value_num('header_index'));
9384       IF l_acc_rev_flag IS NULL THEN
9385          l_acc_rev_flag := 'N';
9386       END IF;
9387    EXCEPTION
9388       WHEN OTHERS THEN
9389          l_acc_rev_flag := 'N';
9390    END;
9391    --
9392    IF (l_acc_rev_flag = 'Y') THEN
9393 
9394        -- 4645092  ------------------------------------------------------------------------------
9395        -- To allow MPA report to determine if it should generate report process
9396        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
9397        ------------------------------------------------------------------------------------------
9398 
9399        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
9400        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
9401    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
9402    -- call ADRs
9403    -- Bug 4922099
9404    --
9405    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9406         (NVL(l_actual_upg_option, 'N') = 'O') OR
9407         (NVL(l_enc_upg_option, 'N') = 'O')
9408       )
9409    THEN
9410    NULL;
9411    --
9412    --
9413    
9414   l_ccid := AcctDerRule_33(
9415            p_application_id           => p_application_id
9416          , p_ae_header_id             => l_ae_header_id 
9417 , p_source_30 => p_source_30
9418          , x_transaction_coa_id       => l_adr_transaction_coa_id
9419          , x_accounting_coa_id        => l_adr_accounting_coa_id
9420          , x_value_type_code          => l_adr_value_type_code
9421          , p_side                     => 'NA'
9422    );
9423 
9424    xla_ae_lines_pkg.set_ccid(
9425     p_code_combination_id          => l_ccid
9426   , p_value_type_code              => l_adr_value_type_code
9427   , p_transaction_coa_id           => l_adr_transaction_coa_id
9428   , p_accounting_coa_id            => l_adr_accounting_coa_id
9432   , p_component_code               => l_component_code
9429   , p_adr_code                     => 'AP_INVOICE_DIST'
9430   , p_adr_type_code                => 'S'
9431   , p_component_type               => l_component_type
9433   , p_component_type_code          => l_component_type_code
9434   , p_component_appl_id            => l_component_appl_id
9435   , p_amb_context_code             => l_amb_context_code
9436   , p_side                         => 'NA'
9437   );
9438 
9439 
9440    --
9441    --
9442    END IF;
9443 
9444        --
9445        -- Update the line information that should be overwritten
9446        --
9447        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
9448                                          p_header_num   => 1);
9449        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
9450 
9451        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
9452 
9453        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
9454           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
9455        END IF;
9456 
9457       --
9458       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
9459       --
9460       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
9461           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
9462       ELSE
9463           ---------------------------------------------------------------------------------------------------
9464           -- 4262811a Switch Sign
9465           ---------------------------------------------------------------------------------------------------
9466           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
9467           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9468                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9469           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9470                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9471           -- 5132302
9472           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
9473                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9474 
9475       END IF;
9476 
9477       -- 4955764
9478       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9479       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
9480 
9481 
9482       XLA_AE_LINES_PKG.ValidateCurrentLine;
9483       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9484 
9485       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9486                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
9487                ,p_balance_type_code => l_balance_type_code);
9488 
9489    END IF;
9490 
9491    -----------------------------------------------------------------------------------------
9492    -- 4262811 Multiperiod Accounting
9493    -----------------------------------------------------------------------------------------
9494      -- No MPA option is assigned.
9495 
9496 
9497 END IF;
9498 END IF;
9499 --
9500 
9501 --
9502 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9503    trace
9504       (p_msg      => 'END of AcctLineType_50'
9505       ,p_level    => C_LEVEL_PROCEDURE
9506       ,p_module   => l_log_module);
9507 END IF;
9508 --
9509 EXCEPTION
9510   WHEN xla_exceptions_pkg.application_exception THEN
9511       RAISE;
9512   WHEN OTHERS THEN
9513        xla_exceptions_pkg.raise_message
9514            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_50');
9515 END AcctLineType_50;
9516 --
9517 
9518 ---------------------------------------
9519 --
9520 -- PRIVATE FUNCTION
9521 --         AcctLineType_51
9522 --
9523 ---------------------------------------
9524 PROCEDURE AcctLineType_51 (
9525   p_application_id        IN NUMBER
9526  ,p_event_id              IN NUMBER
9527  ,p_calculate_acctd_flag  IN VARCHAR2
9528  ,p_calculate_g_l_flag    IN VARCHAR2
9529  ,p_actual_flag           IN OUT VARCHAR2
9530  ,p_balance_type_code     OUT VARCHAR2
9531  ,p_gain_or_loss_ref      OUT VARCHAR2
9532  
9533 --Invoice Distribution Description
9534  , p_source_1            IN VARCHAR2
9535 --Automatic Offsets Value
9536  , p_source_15            IN VARCHAR2
9537  , p_source_15_meaning    IN VARCHAR2
9538 --Purchase Order Rate Variance Gain Account
9539  , p_source_20            IN NUMBER
9540 --Invoice Distribution Ledger Amount
9541  , p_source_21            IN NUMBER
9542 --Destination Type of the PO Distribution
9543  , p_source_22            IN VARCHAR2
9544  , p_source_22_meaning    IN VARCHAR2
9545 --Purchase Order Rate Variance Loss Account
9546  , p_source_23            IN NUMBER
9547 --Invoice Distribution Account
9548  , p_source_30            IN NUMBER
9549 --Invoice Distribution Type
9550  , p_source_33            IN VARCHAR2
9551  , p_source_33_meaning    IN VARCHAR2
9552 --Automatic Offsets Flag
9553  , p_source_47            IN VARCHAR2
9557 --Distribution Link Type
9554  , p_source_47_meaning    IN VARCHAR2
9555 --Accounting Reversal Indicator
9556  , p_source_53            IN VARCHAR2
9558  , p_source_55            IN VARCHAR2
9559 --Allocation to Main Distribution Identifier
9560  , p_source_57            IN NUMBER
9561 --Invoice Identifier
9562  , p_source_58            IN NUMBER
9563 --Invoice Distribution Identifier
9564  , p_source_64            IN NUMBER
9565 --Payables Encumbrance Upgrade Credit Account
9566  , p_source_65            IN NUMBER
9567 --Payables Encumbrance Upgrade Credit Amount
9568  , p_source_66            IN NUMBER
9569 --Invoice Currency Code
9570  , p_source_67            IN VARCHAR2
9571 --Payables Encumbrance Upgrade Credit Base Amount
9572  , p_source_68            IN NUMBER
9573 --Payables Encumbrance Upgrade Debit Account
9574  , p_source_69            IN NUMBER
9575 --Payables Encumbrance Upgrade Debit Amount
9576  , p_source_70            IN NUMBER
9577 --Payables Encumbrance Upgrade Debit Base Amount
9578  , p_source_71            IN NUMBER
9579 --Payables Encumbrance Upgrade Option
9580  , p_source_72            IN VARCHAR2
9581 --Deferred Accounting End Date
9582  , p_source_77            IN DATE
9583 --Deferred Accounting Option
9584  , p_source_78            IN VARCHAR2
9585 --Deferred Accounting Start Date
9586  , p_source_79            IN DATE
9587 --Override Accounted Amount Indicator
9588  , p_source_80            IN VARCHAR2
9589  , p_source_80_meaning    IN VARCHAR2
9590 --Invoice Supplier Identifier
9591  , p_source_81            IN NUMBER
9592 --Invoice Supplier Site Identifier
9593  , p_source_82            IN NUMBER
9594 --Third Party Type
9595  , p_source_83            IN VARCHAR2
9596 --Parent Reversal Identifier
9597  , p_source_84            IN NUMBER
9598 --Invoice Distribution Statistical Amount
9599  , p_source_85            IN NUMBER
9600 --Invoice Distribution Tax Line Identifier
9601  , p_source_86            IN NUMBER
9602 --Invoice Distribution Tax Distribution Identifier from Tax
9603  , p_source_87            IN NUMBER
9604 --Invoice Distribution Summary Tax Line Identifier
9605  , p_source_88            IN NUMBER
9606 --Payables Upgrade Credit Encumbrance Type Identifier
9607  , p_source_89            IN NUMBER
9608 --Payables Upgrade Debit Encumbrance Type Identifier
9609  , p_source_90            IN NUMBER
9610 --Business Flow Accounts Payable Application Identifier
9611  , p_source_91            IN NUMBER
9612 --Business Flow Invoice Distribution Type
9613  , p_source_92            IN VARCHAR2
9614 --Business Flow Invoice Entity Code
9615  , p_source_93            IN VARCHAR2
9616 --Business Flow Invoice Distribution Identifier
9617  , p_source_94            IN NUMBER
9618 --Business Flow Invoice Identifier
9619  , p_source_95            IN NUMBER
9620 )
9621 IS
9622 
9623 l_component_type              VARCHAR2(80);
9624 l_component_code              VARCHAR2(30);
9625 l_component_type_code         VARCHAR2(1);
9626 l_component_appl_id           INTEGER;
9627 l_amb_context_code            VARCHAR2(30);
9628 l_entity_code                 VARCHAR2(30);
9629 l_event_class_code            VARCHAR2(30);
9630 l_ae_header_id                NUMBER;
9631 l_event_type_code             VARCHAR2(30);
9632 l_line_definition_code        VARCHAR2(30);
9633 l_line_definition_owner_code  VARCHAR2(1);
9634 --
9635 -- adr variables
9636 l_segment                     VARCHAR2(30);
9637 l_ccid                        NUMBER;
9638 l_adr_transaction_coa_id      NUMBER;
9639 l_adr_accounting_coa_id       NUMBER;
9640 l_adr_flexfield_segment_code  VARCHAR2(30);
9641 l_adr_flex_value_set_id       NUMBER;
9642 l_adr_value_type_code         VARCHAR2(30);
9643 l_adr_value_combination_id    NUMBER;
9644 l_adr_value_segment_code      VARCHAR2(30);
9645 
9646 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
9647 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
9648 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
9649 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
9650 
9651 -- 4262811 Variables ------------------------------------------------------------------------------------------
9652 l_entered_amt_idx             NUMBER;
9653 l_accted_amt_idx              NUMBER;
9654 l_acc_rev_flag                VARCHAR2(1);
9655 l_accrual_line_num            NUMBER;
9656 l_tmp_amt                     NUMBER;
9657 l_acc_rev_natural_side_code   VARCHAR2(1);
9658 
9659 l_num_entries                 NUMBER;
9660 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
9661 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
9662 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
9663 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
9664 l_recog_line_1                NUMBER;
9665 l_recog_line_2                NUMBER;
9666 
9667 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
9668 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
9669 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
9670 
9671 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
9672 
9673 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
9674 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
9675 
9679 --
9676 ---------------------------------------------------------------------------------------------------------------
9677 
9678 
9680 -- bulk performance
9681 --
9682 l_balance_type_code           VARCHAR2(1);
9683 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
9684 l_log_module                  VARCHAR2(240);
9685 
9686 --
9687 -- Upgrade strategy
9688 --
9689 l_actual_upg_option           VARCHAR2(1);
9690 l_enc_upg_option           VARCHAR2(1);
9691 
9692 --
9693 BEGIN
9694 --
9695 IF g_log_enabled THEN
9696       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_51';
9697 END IF;
9698 --
9699 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9700 
9701       trace
9702          (p_msg      => 'BEGIN of AcctLineType_51'
9703          ,p_level    => C_LEVEL_PROCEDURE
9704          ,p_module   => l_log_module);
9705 
9706 END IF;
9707 --
9708 l_component_type             := 'AMB_JLT';
9709 l_component_code             := 'AP_ALC_EX_RATE_VAR_CM';
9710 l_component_type_code        := 'S';
9711 l_component_appl_id          :=  200;
9712 l_amb_context_code           := 'DEFAULT';
9713 l_entity_code                := 'AP_INVOICES';
9714 l_event_class_code           := 'CREDIT MEMOS';
9715 l_event_type_code            := 'CREDIT MEMOS_ALL';
9716 l_line_definition_owner_code := 'S';
9717 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
9718 --
9719 l_balance_type_code          := 'A';
9720 l_segment                     := NULL;
9721 l_ccid                        := NULL;
9722 l_adr_transaction_coa_id      := NULL;
9723 l_adr_accounting_coa_id       := NULL;
9724 l_adr_flexfield_segment_code  := NULL;
9725 l_adr_flex_value_set_id       := NULL;
9726 l_adr_value_type_code         := NULL;
9727 l_adr_value_combination_id    := NULL;
9728 l_adr_value_segment_code      := NULL;
9729 
9730 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
9731 l_bflow_class_code           := '';    -- 4219869 Business Flow
9732 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
9733 l_budgetary_control_flag     := 'N';
9734 
9735 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
9736 l_bflow_applied_to_amt       := NULL; -- 5132302
9737 l_entered_amt_idx            := NULL;          -- 4262811
9738 l_accted_amt_idx             := NULL;          -- 4262811
9739 l_acc_rev_flag               := NULL;          -- 4262811
9740 l_accrual_line_num           := NULL;          -- 4262811
9741 l_tmp_amt                    := NULL;          -- 4262811
9742 --
9743 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
9744             (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
9745                return;
9746   END IF;
9747   
9748 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
9749     l_balance_type_code <> 'B' THEN
9750 IF NVL(p_source_33,'
9751 ') =  'ACCRUAL'
9752  THEN 
9753 
9754    --
9755    XLA_AE_LINES_PKG.SetNewLine;
9756 
9757    p_balance_type_code          := l_balance_type_code;
9758    -- set the flag so later we will know whether the gain loss line needs to be created
9759    
9760    IF(l_balance_type_code = 'A' ) THEN
9761      p_actual_flag :='G';
9762    END IF;
9763 
9764    --
9765    -- bulk performance
9766    --
9767    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
9768                                       p_header_num   => 0); -- 4262811
9769    --
9770    -- set accounting line options
9771    --
9772    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
9773            p_natural_side_code          => 'G'
9774          , p_gain_or_loss_flag          => 'N'
9775          , p_gl_transfer_mode_code      => 'S'
9776          , p_acct_entry_type_code       => 'A'
9777          , p_switch_side_flag           => ''
9778          , p_merge_duplicate_code       => 'A'
9779          );
9780    --
9781    l_acc_rev_natural_side_code := 'C';  -- 4262811
9782    -- 
9783    --
9784    -- set accounting line type info
9785    --
9786    xla_ae_lines_pkg.SetAcctLineType
9787       (p_component_type             => l_component_type
9788       ,p_event_type_code            => l_event_type_code
9789       ,p_line_definition_owner_code => l_line_definition_owner_code
9790       ,p_line_definition_code       => l_line_definition_code
9791       ,p_accounting_line_code       => l_component_code
9792       ,p_accounting_line_type_code  => l_component_type_code
9793       ,p_accounting_line_appl_id    => l_component_appl_id
9794       ,p_amb_context_code           => l_amb_context_code
9795       ,p_entity_code                => l_entity_code
9796       ,p_event_class_code           => l_event_class_code);
9797    --
9798    -- set accounting class
9799    --
9800    xla_ae_lines_pkg.SetAcctClass(
9801            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
9802          , p_ae_header_id           => l_ae_header_id
9803          );
9804 
9805    --
9806    -- set rounding class
9807    --
9808    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
9809                       'EXCHANGE_RATE_VARIANCE';
9810 
9811    --
9815    -- bulk performance
9812    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
9813    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
9814    --
9816    --
9817    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
9818 
9819    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
9820       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9821 
9822    -- 4955764
9823    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9824       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
9825 
9826    -- 4458381 Public Sector Enh
9827    
9828    --
9829    -- set accounting attributes for the line type
9830    --
9831    l_entered_amt_idx := NULL;
9832    l_accted_amt_idx  := 23;
9833    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
9834    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
9835    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
9836    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
9837    l_rec_acct_attrs.array_num_value(2)  := 
9838 xla_ae_sources_pkg.GetSystemSourceNum(
9839    p_source_code           => 'XLA_EVENT_APPL_ID'
9840  , p_source_type_code      => 'Y'
9841  , p_source_application_id =>  602
9842 );
9843    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
9844    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
9845    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
9846    l_rec_acct_attrs.array_char_value(4)  := 
9847 xla_ae_sources_pkg.GetSystemSourceChar(
9848    p_source_code           => 'XLA_ENTITY_CODE'
9849  , p_source_type_code      => 'Y'
9850  , p_source_application_id =>  602
9851 );
9852    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
9853    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
9854    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
9855    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
9856    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
9857    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
9858    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
9859    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
9860    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
9861    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
9862    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
9863    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
9864    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
9865    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
9866    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
9867    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
9868    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
9869    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
9870    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
9871    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
9872    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
9873    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
9874    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
9875    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
9876    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
9877    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
9878    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
9879    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
9880    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
9881    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
9882    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
9883    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
9884    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
9885    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
9886    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
9887    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
9888    l_rec_acct_attrs.array_acct_attr_code(23) := 'LEDGER_AMOUNT';
9889    l_rec_acct_attrs.array_num_value(23)  := p_source_21;
9890    l_rec_acct_attrs.array_acct_attr_code(24) := 'MULTIPERIOD_END_DATE';
9891    l_rec_acct_attrs.array_date_value(24)  := p_source_77;
9892    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_OPTION';
9893    l_rec_acct_attrs.array_char_value(25)  := p_source_78;
9894    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_START_DATE';
9895    l_rec_acct_attrs.array_date_value(26)  := p_source_79;
9896    l_rec_acct_attrs.array_acct_attr_code(27) := 'OVERRIDE_ACCTD_AMT_FLAG';
9897    l_rec_acct_attrs.array_char_value(27)  := p_source_80;
9898    l_rec_acct_attrs.array_acct_attr_code(28) := 'PARTY_ID';
9899    l_rec_acct_attrs.array_num_value(28)  := p_source_81;
9900    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_SITE_ID';
9901    l_rec_acct_attrs.array_num_value(29)  := p_source_82;
9902    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
9903    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
9904    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
9905    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_84);
9906    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
9910    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
9907    l_rec_acct_attrs.array_char_value(32)  := p_source_55;
9908    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
9909    l_rec_acct_attrs.array_num_value(33)  := p_source_85;
9911    l_rec_acct_attrs.array_num_value(34)  := p_source_86;
9912    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
9913    l_rec_acct_attrs.array_num_value(35)  := p_source_87;
9914    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
9915    l_rec_acct_attrs.array_num_value(36)  := p_source_88;
9916    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
9917    l_rec_acct_attrs.array_num_value(37)  := p_source_89;
9918    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
9919    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
9920 
9921    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
9922    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
9923 
9924    ---------------------------------------------------------------------------------------------------------------
9925    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
9926    ---------------------------------------------------------------------------------------------------------------
9927    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
9928 
9929    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9930    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9931 
9932    IF xla_accounting_cache_pkg.GetValueChar
9933          (p_source_code         => 'LEDGER_CATEGORY_CODE'
9934          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9935    AND l_bflow_method_code = 'PRIOR_ENTRY'
9936 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
9937    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
9938          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
9939        )
9940    THEN
9941          xla_ae_lines_pkg.BflowUpgEntry
9942            (p_business_method_code    => l_bflow_method_code
9943            ,p_business_class_code     => l_bflow_class_code
9944            ,p_balance_type            => l_balance_type_code);
9945    ELSE
9946       NULL;
9947 -- No business flow processing for business flow method of NONE.
9948    END IF;
9949 
9950    --
9951    -- call analytical criteria
9952    --
9953    
9954    --
9955    -- call description
9956    --
9957    
9958 xla_ae_lines_pkg.SetLineDescription(
9959    p_ae_header_id => l_ae_header_id
9960   ,p_description  => Description_1 (
9961      p_application_id         => p_application_id
9962    , p_ae_header_id           => l_ae_header_id 
9963 , p_source_1 => p_source_1
9964    )
9965 );
9966 
9967 
9968    --
9969    -- call ADRs
9970    -- Bug 4922099
9971    --
9972    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9973         (NVL(l_actual_upg_option, 'N') = 'O') OR
9974         (NVL(l_enc_upg_option, 'N') = 'O')
9975       )
9976    THEN
9977    NULL;
9978    --
9979    --
9980    
9981   l_ccid := AcctDerRule_30(
9982            p_application_id           => p_application_id
9983          , p_ae_header_id             => l_ae_header_id 
9984 , p_source_15 => p_source_15
9985 , p_source_15_meaning => p_source_15_meaning
9986 , p_source_20 => p_source_20
9987 , p_source_21 => p_source_21
9988 , p_source_22 => p_source_22
9989 , p_source_22_meaning => p_source_22_meaning
9990 , p_source_23 => p_source_23
9991 , p_source_30 => p_source_30
9992 , p_source_47 => p_source_47
9993 , p_source_47_meaning => p_source_47_meaning
9994          , x_transaction_coa_id       => l_adr_transaction_coa_id
9995          , x_accounting_coa_id        => l_adr_accounting_coa_id
9996          , x_value_type_code          => l_adr_value_type_code
9997          , p_side                     => 'ALL'
9998    );
9999 
10000    xla_ae_lines_pkg.set_ccid(
10001     p_code_combination_id          => l_ccid
10002   , p_value_type_code              => l_adr_value_type_code
10003   , p_transaction_coa_id           => l_adr_transaction_coa_id
10004   , p_accounting_coa_id            => l_adr_accounting_coa_id
10005   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
10006   , p_adr_type_code                => 'S'
10007   , p_component_type               => l_component_type
10008   , p_component_code               => l_component_code
10009   , p_component_type_code          => l_component_type_code
10010   , p_component_appl_id            => l_component_appl_id
10011   , p_amb_context_code             => l_amb_context_code
10012   , p_side                         => 'ALL'
10013   );
10014 
10015 
10016    l_segment := AcctDerRule_9(
10017            p_application_id           => p_application_id
10018          , p_ae_header_id             => l_ae_header_id 
10019 , p_source_15 => p_source_15
10020 , p_source_15_meaning => p_source_15_meaning
10021 , p_source_20 => p_source_20
10022 , p_source_22 => p_source_22
10023 , p_source_22_meaning => p_source_22_meaning
10024          , x_transaction_coa_id       => l_adr_transaction_coa_id
10025          , x_accounting_coa_id        => l_adr_accounting_coa_id
10029          , x_value_combination_id     => l_adr_value_combination_id
10026          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10027          , x_flex_value_set_id        => l_adr_flex_value_set_id
10028          , x_value_type_code          => l_adr_value_type_code
10030          , x_value_segment_code       => l_adr_value_segment_code
10031          , p_side                     => 'DEBIT'
10032          , p_override_seg_flag        => 'Y'
10033    );
10034 
10035    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10036 
10037       xla_ae_lines_pkg.set_segment(
10038           p_to_segment_code         => 'GL_ACCOUNT'
10039         , p_segment_value           => l_segment
10040         , p_from_segment_code       => l_adr_value_segment_code
10041         , p_from_combination_id     => l_adr_value_combination_id
10042         , p_value_type_code         => l_adr_value_type_code
10043         , p_transaction_coa_id      => l_adr_transaction_coa_id
10044         , p_accounting_coa_id       => l_adr_accounting_coa_id
10045         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10046         , p_flex_value_set_id       => l_adr_flex_value_set_id
10047         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
10048         , p_adr_type_code           => 'S'
10049         , p_component_type          => l_component_type
10050         , p_component_code          => l_component_code
10051         , p_component_type_code     => l_component_type_code
10052         , p_component_appl_id       => l_component_appl_id
10053         , p_amb_context_code        => l_amb_context_code
10054         , p_entity_code             => 'AP_INVOICES'
10055         , p_event_class_code        => 'CREDIT MEMOS'
10056         , p_side                    => 'DEBIT'
10057         );
10058 
10059   END IF;
10060 
10061    l_segment := AcctDerRule_10(
10062            p_application_id           => p_application_id
10063          , p_ae_header_id             => l_ae_header_id 
10064 , p_source_15 => p_source_15
10065 , p_source_15_meaning => p_source_15_meaning
10066 , p_source_22 => p_source_22
10067 , p_source_22_meaning => p_source_22_meaning
10068 , p_source_23 => p_source_23
10069          , x_transaction_coa_id       => l_adr_transaction_coa_id
10070          , x_accounting_coa_id        => l_adr_accounting_coa_id
10071          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10072          , x_flex_value_set_id        => l_adr_flex_value_set_id
10073          , x_value_type_code          => l_adr_value_type_code
10074          , x_value_combination_id     => l_adr_value_combination_id
10075          , x_value_segment_code       => l_adr_value_segment_code
10076          , p_side                     => 'CREDIT'
10077          , p_override_seg_flag        => 'Y'
10078    );
10079 
10080    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10081 
10082       xla_ae_lines_pkg.set_segment(
10083           p_to_segment_code         => 'GL_ACCOUNT'
10084         , p_segment_value           => l_segment
10085         , p_from_segment_code       => l_adr_value_segment_code
10086         , p_from_combination_id     => l_adr_value_combination_id
10087         , p_value_type_code         => l_adr_value_type_code
10088         , p_transaction_coa_id      => l_adr_transaction_coa_id
10089         , p_accounting_coa_id       => l_adr_accounting_coa_id
10090         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10091         , p_flex_value_set_id       => l_adr_flex_value_set_id
10092         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
10093         , p_adr_type_code           => 'S'
10094         , p_component_type          => l_component_type
10095         , p_component_code          => l_component_code
10096         , p_component_type_code     => l_component_type_code
10097         , p_component_appl_id       => l_component_appl_id
10098         , p_amb_context_code        => l_amb_context_code
10099         , p_entity_code             => 'AP_INVOICES'
10100         , p_event_class_code        => 'CREDIT MEMOS'
10101         , p_side                    => 'CREDIT'
10102         );
10103 
10104   END IF;
10105 
10106    l_segment := AcctDerRule_23(
10107            p_application_id           => p_application_id
10108          , p_ae_header_id             => l_ae_header_id 
10109 , p_source_15 => p_source_15
10110 , p_source_15_meaning => p_source_15_meaning
10111 , p_source_22 => p_source_22
10112 , p_source_22_meaning => p_source_22_meaning
10113 , p_source_30 => p_source_30
10114          , x_transaction_coa_id       => l_adr_transaction_coa_id
10115          , x_accounting_coa_id        => l_adr_accounting_coa_id
10116          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10117          , x_flex_value_set_id        => l_adr_flex_value_set_id
10118          , x_value_type_code          => l_adr_value_type_code
10119          , x_value_combination_id     => l_adr_value_combination_id
10120          , x_value_segment_code       => l_adr_value_segment_code
10121          , p_side                     => 'ALL'
10122          , p_override_seg_flag        => 'Y'
10123    );
10124 
10125    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10126 
10127       xla_ae_lines_pkg.set_segment(
10128           p_to_segment_code         => 'GL_BALANCING'
10129         , p_segment_value           => l_segment
10130         , p_from_segment_code       => l_adr_value_segment_code
10131         , p_from_combination_id     => l_adr_value_combination_id
10135         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10132         , p_value_type_code         => l_adr_value_type_code
10133         , p_transaction_coa_id      => l_adr_transaction_coa_id
10134         , p_accounting_coa_id       => l_adr_accounting_coa_id
10136         , p_flex_value_set_id       => l_adr_flex_value_set_id
10137         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
10138         , p_adr_type_code           => 'S'
10139         , p_component_type          => l_component_type
10140         , p_component_code          => l_component_code
10141         , p_component_type_code     => l_component_type_code
10142         , p_component_appl_id       => l_component_appl_id
10143         , p_amb_context_code        => l_amb_context_code
10144         , p_entity_code             => 'AP_INVOICES'
10145         , p_event_class_code        => 'CREDIT MEMOS'
10146         , p_side                    => 'ALL'
10147         );
10148 
10149   END IF;
10150 
10151    --
10152    --
10153    END IF;
10154    --
10155    -- Bug 4922099
10156    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
10157           (NVL(l_enc_upg_option, 'N') = 'O')
10158         ) AND
10159         (l_bflow_method_code = 'PRIOR_ENTRY')
10160       )
10161    THEN
10162       IF
10163       --
10164       1 = 2
10165       --
10166       THEN
10167       xla_accounting_err_pkg.build_message
10168                                     (p_appli_s_name            => 'XLA'
10169                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10170                                     ,p_token_1                 => 'LINE_NUMBER'
10171                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
10172                                     ,p_token_2                 => 'LINE_TYPE_NAME'
10173                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
10174                                                                              l_component_type
10175                                                                             ,l_component_code
10176                                                                             ,l_component_type_code
10177                                                                             ,l_component_appl_id
10178                                                                             ,l_amb_context_code
10179                                                                             ,l_entity_code
10180                                                                             ,l_event_class_code
10181                                                                            )
10182                                     ,p_token_3                 => 'OWNER'
10183                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
10184                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
10185                                                                           ,p_lookup_code    => l_component_type_code
10186                                                                          )
10187                                     ,p_token_4                 => 'PRODUCT_NAME'
10188                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
10189                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
10190                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
10191                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
10192                                     ,p_ae_header_id            =>  NULL
10193                                        );
10194 
10195         IF (C_LEVEL_ERROR>= g_log_level) THEN
10196                  trace
10197                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10198                       ,p_level    => C_LEVEL_ERROR
10199                       ,p_module   => l_log_module);
10200         END IF;
10201       END IF;
10202    END IF;
10203    --
10204    --
10205    ------------------------------------------------------------------------------------------------
10206    -- 4219869 Business Flow
10207    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
10208    -- Prior Entry.  Currently, the following code is always generated.
10209    ------------------------------------------------------------------------------------------------
10210    XLA_AE_LINES_PKG.ValidateCurrentLine;
10211 
10212    ------------------------------------------------------------------------------------
10213    -- 4219869 Business Flow
10214    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
10215    ------------------------------------------------------------------------------------
10216    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10217 
10218    ----------------------------------------------------------------------------------
10219    -- 4219869 Business Flow
10220    -- Update journal entry status -- Need to generate this within IF <condition>
10221    ----------------------------------------------------------------------------------
10222    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10223          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
10224          ,p_balance_type_code => l_balance_type_code
10225          );
10226 
10227    -------------------------------------------------------------------------------------------
10231       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
10228    -- 4262811 - Generate the Accrual Reversal lines
10229    -------------------------------------------------------------------------------------------
10230    BEGIN
10232                               (g_array_event(p_event_id).array_value_num('header_index'));
10233       IF l_acc_rev_flag IS NULL THEN
10234          l_acc_rev_flag := 'N';
10235       END IF;
10236    EXCEPTION
10237       WHEN OTHERS THEN
10238          l_acc_rev_flag := 'N';
10239    END;
10240    --
10241    IF (l_acc_rev_flag = 'Y') THEN
10242 
10243        -- 4645092  ------------------------------------------------------------------------------
10244        -- To allow MPA report to determine if it should generate report process
10245        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
10246        ------------------------------------------------------------------------------------------
10247 
10248        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
10249        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
10250    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
10251    -- call ADRs
10252    -- Bug 4922099
10253    --
10254    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10255         (NVL(l_actual_upg_option, 'N') = 'O') OR
10256         (NVL(l_enc_upg_option, 'N') = 'O')
10257       )
10258    THEN
10259    NULL;
10260    --
10261    --
10262    
10263   l_ccid := AcctDerRule_30(
10264            p_application_id           => p_application_id
10265          , p_ae_header_id             => l_ae_header_id 
10266 , p_source_15 => p_source_15
10267 , p_source_15_meaning => p_source_15_meaning
10268 , p_source_20 => p_source_20
10269 , p_source_21 => p_source_21
10270 , p_source_22 => p_source_22
10271 , p_source_22_meaning => p_source_22_meaning
10272 , p_source_23 => p_source_23
10273 , p_source_30 => p_source_30
10274 , p_source_47 => p_source_47
10275 , p_source_47_meaning => p_source_47_meaning
10276          , x_transaction_coa_id       => l_adr_transaction_coa_id
10277          , x_accounting_coa_id        => l_adr_accounting_coa_id
10278          , x_value_type_code          => l_adr_value_type_code
10279          , p_side                     => 'ALL'
10280    );
10281 
10282    xla_ae_lines_pkg.set_ccid(
10283     p_code_combination_id          => l_ccid
10284   , p_value_type_code              => l_adr_value_type_code
10285   , p_transaction_coa_id           => l_adr_transaction_coa_id
10286   , p_accounting_coa_id            => l_adr_accounting_coa_id
10287   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
10288   , p_adr_type_code                => 'S'
10289   , p_component_type               => l_component_type
10290   , p_component_code               => l_component_code
10291   , p_component_type_code          => l_component_type_code
10292   , p_component_appl_id            => l_component_appl_id
10293   , p_amb_context_code             => l_amb_context_code
10294   , p_side                         => 'ALL'
10295   );
10296 
10297 
10298    l_segment := AcctDerRule_9(
10299            p_application_id           => p_application_id
10300          , p_ae_header_id             => l_ae_header_id 
10301 , p_source_15 => p_source_15
10302 , p_source_15_meaning => p_source_15_meaning
10303 , p_source_20 => p_source_20
10304 , p_source_22 => p_source_22
10305 , p_source_22_meaning => p_source_22_meaning
10306          , x_transaction_coa_id       => l_adr_transaction_coa_id
10307          , x_accounting_coa_id        => l_adr_accounting_coa_id
10308          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10309          , x_flex_value_set_id        => l_adr_flex_value_set_id
10310          , x_value_type_code          => l_adr_value_type_code
10311          , x_value_combination_id     => l_adr_value_combination_id
10312          , x_value_segment_code       => l_adr_value_segment_code
10313          , p_side                     => 'DEBIT'
10314          , p_override_seg_flag        => 'Y'
10315    );
10316 
10317    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10318 
10319       xla_ae_lines_pkg.set_segment(
10320           p_to_segment_code         => 'GL_ACCOUNT'
10321         , p_segment_value           => l_segment
10322         , p_from_segment_code       => l_adr_value_segment_code
10323         , p_from_combination_id     => l_adr_value_combination_id
10324         , p_value_type_code         => l_adr_value_type_code
10325         , p_transaction_coa_id      => l_adr_transaction_coa_id
10326         , p_accounting_coa_id       => l_adr_accounting_coa_id
10327         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10328         , p_flex_value_set_id       => l_adr_flex_value_set_id
10329         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
10330         , p_adr_type_code           => 'S'
10331         , p_component_type          => l_component_type
10332         , p_component_code          => l_component_code
10333         , p_component_type_code     => l_component_type_code
10334         , p_component_appl_id       => l_component_appl_id
10335         , p_amb_context_code        => l_amb_context_code
10336         , p_entity_code             => 'AP_INVOICES'
10337         , p_event_class_code        => 'CREDIT MEMOS'
10338         , p_side                    => 'DEBIT'
10339         );
10340 
10341   END IF;
10345          , p_ae_header_id             => l_ae_header_id 
10342 
10343    l_segment := AcctDerRule_10(
10344            p_application_id           => p_application_id
10346 , p_source_15 => p_source_15
10347 , p_source_15_meaning => p_source_15_meaning
10348 , p_source_22 => p_source_22
10349 , p_source_22_meaning => p_source_22_meaning
10350 , p_source_23 => p_source_23
10351          , x_transaction_coa_id       => l_adr_transaction_coa_id
10352          , x_accounting_coa_id        => l_adr_accounting_coa_id
10353          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10354          , x_flex_value_set_id        => l_adr_flex_value_set_id
10355          , x_value_type_code          => l_adr_value_type_code
10356          , x_value_combination_id     => l_adr_value_combination_id
10357          , x_value_segment_code       => l_adr_value_segment_code
10358          , p_side                     => 'CREDIT'
10359          , p_override_seg_flag        => 'Y'
10360    );
10361 
10362    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10363 
10364       xla_ae_lines_pkg.set_segment(
10365           p_to_segment_code         => 'GL_ACCOUNT'
10366         , p_segment_value           => l_segment
10367         , p_from_segment_code       => l_adr_value_segment_code
10368         , p_from_combination_id     => l_adr_value_combination_id
10369         , p_value_type_code         => l_adr_value_type_code
10370         , p_transaction_coa_id      => l_adr_transaction_coa_id
10371         , p_accounting_coa_id       => l_adr_accounting_coa_id
10372         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10373         , p_flex_value_set_id       => l_adr_flex_value_set_id
10374         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
10375         , p_adr_type_code           => 'S'
10376         , p_component_type          => l_component_type
10377         , p_component_code          => l_component_code
10378         , p_component_type_code     => l_component_type_code
10379         , p_component_appl_id       => l_component_appl_id
10380         , p_amb_context_code        => l_amb_context_code
10381         , p_entity_code             => 'AP_INVOICES'
10382         , p_event_class_code        => 'CREDIT MEMOS'
10383         , p_side                    => 'CREDIT'
10384         );
10385 
10386   END IF;
10387 
10388    l_segment := AcctDerRule_23(
10389            p_application_id           => p_application_id
10390          , p_ae_header_id             => l_ae_header_id 
10391 , p_source_15 => p_source_15
10392 , p_source_15_meaning => p_source_15_meaning
10393 , p_source_22 => p_source_22
10394 , p_source_22_meaning => p_source_22_meaning
10395 , p_source_30 => p_source_30
10396          , x_transaction_coa_id       => l_adr_transaction_coa_id
10397          , x_accounting_coa_id        => l_adr_accounting_coa_id
10398          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
10399          , x_flex_value_set_id        => l_adr_flex_value_set_id
10400          , x_value_type_code          => l_adr_value_type_code
10401          , x_value_combination_id     => l_adr_value_combination_id
10402          , x_value_segment_code       => l_adr_value_segment_code
10403          , p_side                     => 'ALL'
10404          , p_override_seg_flag        => 'Y'
10405    );
10406 
10407    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
10408 
10409       xla_ae_lines_pkg.set_segment(
10410           p_to_segment_code         => 'GL_BALANCING'
10411         , p_segment_value           => l_segment
10412         , p_from_segment_code       => l_adr_value_segment_code
10413         , p_from_combination_id     => l_adr_value_combination_id
10414         , p_value_type_code         => l_adr_value_type_code
10415         , p_transaction_coa_id      => l_adr_transaction_coa_id
10416         , p_accounting_coa_id       => l_adr_accounting_coa_id
10417         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
10418         , p_flex_value_set_id       => l_adr_flex_value_set_id
10419         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
10420         , p_adr_type_code           => 'S'
10421         , p_component_type          => l_component_type
10422         , p_component_code          => l_component_code
10423         , p_component_type_code     => l_component_type_code
10424         , p_component_appl_id       => l_component_appl_id
10425         , p_amb_context_code        => l_amb_context_code
10426         , p_entity_code             => 'AP_INVOICES'
10427         , p_event_class_code        => 'CREDIT MEMOS'
10428         , p_side                    => 'ALL'
10429         );
10430 
10431   END IF;
10432 
10433    --
10434    --
10435    END IF;
10436 
10437        --
10438        -- Update the line information that should be overwritten
10439        --
10440        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
10441                                          p_header_num   => 1);
10442        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
10443 
10444        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
10445 
10446        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
10447           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
10448        END IF;
10449 
10450       --
10454           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
10451       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
10452       --
10453       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
10455       ELSE
10456           ---------------------------------------------------------------------------------------------------
10457           -- 4262811a Switch Sign
10458           ---------------------------------------------------------------------------------------------------
10459           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
10460           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10461                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10462           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10463                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10464           -- 5132302
10465           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
10466                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10467 
10468       END IF;
10469 
10470       -- 4955764
10471       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10472       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
10473 
10474 
10475       XLA_AE_LINES_PKG.ValidateCurrentLine;
10476       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10477 
10478       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10479                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
10480                ,p_balance_type_code => l_balance_type_code);
10481 
10482    END IF;
10483 
10484    -----------------------------------------------------------------------------------------
10485    -- 4262811 Multiperiod Accounting
10486    -----------------------------------------------------------------------------------------
10487      -- No MPA option is assigned.
10488 
10489 
10490 END IF;
10491 END IF;
10492 --
10493 
10494 --
10495 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10496    trace
10497       (p_msg      => 'END of AcctLineType_51'
10498       ,p_level    => C_LEVEL_PROCEDURE
10499       ,p_module   => l_log_module);
10500 END IF;
10501 --
10502 EXCEPTION
10503   WHEN xla_exceptions_pkg.application_exception THEN
10504       RAISE;
10505   WHEN OTHERS THEN
10506        xla_exceptions_pkg.raise_message
10507            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_51');
10508 END AcctLineType_51;
10509 --
10510 
10511 ---------------------------------------
10512 --
10513 -- PRIVATE FUNCTION
10514 --         AcctLineType_52
10515 --
10516 ---------------------------------------
10517 PROCEDURE AcctLineType_52 (
10518   p_application_id        IN NUMBER
10519  ,p_event_id              IN NUMBER
10520  ,p_calculate_acctd_flag  IN VARCHAR2
10521  ,p_calculate_g_l_flag    IN VARCHAR2
10522  ,p_actual_flag           IN OUT VARCHAR2
10523  ,p_balance_type_code     OUT VARCHAR2
10524  ,p_gain_or_loss_ref      OUT VARCHAR2
10525  
10526 --Invoice Distribution Description
10527  , p_source_1            IN VARCHAR2
10528 --Automatic Offsets Value
10529  , p_source_15            IN VARCHAR2
10530  , p_source_15_meaning    IN VARCHAR2
10531 --Purchase Order Rate Variance Gain Account
10532  , p_source_20            IN NUMBER
10533 --Invoice Distribution Ledger Amount
10534  , p_source_21            IN NUMBER
10535 --Destination Type of the PO Distribution
10536  , p_source_22            IN VARCHAR2
10537  , p_source_22_meaning    IN VARCHAR2
10538 --Purchase Order Rate Variance Loss Account
10539  , p_source_23            IN NUMBER
10540 --Invoice Distribution Account
10541  , p_source_30            IN NUMBER
10542 --Invoice Distribution Type
10543  , p_source_33            IN VARCHAR2
10544  , p_source_33_meaning    IN VARCHAR2
10545 --Automatic Offsets Flag
10546  , p_source_47            IN VARCHAR2
10547  , p_source_47_meaning    IN VARCHAR2
10548 --Accounting Reversal Indicator
10549  , p_source_53            IN VARCHAR2
10550 --Distribution Link Type
10551  , p_source_55            IN VARCHAR2
10552 --Allocation to Main Distribution Identifier
10553  , p_source_57            IN NUMBER
10554 --Invoice Identifier
10555  , p_source_58            IN NUMBER
10556 --Invoice Distribution Identifier
10557  , p_source_64            IN NUMBER
10558 --Payables Encumbrance Upgrade Credit Account
10559  , p_source_65            IN NUMBER
10560 --Payables Encumbrance Upgrade Credit Amount
10561  , p_source_66            IN NUMBER
10562 --Invoice Currency Code
10563  , p_source_67            IN VARCHAR2
10564 --Payables Encumbrance Upgrade Credit Base Amount
10565  , p_source_68            IN NUMBER
10566 --Payables Encumbrance Upgrade Debit Account
10567  , p_source_69            IN NUMBER
10568 --Payables Encumbrance Upgrade Debit Amount
10569  , p_source_70            IN NUMBER
10570 --Payables Encumbrance Upgrade Debit Base Amount
10571  , p_source_71            IN NUMBER
10572 --Payables Encumbrance Upgrade Option
10573  , p_source_72            IN VARCHAR2
10574 --Deferred Accounting End Date
10575  , p_source_77            IN DATE
10576 --Deferred Accounting Option
10580 --Override Accounted Amount Indicator
10577  , p_source_78            IN VARCHAR2
10578 --Deferred Accounting Start Date
10579  , p_source_79            IN DATE
10581  , p_source_80            IN VARCHAR2
10582  , p_source_80_meaning    IN VARCHAR2
10583 --Invoice Supplier Identifier
10584  , p_source_81            IN NUMBER
10585 --Invoice Supplier Site Identifier
10586  , p_source_82            IN NUMBER
10587 --Third Party Type
10588  , p_source_83            IN VARCHAR2
10589 --Parent Reversal Identifier
10590  , p_source_84            IN NUMBER
10591 --Invoice Distribution Tax Line Identifier
10592  , p_source_86            IN NUMBER
10593 --Invoice Distribution Tax Distribution Identifier from Tax
10594  , p_source_87            IN NUMBER
10595 --Invoice Distribution Summary Tax Line Identifier
10596  , p_source_88            IN NUMBER
10597 --Payables Upgrade Credit Encumbrance Type Identifier
10598  , p_source_89            IN NUMBER
10599 --Payables Upgrade Debit Encumbrance Type Identifier
10600  , p_source_90            IN NUMBER
10601 --Business Flow Accounts Payable Application Identifier
10602  , p_source_91            IN NUMBER
10603 --Business Flow Invoice Distribution Type
10604  , p_source_92            IN VARCHAR2
10605 --Business Flow Invoice Entity Code
10606  , p_source_93            IN VARCHAR2
10607 --Business Flow Invoice Distribution Identifier
10608  , p_source_94            IN NUMBER
10609 --Business Flow Invoice Identifier
10610  , p_source_95            IN NUMBER
10611 )
10612 IS
10613 
10614 l_component_type              VARCHAR2(80);
10615 l_component_code              VARCHAR2(30);
10616 l_component_type_code         VARCHAR2(1);
10617 l_component_appl_id           INTEGER;
10618 l_amb_context_code            VARCHAR2(30);
10619 l_entity_code                 VARCHAR2(30);
10620 l_event_class_code            VARCHAR2(30);
10621 l_ae_header_id                NUMBER;
10622 l_event_type_code             VARCHAR2(30);
10623 l_line_definition_code        VARCHAR2(30);
10624 l_line_definition_owner_code  VARCHAR2(1);
10625 --
10626 -- adr variables
10627 l_segment                     VARCHAR2(30);
10628 l_ccid                        NUMBER;
10629 l_adr_transaction_coa_id      NUMBER;
10630 l_adr_accounting_coa_id       NUMBER;
10631 l_adr_flexfield_segment_code  VARCHAR2(30);
10632 l_adr_flex_value_set_id       NUMBER;
10633 l_adr_value_type_code         VARCHAR2(30);
10634 l_adr_value_combination_id    NUMBER;
10635 l_adr_value_segment_code      VARCHAR2(30);
10636 
10637 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
10638 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
10639 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
10640 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
10641 
10642 -- 4262811 Variables ------------------------------------------------------------------------------------------
10643 l_entered_amt_idx             NUMBER;
10644 l_accted_amt_idx              NUMBER;
10645 l_acc_rev_flag                VARCHAR2(1);
10646 l_accrual_line_num            NUMBER;
10647 l_tmp_amt                     NUMBER;
10648 l_acc_rev_natural_side_code   VARCHAR2(1);
10649 
10650 l_num_entries                 NUMBER;
10651 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
10652 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
10653 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
10654 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
10655 l_recog_line_1                NUMBER;
10656 l_recog_line_2                NUMBER;
10657 
10658 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
10659 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
10660 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
10661 
10662 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
10663 
10664 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
10665 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
10666 
10667 ---------------------------------------------------------------------------------------------------------------
10668 
10669 
10670 --
10671 -- bulk performance
10672 --
10673 l_balance_type_code           VARCHAR2(1);
10674 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
10675 l_log_module                  VARCHAR2(240);
10676 
10677 --
10678 -- Upgrade strategy
10679 --
10680 l_actual_upg_option           VARCHAR2(1);
10681 l_enc_upg_option           VARCHAR2(1);
10682 
10683 --
10684 BEGIN
10685 --
10686 IF g_log_enabled THEN
10687       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_52';
10688 END IF;
10689 --
10690 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10691 
10692       trace
10693          (p_msg      => 'BEGIN of AcctLineType_52'
10694          ,p_level    => C_LEVEL_PROCEDURE
10695          ,p_module   => l_log_module);
10696 
10697 END IF;
10698 --
10699 l_component_type             := 'AMB_JLT';
10700 l_component_code             := 'AP_ALC_EX_RATE_VAR_DM';
10701 l_component_type_code        := 'S';
10702 l_component_appl_id          :=  200;
10703 l_amb_context_code           := 'DEFAULT';
10704 l_entity_code                := 'AP_INVOICES';
10705 l_event_class_code           := 'DEBIT MEMOS';
10706 l_event_type_code            := 'DEBIT MEMOS_ALL';
10707 l_line_definition_owner_code := 'S';
10711 l_segment                     := NULL;
10708 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
10709 --
10710 l_balance_type_code          := 'A';
10712 l_ccid                        := NULL;
10713 l_adr_transaction_coa_id      := NULL;
10714 l_adr_accounting_coa_id       := NULL;
10715 l_adr_flexfield_segment_code  := NULL;
10716 l_adr_flex_value_set_id       := NULL;
10717 l_adr_value_type_code         := NULL;
10718 l_adr_value_combination_id    := NULL;
10719 l_adr_value_segment_code      := NULL;
10720 
10721 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
10722 l_bflow_class_code           := '';    -- 4219869 Business Flow
10723 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
10724 l_budgetary_control_flag     := 'N';
10725 
10726 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
10727 l_bflow_applied_to_amt       := NULL; -- 5132302
10728 l_entered_amt_idx            := NULL;          -- 4262811
10729 l_accted_amt_idx             := NULL;          -- 4262811
10730 l_acc_rev_flag               := NULL;          -- 4262811
10731 l_accrual_line_num           := NULL;          -- 4262811
10732 l_tmp_amt                    := NULL;          -- 4262811
10733 --
10734 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
10735             (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
10736                return;
10737   END IF;
10738   
10739 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
10740     l_balance_type_code <> 'B' THEN
10741 IF NVL(p_source_33,'
10742 ') =  'ACCRUAL'
10743  THEN 
10744 
10745    --
10746    XLA_AE_LINES_PKG.SetNewLine;
10747 
10748    p_balance_type_code          := l_balance_type_code;
10749    -- set the flag so later we will know whether the gain loss line needs to be created
10750    
10751    IF(l_balance_type_code = 'A' ) THEN
10752      p_actual_flag :='G';
10753    END IF;
10754 
10755    --
10756    -- bulk performance
10757    --
10758    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
10759                                       p_header_num   => 0); -- 4262811
10760    --
10761    -- set accounting line options
10762    --
10763    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
10764            p_natural_side_code          => 'G'
10765          , p_gain_or_loss_flag          => 'N'
10766          , p_gl_transfer_mode_code      => 'S'
10767          , p_acct_entry_type_code       => 'A'
10768          , p_switch_side_flag           => ''
10769          , p_merge_duplicate_code       => 'A'
10770          );
10771    --
10772    l_acc_rev_natural_side_code := 'C';  -- 4262811
10773    -- 
10774    --
10775    -- set accounting line type info
10776    --
10777    xla_ae_lines_pkg.SetAcctLineType
10778       (p_component_type             => l_component_type
10779       ,p_event_type_code            => l_event_type_code
10780       ,p_line_definition_owner_code => l_line_definition_owner_code
10781       ,p_line_definition_code       => l_line_definition_code
10782       ,p_accounting_line_code       => l_component_code
10783       ,p_accounting_line_type_code  => l_component_type_code
10784       ,p_accounting_line_appl_id    => l_component_appl_id
10785       ,p_amb_context_code           => l_amb_context_code
10786       ,p_entity_code                => l_entity_code
10787       ,p_event_class_code           => l_event_class_code);
10788    --
10789    -- set accounting class
10790    --
10791    xla_ae_lines_pkg.SetAcctClass(
10792            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
10793          , p_ae_header_id           => l_ae_header_id
10794          );
10795 
10796    --
10797    -- set rounding class
10798    --
10799    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
10800                       'EXCHANGE_RATE_VARIANCE';
10801 
10802    --
10803    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
10804    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
10805    --
10806    -- bulk performance
10807    --
10808    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
10809 
10810    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
10811       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
10812 
10813    -- 4955764
10814    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10815       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
10816 
10817    -- 4458381 Public Sector Enh
10818    
10819    --
10820    -- set accounting attributes for the line type
10821    --
10822    l_entered_amt_idx := NULL;
10823    l_accted_amt_idx  := 23;
10824    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
10825    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
10826    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
10827    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
10828    l_rec_acct_attrs.array_num_value(2)  := 
10829 xla_ae_sources_pkg.GetSystemSourceNum(
10833 );
10830    p_source_code           => 'XLA_EVENT_APPL_ID'
10831  , p_source_type_code      => 'Y'
10832  , p_source_application_id =>  602
10834    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
10835    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
10836    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
10837    l_rec_acct_attrs.array_char_value(4)  := 
10838 xla_ae_sources_pkg.GetSystemSourceChar(
10839    p_source_code           => 'XLA_ENTITY_CODE'
10840  , p_source_type_code      => 'Y'
10841  , p_source_application_id =>  602
10842 );
10843    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
10844    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
10845    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
10846    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
10847    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
10848    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
10849    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
10850    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
10851    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
10852    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
10853    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
10854    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
10855    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
10856    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
10857    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
10858    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
10859    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
10860    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
10861    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
10862    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
10863    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
10864    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
10865    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
10866    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
10867    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
10868    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
10869    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
10870    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
10871    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
10872    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
10873    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
10874    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
10875    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
10876    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
10877    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
10878    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
10879    l_rec_acct_attrs.array_acct_attr_code(23) := 'LEDGER_AMOUNT';
10880    l_rec_acct_attrs.array_num_value(23)  := p_source_21;
10881    l_rec_acct_attrs.array_acct_attr_code(24) := 'MULTIPERIOD_END_DATE';
10882    l_rec_acct_attrs.array_date_value(24)  := p_source_77;
10883    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_OPTION';
10884    l_rec_acct_attrs.array_char_value(25)  := p_source_78;
10885    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_START_DATE';
10886    l_rec_acct_attrs.array_date_value(26)  := p_source_79;
10887    l_rec_acct_attrs.array_acct_attr_code(27) := 'OVERRIDE_ACCTD_AMT_FLAG';
10888    l_rec_acct_attrs.array_char_value(27)  := p_source_80;
10889    l_rec_acct_attrs.array_acct_attr_code(28) := 'PARTY_ID';
10890    l_rec_acct_attrs.array_num_value(28)  := p_source_81;
10891    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_SITE_ID';
10892    l_rec_acct_attrs.array_num_value(29)  := p_source_82;
10893    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
10894    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
10895    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
10896    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_84);
10897    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
10898    l_rec_acct_attrs.array_char_value(32)  := p_source_55;
10899    l_rec_acct_attrs.array_acct_attr_code(33) := 'TAX_LINE_REF_ID';
10900    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
10901    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_REC_NREC_DIST_REF_ID';
10902    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
10903    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_SUMMARY_LINE_REF_ID';
10904    l_rec_acct_attrs.array_num_value(35)  := p_source_88;
10905    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
10906    l_rec_acct_attrs.array_num_value(36)  := p_source_89;
10907    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
10908    l_rec_acct_attrs.array_num_value(37)  := p_source_90;
10909 
10910    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
10911    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
10912 
10913    ---------------------------------------------------------------------------------------------------------------
10914    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
10915    ---------------------------------------------------------------------------------------------------------------
10919    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10916    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
10917 
10918    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10920 
10921    IF xla_accounting_cache_pkg.GetValueChar
10922          (p_source_code         => 'LEDGER_CATEGORY_CODE'
10923          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
10924    AND l_bflow_method_code = 'PRIOR_ENTRY'
10925 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
10926    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
10927          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
10928        )
10929    THEN
10930          xla_ae_lines_pkg.BflowUpgEntry
10931            (p_business_method_code    => l_bflow_method_code
10932            ,p_business_class_code     => l_bflow_class_code
10933            ,p_balance_type            => l_balance_type_code);
10934    ELSE
10935       NULL;
10936 -- No business flow processing for business flow method of NONE.
10937    END IF;
10938 
10939    --
10940    -- call analytical criteria
10941    --
10942    
10943    --
10944    -- call description
10945    --
10946    
10947 xla_ae_lines_pkg.SetLineDescription(
10948    p_ae_header_id => l_ae_header_id
10949   ,p_description  => Description_1 (
10950      p_application_id         => p_application_id
10951    , p_ae_header_id           => l_ae_header_id 
10952 , p_source_1 => p_source_1
10953    )
10954 );
10955 
10956 
10957    --
10958    -- call ADRs
10959    -- Bug 4922099
10960    --
10961    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10962         (NVL(l_actual_upg_option, 'N') = 'O') OR
10963         (NVL(l_enc_upg_option, 'N') = 'O')
10964       )
10965    THEN
10966    NULL;
10967    --
10968    --
10969    
10970   l_ccid := AcctDerRule_30(
10971            p_application_id           => p_application_id
10972          , p_ae_header_id             => l_ae_header_id 
10973 , p_source_15 => p_source_15
10974 , p_source_15_meaning => p_source_15_meaning
10975 , p_source_20 => p_source_20
10976 , p_source_21 => p_source_21
10977 , p_source_22 => p_source_22
10978 , p_source_22_meaning => p_source_22_meaning
10979 , p_source_23 => p_source_23
10980 , p_source_30 => p_source_30
10981 , p_source_47 => p_source_47
10982 , p_source_47_meaning => p_source_47_meaning
10983          , x_transaction_coa_id       => l_adr_transaction_coa_id
10984          , x_accounting_coa_id        => l_adr_accounting_coa_id
10985          , x_value_type_code          => l_adr_value_type_code
10986          , p_side                     => 'ALL'
10987    );
10988 
10989    xla_ae_lines_pkg.set_ccid(
10990     p_code_combination_id          => l_ccid
10991   , p_value_type_code              => l_adr_value_type_code
10992   , p_transaction_coa_id           => l_adr_transaction_coa_id
10993   , p_accounting_coa_id            => l_adr_accounting_coa_id
10994   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
10995   , p_adr_type_code                => 'S'
10996   , p_component_type               => l_component_type
10997   , p_component_code               => l_component_code
10998   , p_component_type_code          => l_component_type_code
10999   , p_component_appl_id            => l_component_appl_id
11000   , p_amb_context_code             => l_amb_context_code
11001   , p_side                         => 'ALL'
11002   );
11003 
11004 
11005    l_segment := AcctDerRule_9(
11006            p_application_id           => p_application_id
11007          , p_ae_header_id             => l_ae_header_id 
11008 , p_source_15 => p_source_15
11009 , p_source_15_meaning => p_source_15_meaning
11010 , p_source_20 => p_source_20
11011 , p_source_22 => p_source_22
11012 , p_source_22_meaning => p_source_22_meaning
11013          , x_transaction_coa_id       => l_adr_transaction_coa_id
11014          , x_accounting_coa_id        => l_adr_accounting_coa_id
11015          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11016          , x_flex_value_set_id        => l_adr_flex_value_set_id
11017          , x_value_type_code          => l_adr_value_type_code
11018          , x_value_combination_id     => l_adr_value_combination_id
11019          , x_value_segment_code       => l_adr_value_segment_code
11020          , p_side                     => 'DEBIT'
11021          , p_override_seg_flag        => 'Y'
11022    );
11023 
11024    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11025 
11026       xla_ae_lines_pkg.set_segment(
11027           p_to_segment_code         => 'GL_ACCOUNT'
11028         , p_segment_value           => l_segment
11029         , p_from_segment_code       => l_adr_value_segment_code
11030         , p_from_combination_id     => l_adr_value_combination_id
11031         , p_value_type_code         => l_adr_value_type_code
11032         , p_transaction_coa_id      => l_adr_transaction_coa_id
11033         , p_accounting_coa_id       => l_adr_accounting_coa_id
11034         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11035         , p_flex_value_set_id       => l_adr_flex_value_set_id
11036         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
11037         , p_adr_type_code           => 'S'
11041         , p_component_appl_id       => l_component_appl_id
11038         , p_component_type          => l_component_type
11039         , p_component_code          => l_component_code
11040         , p_component_type_code     => l_component_type_code
11042         , p_amb_context_code        => l_amb_context_code
11043         , p_entity_code             => 'AP_INVOICES'
11044         , p_event_class_code        => 'DEBIT MEMOS'
11045         , p_side                    => 'DEBIT'
11046         );
11047 
11048   END IF;
11049 
11050    l_segment := AcctDerRule_10(
11051            p_application_id           => p_application_id
11052          , p_ae_header_id             => l_ae_header_id 
11053 , p_source_15 => p_source_15
11054 , p_source_15_meaning => p_source_15_meaning
11055 , p_source_22 => p_source_22
11056 , p_source_22_meaning => p_source_22_meaning
11057 , p_source_23 => p_source_23
11058          , x_transaction_coa_id       => l_adr_transaction_coa_id
11059          , x_accounting_coa_id        => l_adr_accounting_coa_id
11060          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11061          , x_flex_value_set_id        => l_adr_flex_value_set_id
11062          , x_value_type_code          => l_adr_value_type_code
11063          , x_value_combination_id     => l_adr_value_combination_id
11064          , x_value_segment_code       => l_adr_value_segment_code
11065          , p_side                     => 'CREDIT'
11066          , p_override_seg_flag        => 'Y'
11067    );
11068 
11069    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11070 
11071       xla_ae_lines_pkg.set_segment(
11072           p_to_segment_code         => 'GL_ACCOUNT'
11073         , p_segment_value           => l_segment
11074         , p_from_segment_code       => l_adr_value_segment_code
11075         , p_from_combination_id     => l_adr_value_combination_id
11076         , p_value_type_code         => l_adr_value_type_code
11077         , p_transaction_coa_id      => l_adr_transaction_coa_id
11078         , p_accounting_coa_id       => l_adr_accounting_coa_id
11079         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11080         , p_flex_value_set_id       => l_adr_flex_value_set_id
11081         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
11082         , p_adr_type_code           => 'S'
11083         , p_component_type          => l_component_type
11084         , p_component_code          => l_component_code
11085         , p_component_type_code     => l_component_type_code
11086         , p_component_appl_id       => l_component_appl_id
11087         , p_amb_context_code        => l_amb_context_code
11088         , p_entity_code             => 'AP_INVOICES'
11089         , p_event_class_code        => 'DEBIT MEMOS'
11090         , p_side                    => 'CREDIT'
11091         );
11092 
11093   END IF;
11094 
11095    l_segment := AcctDerRule_23(
11096            p_application_id           => p_application_id
11097          , p_ae_header_id             => l_ae_header_id 
11098 , p_source_15 => p_source_15
11099 , p_source_15_meaning => p_source_15_meaning
11100 , p_source_22 => p_source_22
11101 , p_source_22_meaning => p_source_22_meaning
11102 , p_source_30 => p_source_30
11103          , x_transaction_coa_id       => l_adr_transaction_coa_id
11104          , x_accounting_coa_id        => l_adr_accounting_coa_id
11105          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11106          , x_flex_value_set_id        => l_adr_flex_value_set_id
11107          , x_value_type_code          => l_adr_value_type_code
11108          , x_value_combination_id     => l_adr_value_combination_id
11109          , x_value_segment_code       => l_adr_value_segment_code
11110          , p_side                     => 'ALL'
11111          , p_override_seg_flag        => 'Y'
11112    );
11113 
11114    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11115 
11116       xla_ae_lines_pkg.set_segment(
11117           p_to_segment_code         => 'GL_BALANCING'
11118         , p_segment_value           => l_segment
11119         , p_from_segment_code       => l_adr_value_segment_code
11120         , p_from_combination_id     => l_adr_value_combination_id
11121         , p_value_type_code         => l_adr_value_type_code
11122         , p_transaction_coa_id      => l_adr_transaction_coa_id
11123         , p_accounting_coa_id       => l_adr_accounting_coa_id
11124         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11125         , p_flex_value_set_id       => l_adr_flex_value_set_id
11126         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
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_entity_code             => 'AP_INVOICES'
11134         , p_event_class_code        => 'DEBIT MEMOS'
11135         , p_side                    => 'ALL'
11136         );
11137 
11138   END IF;
11139 
11140    --
11141    --
11142    END IF;
11143    --
11144    -- Bug 4922099
11145    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
11146           (NVL(l_enc_upg_option, 'N') = 'O')
11147         ) AND
11148         (l_bflow_method_code = 'PRIOR_ENTRY')
11149       )
11150    THEN
11151       IF
11152       --
11153       1 = 2
11157                                     (p_appli_s_name            => 'XLA'
11154       --
11155       THEN
11156       xla_accounting_err_pkg.build_message
11158                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11159                                     ,p_token_1                 => 'LINE_NUMBER'
11160                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
11161                                     ,p_token_2                 => 'LINE_TYPE_NAME'
11162                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
11163                                                                              l_component_type
11164                                                                             ,l_component_code
11165                                                                             ,l_component_type_code
11166                                                                             ,l_component_appl_id
11167                                                                             ,l_amb_context_code
11168                                                                             ,l_entity_code
11169                                                                             ,l_event_class_code
11170                                                                            )
11171                                     ,p_token_3                 => 'OWNER'
11172                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
11173                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
11174                                                                           ,p_lookup_code    => l_component_type_code
11175                                                                          )
11176                                     ,p_token_4                 => 'PRODUCT_NAME'
11177                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
11178                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
11179                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
11180                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
11181                                     ,p_ae_header_id            =>  NULL
11182                                        );
11183 
11184         IF (C_LEVEL_ERROR>= g_log_level) THEN
11185                  trace
11186                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11187                       ,p_level    => C_LEVEL_ERROR
11188                       ,p_module   => l_log_module);
11189         END IF;
11190       END IF;
11191    END IF;
11192    --
11193    --
11194    ------------------------------------------------------------------------------------------------
11195    -- 4219869 Business Flow
11196    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
11197    -- Prior Entry.  Currently, the following code is always generated.
11198    ------------------------------------------------------------------------------------------------
11199    XLA_AE_LINES_PKG.ValidateCurrentLine;
11200 
11201    ------------------------------------------------------------------------------------
11202    -- 4219869 Business Flow
11203    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
11204    ------------------------------------------------------------------------------------
11205    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11206 
11207    ----------------------------------------------------------------------------------
11208    -- 4219869 Business Flow
11209    -- Update journal entry status -- Need to generate this within IF <condition>
11210    ----------------------------------------------------------------------------------
11211    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11212          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
11213          ,p_balance_type_code => l_balance_type_code
11214          );
11215 
11216    -------------------------------------------------------------------------------------------
11217    -- 4262811 - Generate the Accrual Reversal lines
11218    -------------------------------------------------------------------------------------------
11219    BEGIN
11220       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
11221                               (g_array_event(p_event_id).array_value_num('header_index'));
11222       IF l_acc_rev_flag IS NULL THEN
11223          l_acc_rev_flag := 'N';
11224       END IF;
11225    EXCEPTION
11226       WHEN OTHERS THEN
11227          l_acc_rev_flag := 'N';
11228    END;
11229    --
11230    IF (l_acc_rev_flag = 'Y') THEN
11231 
11232        -- 4645092  ------------------------------------------------------------------------------
11233        -- To allow MPA report to determine if it should generate report process
11234        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
11235        ------------------------------------------------------------------------------------------
11236 
11237        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
11238        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
11239    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
11243    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11240    -- call ADRs
11241    -- Bug 4922099
11242    --
11244         (NVL(l_actual_upg_option, 'N') = 'O') OR
11245         (NVL(l_enc_upg_option, 'N') = 'O')
11246       )
11247    THEN
11248    NULL;
11249    --
11250    --
11251    
11252   l_ccid := AcctDerRule_30(
11253            p_application_id           => p_application_id
11254          , p_ae_header_id             => l_ae_header_id 
11255 , p_source_15 => p_source_15
11256 , p_source_15_meaning => p_source_15_meaning
11257 , p_source_20 => p_source_20
11258 , p_source_21 => p_source_21
11259 , p_source_22 => p_source_22
11260 , p_source_22_meaning => p_source_22_meaning
11261 , p_source_23 => p_source_23
11262 , p_source_30 => p_source_30
11263 , p_source_47 => p_source_47
11264 , p_source_47_meaning => p_source_47_meaning
11265          , x_transaction_coa_id       => l_adr_transaction_coa_id
11266          , x_accounting_coa_id        => l_adr_accounting_coa_id
11267          , x_value_type_code          => l_adr_value_type_code
11268          , p_side                     => 'ALL'
11269    );
11270 
11271    xla_ae_lines_pkg.set_ccid(
11272     p_code_combination_id          => l_ccid
11273   , p_value_type_code              => l_adr_value_type_code
11274   , p_transaction_coa_id           => l_adr_transaction_coa_id
11275   , p_accounting_coa_id            => l_adr_accounting_coa_id
11276   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
11277   , p_adr_type_code                => 'S'
11278   , p_component_type               => l_component_type
11279   , p_component_code               => l_component_code
11280   , p_component_type_code          => l_component_type_code
11281   , p_component_appl_id            => l_component_appl_id
11282   , p_amb_context_code             => l_amb_context_code
11283   , p_side                         => 'ALL'
11284   );
11285 
11286 
11287    l_segment := AcctDerRule_9(
11288            p_application_id           => p_application_id
11289          , p_ae_header_id             => l_ae_header_id 
11290 , p_source_15 => p_source_15
11291 , p_source_15_meaning => p_source_15_meaning
11292 , p_source_20 => p_source_20
11293 , p_source_22 => p_source_22
11294 , p_source_22_meaning => p_source_22_meaning
11295          , x_transaction_coa_id       => l_adr_transaction_coa_id
11296          , x_accounting_coa_id        => l_adr_accounting_coa_id
11297          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11298          , x_flex_value_set_id        => l_adr_flex_value_set_id
11299          , x_value_type_code          => l_adr_value_type_code
11300          , x_value_combination_id     => l_adr_value_combination_id
11301          , x_value_segment_code       => l_adr_value_segment_code
11302          , p_side                     => 'DEBIT'
11303          , p_override_seg_flag        => 'Y'
11304    );
11305 
11306    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11307 
11308       xla_ae_lines_pkg.set_segment(
11309           p_to_segment_code         => 'GL_ACCOUNT'
11310         , p_segment_value           => l_segment
11311         , p_from_segment_code       => l_adr_value_segment_code
11312         , p_from_combination_id     => l_adr_value_combination_id
11313         , p_value_type_code         => l_adr_value_type_code
11314         , p_transaction_coa_id      => l_adr_transaction_coa_id
11315         , p_accounting_coa_id       => l_adr_accounting_coa_id
11316         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11317         , p_flex_value_set_id       => l_adr_flex_value_set_id
11318         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
11319         , p_adr_type_code           => 'S'
11320         , p_component_type          => l_component_type
11321         , p_component_code          => l_component_code
11322         , p_component_type_code     => l_component_type_code
11323         , p_component_appl_id       => l_component_appl_id
11324         , p_amb_context_code        => l_amb_context_code
11325         , p_entity_code             => 'AP_INVOICES'
11326         , p_event_class_code        => 'DEBIT MEMOS'
11327         , p_side                    => 'DEBIT'
11328         );
11329 
11330   END IF;
11331 
11332    l_segment := AcctDerRule_10(
11333            p_application_id           => p_application_id
11334          , p_ae_header_id             => l_ae_header_id 
11335 , p_source_15 => p_source_15
11336 , p_source_15_meaning => p_source_15_meaning
11337 , p_source_22 => p_source_22
11338 , p_source_22_meaning => p_source_22_meaning
11339 , p_source_23 => p_source_23
11340          , x_transaction_coa_id       => l_adr_transaction_coa_id
11341          , x_accounting_coa_id        => l_adr_accounting_coa_id
11342          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11343          , x_flex_value_set_id        => l_adr_flex_value_set_id
11344          , x_value_type_code          => l_adr_value_type_code
11345          , x_value_combination_id     => l_adr_value_combination_id
11346          , x_value_segment_code       => l_adr_value_segment_code
11347          , p_side                     => 'CREDIT'
11348          , p_override_seg_flag        => 'Y'
11349    );
11350 
11351    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11352 
11353       xla_ae_lines_pkg.set_segment(
11354           p_to_segment_code         => 'GL_ACCOUNT'
11355         , p_segment_value           => l_segment
11356         , p_from_segment_code       => l_adr_value_segment_code
11360         , p_accounting_coa_id       => l_adr_accounting_coa_id
11357         , p_from_combination_id     => l_adr_value_combination_id
11358         , p_value_type_code         => l_adr_value_type_code
11359         , p_transaction_coa_id      => l_adr_transaction_coa_id
11361         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11362         , p_flex_value_set_id       => l_adr_flex_value_set_id
11363         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
11364         , p_adr_type_code           => 'S'
11365         , p_component_type          => l_component_type
11366         , p_component_code          => l_component_code
11367         , p_component_type_code     => l_component_type_code
11368         , p_component_appl_id       => l_component_appl_id
11369         , p_amb_context_code        => l_amb_context_code
11370         , p_entity_code             => 'AP_INVOICES'
11371         , p_event_class_code        => 'DEBIT MEMOS'
11372         , p_side                    => 'CREDIT'
11373         );
11374 
11375   END IF;
11376 
11377    l_segment := AcctDerRule_23(
11378            p_application_id           => p_application_id
11379          , p_ae_header_id             => l_ae_header_id 
11380 , p_source_15 => p_source_15
11381 , p_source_15_meaning => p_source_15_meaning
11382 , p_source_22 => p_source_22
11383 , p_source_22_meaning => p_source_22_meaning
11384 , p_source_30 => p_source_30
11385          , x_transaction_coa_id       => l_adr_transaction_coa_id
11386          , x_accounting_coa_id        => l_adr_accounting_coa_id
11387          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
11388          , x_flex_value_set_id        => l_adr_flex_value_set_id
11389          , x_value_type_code          => l_adr_value_type_code
11390          , x_value_combination_id     => l_adr_value_combination_id
11391          , x_value_segment_code       => l_adr_value_segment_code
11392          , p_side                     => 'ALL'
11393          , p_override_seg_flag        => 'Y'
11394    );
11395 
11396    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
11397 
11398       xla_ae_lines_pkg.set_segment(
11399           p_to_segment_code         => 'GL_BALANCING'
11400         , p_segment_value           => l_segment
11401         , p_from_segment_code       => l_adr_value_segment_code
11402         , p_from_combination_id     => l_adr_value_combination_id
11403         , p_value_type_code         => l_adr_value_type_code
11404         , p_transaction_coa_id      => l_adr_transaction_coa_id
11405         , p_accounting_coa_id       => l_adr_accounting_coa_id
11406         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
11407         , p_flex_value_set_id       => l_adr_flex_value_set_id
11408         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
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_entity_code             => 'AP_INVOICES'
11416         , p_event_class_code        => 'DEBIT MEMOS'
11417         , p_side                    => 'ALL'
11418         );
11419 
11420   END IF;
11421 
11422    --
11423    --
11424    END IF;
11425 
11426        --
11427        -- Update the line information that should be overwritten
11428        --
11429        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
11430                                          p_header_num   => 1);
11431        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
11432 
11433        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
11434 
11435        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
11436           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
11437        END IF;
11438 
11439       --
11440       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
11441       --
11442       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
11443           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
11444       ELSE
11445           ---------------------------------------------------------------------------------------------------
11446           -- 4262811a Switch Sign
11447           ---------------------------------------------------------------------------------------------------
11448           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
11449           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11450                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11451           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11452                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11453           -- 5132302
11454           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
11455                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11456 
11457       END IF;
11458 
11459       -- 4955764
11463 
11460       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11461       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
11462 
11464       XLA_AE_LINES_PKG.ValidateCurrentLine;
11465       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11466 
11467       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11468                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
11469                ,p_balance_type_code => l_balance_type_code);
11470 
11471    END IF;
11472 
11473    -----------------------------------------------------------------------------------------
11474    -- 4262811 Multiperiod Accounting
11475    -----------------------------------------------------------------------------------------
11476      -- No MPA option is assigned.
11477 
11478 
11479 END IF;
11480 END IF;
11481 --
11482 
11483 --
11484 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11485    trace
11486       (p_msg      => 'END of AcctLineType_52'
11487       ,p_level    => C_LEVEL_PROCEDURE
11488       ,p_module   => l_log_module);
11489 END IF;
11490 --
11491 EXCEPTION
11492   WHEN xla_exceptions_pkg.application_exception THEN
11493       RAISE;
11494   WHEN OTHERS THEN
11495        xla_exceptions_pkg.raise_message
11496            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_52');
11497 END AcctLineType_52;
11498 --
11499 
11500 ---------------------------------------
11501 --
11502 -- PRIVATE FUNCTION
11503 --         AcctLineType_53
11504 --
11505 ---------------------------------------
11506 PROCEDURE AcctLineType_53 (
11507   p_application_id        IN NUMBER
11508  ,p_event_id              IN NUMBER
11509  ,p_calculate_acctd_flag  IN VARCHAR2
11510  ,p_calculate_g_l_flag    IN VARCHAR2
11511  ,p_actual_flag           IN OUT VARCHAR2
11512  ,p_balance_type_code     OUT VARCHAR2
11513  ,p_gain_or_loss_ref      OUT VARCHAR2
11514  
11515 --Invoice Distribution Description
11516  , p_source_1            IN VARCHAR2
11517 --Automatic Offsets Value
11518  , p_source_15            IN VARCHAR2
11519  , p_source_15_meaning    IN VARCHAR2
11520 --Purchase Order Rate Variance Gain Account
11521  , p_source_20            IN NUMBER
11522 --Invoice Distribution Ledger Amount
11523  , p_source_21            IN NUMBER
11524 --Destination Type of the PO Distribution
11525  , p_source_22            IN VARCHAR2
11526  , p_source_22_meaning    IN VARCHAR2
11527 --Purchase Order Rate Variance Loss Account
11528  , p_source_23            IN NUMBER
11529 --Invoice Distribution Account
11530  , p_source_30            IN NUMBER
11531 --Invoice Distribution Type
11532  , p_source_33            IN VARCHAR2
11533  , p_source_33_meaning    IN VARCHAR2
11534 --Automatic Offsets Flag
11535  , p_source_47            IN VARCHAR2
11536  , p_source_47_meaning    IN VARCHAR2
11537 --Accounting Reversal Indicator
11538  , p_source_53            IN VARCHAR2
11539 --Distribution Link Type
11540  , p_source_55            IN VARCHAR2
11541 --Allocation to Main Distribution Identifier
11542  , p_source_57            IN NUMBER
11543 --Invoice Identifier
11544  , p_source_58            IN NUMBER
11545 --Invoice Distribution Identifier
11546  , p_source_64            IN NUMBER
11547 --Payables Encumbrance Upgrade Credit Account
11548  , p_source_65            IN NUMBER
11549 --Payables Encumbrance Upgrade Credit Amount
11550  , p_source_66            IN NUMBER
11551 --Invoice Currency Code
11552  , p_source_67            IN VARCHAR2
11553 --Payables Encumbrance Upgrade Credit Base Amount
11554  , p_source_68            IN NUMBER
11555 --Payables Encumbrance Upgrade Debit Account
11556  , p_source_69            IN NUMBER
11557 --Payables Encumbrance Upgrade Debit Amount
11558  , p_source_70            IN NUMBER
11559 --Payables Encumbrance Upgrade Debit Base Amount
11560  , p_source_71            IN NUMBER
11561 --Payables Encumbrance Upgrade Option
11562  , p_source_72            IN VARCHAR2
11563 --Invoice Distribution Amount
11564  , p_source_73            IN NUMBER
11565 --Deferred Accounting End Date
11566  , p_source_77            IN DATE
11567 --Deferred Accounting Option
11568  , p_source_78            IN VARCHAR2
11569 --Deferred Accounting Start Date
11570  , p_source_79            IN DATE
11571 --Override Accounted Amount Indicator
11572  , p_source_80            IN VARCHAR2
11573  , p_source_80_meaning    IN VARCHAR2
11574 --Invoice Supplier Identifier
11575  , p_source_81            IN NUMBER
11576 --Invoice Supplier Site Identifier
11577  , p_source_82            IN NUMBER
11578 --Third Party Type
11579  , p_source_83            IN VARCHAR2
11580 --Parent Reversal Identifier
11581  , p_source_84            IN NUMBER
11582 --Invoice Distribution Statistical Amount
11583  , p_source_85            IN NUMBER
11584 --Invoice Distribution Tax Line Identifier
11585  , p_source_86            IN NUMBER
11586 --Invoice Distribution Tax Distribution Identifier from Tax
11587  , p_source_87            IN NUMBER
11588 --Invoice Distribution Summary Tax Line Identifier
11589  , p_source_88            IN NUMBER
11590 --Payables Upgrade Credit Encumbrance Type Identifier
11591  , p_source_89            IN NUMBER
11592 --Payables Upgrade Debit Encumbrance Type Identifier
11593  , p_source_90            IN NUMBER
11594 --Business Flow Accounts Payable Application Identifier
11598 --Business Flow Invoice Entity Code
11595  , p_source_91            IN NUMBER
11596 --Business Flow Invoice Distribution Type
11597  , p_source_92            IN VARCHAR2
11599  , p_source_93            IN VARCHAR2
11600 --Business Flow Invoice Distribution Identifier
11601  , p_source_94            IN NUMBER
11602 --Business Flow Invoice Identifier
11603  , p_source_95            IN NUMBER
11604 )
11605 IS
11606 
11607 l_component_type              VARCHAR2(80);
11608 l_component_code              VARCHAR2(30);
11609 l_component_type_code         VARCHAR2(1);
11610 l_component_appl_id           INTEGER;
11611 l_amb_context_code            VARCHAR2(30);
11612 l_entity_code                 VARCHAR2(30);
11613 l_event_class_code            VARCHAR2(30);
11614 l_ae_header_id                NUMBER;
11615 l_event_type_code             VARCHAR2(30);
11616 l_line_definition_code        VARCHAR2(30);
11617 l_line_definition_owner_code  VARCHAR2(1);
11618 --
11619 -- adr variables
11620 l_segment                     VARCHAR2(30);
11621 l_ccid                        NUMBER;
11622 l_adr_transaction_coa_id      NUMBER;
11623 l_adr_accounting_coa_id       NUMBER;
11624 l_adr_flexfield_segment_code  VARCHAR2(30);
11625 l_adr_flex_value_set_id       NUMBER;
11626 l_adr_value_type_code         VARCHAR2(30);
11627 l_adr_value_combination_id    NUMBER;
11628 l_adr_value_segment_code      VARCHAR2(30);
11629 
11630 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
11631 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
11632 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
11633 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
11634 
11635 -- 4262811 Variables ------------------------------------------------------------------------------------------
11636 l_entered_amt_idx             NUMBER;
11637 l_accted_amt_idx              NUMBER;
11638 l_acc_rev_flag                VARCHAR2(1);
11639 l_accrual_line_num            NUMBER;
11640 l_tmp_amt                     NUMBER;
11641 l_acc_rev_natural_side_code   VARCHAR2(1);
11642 
11643 l_num_entries                 NUMBER;
11644 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
11645 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
11646 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
11647 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
11648 l_recog_line_1                NUMBER;
11649 l_recog_line_2                NUMBER;
11650 
11651 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
11652 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
11653 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
11654 
11655 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
11656 
11657 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
11658 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
11659 
11660 ---------------------------------------------------------------------------------------------------------------
11661 
11662 
11663 --
11664 -- bulk performance
11665 --
11666 l_balance_type_code           VARCHAR2(1);
11667 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
11668 l_log_module                  VARCHAR2(240);
11669 
11670 --
11671 -- Upgrade strategy
11672 --
11673 l_actual_upg_option           VARCHAR2(1);
11674 l_enc_upg_option           VARCHAR2(1);
11675 
11676 --
11677 BEGIN
11678 --
11679 IF g_log_enabled THEN
11680       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_53';
11681 END IF;
11682 --
11683 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11684 
11685       trace
11686          (p_msg      => 'BEGIN of AcctLineType_53'
11687          ,p_level    => C_LEVEL_PROCEDURE
11688          ,p_module   => l_log_module);
11689 
11690 END IF;
11691 --
11692 l_component_type             := 'AMB_JLT';
11693 l_component_code             := 'AP_ALC_EX_RATE_VAR_INV';
11694 l_component_type_code        := 'S';
11695 l_component_appl_id          :=  200;
11696 l_amb_context_code           := 'DEFAULT';
11697 l_entity_code                := 'AP_INVOICES';
11698 l_event_class_code           := 'INVOICES';
11699 l_event_type_code            := 'INVOICES_ALL';
11700 l_line_definition_owner_code := 'S';
11701 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
11702 --
11703 l_balance_type_code          := 'A';
11704 l_segment                     := NULL;
11705 l_ccid                        := NULL;
11706 l_adr_transaction_coa_id      := NULL;
11707 l_adr_accounting_coa_id       := NULL;
11708 l_adr_flexfield_segment_code  := NULL;
11709 l_adr_flex_value_set_id       := NULL;
11710 l_adr_value_type_code         := NULL;
11711 l_adr_value_combination_id    := NULL;
11712 l_adr_value_segment_code      := NULL;
11713 
11714 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
11715 l_bflow_class_code           := '';    -- 4219869 Business Flow
11716 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
11717 l_budgetary_control_flag     := 'N';
11718 
11719 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
11720 l_bflow_applied_to_amt       := NULL; -- 5132302
11721 l_entered_amt_idx            := NULL;          -- 4262811
11722 l_accted_amt_idx             := NULL;          -- 4262811
11726 --
11723 l_acc_rev_flag               := NULL;          -- 4262811
11724 l_accrual_line_num           := NULL;          -- 4262811
11725 l_tmp_amt                    := NULL;          -- 4262811
11727 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
11728             (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
11729                return;
11730   END IF;
11731   
11732 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
11733     l_balance_type_code <> 'B' THEN
11734 IF NVL(p_source_33,'
11735 ') =  'ACCRUAL'
11736  THEN 
11737 
11738    --
11739    XLA_AE_LINES_PKG.SetNewLine;
11740 
11741    p_balance_type_code          := l_balance_type_code;
11742    -- set the flag so later we will know whether the gain loss line needs to be created
11743    
11744    IF(l_balance_type_code = 'A' ) THEN
11745      p_actual_flag :='G';
11746    END IF;
11747 
11748    --
11749    -- bulk performance
11750    --
11751    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
11752                                       p_header_num   => 0); -- 4262811
11753    --
11754    -- set accounting line options
11755    --
11756    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
11757            p_natural_side_code          => 'G'
11758          , p_gain_or_loss_flag          => 'N'
11759          , p_gl_transfer_mode_code      => 'S'
11760          , p_acct_entry_type_code       => 'A'
11761          , p_switch_side_flag           => ''
11762          , p_merge_duplicate_code       => 'A'
11763          );
11764    --
11765    l_acc_rev_natural_side_code := 'C';  -- 4262811
11766    -- 
11767    --
11768    -- set accounting line type info
11769    --
11770    xla_ae_lines_pkg.SetAcctLineType
11771       (p_component_type             => l_component_type
11772       ,p_event_type_code            => l_event_type_code
11773       ,p_line_definition_owner_code => l_line_definition_owner_code
11774       ,p_line_definition_code       => l_line_definition_code
11775       ,p_accounting_line_code       => l_component_code
11776       ,p_accounting_line_type_code  => l_component_type_code
11777       ,p_accounting_line_appl_id    => l_component_appl_id
11778       ,p_amb_context_code           => l_amb_context_code
11779       ,p_entity_code                => l_entity_code
11780       ,p_event_class_code           => l_event_class_code);
11781    --
11782    -- set accounting class
11783    --
11784    xla_ae_lines_pkg.SetAcctClass(
11785            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
11786          , p_ae_header_id           => l_ae_header_id
11787          );
11788 
11789    --
11790    -- set rounding class
11791    --
11792    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
11793                       'EXCHANGE_RATE_VARIANCE';
11794 
11795    --
11796    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
11797    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
11798    --
11799    -- bulk performance
11800    --
11801    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
11802 
11803    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
11804       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
11805 
11806    -- 4955764
11807    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11808       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
11809 
11810    -- 4458381 Public Sector Enh
11811    
11812    --
11813    -- set accounting attributes for the line type
11814    --
11815    l_entered_amt_idx := NULL;
11816    l_accted_amt_idx  := 24;
11817    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
11818    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
11819    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
11820    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
11821    l_rec_acct_attrs.array_num_value(2)  := 
11822 xla_ae_sources_pkg.GetSystemSourceNum(
11823    p_source_code           => 'XLA_EVENT_APPL_ID'
11824  , p_source_type_code      => 'Y'
11825  , p_source_application_id =>  602
11826 );
11827    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
11828    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
11829    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
11830    l_rec_acct_attrs.array_char_value(4)  := 
11831 xla_ae_sources_pkg.GetSystemSourceChar(
11832    p_source_code           => 'XLA_ENTITY_CODE'
11833  , p_source_type_code      => 'Y'
11834  , p_source_application_id =>  602
11835 );
11836    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
11837    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
11838    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
11839    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
11840    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
11841    l_rec_acct_attrs.array_num_value(7)  := p_source_73;
11845    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
11842    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
11843    l_rec_acct_attrs.array_num_value(8)  := p_source_91;
11844    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
11846    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
11847    l_rec_acct_attrs.array_char_value(10)  := p_source_93;
11848    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
11849    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
11850    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
11851    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_95);
11852    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
11853    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_64);
11854    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
11855    l_rec_acct_attrs.array_char_value(14)  := p_source_55;
11856    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
11857    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
11858    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
11859    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
11860    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
11861    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
11862    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
11863    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
11864    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
11865    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
11866    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
11867    l_rec_acct_attrs.array_num_value(20)  := p_source_70;
11868    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
11869    l_rec_acct_attrs.array_char_value(21)  := p_source_67;
11870    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
11871    l_rec_acct_attrs.array_num_value(22)  := p_source_71;
11872    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
11873    l_rec_acct_attrs.array_char_value(23)  := p_source_72;
11874    l_rec_acct_attrs.array_acct_attr_code(24) := 'LEDGER_AMOUNT';
11875    l_rec_acct_attrs.array_num_value(24)  := p_source_21;
11876    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_END_DATE';
11877    l_rec_acct_attrs.array_date_value(25)  := p_source_77;
11878    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_OPTION';
11879    l_rec_acct_attrs.array_char_value(26)  := p_source_78;
11880    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_START_DATE';
11881    l_rec_acct_attrs.array_date_value(27)  := p_source_79;
11882    l_rec_acct_attrs.array_acct_attr_code(28) := 'OVERRIDE_ACCTD_AMT_FLAG';
11883    l_rec_acct_attrs.array_char_value(28)  := p_source_80;
11884    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_ID';
11885    l_rec_acct_attrs.array_num_value(29)  := p_source_81;
11886    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_SITE_ID';
11887    l_rec_acct_attrs.array_num_value(30)  := p_source_82;
11888    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
11889    l_rec_acct_attrs.array_char_value(31)  := p_source_83;
11890    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
11891    l_rec_acct_attrs.array_num_value(32)  :=  to_char(p_source_84);
11892    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
11893    l_rec_acct_attrs.array_char_value(33)  := p_source_55;
11894    l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
11895    l_rec_acct_attrs.array_num_value(34)  := p_source_85;
11896    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
11897    l_rec_acct_attrs.array_num_value(35)  := p_source_86;
11898    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
11899    l_rec_acct_attrs.array_num_value(36)  := p_source_87;
11900    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
11901    l_rec_acct_attrs.array_num_value(37)  := p_source_88;
11902    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
11903    l_rec_acct_attrs.array_num_value(38)  := p_source_89;
11904    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
11905    l_rec_acct_attrs.array_num_value(39)  := p_source_90;
11906 
11907    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
11908    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
11909 
11910    ---------------------------------------------------------------------------------------------------------------
11911    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
11912    ---------------------------------------------------------------------------------------------------------------
11913    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
11914 
11915    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11916    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11917 
11918    IF xla_accounting_cache_pkg.GetValueChar
11919          (p_source_code         => 'LEDGER_CATEGORY_CODE'
11920          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
11921    AND l_bflow_method_code = 'PRIOR_ENTRY'
11922 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
11923    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
11924          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
11925        )
11929            ,p_business_class_code     => l_bflow_class_code
11926    THEN
11927          xla_ae_lines_pkg.BflowUpgEntry
11928            (p_business_method_code    => l_bflow_method_code
11930            ,p_balance_type            => l_balance_type_code);
11931    ELSE
11932       NULL;
11933 -- No business flow processing for business flow method of NONE.
11934    END IF;
11935 
11936    --
11937    -- call analytical criteria
11938    --
11939    
11940    --
11941    -- call description
11942    --
11943    
11944 xla_ae_lines_pkg.SetLineDescription(
11945    p_ae_header_id => l_ae_header_id
11946   ,p_description  => Description_1 (
11947      p_application_id         => p_application_id
11948    , p_ae_header_id           => l_ae_header_id 
11949 , p_source_1 => p_source_1
11950    )
11951 );
11952 
11953 
11954    --
11955    -- call ADRs
11956    -- Bug 4922099
11957    --
11958    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11959         (NVL(l_actual_upg_option, 'N') = 'O') OR
11960         (NVL(l_enc_upg_option, 'N') = 'O')
11961       )
11962    THEN
11963    NULL;
11964    --
11965    --
11966    
11967   l_ccid := AcctDerRule_30(
11968            p_application_id           => p_application_id
11969          , p_ae_header_id             => l_ae_header_id 
11970 , p_source_15 => p_source_15
11971 , p_source_15_meaning => p_source_15_meaning
11972 , p_source_20 => p_source_20
11973 , p_source_21 => p_source_21
11974 , p_source_22 => p_source_22
11975 , p_source_22_meaning => p_source_22_meaning
11976 , p_source_23 => p_source_23
11977 , p_source_30 => p_source_30
11978 , p_source_47 => p_source_47
11979 , p_source_47_meaning => p_source_47_meaning
11980          , x_transaction_coa_id       => l_adr_transaction_coa_id
11981          , x_accounting_coa_id        => l_adr_accounting_coa_id
11982          , x_value_type_code          => l_adr_value_type_code
11983          , p_side                     => 'ALL'
11984    );
11985 
11986    xla_ae_lines_pkg.set_ccid(
11987     p_code_combination_id          => l_ccid
11988   , p_value_type_code              => l_adr_value_type_code
11989   , p_transaction_coa_id           => l_adr_transaction_coa_id
11990   , p_accounting_coa_id            => l_adr_accounting_coa_id
11991   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
11992   , p_adr_type_code                => 'S'
11993   , p_component_type               => l_component_type
11994   , p_component_code               => l_component_code
11995   , p_component_type_code          => l_component_type_code
11996   , p_component_appl_id            => l_component_appl_id
11997   , p_amb_context_code             => l_amb_context_code
11998   , p_side                         => 'ALL'
11999   );
12000 
12001 
12002    l_segment := AcctDerRule_9(
12003            p_application_id           => p_application_id
12004          , p_ae_header_id             => l_ae_header_id 
12005 , p_source_15 => p_source_15
12006 , p_source_15_meaning => p_source_15_meaning
12007 , p_source_20 => p_source_20
12008 , p_source_22 => p_source_22
12009 , p_source_22_meaning => p_source_22_meaning
12010          , x_transaction_coa_id       => l_adr_transaction_coa_id
12011          , x_accounting_coa_id        => l_adr_accounting_coa_id
12012          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12013          , x_flex_value_set_id        => l_adr_flex_value_set_id
12014          , x_value_type_code          => l_adr_value_type_code
12015          , x_value_combination_id     => l_adr_value_combination_id
12016          , x_value_segment_code       => l_adr_value_segment_code
12017          , p_side                     => 'CREDIT'
12018          , p_override_seg_flag        => 'Y'
12019    );
12020 
12021    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12022 
12023       xla_ae_lines_pkg.set_segment(
12024           p_to_segment_code         => 'GL_ACCOUNT'
12025         , p_segment_value           => l_segment
12026         , p_from_segment_code       => l_adr_value_segment_code
12027         , p_from_combination_id     => l_adr_value_combination_id
12028         , p_value_type_code         => l_adr_value_type_code
12029         , p_transaction_coa_id      => l_adr_transaction_coa_id
12030         , p_accounting_coa_id       => l_adr_accounting_coa_id
12031         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12032         , p_flex_value_set_id       => l_adr_flex_value_set_id
12033         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
12034         , p_adr_type_code           => 'S'
12035         , p_component_type          => l_component_type
12036         , p_component_code          => l_component_code
12037         , p_component_type_code     => l_component_type_code
12038         , p_component_appl_id       => l_component_appl_id
12039         , p_amb_context_code        => l_amb_context_code
12040         , p_entity_code             => 'AP_INVOICES'
12041         , p_event_class_code        => 'INVOICES'
12042         , p_side                    => 'CREDIT'
12043         );
12044 
12045   END IF;
12046 
12047    l_segment := AcctDerRule_10(
12048            p_application_id           => p_application_id
12049          , p_ae_header_id             => l_ae_header_id 
12050 , p_source_15 => p_source_15
12051 , p_source_15_meaning => p_source_15_meaning
12052 , p_source_22 => p_source_22
12053 , p_source_22_meaning => p_source_22_meaning
12054 , p_source_23 => p_source_23
12058          , x_flex_value_set_id        => l_adr_flex_value_set_id
12055          , x_transaction_coa_id       => l_adr_transaction_coa_id
12056          , x_accounting_coa_id        => l_adr_accounting_coa_id
12057          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12059          , x_value_type_code          => l_adr_value_type_code
12060          , x_value_combination_id     => l_adr_value_combination_id
12061          , x_value_segment_code       => l_adr_value_segment_code
12062          , p_side                     => 'DEBIT'
12063          , p_override_seg_flag        => 'Y'
12064    );
12065 
12066    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12067 
12068       xla_ae_lines_pkg.set_segment(
12069           p_to_segment_code         => 'GL_ACCOUNT'
12070         , p_segment_value           => l_segment
12071         , p_from_segment_code       => l_adr_value_segment_code
12072         , p_from_combination_id     => l_adr_value_combination_id
12073         , p_value_type_code         => l_adr_value_type_code
12074         , p_transaction_coa_id      => l_adr_transaction_coa_id
12075         , p_accounting_coa_id       => l_adr_accounting_coa_id
12076         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12077         , p_flex_value_set_id       => l_adr_flex_value_set_id
12078         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
12079         , p_adr_type_code           => 'S'
12080         , p_component_type          => l_component_type
12081         , p_component_code          => l_component_code
12082         , p_component_type_code     => l_component_type_code
12083         , p_component_appl_id       => l_component_appl_id
12084         , p_amb_context_code        => l_amb_context_code
12085         , p_entity_code             => 'AP_INVOICES'
12086         , p_event_class_code        => 'INVOICES'
12087         , p_side                    => 'DEBIT'
12088         );
12089 
12090   END IF;
12091 
12092    l_segment := AcctDerRule_23(
12093            p_application_id           => p_application_id
12094          , p_ae_header_id             => l_ae_header_id 
12095 , p_source_15 => p_source_15
12096 , p_source_15_meaning => p_source_15_meaning
12097 , p_source_22 => p_source_22
12098 , p_source_22_meaning => p_source_22_meaning
12099 , p_source_30 => p_source_30
12100          , x_transaction_coa_id       => l_adr_transaction_coa_id
12101          , x_accounting_coa_id        => l_adr_accounting_coa_id
12102          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12103          , x_flex_value_set_id        => l_adr_flex_value_set_id
12104          , x_value_type_code          => l_adr_value_type_code
12105          , x_value_combination_id     => l_adr_value_combination_id
12106          , x_value_segment_code       => l_adr_value_segment_code
12107          , p_side                     => 'ALL'
12108          , p_override_seg_flag        => 'Y'
12109    );
12110 
12111    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12112 
12113       xla_ae_lines_pkg.set_segment(
12114           p_to_segment_code         => 'GL_BALANCING'
12115         , p_segment_value           => l_segment
12116         , p_from_segment_code       => l_adr_value_segment_code
12117         , p_from_combination_id     => l_adr_value_combination_id
12118         , p_value_type_code         => l_adr_value_type_code
12119         , p_transaction_coa_id      => l_adr_transaction_coa_id
12120         , p_accounting_coa_id       => l_adr_accounting_coa_id
12121         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12122         , p_flex_value_set_id       => l_adr_flex_value_set_id
12123         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
12124         , p_adr_type_code           => 'S'
12125         , p_component_type          => l_component_type
12126         , p_component_code          => l_component_code
12127         , p_component_type_code     => l_component_type_code
12128         , p_component_appl_id       => l_component_appl_id
12129         , p_amb_context_code        => l_amb_context_code
12130         , p_entity_code             => 'AP_INVOICES'
12131         , p_event_class_code        => 'INVOICES'
12132         , p_side                    => 'ALL'
12133         );
12134 
12135   END IF;
12136 
12137    --
12138    --
12139    END IF;
12140    --
12141    -- Bug 4922099
12142    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
12143           (NVL(l_enc_upg_option, 'N') = 'O')
12144         ) AND
12145         (l_bflow_method_code = 'PRIOR_ENTRY')
12146       )
12147    THEN
12148       IF
12149       --
12150       1 = 2
12151       --
12152       THEN
12153       xla_accounting_err_pkg.build_message
12154                                     (p_appli_s_name            => 'XLA'
12155                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12156                                     ,p_token_1                 => 'LINE_NUMBER'
12157                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
12158                                     ,p_token_2                 => 'LINE_TYPE_NAME'
12159                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
12160                                                                              l_component_type
12161                                                                             ,l_component_code
12162                                                                             ,l_component_type_code
12166                                                                             ,l_event_class_code
12163                                                                             ,l_component_appl_id
12164                                                                             ,l_amb_context_code
12165                                                                             ,l_entity_code
12167                                                                            )
12168                                     ,p_token_3                 => 'OWNER'
12169                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
12170                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
12171                                                                           ,p_lookup_code    => l_component_type_code
12172                                                                          )
12173                                     ,p_token_4                 => 'PRODUCT_NAME'
12174                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
12175                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
12176                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
12177                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
12178                                     ,p_ae_header_id            =>  NULL
12179                                        );
12180 
12181         IF (C_LEVEL_ERROR>= g_log_level) THEN
12182                  trace
12183                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12184                       ,p_level    => C_LEVEL_ERROR
12185                       ,p_module   => l_log_module);
12186         END IF;
12187       END IF;
12188    END IF;
12189    --
12190    --
12191    ------------------------------------------------------------------------------------------------
12192    -- 4219869 Business Flow
12193    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
12194    -- Prior Entry.  Currently, the following code is always generated.
12195    ------------------------------------------------------------------------------------------------
12196    XLA_AE_LINES_PKG.ValidateCurrentLine;
12197 
12198    ------------------------------------------------------------------------------------
12199    -- 4219869 Business Flow
12200    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
12201    ------------------------------------------------------------------------------------
12202    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12203 
12204    ----------------------------------------------------------------------------------
12205    -- 4219869 Business Flow
12206    -- Update journal entry status -- Need to generate this within IF <condition>
12207    ----------------------------------------------------------------------------------
12208    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12209          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
12210          ,p_balance_type_code => l_balance_type_code
12211          );
12212 
12213    -------------------------------------------------------------------------------------------
12214    -- 4262811 - Generate the Accrual Reversal lines
12215    -------------------------------------------------------------------------------------------
12216    BEGIN
12217       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
12218                               (g_array_event(p_event_id).array_value_num('header_index'));
12219       IF l_acc_rev_flag IS NULL THEN
12220          l_acc_rev_flag := 'N';
12221       END IF;
12222    EXCEPTION
12223       WHEN OTHERS THEN
12224          l_acc_rev_flag := 'N';
12225    END;
12226    --
12227    IF (l_acc_rev_flag = 'Y') THEN
12228 
12229        -- 4645092  ------------------------------------------------------------------------------
12230        -- To allow MPA report to determine if it should generate report process
12231        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
12232        ------------------------------------------------------------------------------------------
12233 
12234        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
12235        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
12236    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
12237    -- call ADRs
12238    -- Bug 4922099
12239    --
12240    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12241         (NVL(l_actual_upg_option, 'N') = 'O') OR
12242         (NVL(l_enc_upg_option, 'N') = 'O')
12243       )
12244    THEN
12245    NULL;
12246    --
12247    --
12248    
12249   l_ccid := AcctDerRule_30(
12250            p_application_id           => p_application_id
12251          , p_ae_header_id             => l_ae_header_id 
12252 , p_source_15 => p_source_15
12253 , p_source_15_meaning => p_source_15_meaning
12254 , p_source_20 => p_source_20
12255 , p_source_21 => p_source_21
12256 , p_source_22 => p_source_22
12257 , p_source_22_meaning => p_source_22_meaning
12258 , p_source_23 => p_source_23
12259 , p_source_30 => p_source_30
12260 , p_source_47 => p_source_47
12261 , p_source_47_meaning => p_source_47_meaning
12262          , x_transaction_coa_id       => l_adr_transaction_coa_id
12263          , x_accounting_coa_id        => l_adr_accounting_coa_id
12267 
12264          , x_value_type_code          => l_adr_value_type_code
12265          , p_side                     => 'ALL'
12266    );
12268    xla_ae_lines_pkg.set_ccid(
12269     p_code_combination_id          => l_ccid
12270   , p_value_type_code              => l_adr_value_type_code
12271   , p_transaction_coa_id           => l_adr_transaction_coa_id
12272   , p_accounting_coa_id            => l_adr_accounting_coa_id
12273   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
12274   , p_adr_type_code                => 'S'
12275   , p_component_type               => l_component_type
12276   , p_component_code               => l_component_code
12277   , p_component_type_code          => l_component_type_code
12278   , p_component_appl_id            => l_component_appl_id
12279   , p_amb_context_code             => l_amb_context_code
12280   , p_side                         => 'ALL'
12281   );
12282 
12283 
12284    l_segment := AcctDerRule_9(
12285            p_application_id           => p_application_id
12286          , p_ae_header_id             => l_ae_header_id 
12287 , p_source_15 => p_source_15
12288 , p_source_15_meaning => p_source_15_meaning
12289 , p_source_20 => p_source_20
12290 , p_source_22 => p_source_22
12291 , p_source_22_meaning => p_source_22_meaning
12292          , x_transaction_coa_id       => l_adr_transaction_coa_id
12293          , x_accounting_coa_id        => l_adr_accounting_coa_id
12294          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12295          , x_flex_value_set_id        => l_adr_flex_value_set_id
12296          , x_value_type_code          => l_adr_value_type_code
12297          , x_value_combination_id     => l_adr_value_combination_id
12298          , x_value_segment_code       => l_adr_value_segment_code
12299          , p_side                     => 'CREDIT'
12300          , p_override_seg_flag        => 'Y'
12301    );
12302 
12303    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12304 
12305       xla_ae_lines_pkg.set_segment(
12306           p_to_segment_code         => 'GL_ACCOUNT'
12307         , p_segment_value           => l_segment
12308         , p_from_segment_code       => l_adr_value_segment_code
12309         , p_from_combination_id     => l_adr_value_combination_id
12310         , p_value_type_code         => l_adr_value_type_code
12311         , p_transaction_coa_id      => l_adr_transaction_coa_id
12312         , p_accounting_coa_id       => l_adr_accounting_coa_id
12313         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12314         , p_flex_value_set_id       => l_adr_flex_value_set_id
12315         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
12316         , p_adr_type_code           => 'S'
12317         , p_component_type          => l_component_type
12318         , p_component_code          => l_component_code
12319         , p_component_type_code     => l_component_type_code
12320         , p_component_appl_id       => l_component_appl_id
12321         , p_amb_context_code        => l_amb_context_code
12322         , p_entity_code             => 'AP_INVOICES'
12323         , p_event_class_code        => 'INVOICES'
12324         , p_side                    => 'CREDIT'
12325         );
12326 
12327   END IF;
12328 
12329    l_segment := AcctDerRule_10(
12330            p_application_id           => p_application_id
12331          , p_ae_header_id             => l_ae_header_id 
12332 , p_source_15 => p_source_15
12333 , p_source_15_meaning => p_source_15_meaning
12334 , p_source_22 => p_source_22
12335 , p_source_22_meaning => p_source_22_meaning
12336 , p_source_23 => p_source_23
12337          , x_transaction_coa_id       => l_adr_transaction_coa_id
12338          , x_accounting_coa_id        => l_adr_accounting_coa_id
12339          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12340          , x_flex_value_set_id        => l_adr_flex_value_set_id
12341          , x_value_type_code          => l_adr_value_type_code
12342          , x_value_combination_id     => l_adr_value_combination_id
12343          , x_value_segment_code       => l_adr_value_segment_code
12344          , p_side                     => 'DEBIT'
12345          , p_override_seg_flag        => 'Y'
12346    );
12347 
12348    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12349 
12350       xla_ae_lines_pkg.set_segment(
12351           p_to_segment_code         => 'GL_ACCOUNT'
12352         , p_segment_value           => l_segment
12353         , p_from_segment_code       => l_adr_value_segment_code
12354         , p_from_combination_id     => l_adr_value_combination_id
12355         , p_value_type_code         => l_adr_value_type_code
12356         , p_transaction_coa_id      => l_adr_transaction_coa_id
12357         , p_accounting_coa_id       => l_adr_accounting_coa_id
12358         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12359         , p_flex_value_set_id       => l_adr_flex_value_set_id
12360         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
12361         , p_adr_type_code           => 'S'
12362         , p_component_type          => l_component_type
12363         , p_component_code          => l_component_code
12364         , p_component_type_code     => l_component_type_code
12365         , p_component_appl_id       => l_component_appl_id
12366         , p_amb_context_code        => l_amb_context_code
12367         , p_entity_code             => 'AP_INVOICES'
12368         , p_event_class_code        => 'INVOICES'
12369         , p_side                    => 'DEBIT'
12370         );
12371 
12372   END IF;
12373 
12377 , p_source_15 => p_source_15
12374    l_segment := AcctDerRule_23(
12375            p_application_id           => p_application_id
12376          , p_ae_header_id             => l_ae_header_id 
12378 , p_source_15_meaning => p_source_15_meaning
12379 , p_source_22 => p_source_22
12380 , p_source_22_meaning => p_source_22_meaning
12381 , p_source_30 => p_source_30
12382          , x_transaction_coa_id       => l_adr_transaction_coa_id
12383          , x_accounting_coa_id        => l_adr_accounting_coa_id
12384          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
12385          , x_flex_value_set_id        => l_adr_flex_value_set_id
12386          , x_value_type_code          => l_adr_value_type_code
12387          , x_value_combination_id     => l_adr_value_combination_id
12388          , x_value_segment_code       => l_adr_value_segment_code
12389          , p_side                     => 'ALL'
12390          , p_override_seg_flag        => 'Y'
12391    );
12392 
12393    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
12394 
12395       xla_ae_lines_pkg.set_segment(
12396           p_to_segment_code         => 'GL_BALANCING'
12397         , p_segment_value           => l_segment
12398         , p_from_segment_code       => l_adr_value_segment_code
12399         , p_from_combination_id     => l_adr_value_combination_id
12400         , p_value_type_code         => l_adr_value_type_code
12401         , p_transaction_coa_id      => l_adr_transaction_coa_id
12402         , p_accounting_coa_id       => l_adr_accounting_coa_id
12403         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
12404         , p_flex_value_set_id       => l_adr_flex_value_set_id
12405         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
12406         , p_adr_type_code           => 'S'
12407         , p_component_type          => l_component_type
12408         , p_component_code          => l_component_code
12409         , p_component_type_code     => l_component_type_code
12410         , p_component_appl_id       => l_component_appl_id
12411         , p_amb_context_code        => l_amb_context_code
12412         , p_entity_code             => 'AP_INVOICES'
12413         , p_event_class_code        => 'INVOICES'
12414         , p_side                    => 'ALL'
12415         );
12416 
12417   END IF;
12418 
12419    --
12420    --
12421    END IF;
12422 
12423        --
12424        -- Update the line information that should be overwritten
12425        --
12426        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
12427                                          p_header_num   => 1);
12428        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
12429 
12430        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
12431 
12432        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
12433           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
12434        END IF;
12435 
12436       --
12437       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
12438       --
12439       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
12440           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
12441       ELSE
12442           ---------------------------------------------------------------------------------------------------
12443           -- 4262811a Switch Sign
12444           ---------------------------------------------------------------------------------------------------
12445           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
12446           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12447                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12448           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12449                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12450           -- 5132302
12451           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
12452                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12453 
12454       END IF;
12455 
12456       -- 4955764
12457       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12458       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
12459 
12460 
12461       XLA_AE_LINES_PKG.ValidateCurrentLine;
12462       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12463 
12464       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12465                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
12466                ,p_balance_type_code => l_balance_type_code);
12467 
12468    END IF;
12469 
12470    -----------------------------------------------------------------------------------------
12471    -- 4262811 Multiperiod Accounting
12472    -----------------------------------------------------------------------------------------
12473      -- No MPA option is assigned.
12474 
12475 
12476 END IF;
12477 END IF;
12478 --
12479 
12480 --
12481 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12482    trace
12483       (p_msg      => 'END of AcctLineType_53'
12487 --
12484       ,p_level    => C_LEVEL_PROCEDURE
12485       ,p_module   => l_log_module);
12486 END IF;
12488 EXCEPTION
12489   WHEN xla_exceptions_pkg.application_exception THEN
12490       RAISE;
12491   WHEN OTHERS THEN
12492        xla_exceptions_pkg.raise_message
12493            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_53');
12494 END AcctLineType_53;
12495 --
12496 
12497 ---------------------------------------
12498 --
12499 -- PRIVATE FUNCTION
12500 --         AcctLineType_54
12501 --
12502 ---------------------------------------
12503 PROCEDURE AcctLineType_54 (
12504   p_application_id        IN NUMBER
12505  ,p_event_id              IN NUMBER
12506  ,p_calculate_acctd_flag  IN VARCHAR2
12507  ,p_calculate_g_l_flag    IN VARCHAR2
12508  ,p_actual_flag           IN OUT VARCHAR2
12509  ,p_balance_type_code     OUT VARCHAR2
12510  ,p_gain_or_loss_ref      OUT VARCHAR2
12511  
12512 --Invoice Distribution Description
12513  , p_source_1            IN VARCHAR2
12514 --Automatic Offsets Value
12515  , p_source_15            IN VARCHAR2
12516  , p_source_15_meaning    IN VARCHAR2
12517 --Purchase Order Rate Variance Gain Account
12518  , p_source_20            IN NUMBER
12519 --Invoice Distribution Ledger Amount
12520  , p_source_21            IN NUMBER
12521 --Destination Type of the PO Distribution
12522  , p_source_22            IN VARCHAR2
12523  , p_source_22_meaning    IN VARCHAR2
12524 --Purchase Order Rate Variance Loss Account
12525  , p_source_23            IN NUMBER
12526 --Invoice Distribution Account
12527  , p_source_30            IN NUMBER
12528 --Invoice Distribution Type
12529  , p_source_33            IN VARCHAR2
12530  , p_source_33_meaning    IN VARCHAR2
12531 --Automatic Offsets Flag
12532  , p_source_47            IN VARCHAR2
12533  , p_source_47_meaning    IN VARCHAR2
12534 --Accounting Reversal Indicator
12535  , p_source_53            IN VARCHAR2
12536 --Distribution Link Type
12537  , p_source_55            IN VARCHAR2
12538 --Allocation to Main Distribution Identifier
12539  , p_source_57            IN NUMBER
12540 --Invoice Identifier
12541  , p_source_58            IN NUMBER
12542 --Invoice Distribution Identifier
12543  , p_source_64            IN NUMBER
12544 --Payables Encumbrance Upgrade Credit Account
12545  , p_source_65            IN NUMBER
12546 --Payables Encumbrance Upgrade Credit Amount
12547  , p_source_66            IN NUMBER
12548 --Invoice Currency Code
12549  , p_source_67            IN VARCHAR2
12550 --Payables Encumbrance Upgrade Credit Base Amount
12551  , p_source_68            IN NUMBER
12552 --Payables Encumbrance Upgrade Debit Account
12553  , p_source_69            IN NUMBER
12554 --Payables Encumbrance Upgrade Debit Amount
12555  , p_source_70            IN NUMBER
12556 --Payables Encumbrance Upgrade Debit Base Amount
12557  , p_source_71            IN NUMBER
12558 --Payables Encumbrance Upgrade Option
12559  , p_source_72            IN VARCHAR2
12560 --Deferred Accounting End Date
12561  , p_source_77            IN DATE
12562 --Deferred Accounting Option
12563  , p_source_78            IN VARCHAR2
12564 --Deferred Accounting Start Date
12565  , p_source_79            IN DATE
12566 --Override Accounted Amount Indicator
12567  , p_source_80            IN VARCHAR2
12568  , p_source_80_meaning    IN VARCHAR2
12569 --Invoice Supplier Identifier
12570  , p_source_81            IN NUMBER
12571 --Invoice Supplier Site Identifier
12572  , p_source_82            IN NUMBER
12573 --Third Party Type
12574  , p_source_83            IN VARCHAR2
12575 --Parent Reversal Identifier
12576  , p_source_84            IN NUMBER
12577 --Invoice Distribution Statistical Amount
12578  , p_source_85            IN NUMBER
12579 --Invoice Distribution Tax Line Identifier
12580  , p_source_86            IN NUMBER
12581 --Invoice Distribution Tax Distribution Identifier from Tax
12582  , p_source_87            IN NUMBER
12583 --Invoice Distribution Summary Tax Line Identifier
12584  , p_source_88            IN NUMBER
12585 --Payables Upgrade Credit Encumbrance Type Identifier
12586  , p_source_89            IN NUMBER
12587 --Payables Upgrade Debit Encumbrance Type Identifier
12588  , p_source_90            IN NUMBER
12589 --Business Flow Accounts Payable Application Identifier
12590  , p_source_91            IN NUMBER
12591 --Business Flow Invoice Distribution Type
12592  , p_source_92            IN VARCHAR2
12593 --Business Flow Invoice Entity Code
12594  , p_source_93            IN VARCHAR2
12595 --Business Flow Invoice Distribution Identifier
12596  , p_source_94            IN NUMBER
12597 --Business Flow Invoice Identifier
12598  , p_source_95            IN NUMBER
12599 )
12600 IS
12601 
12602 l_component_type              VARCHAR2(80);
12603 l_component_code              VARCHAR2(30);
12604 l_component_type_code         VARCHAR2(1);
12605 l_component_appl_id           INTEGER;
12606 l_amb_context_code            VARCHAR2(30);
12607 l_entity_code                 VARCHAR2(30);
12608 l_event_class_code            VARCHAR2(30);
12609 l_ae_header_id                NUMBER;
12610 l_event_type_code             VARCHAR2(30);
12611 l_line_definition_code        VARCHAR2(30);
12612 l_line_definition_owner_code  VARCHAR2(1);
12613 --
12614 -- adr variables
12618 l_adr_accounting_coa_id       NUMBER;
12615 l_segment                     VARCHAR2(30);
12616 l_ccid                        NUMBER;
12617 l_adr_transaction_coa_id      NUMBER;
12619 l_adr_flexfield_segment_code  VARCHAR2(30);
12620 l_adr_flex_value_set_id       NUMBER;
12621 l_adr_value_type_code         VARCHAR2(30);
12622 l_adr_value_combination_id    NUMBER;
12623 l_adr_value_segment_code      VARCHAR2(30);
12624 
12625 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
12626 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
12627 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
12628 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
12629 
12630 -- 4262811 Variables ------------------------------------------------------------------------------------------
12631 l_entered_amt_idx             NUMBER;
12632 l_accted_amt_idx              NUMBER;
12633 l_acc_rev_flag                VARCHAR2(1);
12634 l_accrual_line_num            NUMBER;
12635 l_tmp_amt                     NUMBER;
12636 l_acc_rev_natural_side_code   VARCHAR2(1);
12637 
12638 l_num_entries                 NUMBER;
12639 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
12640 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
12641 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
12642 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
12643 l_recog_line_1                NUMBER;
12644 l_recog_line_2                NUMBER;
12645 
12646 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
12647 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
12648 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
12649 
12650 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
12651 
12652 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
12653 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
12654 
12655 ---------------------------------------------------------------------------------------------------------------
12656 
12657 
12658 --
12659 -- bulk performance
12660 --
12661 l_balance_type_code           VARCHAR2(1);
12662 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
12663 l_log_module                  VARCHAR2(240);
12664 
12665 --
12666 -- Upgrade strategy
12667 --
12668 l_actual_upg_option           VARCHAR2(1);
12669 l_enc_upg_option           VARCHAR2(1);
12670 
12671 --
12672 BEGIN
12673 --
12674 IF g_log_enabled THEN
12675       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_54';
12676 END IF;
12677 --
12678 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12679 
12680       trace
12681          (p_msg      => 'BEGIN of AcctLineType_54'
12682          ,p_level    => C_LEVEL_PROCEDURE
12683          ,p_module   => l_log_module);
12684 
12685 END IF;
12686 --
12687 l_component_type             := 'AMB_JLT';
12688 l_component_code             := 'AP_ALC_EX_RATE_VAR_PREPAY';
12689 l_component_type_code        := 'S';
12690 l_component_appl_id          :=  200;
12691 l_amb_context_code           := 'DEFAULT';
12692 l_entity_code                := 'AP_INVOICES';
12693 l_event_class_code           := 'PREPAYMENTS';
12694 l_event_type_code            := 'PREPAYMENTS_ALL';
12695 l_line_definition_owner_code := 'S';
12696 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
12697 --
12698 l_balance_type_code          := 'A';
12699 l_segment                     := NULL;
12700 l_ccid                        := NULL;
12701 l_adr_transaction_coa_id      := NULL;
12702 l_adr_accounting_coa_id       := NULL;
12703 l_adr_flexfield_segment_code  := NULL;
12704 l_adr_flex_value_set_id       := NULL;
12705 l_adr_value_type_code         := NULL;
12706 l_adr_value_combination_id    := NULL;
12707 l_adr_value_segment_code      := NULL;
12708 
12709 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
12710 l_bflow_class_code           := '';    -- 4219869 Business Flow
12711 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
12712 l_budgetary_control_flag     := 'N';
12713 
12714 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
12715 l_bflow_applied_to_amt       := NULL; -- 5132302
12716 l_entered_amt_idx            := NULL;          -- 4262811
12717 l_accted_amt_idx             := NULL;          -- 4262811
12718 l_acc_rev_flag               := NULL;          -- 4262811
12719 l_accrual_line_num           := NULL;          -- 4262811
12720 l_tmp_amt                    := NULL;          -- 4262811
12721 --
12722 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
12723             (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
12724                return;
12725   END IF;
12726   
12727 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
12728     l_balance_type_code <> 'B' THEN
12729 IF NVL(p_source_33,'
12730 ') =  'ACCRUAL'
12731  THEN 
12732 
12733    --
12734    XLA_AE_LINES_PKG.SetNewLine;
12735 
12736    p_balance_type_code          := l_balance_type_code;
12737    -- set the flag so later we will know whether the gain loss line needs to be created
12738    
12739    IF(l_balance_type_code = 'A' ) THEN
12743    --
12740      p_actual_flag :='G';
12741    END IF;
12742 
12744    -- bulk performance
12745    --
12746    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
12747                                       p_header_num   => 0); -- 4262811
12748    --
12749    -- set accounting line options
12750    --
12751    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
12752            p_natural_side_code          => 'G'
12753          , p_gain_or_loss_flag          => 'N'
12754          , p_gl_transfer_mode_code      => 'S'
12755          , p_acct_entry_type_code       => 'A'
12756          , p_switch_side_flag           => ''
12757          , p_merge_duplicate_code       => 'A'
12758          );
12759    --
12760    l_acc_rev_natural_side_code := 'C';  -- 4262811
12761    -- 
12762    --
12763    -- set accounting line type info
12764    --
12765    xla_ae_lines_pkg.SetAcctLineType
12766       (p_component_type             => l_component_type
12767       ,p_event_type_code            => l_event_type_code
12768       ,p_line_definition_owner_code => l_line_definition_owner_code
12769       ,p_line_definition_code       => l_line_definition_code
12770       ,p_accounting_line_code       => l_component_code
12771       ,p_accounting_line_type_code  => l_component_type_code
12772       ,p_accounting_line_appl_id    => l_component_appl_id
12773       ,p_amb_context_code           => l_amb_context_code
12774       ,p_entity_code                => l_entity_code
12775       ,p_event_class_code           => l_event_class_code);
12776    --
12777    -- set accounting class
12778    --
12779    xla_ae_lines_pkg.SetAcctClass(
12780            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
12781          , p_ae_header_id           => l_ae_header_id
12782          );
12783 
12784    --
12785    -- set rounding class
12786    --
12787    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
12788                       'EXCHANGE_RATE_VARIANCE';
12789 
12790    --
12791    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
12792    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
12793    --
12794    -- bulk performance
12795    --
12796    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
12797 
12798    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
12799       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
12800 
12801    -- 4955764
12802    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12803       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
12804 
12805    -- 4458381 Public Sector Enh
12806    
12807    --
12808    -- set accounting attributes for the line type
12809    --
12810    l_entered_amt_idx := NULL;
12811    l_accted_amt_idx  := 23;
12812    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
12813    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
12814    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
12815    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
12816    l_rec_acct_attrs.array_num_value(2)  := 
12817 xla_ae_sources_pkg.GetSystemSourceNum(
12818    p_source_code           => 'XLA_EVENT_APPL_ID'
12819  , p_source_type_code      => 'Y'
12820  , p_source_application_id =>  602
12821 );
12822    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
12823    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
12824    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
12825    l_rec_acct_attrs.array_char_value(4)  := 
12826 xla_ae_sources_pkg.GetSystemSourceChar(
12827    p_source_code           => 'XLA_ENTITY_CODE'
12828  , p_source_type_code      => 'Y'
12829  , p_source_application_id =>  602
12830 );
12831    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
12832    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
12833    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
12834    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
12835    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
12836    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
12837    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
12838    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
12839    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
12840    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
12841    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
12842    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
12843    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
12844    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
12845    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
12846    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
12847    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
12848    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
12849    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
12850    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
12851    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
12852    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
12856    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
12853    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
12854    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
12855    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
12857    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
12858    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
12859    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
12860    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
12861    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
12862    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
12863    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
12864    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
12865    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
12866    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
12867    l_rec_acct_attrs.array_acct_attr_code(23) := 'LEDGER_AMOUNT';
12868    l_rec_acct_attrs.array_num_value(23)  := p_source_21;
12869    l_rec_acct_attrs.array_acct_attr_code(24) := 'MULTIPERIOD_END_DATE';
12870    l_rec_acct_attrs.array_date_value(24)  := p_source_77;
12871    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_OPTION';
12872    l_rec_acct_attrs.array_char_value(25)  := p_source_78;
12873    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_START_DATE';
12874    l_rec_acct_attrs.array_date_value(26)  := p_source_79;
12875    l_rec_acct_attrs.array_acct_attr_code(27) := 'OVERRIDE_ACCTD_AMT_FLAG';
12876    l_rec_acct_attrs.array_char_value(27)  := p_source_80;
12877    l_rec_acct_attrs.array_acct_attr_code(28) := 'PARTY_ID';
12878    l_rec_acct_attrs.array_num_value(28)  := p_source_81;
12879    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_SITE_ID';
12880    l_rec_acct_attrs.array_num_value(29)  := p_source_82;
12881    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
12882    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
12883    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
12884    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_84);
12885    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
12886    l_rec_acct_attrs.array_char_value(32)  := p_source_55;
12887    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
12888    l_rec_acct_attrs.array_num_value(33)  := p_source_85;
12889    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
12890    l_rec_acct_attrs.array_num_value(34)  := p_source_86;
12891    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
12892    l_rec_acct_attrs.array_num_value(35)  := p_source_87;
12893    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
12894    l_rec_acct_attrs.array_num_value(36)  := p_source_88;
12895    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
12896    l_rec_acct_attrs.array_num_value(37)  := p_source_89;
12897    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
12898    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
12899 
12900    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
12901    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
12902 
12903    ---------------------------------------------------------------------------------------------------------------
12904    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
12905    ---------------------------------------------------------------------------------------------------------------
12906    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
12907 
12908    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12909    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12910 
12911    IF xla_accounting_cache_pkg.GetValueChar
12912          (p_source_code         => 'LEDGER_CATEGORY_CODE'
12913          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
12914    AND l_bflow_method_code = 'PRIOR_ENTRY'
12915 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
12916    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
12917          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
12918        )
12919    THEN
12920          xla_ae_lines_pkg.BflowUpgEntry
12921            (p_business_method_code    => l_bflow_method_code
12922            ,p_business_class_code     => l_bflow_class_code
12923            ,p_balance_type            => l_balance_type_code);
12924    ELSE
12925       NULL;
12926 -- No business flow processing for business flow method of NONE.
12927    END IF;
12928 
12929    --
12930    -- call analytical criteria
12931    --
12932    
12933    --
12934    -- call description
12935    --
12936    
12937 xla_ae_lines_pkg.SetLineDescription(
12938    p_ae_header_id => l_ae_header_id
12939   ,p_description  => Description_1 (
12940      p_application_id         => p_application_id
12941    , p_ae_header_id           => l_ae_header_id 
12942 , p_source_1 => p_source_1
12943    )
12944 );
12945 
12946 
12947    --
12948    -- call ADRs
12949    -- Bug 4922099
12950    --
12951    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12952         (NVL(l_actual_upg_option, 'N') = 'O') OR
12953         (NVL(l_enc_upg_option, 'N') = 'O')
12957    --
12954       )
12955    THEN
12956    NULL;
12958    --
12959    
12960   l_ccid := AcctDerRule_30(
12961            p_application_id           => p_application_id
12962          , p_ae_header_id             => l_ae_header_id 
12963 , p_source_15 => p_source_15
12964 , p_source_15_meaning => p_source_15_meaning
12965 , p_source_20 => p_source_20
12966 , p_source_21 => p_source_21
12967 , p_source_22 => p_source_22
12968 , p_source_22_meaning => p_source_22_meaning
12969 , p_source_23 => p_source_23
12970 , p_source_30 => p_source_30
12971 , p_source_47 => p_source_47
12972 , p_source_47_meaning => p_source_47_meaning
12973          , x_transaction_coa_id       => l_adr_transaction_coa_id
12974          , x_accounting_coa_id        => l_adr_accounting_coa_id
12975          , x_value_type_code          => l_adr_value_type_code
12976          , p_side                     => 'ALL'
12977    );
12978 
12979    xla_ae_lines_pkg.set_ccid(
12980     p_code_combination_id          => l_ccid
12981   , p_value_type_code              => l_adr_value_type_code
12982   , p_transaction_coa_id           => l_adr_transaction_coa_id
12983   , p_accounting_coa_id            => l_adr_accounting_coa_id
12984   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
12985   , p_adr_type_code                => 'S'
12986   , p_component_type               => l_component_type
12987   , p_component_code               => l_component_code
12988   , p_component_type_code          => l_component_type_code
12989   , p_component_appl_id            => l_component_appl_id
12990   , p_amb_context_code             => l_amb_context_code
12991   , p_side                         => 'ALL'
12992   );
12993 
12994 
12995    l_segment := AcctDerRule_9(
12996            p_application_id           => p_application_id
12997          , p_ae_header_id             => l_ae_header_id 
12998 , p_source_15 => p_source_15
12999 , p_source_15_meaning => p_source_15_meaning
13000 , p_source_20 => p_source_20
13001 , p_source_22 => p_source_22
13002 , p_source_22_meaning => p_source_22_meaning
13003          , x_transaction_coa_id       => l_adr_transaction_coa_id
13004          , x_accounting_coa_id        => l_adr_accounting_coa_id
13005          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13006          , x_flex_value_set_id        => l_adr_flex_value_set_id
13007          , x_value_type_code          => l_adr_value_type_code
13008          , x_value_combination_id     => l_adr_value_combination_id
13009          , x_value_segment_code       => l_adr_value_segment_code
13010          , p_side                     => 'CREDIT'
13011          , p_override_seg_flag        => 'Y'
13012    );
13013 
13014    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13015 
13016       xla_ae_lines_pkg.set_segment(
13017           p_to_segment_code         => 'GL_ACCOUNT'
13018         , p_segment_value           => l_segment
13019         , p_from_segment_code       => l_adr_value_segment_code
13020         , p_from_combination_id     => l_adr_value_combination_id
13021         , p_value_type_code         => l_adr_value_type_code
13022         , p_transaction_coa_id      => l_adr_transaction_coa_id
13023         , p_accounting_coa_id       => l_adr_accounting_coa_id
13024         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13025         , p_flex_value_set_id       => l_adr_flex_value_set_id
13026         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
13027         , p_adr_type_code           => 'S'
13028         , p_component_type          => l_component_type
13029         , p_component_code          => l_component_code
13030         , p_component_type_code     => l_component_type_code
13031         , p_component_appl_id       => l_component_appl_id
13032         , p_amb_context_code        => l_amb_context_code
13033         , p_entity_code             => 'AP_INVOICES'
13034         , p_event_class_code        => 'PREPAYMENTS'
13035         , p_side                    => 'CREDIT'
13036         );
13037 
13038   END IF;
13039 
13040    l_segment := AcctDerRule_10(
13041            p_application_id           => p_application_id
13042          , p_ae_header_id             => l_ae_header_id 
13043 , p_source_15 => p_source_15
13044 , p_source_15_meaning => p_source_15_meaning
13045 , p_source_22 => p_source_22
13046 , p_source_22_meaning => p_source_22_meaning
13047 , p_source_23 => p_source_23
13048          , x_transaction_coa_id       => l_adr_transaction_coa_id
13049          , x_accounting_coa_id        => l_adr_accounting_coa_id
13050          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13051          , x_flex_value_set_id        => l_adr_flex_value_set_id
13052          , x_value_type_code          => l_adr_value_type_code
13053          , x_value_combination_id     => l_adr_value_combination_id
13054          , x_value_segment_code       => l_adr_value_segment_code
13055          , p_side                     => 'DEBIT'
13056          , p_override_seg_flag        => 'Y'
13057    );
13058 
13059    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13060 
13061       xla_ae_lines_pkg.set_segment(
13062           p_to_segment_code         => 'GL_ACCOUNT'
13063         , p_segment_value           => l_segment
13064         , p_from_segment_code       => l_adr_value_segment_code
13065         , p_from_combination_id     => l_adr_value_combination_id
13066         , p_value_type_code         => l_adr_value_type_code
13070         , p_flex_value_set_id       => l_adr_flex_value_set_id
13067         , p_transaction_coa_id      => l_adr_transaction_coa_id
13068         , p_accounting_coa_id       => l_adr_accounting_coa_id
13069         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13071         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
13072         , p_adr_type_code           => 'S'
13073         , p_component_type          => l_component_type
13074         , p_component_code          => l_component_code
13075         , p_component_type_code     => l_component_type_code
13076         , p_component_appl_id       => l_component_appl_id
13077         , p_amb_context_code        => l_amb_context_code
13078         , p_entity_code             => 'AP_INVOICES'
13079         , p_event_class_code        => 'PREPAYMENTS'
13080         , p_side                    => 'DEBIT'
13081         );
13082 
13083   END IF;
13084 
13085    l_segment := AcctDerRule_23(
13086            p_application_id           => p_application_id
13087          , p_ae_header_id             => l_ae_header_id 
13088 , p_source_15 => p_source_15
13089 , p_source_15_meaning => p_source_15_meaning
13090 , p_source_22 => p_source_22
13091 , p_source_22_meaning => p_source_22_meaning
13092 , p_source_30 => p_source_30
13093          , x_transaction_coa_id       => l_adr_transaction_coa_id
13094          , x_accounting_coa_id        => l_adr_accounting_coa_id
13095          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13096          , x_flex_value_set_id        => l_adr_flex_value_set_id
13097          , x_value_type_code          => l_adr_value_type_code
13098          , x_value_combination_id     => l_adr_value_combination_id
13099          , x_value_segment_code       => l_adr_value_segment_code
13100          , p_side                     => 'ALL'
13101          , p_override_seg_flag        => 'Y'
13102    );
13103 
13104    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13105 
13106       xla_ae_lines_pkg.set_segment(
13107           p_to_segment_code         => 'GL_BALANCING'
13108         , p_segment_value           => l_segment
13109         , p_from_segment_code       => l_adr_value_segment_code
13110         , p_from_combination_id     => l_adr_value_combination_id
13111         , p_value_type_code         => l_adr_value_type_code
13112         , p_transaction_coa_id      => l_adr_transaction_coa_id
13113         , p_accounting_coa_id       => l_adr_accounting_coa_id
13114         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13115         , p_flex_value_set_id       => l_adr_flex_value_set_id
13116         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
13117         , p_adr_type_code           => 'S'
13118         , p_component_type          => l_component_type
13119         , p_component_code          => l_component_code
13120         , p_component_type_code     => l_component_type_code
13121         , p_component_appl_id       => l_component_appl_id
13122         , p_amb_context_code        => l_amb_context_code
13123         , p_entity_code             => 'AP_INVOICES'
13124         , p_event_class_code        => 'PREPAYMENTS'
13125         , p_side                    => 'ALL'
13126         );
13127 
13128   END IF;
13129 
13130    --
13131    --
13132    END IF;
13133    --
13134    -- Bug 4922099
13135    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
13136           (NVL(l_enc_upg_option, 'N') = 'O')
13137         ) AND
13138         (l_bflow_method_code = 'PRIOR_ENTRY')
13139       )
13140    THEN
13141       IF
13142       --
13143       1 = 2
13144       --
13145       THEN
13146       xla_accounting_err_pkg.build_message
13147                                     (p_appli_s_name            => 'XLA'
13148                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13149                                     ,p_token_1                 => 'LINE_NUMBER'
13150                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
13151                                     ,p_token_2                 => 'LINE_TYPE_NAME'
13152                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
13153                                                                              l_component_type
13154                                                                             ,l_component_code
13155                                                                             ,l_component_type_code
13156                                                                             ,l_component_appl_id
13157                                                                             ,l_amb_context_code
13158                                                                             ,l_entity_code
13159                                                                             ,l_event_class_code
13160                                                                            )
13161                                     ,p_token_3                 => 'OWNER'
13162                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
13163                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
13164                                                                           ,p_lookup_code    => l_component_type_code
13165                                                                          )
13166                                     ,p_token_4                 => 'PRODUCT_NAME'
13170                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
13167                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
13168                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13169                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
13171                                     ,p_ae_header_id            =>  NULL
13172                                        );
13173 
13174         IF (C_LEVEL_ERROR>= g_log_level) THEN
13175                  trace
13176                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13177                       ,p_level    => C_LEVEL_ERROR
13178                       ,p_module   => l_log_module);
13179         END IF;
13180       END IF;
13181    END IF;
13182    --
13183    --
13184    ------------------------------------------------------------------------------------------------
13185    -- 4219869 Business Flow
13186    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
13187    -- Prior Entry.  Currently, the following code is always generated.
13188    ------------------------------------------------------------------------------------------------
13189    XLA_AE_LINES_PKG.ValidateCurrentLine;
13190 
13191    ------------------------------------------------------------------------------------
13192    -- 4219869 Business Flow
13193    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
13194    ------------------------------------------------------------------------------------
13195    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13196 
13197    ----------------------------------------------------------------------------------
13198    -- 4219869 Business Flow
13199    -- Update journal entry status -- Need to generate this within IF <condition>
13200    ----------------------------------------------------------------------------------
13201    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13202          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
13203          ,p_balance_type_code => l_balance_type_code
13204          );
13205 
13206    -------------------------------------------------------------------------------------------
13207    -- 4262811 - Generate the Accrual Reversal lines
13208    -------------------------------------------------------------------------------------------
13209    BEGIN
13210       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
13211                               (g_array_event(p_event_id).array_value_num('header_index'));
13212       IF l_acc_rev_flag IS NULL THEN
13213          l_acc_rev_flag := 'N';
13214       END IF;
13215    EXCEPTION
13216       WHEN OTHERS THEN
13217          l_acc_rev_flag := 'N';
13218    END;
13219    --
13220    IF (l_acc_rev_flag = 'Y') THEN
13221 
13222        -- 4645092  ------------------------------------------------------------------------------
13223        -- To allow MPA report to determine if it should generate report process
13224        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
13225        ------------------------------------------------------------------------------------------
13226 
13227        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
13228        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
13229    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
13230    -- call ADRs
13231    -- Bug 4922099
13232    --
13233    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13234         (NVL(l_actual_upg_option, 'N') = 'O') OR
13235         (NVL(l_enc_upg_option, 'N') = 'O')
13236       )
13237    THEN
13238    NULL;
13239    --
13240    --
13241    
13242   l_ccid := AcctDerRule_30(
13243            p_application_id           => p_application_id
13244          , p_ae_header_id             => l_ae_header_id 
13245 , p_source_15 => p_source_15
13246 , p_source_15_meaning => p_source_15_meaning
13247 , p_source_20 => p_source_20
13248 , p_source_21 => p_source_21
13249 , p_source_22 => p_source_22
13250 , p_source_22_meaning => p_source_22_meaning
13251 , p_source_23 => p_source_23
13252 , p_source_30 => p_source_30
13253 , p_source_47 => p_source_47
13254 , p_source_47_meaning => p_source_47_meaning
13255          , x_transaction_coa_id       => l_adr_transaction_coa_id
13256          , x_accounting_coa_id        => l_adr_accounting_coa_id
13257          , x_value_type_code          => l_adr_value_type_code
13258          , p_side                     => 'ALL'
13259    );
13260 
13261    xla_ae_lines_pkg.set_ccid(
13262     p_code_combination_id          => l_ccid
13263   , p_value_type_code              => l_adr_value_type_code
13264   , p_transaction_coa_id           => l_adr_transaction_coa_id
13265   , p_accounting_coa_id            => l_adr_accounting_coa_id
13266   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
13267   , p_adr_type_code                => 'S'
13268   , p_component_type               => l_component_type
13269   , p_component_code               => l_component_code
13270   , p_component_type_code          => l_component_type_code
13271   , p_component_appl_id            => l_component_appl_id
13272   , p_amb_context_code             => l_amb_context_code
13273   , p_side                         => 'ALL'
13274   );
13275 
13276 
13277    l_segment := AcctDerRule_9(
13278            p_application_id           => p_application_id
13279          , p_ae_header_id             => l_ae_header_id 
13280 , p_source_15 => p_source_15
13281 , p_source_15_meaning => p_source_15_meaning
13285          , x_transaction_coa_id       => l_adr_transaction_coa_id
13282 , p_source_20 => p_source_20
13283 , p_source_22 => p_source_22
13284 , p_source_22_meaning => p_source_22_meaning
13286          , x_accounting_coa_id        => l_adr_accounting_coa_id
13287          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13288          , x_flex_value_set_id        => l_adr_flex_value_set_id
13289          , x_value_type_code          => l_adr_value_type_code
13290          , x_value_combination_id     => l_adr_value_combination_id
13291          , x_value_segment_code       => l_adr_value_segment_code
13292          , p_side                     => 'CREDIT'
13293          , p_override_seg_flag        => 'Y'
13294    );
13295 
13296    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13297 
13298       xla_ae_lines_pkg.set_segment(
13299           p_to_segment_code         => 'GL_ACCOUNT'
13300         , p_segment_value           => l_segment
13301         , p_from_segment_code       => l_adr_value_segment_code
13302         , p_from_combination_id     => l_adr_value_combination_id
13303         , p_value_type_code         => l_adr_value_type_code
13304         , p_transaction_coa_id      => l_adr_transaction_coa_id
13305         , p_accounting_coa_id       => l_adr_accounting_coa_id
13306         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13307         , p_flex_value_set_id       => l_adr_flex_value_set_id
13308         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
13309         , p_adr_type_code           => 'S'
13310         , p_component_type          => l_component_type
13311         , p_component_code          => l_component_code
13312         , p_component_type_code     => l_component_type_code
13313         , p_component_appl_id       => l_component_appl_id
13314         , p_amb_context_code        => l_amb_context_code
13315         , p_entity_code             => 'AP_INVOICES'
13316         , p_event_class_code        => 'PREPAYMENTS'
13317         , p_side                    => 'CREDIT'
13318         );
13319 
13320   END IF;
13321 
13322    l_segment := AcctDerRule_10(
13323            p_application_id           => p_application_id
13324          , p_ae_header_id             => l_ae_header_id 
13325 , p_source_15 => p_source_15
13326 , p_source_15_meaning => p_source_15_meaning
13327 , p_source_22 => p_source_22
13328 , p_source_22_meaning => p_source_22_meaning
13329 , p_source_23 => p_source_23
13330          , x_transaction_coa_id       => l_adr_transaction_coa_id
13331          , x_accounting_coa_id        => l_adr_accounting_coa_id
13332          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13333          , x_flex_value_set_id        => l_adr_flex_value_set_id
13334          , x_value_type_code          => l_adr_value_type_code
13335          , x_value_combination_id     => l_adr_value_combination_id
13336          , x_value_segment_code       => l_adr_value_segment_code
13337          , p_side                     => 'DEBIT'
13338          , p_override_seg_flag        => 'Y'
13339    );
13340 
13341    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13342 
13343       xla_ae_lines_pkg.set_segment(
13344           p_to_segment_code         => 'GL_ACCOUNT'
13345         , p_segment_value           => l_segment
13346         , p_from_segment_code       => l_adr_value_segment_code
13347         , p_from_combination_id     => l_adr_value_combination_id
13348         , p_value_type_code         => l_adr_value_type_code
13349         , p_transaction_coa_id      => l_adr_transaction_coa_id
13350         , p_accounting_coa_id       => l_adr_accounting_coa_id
13351         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13352         , p_flex_value_set_id       => l_adr_flex_value_set_id
13353         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
13354         , p_adr_type_code           => 'S'
13355         , p_component_type          => l_component_type
13356         , p_component_code          => l_component_code
13357         , p_component_type_code     => l_component_type_code
13358         , p_component_appl_id       => l_component_appl_id
13359         , p_amb_context_code        => l_amb_context_code
13360         , p_entity_code             => 'AP_INVOICES'
13361         , p_event_class_code        => 'PREPAYMENTS'
13362         , p_side                    => 'DEBIT'
13363         );
13364 
13365   END IF;
13366 
13367    l_segment := AcctDerRule_23(
13368            p_application_id           => p_application_id
13369          , p_ae_header_id             => l_ae_header_id 
13370 , p_source_15 => p_source_15
13371 , p_source_15_meaning => p_source_15_meaning
13372 , p_source_22 => p_source_22
13373 , p_source_22_meaning => p_source_22_meaning
13374 , p_source_30 => p_source_30
13375          , x_transaction_coa_id       => l_adr_transaction_coa_id
13376          , x_accounting_coa_id        => l_adr_accounting_coa_id
13377          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
13378          , x_flex_value_set_id        => l_adr_flex_value_set_id
13379          , x_value_type_code          => l_adr_value_type_code
13380          , x_value_combination_id     => l_adr_value_combination_id
13381          , x_value_segment_code       => l_adr_value_segment_code
13382          , p_side                     => 'ALL'
13383          , p_override_seg_flag        => 'Y'
13384    );
13385 
13386    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
13387 
13388       xla_ae_lines_pkg.set_segment(
13389           p_to_segment_code         => 'GL_BALANCING'
13390         , p_segment_value           => l_segment
13394         , p_transaction_coa_id      => l_adr_transaction_coa_id
13391         , p_from_segment_code       => l_adr_value_segment_code
13392         , p_from_combination_id     => l_adr_value_combination_id
13393         , p_value_type_code         => l_adr_value_type_code
13395         , p_accounting_coa_id       => l_adr_accounting_coa_id
13396         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
13397         , p_flex_value_set_id       => l_adr_flex_value_set_id
13398         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
13399         , p_adr_type_code           => 'S'
13400         , p_component_type          => l_component_type
13401         , p_component_code          => l_component_code
13402         , p_component_type_code     => l_component_type_code
13403         , p_component_appl_id       => l_component_appl_id
13404         , p_amb_context_code        => l_amb_context_code
13405         , p_entity_code             => 'AP_INVOICES'
13406         , p_event_class_code        => 'PREPAYMENTS'
13407         , p_side                    => 'ALL'
13408         );
13409 
13410   END IF;
13411 
13412    --
13413    --
13414    END IF;
13415 
13416        --
13417        -- Update the line information that should be overwritten
13418        --
13419        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
13420                                          p_header_num   => 1);
13421        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
13422 
13423        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
13424 
13425        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
13426           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
13427        END IF;
13428 
13429       --
13430       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
13431       --
13432       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
13433           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
13434       ELSE
13435           ---------------------------------------------------------------------------------------------------
13436           -- 4262811a Switch Sign
13437           ---------------------------------------------------------------------------------------------------
13438           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
13439           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13440                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13441           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13442                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13443           -- 5132302
13444           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
13445                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13446 
13447       END IF;
13448 
13449       -- 4955764
13450       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13451       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
13452 
13453 
13454       XLA_AE_LINES_PKG.ValidateCurrentLine;
13455       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13456 
13457       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13458                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
13459                ,p_balance_type_code => l_balance_type_code);
13460 
13461    END IF;
13462 
13463    -----------------------------------------------------------------------------------------
13464    -- 4262811 Multiperiod Accounting
13465    -----------------------------------------------------------------------------------------
13466      -- No MPA option is assigned.
13467 
13468 
13469 END IF;
13470 END IF;
13471 --
13472 
13473 --
13474 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13475    trace
13476       (p_msg      => 'END of AcctLineType_54'
13477       ,p_level    => C_LEVEL_PROCEDURE
13478       ,p_module   => l_log_module);
13479 END IF;
13480 --
13481 EXCEPTION
13482   WHEN xla_exceptions_pkg.application_exception THEN
13483       RAISE;
13484   WHEN OTHERS THEN
13485        xla_exceptions_pkg.raise_message
13486            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_54');
13487 END AcctLineType_54;
13488 --
13489 
13490 ---------------------------------------
13491 --
13492 -- PRIVATE FUNCTION
13493 --         AcctLineType_55
13494 --
13495 ---------------------------------------
13496 PROCEDURE AcctLineType_55 (
13497   p_application_id        IN NUMBER
13498  ,p_event_id              IN NUMBER
13499  ,p_calculate_acctd_flag  IN VARCHAR2
13500  ,p_calculate_g_l_flag    IN VARCHAR2
13501  ,p_actual_flag           IN OUT VARCHAR2
13502  ,p_balance_type_code     OUT VARCHAR2
13503  ,p_gain_or_loss_ref      OUT VARCHAR2
13504  
13505 --Invoice Distribution Description
13506  , p_source_1            IN VARCHAR2
13507 --Automatic Offsets Value
13508  , p_source_15            IN VARCHAR2
13509  , p_source_15_meaning    IN VARCHAR2
13513  , p_source_21            IN NUMBER
13510 --Purchase Order Rate Variance Gain Account
13511  , p_source_20            IN NUMBER
13512 --Invoice Distribution Ledger Amount
13514 --Destination Type of the PO Distribution
13515  , p_source_22            IN VARCHAR2
13516  , p_source_22_meaning    IN VARCHAR2
13517 --Purchase Order Rate Variance Loss Account
13518  , p_source_23            IN NUMBER
13519 --Invoice Distribution Account
13520  , p_source_30            IN NUMBER
13521 --Invoice Distribution Type
13522  , p_source_33            IN VARCHAR2
13523  , p_source_33_meaning    IN VARCHAR2
13524 --Automatic Offsets Flag
13525  , p_source_47            IN VARCHAR2
13526  , p_source_47_meaning    IN VARCHAR2
13527 --Accounting Reversal Indicator
13528  , p_source_53            IN VARCHAR2
13529 --Distribution Link Type
13530  , p_source_55            IN VARCHAR2
13531 --Allocation to Main Distribution Identifier
13532  , p_source_57            IN NUMBER
13533 --Invoice Identifier
13534  , p_source_58            IN NUMBER
13535 --Invoice Distribution Identifier
13536  , p_source_64            IN NUMBER
13537 --Payables Encumbrance Upgrade Credit Account
13538  , p_source_65            IN NUMBER
13539 --Payables Encumbrance Upgrade Credit Amount
13540  , p_source_66            IN NUMBER
13541 --Invoice Currency Code
13542  , p_source_67            IN VARCHAR2
13543 --Payables Encumbrance Upgrade Credit Base Amount
13544  , p_source_68            IN NUMBER
13545 --Payables Encumbrance Upgrade Debit Account
13546  , p_source_69            IN NUMBER
13547 --Payables Encumbrance Upgrade Debit Amount
13548  , p_source_70            IN NUMBER
13549 --Payables Encumbrance Upgrade Debit Base Amount
13550  , p_source_71            IN NUMBER
13551 --Payables Encumbrance Upgrade Option
13552  , p_source_72            IN VARCHAR2
13553 --Deferred Accounting End Date
13554  , p_source_77            IN DATE
13555 --Deferred Accounting Option
13556  , p_source_78            IN VARCHAR2
13557 --Deferred Accounting Start Date
13558  , p_source_79            IN DATE
13559 --Override Accounted Amount Indicator
13560  , p_source_80            IN VARCHAR2
13561  , p_source_80_meaning    IN VARCHAR2
13562 --Invoice Supplier Identifier
13563  , p_source_81            IN NUMBER
13564 --Invoice Supplier Site Identifier
13565  , p_source_82            IN NUMBER
13566 --Third Party Type
13567  , p_source_83            IN VARCHAR2
13568 --Parent Reversal Identifier
13569  , p_source_84            IN NUMBER
13570 --Invoice Distribution Statistical Amount
13571  , p_source_85            IN NUMBER
13572 --Invoice Distribution Tax Line Identifier
13573  , p_source_86            IN NUMBER
13574 --Invoice Distribution Tax Distribution Identifier from Tax
13575  , p_source_87            IN NUMBER
13576 --Invoice Distribution Summary Tax Line Identifier
13577  , p_source_88            IN NUMBER
13578 --Payables Upgrade Credit Encumbrance Type Identifier
13579  , p_source_89            IN NUMBER
13580 --Payables Upgrade Debit Encumbrance Type Identifier
13581  , p_source_90            IN NUMBER
13582 --Business Flow Accounts Payable Application Identifier
13583  , p_source_91            IN NUMBER
13584 --Business Flow Invoice Distribution Type
13585  , p_source_92            IN VARCHAR2
13586 --Business Flow Invoice Entity Code
13587  , p_source_93            IN VARCHAR2
13588 --Business Flow Invoice Distribution Identifier
13589  , p_source_94            IN NUMBER
13590 --Business Flow Invoice Identifier
13591  , p_source_95            IN NUMBER
13592 --Accrue on Receipt Option
13593  , p_source_96            IN VARCHAR2
13594  , p_source_96_meaning    IN VARCHAR2
13595 )
13596 IS
13597 
13598 l_component_type              VARCHAR2(80);
13599 l_component_code              VARCHAR2(30);
13600 l_component_type_code         VARCHAR2(1);
13601 l_component_appl_id           INTEGER;
13602 l_amb_context_code            VARCHAR2(30);
13603 l_entity_code                 VARCHAR2(30);
13604 l_event_class_code            VARCHAR2(30);
13605 l_ae_header_id                NUMBER;
13606 l_event_type_code             VARCHAR2(30);
13607 l_line_definition_code        VARCHAR2(30);
13608 l_line_definition_owner_code  VARCHAR2(1);
13609 --
13610 -- adr variables
13611 l_segment                     VARCHAR2(30);
13612 l_ccid                        NUMBER;
13613 l_adr_transaction_coa_id      NUMBER;
13614 l_adr_accounting_coa_id       NUMBER;
13615 l_adr_flexfield_segment_code  VARCHAR2(30);
13616 l_adr_flex_value_set_id       NUMBER;
13617 l_adr_value_type_code         VARCHAR2(30);
13618 l_adr_value_combination_id    NUMBER;
13619 l_adr_value_segment_code      VARCHAR2(30);
13620 
13621 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
13622 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
13623 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
13624 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
13625 
13626 -- 4262811 Variables ------------------------------------------------------------------------------------------
13627 l_entered_amt_idx             NUMBER;
13628 l_accted_amt_idx              NUMBER;
13629 l_acc_rev_flag                VARCHAR2(1);
13630 l_accrual_line_num            NUMBER;
13631 l_tmp_amt                     NUMBER;
13632 l_acc_rev_natural_side_code   VARCHAR2(1);
13633 
13634 l_num_entries                 NUMBER;
13638 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
13635 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
13636 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
13637 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
13639 l_recog_line_1                NUMBER;
13640 l_recog_line_2                NUMBER;
13641 
13642 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
13643 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
13644 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
13645 
13646 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
13647 
13648 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
13649 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
13650 
13651 ---------------------------------------------------------------------------------------------------------------
13652 
13653 
13654 --
13655 -- bulk performance
13656 --
13657 l_balance_type_code           VARCHAR2(1);
13658 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
13659 l_log_module                  VARCHAR2(240);
13660 
13661 --
13662 -- Upgrade strategy
13663 --
13664 l_actual_upg_option           VARCHAR2(1);
13665 l_enc_upg_option           VARCHAR2(1);
13666 
13667 --
13668 BEGIN
13669 --
13670 IF g_log_enabled THEN
13671       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_55';
13672 END IF;
13673 --
13674 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13675 
13676       trace
13677          (p_msg      => 'BEGIN of AcctLineType_55'
13678          ,p_level    => C_LEVEL_PROCEDURE
13679          ,p_module   => l_log_module);
13680 
13681 END IF;
13682 --
13683 l_component_type             := 'AMB_JLT';
13684 l_component_code             := 'AP_ALC_TAX_EX_RATE_VAR_CM';
13685 l_component_type_code        := 'S';
13686 l_component_appl_id          :=  200;
13687 l_amb_context_code           := 'DEFAULT';
13688 l_entity_code                := 'AP_INVOICES';
13689 l_event_class_code           := 'CREDIT MEMOS';
13690 l_event_type_code            := 'CREDIT MEMOS_ALL';
13691 l_line_definition_owner_code := 'S';
13692 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
13693 --
13694 l_balance_type_code          := 'A';
13695 l_segment                     := NULL;
13696 l_ccid                        := NULL;
13697 l_adr_transaction_coa_id      := NULL;
13698 l_adr_accounting_coa_id       := NULL;
13699 l_adr_flexfield_segment_code  := NULL;
13700 l_adr_flex_value_set_id       := NULL;
13701 l_adr_value_type_code         := NULL;
13702 l_adr_value_combination_id    := NULL;
13703 l_adr_value_segment_code      := NULL;
13704 
13705 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
13706 l_bflow_class_code           := '';    -- 4219869 Business Flow
13707 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
13708 l_budgetary_control_flag     := 'N';
13709 
13710 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
13711 l_bflow_applied_to_amt       := NULL; -- 5132302
13712 l_entered_amt_idx            := NULL;          -- 4262811
13713 l_accted_amt_idx             := NULL;          -- 4262811
13714 l_acc_rev_flag               := NULL;          -- 4262811
13715 l_accrual_line_num           := NULL;          -- 4262811
13716 l_tmp_amt                    := NULL;          -- 4262811
13717 --
13718 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
13719             (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
13720                return;
13721   END IF;
13722   
13723 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
13724     l_balance_type_code <> 'B' THEN
13725 IF NVL(p_source_33,'
13726 ') =  'NONREC_TAX' AND 
13727 NVL(p_source_96,'
13728 ') =  'Y'
13729  THEN 
13730 
13731    --
13732    XLA_AE_LINES_PKG.SetNewLine;
13733 
13734    p_balance_type_code          := l_balance_type_code;
13735    -- set the flag so later we will know whether the gain loss line needs to be created
13736    
13737    IF(l_balance_type_code = 'A' ) THEN
13738      p_actual_flag :='G';
13739    END IF;
13740 
13741    --
13742    -- bulk performance
13743    --
13744    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
13745                                       p_header_num   => 0); -- 4262811
13746    --
13747    -- set accounting line options
13748    --
13749    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
13750            p_natural_side_code          => 'G'
13751          , p_gain_or_loss_flag          => 'N'
13752          , p_gl_transfer_mode_code      => 'S'
13753          , p_acct_entry_type_code       => 'A'
13754          , p_switch_side_flag           => ''
13755          , p_merge_duplicate_code       => 'A'
13756          );
13757    --
13758    l_acc_rev_natural_side_code := 'C';  -- 4262811
13759    -- 
13760    --
13761    -- set accounting line type info
13762    --
13763    xla_ae_lines_pkg.SetAcctLineType
13764       (p_component_type             => l_component_type
13768       ,p_accounting_line_code       => l_component_code
13765       ,p_event_type_code            => l_event_type_code
13766       ,p_line_definition_owner_code => l_line_definition_owner_code
13767       ,p_line_definition_code       => l_line_definition_code
13769       ,p_accounting_line_type_code  => l_component_type_code
13770       ,p_accounting_line_appl_id    => l_component_appl_id
13771       ,p_amb_context_code           => l_amb_context_code
13772       ,p_entity_code                => l_entity_code
13773       ,p_event_class_code           => l_event_class_code);
13774    --
13775    -- set accounting class
13776    --
13777    xla_ae_lines_pkg.SetAcctClass(
13778            p_accounting_class_code  => 'TERV'
13779          , p_ae_header_id           => l_ae_header_id
13780          );
13781 
13782    --
13783    -- set rounding class
13784    --
13785    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
13786                       'TERV';
13787 
13788    --
13789    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
13790    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
13791    --
13792    -- bulk performance
13793    --
13794    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
13795 
13796    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
13797       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
13798 
13799    -- 4955764
13800    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13801       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
13802 
13803    -- 4458381 Public Sector Enh
13804    
13805    --
13806    -- set accounting attributes for the line type
13807    --
13808    l_entered_amt_idx := NULL;
13809    l_accted_amt_idx  := 23;
13810    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
13811    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
13812    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
13813    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
13814    l_rec_acct_attrs.array_num_value(2)  := 
13815 xla_ae_sources_pkg.GetSystemSourceNum(
13816    p_source_code           => 'XLA_EVENT_APPL_ID'
13817  , p_source_type_code      => 'Y'
13818  , p_source_application_id =>  602
13819 );
13820    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
13821    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
13822    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
13823    l_rec_acct_attrs.array_char_value(4)  := 
13824 xla_ae_sources_pkg.GetSystemSourceChar(
13825    p_source_code           => 'XLA_ENTITY_CODE'
13826  , p_source_type_code      => 'Y'
13827  , p_source_application_id =>  602
13828 );
13829    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
13830    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
13831    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
13832    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
13833    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
13834    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
13835    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
13836    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
13837    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
13838    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
13839    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
13840    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
13841    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
13842    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
13843    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
13844    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
13845    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
13846    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
13847    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
13848    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
13849    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
13850    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
13851    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
13852    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
13853    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
13854    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
13855    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
13856    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
13857    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
13858    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
13859    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
13860    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
13861    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
13862    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
13863    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
13864    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
13865    l_rec_acct_attrs.array_acct_attr_code(23) := 'LEDGER_AMOUNT';
13866    l_rec_acct_attrs.array_num_value(23)  := p_source_21;
13870    l_rec_acct_attrs.array_char_value(25)  := p_source_78;
13867    l_rec_acct_attrs.array_acct_attr_code(24) := 'MULTIPERIOD_END_DATE';
13868    l_rec_acct_attrs.array_date_value(24)  := p_source_77;
13869    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_OPTION';
13871    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_START_DATE';
13872    l_rec_acct_attrs.array_date_value(26)  := p_source_79;
13873    l_rec_acct_attrs.array_acct_attr_code(27) := 'OVERRIDE_ACCTD_AMT_FLAG';
13874    l_rec_acct_attrs.array_char_value(27)  := p_source_80;
13875    l_rec_acct_attrs.array_acct_attr_code(28) := 'PARTY_ID';
13876    l_rec_acct_attrs.array_num_value(28)  := p_source_81;
13877    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_SITE_ID';
13878    l_rec_acct_attrs.array_num_value(29)  := p_source_82;
13879    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
13880    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
13881    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
13882    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_84);
13883    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
13884    l_rec_acct_attrs.array_char_value(32)  := p_source_55;
13885    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
13886    l_rec_acct_attrs.array_num_value(33)  := p_source_85;
13887    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
13888    l_rec_acct_attrs.array_num_value(34)  := p_source_86;
13889    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
13890    l_rec_acct_attrs.array_num_value(35)  := p_source_87;
13891    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
13892    l_rec_acct_attrs.array_num_value(36)  := p_source_88;
13893    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
13894    l_rec_acct_attrs.array_num_value(37)  := p_source_89;
13895    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
13896    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
13897 
13898    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
13899    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
13900 
13901    ---------------------------------------------------------------------------------------------------------------
13902    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
13903    ---------------------------------------------------------------------------------------------------------------
13904    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
13905 
13906    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13907    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13908 
13909    IF xla_accounting_cache_pkg.GetValueChar
13910          (p_source_code         => 'LEDGER_CATEGORY_CODE'
13911          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
13912    AND l_bflow_method_code = 'PRIOR_ENTRY'
13913 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
13914    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
13915          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
13916        )
13917    THEN
13918          xla_ae_lines_pkg.BflowUpgEntry
13919            (p_business_method_code    => l_bflow_method_code
13920            ,p_business_class_code     => l_bflow_class_code
13921            ,p_balance_type            => l_balance_type_code);
13922    ELSE
13923       NULL;
13924 -- No business flow processing for business flow method of NONE.
13925    END IF;
13926 
13927    --
13928    -- call analytical criteria
13929    --
13930    
13931    --
13932    -- call description
13933    --
13934    
13935 xla_ae_lines_pkg.SetLineDescription(
13936    p_ae_header_id => l_ae_header_id
13937   ,p_description  => Description_1 (
13938      p_application_id         => p_application_id
13939    , p_ae_header_id           => l_ae_header_id 
13940 , p_source_1 => p_source_1
13941    )
13942 );
13943 
13944 
13945    --
13946    -- call ADRs
13947    -- Bug 4922099
13948    --
13949    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13950         (NVL(l_actual_upg_option, 'N') = 'O') OR
13951         (NVL(l_enc_upg_option, 'N') = 'O')
13952       )
13953    THEN
13954    NULL;
13955    --
13956    --
13957    
13958   l_ccid := AcctDerRule_30(
13959            p_application_id           => p_application_id
13960          , p_ae_header_id             => l_ae_header_id 
13961 , p_source_15 => p_source_15
13962 , p_source_15_meaning => p_source_15_meaning
13963 , p_source_20 => p_source_20
13964 , p_source_21 => p_source_21
13965 , p_source_22 => p_source_22
13966 , p_source_22_meaning => p_source_22_meaning
13967 , p_source_23 => p_source_23
13968 , p_source_30 => p_source_30
13969 , p_source_47 => p_source_47
13970 , p_source_47_meaning => p_source_47_meaning
13971          , x_transaction_coa_id       => l_adr_transaction_coa_id
13972          , x_accounting_coa_id        => l_adr_accounting_coa_id
13973          , x_value_type_code          => l_adr_value_type_code
13974          , p_side                     => 'ALL'
13975    );
13976 
13977    xla_ae_lines_pkg.set_ccid(
13978     p_code_combination_id          => l_ccid
13979   , p_value_type_code              => l_adr_value_type_code
13983   , p_adr_type_code                => 'S'
13980   , p_transaction_coa_id           => l_adr_transaction_coa_id
13981   , p_accounting_coa_id            => l_adr_accounting_coa_id
13982   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
13984   , p_component_type               => l_component_type
13985   , p_component_code               => l_component_code
13986   , p_component_type_code          => l_component_type_code
13987   , p_component_appl_id            => l_component_appl_id
13988   , p_amb_context_code             => l_amb_context_code
13989   , p_side                         => 'ALL'
13990   );
13991 
13992 
13993    l_segment := AcctDerRule_9(
13994            p_application_id           => p_application_id
13995          , p_ae_header_id             => l_ae_header_id 
13996 , p_source_15 => p_source_15
13997 , p_source_15_meaning => p_source_15_meaning
13998 , p_source_20 => p_source_20
13999 , p_source_22 => p_source_22
14000 , p_source_22_meaning => p_source_22_meaning
14001          , x_transaction_coa_id       => l_adr_transaction_coa_id
14002          , x_accounting_coa_id        => l_adr_accounting_coa_id
14003          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14004          , x_flex_value_set_id        => l_adr_flex_value_set_id
14005          , x_value_type_code          => l_adr_value_type_code
14006          , x_value_combination_id     => l_adr_value_combination_id
14007          , x_value_segment_code       => l_adr_value_segment_code
14008          , p_side                     => 'DEBIT'
14009          , p_override_seg_flag        => 'Y'
14010    );
14011 
14012    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14013 
14014       xla_ae_lines_pkg.set_segment(
14015           p_to_segment_code         => 'GL_ACCOUNT'
14016         , p_segment_value           => l_segment
14017         , p_from_segment_code       => l_adr_value_segment_code
14018         , p_from_combination_id     => l_adr_value_combination_id
14019         , p_value_type_code         => l_adr_value_type_code
14020         , p_transaction_coa_id      => l_adr_transaction_coa_id
14021         , p_accounting_coa_id       => l_adr_accounting_coa_id
14022         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14023         , p_flex_value_set_id       => l_adr_flex_value_set_id
14024         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
14025         , p_adr_type_code           => 'S'
14026         , p_component_type          => l_component_type
14027         , p_component_code          => l_component_code
14028         , p_component_type_code     => l_component_type_code
14029         , p_component_appl_id       => l_component_appl_id
14030         , p_amb_context_code        => l_amb_context_code
14031         , p_entity_code             => 'AP_INVOICES'
14032         , p_event_class_code        => 'CREDIT MEMOS'
14033         , p_side                    => 'DEBIT'
14034         );
14035 
14036   END IF;
14037 
14038    l_segment := AcctDerRule_10(
14039            p_application_id           => p_application_id
14040          , p_ae_header_id             => l_ae_header_id 
14041 , p_source_15 => p_source_15
14042 , p_source_15_meaning => p_source_15_meaning
14043 , p_source_22 => p_source_22
14044 , p_source_22_meaning => p_source_22_meaning
14045 , p_source_23 => p_source_23
14046          , x_transaction_coa_id       => l_adr_transaction_coa_id
14047          , x_accounting_coa_id        => l_adr_accounting_coa_id
14048          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14049          , x_flex_value_set_id        => l_adr_flex_value_set_id
14050          , x_value_type_code          => l_adr_value_type_code
14051          , x_value_combination_id     => l_adr_value_combination_id
14052          , x_value_segment_code       => l_adr_value_segment_code
14053          , p_side                     => 'CREDIT'
14054          , p_override_seg_flag        => 'Y'
14055    );
14056 
14057    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14058 
14059       xla_ae_lines_pkg.set_segment(
14060           p_to_segment_code         => 'GL_ACCOUNT'
14061         , p_segment_value           => l_segment
14062         , p_from_segment_code       => l_adr_value_segment_code
14063         , p_from_combination_id     => l_adr_value_combination_id
14064         , p_value_type_code         => l_adr_value_type_code
14065         , p_transaction_coa_id      => l_adr_transaction_coa_id
14066         , p_accounting_coa_id       => l_adr_accounting_coa_id
14067         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14068         , p_flex_value_set_id       => l_adr_flex_value_set_id
14069         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
14070         , p_adr_type_code           => 'S'
14071         , p_component_type          => l_component_type
14072         , p_component_code          => l_component_code
14073         , p_component_type_code     => l_component_type_code
14074         , p_component_appl_id       => l_component_appl_id
14075         , p_amb_context_code        => l_amb_context_code
14076         , p_entity_code             => 'AP_INVOICES'
14077         , p_event_class_code        => 'CREDIT MEMOS'
14078         , p_side                    => 'CREDIT'
14079         );
14080 
14081   END IF;
14082 
14083    l_segment := AcctDerRule_23(
14084            p_application_id           => p_application_id
14085          , p_ae_header_id             => l_ae_header_id 
14089 , p_source_22_meaning => p_source_22_meaning
14086 , p_source_15 => p_source_15
14087 , p_source_15_meaning => p_source_15_meaning
14088 , p_source_22 => p_source_22
14090 , p_source_30 => p_source_30
14091          , x_transaction_coa_id       => l_adr_transaction_coa_id
14092          , x_accounting_coa_id        => l_adr_accounting_coa_id
14093          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14094          , x_flex_value_set_id        => l_adr_flex_value_set_id
14095          , x_value_type_code          => l_adr_value_type_code
14096          , x_value_combination_id     => l_adr_value_combination_id
14097          , x_value_segment_code       => l_adr_value_segment_code
14098          , p_side                     => 'ALL'
14099          , p_override_seg_flag        => 'Y'
14100    );
14101 
14102    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14103 
14104       xla_ae_lines_pkg.set_segment(
14105           p_to_segment_code         => 'GL_BALANCING'
14106         , p_segment_value           => l_segment
14107         , p_from_segment_code       => l_adr_value_segment_code
14108         , p_from_combination_id     => l_adr_value_combination_id
14109         , p_value_type_code         => l_adr_value_type_code
14110         , p_transaction_coa_id      => l_adr_transaction_coa_id
14111         , p_accounting_coa_id       => l_adr_accounting_coa_id
14112         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14113         , p_flex_value_set_id       => l_adr_flex_value_set_id
14114         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
14115         , p_adr_type_code           => 'S'
14116         , p_component_type          => l_component_type
14117         , p_component_code          => l_component_code
14118         , p_component_type_code     => l_component_type_code
14119         , p_component_appl_id       => l_component_appl_id
14120         , p_amb_context_code        => l_amb_context_code
14121         , p_entity_code             => 'AP_INVOICES'
14122         , p_event_class_code        => 'CREDIT MEMOS'
14123         , p_side                    => 'ALL'
14124         );
14125 
14126   END IF;
14127 
14128    --
14129    --
14130    END IF;
14131    --
14132    -- Bug 4922099
14133    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
14134           (NVL(l_enc_upg_option, 'N') = 'O')
14135         ) AND
14136         (l_bflow_method_code = 'PRIOR_ENTRY')
14137       )
14138    THEN
14139       IF
14140       --
14141       1 = 2
14142       --
14143       THEN
14144       xla_accounting_err_pkg.build_message
14145                                     (p_appli_s_name            => 'XLA'
14146                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14147                                     ,p_token_1                 => 'LINE_NUMBER'
14148                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
14149                                     ,p_token_2                 => 'LINE_TYPE_NAME'
14150                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
14151                                                                              l_component_type
14152                                                                             ,l_component_code
14153                                                                             ,l_component_type_code
14154                                                                             ,l_component_appl_id
14155                                                                             ,l_amb_context_code
14156                                                                             ,l_entity_code
14157                                                                             ,l_event_class_code
14158                                                                            )
14159                                     ,p_token_3                 => 'OWNER'
14160                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
14161                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
14162                                                                           ,p_lookup_code    => l_component_type_code
14163                                                                          )
14164                                     ,p_token_4                 => 'PRODUCT_NAME'
14165                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
14166                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
14167                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
14168                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
14169                                     ,p_ae_header_id            =>  NULL
14170                                        );
14171 
14172         IF (C_LEVEL_ERROR>= g_log_level) THEN
14173                  trace
14174                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14175                       ,p_level    => C_LEVEL_ERROR
14176                       ,p_module   => l_log_module);
14177         END IF;
14178       END IF;
14179    END IF;
14180    --
14181    --
14182    ------------------------------------------------------------------------------------------------
14183    -- 4219869 Business Flow
14187    XLA_AE_LINES_PKG.ValidateCurrentLine;
14184    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
14185    -- Prior Entry.  Currently, the following code is always generated.
14186    ------------------------------------------------------------------------------------------------
14188 
14189    ------------------------------------------------------------------------------------
14190    -- 4219869 Business Flow
14191    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
14192    ------------------------------------------------------------------------------------
14193    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14194 
14195    ----------------------------------------------------------------------------------
14196    -- 4219869 Business Flow
14197    -- Update journal entry status -- Need to generate this within IF <condition>
14198    ----------------------------------------------------------------------------------
14199    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14200          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
14201          ,p_balance_type_code => l_balance_type_code
14202          );
14203 
14204    -------------------------------------------------------------------------------------------
14205    -- 4262811 - Generate the Accrual Reversal lines
14206    -------------------------------------------------------------------------------------------
14207    BEGIN
14208       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
14209                               (g_array_event(p_event_id).array_value_num('header_index'));
14210       IF l_acc_rev_flag IS NULL THEN
14211          l_acc_rev_flag := 'N';
14212       END IF;
14213    EXCEPTION
14214       WHEN OTHERS THEN
14215          l_acc_rev_flag := 'N';
14216    END;
14217    --
14218    IF (l_acc_rev_flag = 'Y') THEN
14219 
14220        -- 4645092  ------------------------------------------------------------------------------
14221        -- To allow MPA report to determine if it should generate report process
14222        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
14223        ------------------------------------------------------------------------------------------
14224 
14225        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
14226        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
14227    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
14228    -- call ADRs
14229    -- Bug 4922099
14230    --
14231    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14232         (NVL(l_actual_upg_option, 'N') = 'O') OR
14233         (NVL(l_enc_upg_option, 'N') = 'O')
14234       )
14235    THEN
14236    NULL;
14237    --
14238    --
14239    
14240   l_ccid := AcctDerRule_30(
14241            p_application_id           => p_application_id
14242          , p_ae_header_id             => l_ae_header_id 
14243 , p_source_15 => p_source_15
14244 , p_source_15_meaning => p_source_15_meaning
14245 , p_source_20 => p_source_20
14246 , p_source_21 => p_source_21
14247 , p_source_22 => p_source_22
14248 , p_source_22_meaning => p_source_22_meaning
14249 , p_source_23 => p_source_23
14250 , p_source_30 => p_source_30
14251 , p_source_47 => p_source_47
14252 , p_source_47_meaning => p_source_47_meaning
14253          , x_transaction_coa_id       => l_adr_transaction_coa_id
14254          , x_accounting_coa_id        => l_adr_accounting_coa_id
14255          , x_value_type_code          => l_adr_value_type_code
14256          , p_side                     => 'ALL'
14257    );
14258 
14259    xla_ae_lines_pkg.set_ccid(
14260     p_code_combination_id          => l_ccid
14261   , p_value_type_code              => l_adr_value_type_code
14262   , p_transaction_coa_id           => l_adr_transaction_coa_id
14263   , p_accounting_coa_id            => l_adr_accounting_coa_id
14264   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
14265   , p_adr_type_code                => 'S'
14266   , p_component_type               => l_component_type
14267   , p_component_code               => l_component_code
14268   , p_component_type_code          => l_component_type_code
14269   , p_component_appl_id            => l_component_appl_id
14270   , p_amb_context_code             => l_amb_context_code
14271   , p_side                         => 'ALL'
14272   );
14273 
14274 
14275    l_segment := AcctDerRule_9(
14276            p_application_id           => p_application_id
14277          , p_ae_header_id             => l_ae_header_id 
14278 , p_source_15 => p_source_15
14279 , p_source_15_meaning => p_source_15_meaning
14280 , p_source_20 => p_source_20
14281 , p_source_22 => p_source_22
14282 , p_source_22_meaning => p_source_22_meaning
14283          , x_transaction_coa_id       => l_adr_transaction_coa_id
14284          , x_accounting_coa_id        => l_adr_accounting_coa_id
14285          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14286          , x_flex_value_set_id        => l_adr_flex_value_set_id
14287          , x_value_type_code          => l_adr_value_type_code
14288          , x_value_combination_id     => l_adr_value_combination_id
14289          , x_value_segment_code       => l_adr_value_segment_code
14290          , p_side                     => 'DEBIT'
14291          , p_override_seg_flag        => 'Y'
14292    );
14293 
14294    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14295 
14299         , p_from_segment_code       => l_adr_value_segment_code
14296       xla_ae_lines_pkg.set_segment(
14297           p_to_segment_code         => 'GL_ACCOUNT'
14298         , p_segment_value           => l_segment
14300         , p_from_combination_id     => l_adr_value_combination_id
14301         , p_value_type_code         => l_adr_value_type_code
14302         , p_transaction_coa_id      => l_adr_transaction_coa_id
14303         , p_accounting_coa_id       => l_adr_accounting_coa_id
14304         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14305         , p_flex_value_set_id       => l_adr_flex_value_set_id
14306         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
14307         , p_adr_type_code           => 'S'
14308         , p_component_type          => l_component_type
14309         , p_component_code          => l_component_code
14310         , p_component_type_code     => l_component_type_code
14311         , p_component_appl_id       => l_component_appl_id
14312         , p_amb_context_code        => l_amb_context_code
14313         , p_entity_code             => 'AP_INVOICES'
14314         , p_event_class_code        => 'CREDIT MEMOS'
14315         , p_side                    => 'DEBIT'
14316         );
14317 
14318   END IF;
14319 
14320    l_segment := AcctDerRule_10(
14321            p_application_id           => p_application_id
14322          , p_ae_header_id             => l_ae_header_id 
14323 , p_source_15 => p_source_15
14324 , p_source_15_meaning => p_source_15_meaning
14325 , p_source_22 => p_source_22
14326 , p_source_22_meaning => p_source_22_meaning
14327 , p_source_23 => p_source_23
14328          , x_transaction_coa_id       => l_adr_transaction_coa_id
14329          , x_accounting_coa_id        => l_adr_accounting_coa_id
14330          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14331          , x_flex_value_set_id        => l_adr_flex_value_set_id
14332          , x_value_type_code          => l_adr_value_type_code
14333          , x_value_combination_id     => l_adr_value_combination_id
14334          , x_value_segment_code       => l_adr_value_segment_code
14335          , p_side                     => 'CREDIT'
14336          , p_override_seg_flag        => 'Y'
14337    );
14338 
14339    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14340 
14341       xla_ae_lines_pkg.set_segment(
14342           p_to_segment_code         => 'GL_ACCOUNT'
14343         , p_segment_value           => l_segment
14344         , p_from_segment_code       => l_adr_value_segment_code
14345         , p_from_combination_id     => l_adr_value_combination_id
14346         , p_value_type_code         => l_adr_value_type_code
14347         , p_transaction_coa_id      => l_adr_transaction_coa_id
14348         , p_accounting_coa_id       => l_adr_accounting_coa_id
14349         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14350         , p_flex_value_set_id       => l_adr_flex_value_set_id
14351         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
14352         , p_adr_type_code           => 'S'
14353         , p_component_type          => l_component_type
14354         , p_component_code          => l_component_code
14355         , p_component_type_code     => l_component_type_code
14356         , p_component_appl_id       => l_component_appl_id
14357         , p_amb_context_code        => l_amb_context_code
14358         , p_entity_code             => 'AP_INVOICES'
14359         , p_event_class_code        => 'CREDIT MEMOS'
14360         , p_side                    => 'CREDIT'
14361         );
14362 
14363   END IF;
14364 
14365    l_segment := AcctDerRule_23(
14366            p_application_id           => p_application_id
14367          , p_ae_header_id             => l_ae_header_id 
14368 , p_source_15 => p_source_15
14369 , p_source_15_meaning => p_source_15_meaning
14370 , p_source_22 => p_source_22
14371 , p_source_22_meaning => p_source_22_meaning
14372 , p_source_30 => p_source_30
14373          , x_transaction_coa_id       => l_adr_transaction_coa_id
14374          , x_accounting_coa_id        => l_adr_accounting_coa_id
14375          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14376          , x_flex_value_set_id        => l_adr_flex_value_set_id
14377          , x_value_type_code          => l_adr_value_type_code
14378          , x_value_combination_id     => l_adr_value_combination_id
14379          , x_value_segment_code       => l_adr_value_segment_code
14380          , p_side                     => 'ALL'
14381          , p_override_seg_flag        => 'Y'
14382    );
14383 
14384    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
14385 
14386       xla_ae_lines_pkg.set_segment(
14387           p_to_segment_code         => 'GL_BALANCING'
14388         , p_segment_value           => l_segment
14389         , p_from_segment_code       => l_adr_value_segment_code
14390         , p_from_combination_id     => l_adr_value_combination_id
14391         , p_value_type_code         => l_adr_value_type_code
14392         , p_transaction_coa_id      => l_adr_transaction_coa_id
14393         , p_accounting_coa_id       => l_adr_accounting_coa_id
14394         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
14395         , p_flex_value_set_id       => l_adr_flex_value_set_id
14396         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
14397         , p_adr_type_code           => 'S'
14398         , p_component_type          => l_component_type
14399         , p_component_code          => l_component_code
14403         , p_entity_code             => 'AP_INVOICES'
14400         , p_component_type_code     => l_component_type_code
14401         , p_component_appl_id       => l_component_appl_id
14402         , p_amb_context_code        => l_amb_context_code
14404         , p_event_class_code        => 'CREDIT MEMOS'
14405         , p_side                    => 'ALL'
14406         );
14407 
14408   END IF;
14409 
14410    --
14411    --
14412    END IF;
14413 
14414        --
14415        -- Update the line information that should be overwritten
14416        --
14417        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
14418                                          p_header_num   => 1);
14419        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
14420 
14421        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
14422 
14423        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
14424           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
14425        END IF;
14426 
14427       --
14428       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
14429       --
14430       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
14431           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
14432       ELSE
14433           ---------------------------------------------------------------------------------------------------
14434           -- 4262811a Switch Sign
14435           ---------------------------------------------------------------------------------------------------
14436           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
14437           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14438                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14439           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14440                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14441           -- 5132302
14442           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
14443                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14444 
14445       END IF;
14446 
14447       -- 4955764
14448       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14449       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
14450 
14451 
14452       XLA_AE_LINES_PKG.ValidateCurrentLine;
14453       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14454 
14455       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14456                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
14457                ,p_balance_type_code => l_balance_type_code);
14458 
14459    END IF;
14460 
14461    -----------------------------------------------------------------------------------------
14462    -- 4262811 Multiperiod Accounting
14463    -----------------------------------------------------------------------------------------
14464      -- No MPA option is assigned.
14465 
14466 
14467 END IF;
14468 END IF;
14469 --
14470 
14471 --
14472 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14473    trace
14474       (p_msg      => 'END of AcctLineType_55'
14475       ,p_level    => C_LEVEL_PROCEDURE
14476       ,p_module   => l_log_module);
14477 END IF;
14478 --
14479 EXCEPTION
14480   WHEN xla_exceptions_pkg.application_exception THEN
14481       RAISE;
14482   WHEN OTHERS THEN
14483        xla_exceptions_pkg.raise_message
14484            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_55');
14485 END AcctLineType_55;
14486 --
14487 
14488 ---------------------------------------
14489 --
14490 -- PRIVATE FUNCTION
14491 --         AcctLineType_56
14492 --
14493 ---------------------------------------
14494 PROCEDURE AcctLineType_56 (
14495   p_application_id        IN NUMBER
14496  ,p_event_id              IN NUMBER
14497  ,p_calculate_acctd_flag  IN VARCHAR2
14498  ,p_calculate_g_l_flag    IN VARCHAR2
14499  ,p_actual_flag           IN OUT VARCHAR2
14500  ,p_balance_type_code     OUT VARCHAR2
14501  ,p_gain_or_loss_ref      OUT VARCHAR2
14502  
14503 --Invoice Distribution Description
14504  , p_source_1            IN VARCHAR2
14505 --Automatic Offsets Value
14506  , p_source_15            IN VARCHAR2
14507  , p_source_15_meaning    IN VARCHAR2
14508 --Purchase Order Rate Variance Gain Account
14509  , p_source_20            IN NUMBER
14510 --Invoice Distribution Ledger Amount
14511  , p_source_21            IN NUMBER
14512 --Destination Type of the PO Distribution
14513  , p_source_22            IN VARCHAR2
14514  , p_source_22_meaning    IN VARCHAR2
14515 --Purchase Order Rate Variance Loss Account
14516  , p_source_23            IN NUMBER
14517 --Invoice Distribution Account
14518  , p_source_30            IN NUMBER
14519 --Invoice Distribution Type
14520  , p_source_33            IN VARCHAR2
14521  , p_source_33_meaning    IN VARCHAR2
14522 --Automatic Offsets Flag
14526  , p_source_53            IN VARCHAR2
14523  , p_source_47            IN VARCHAR2
14524  , p_source_47_meaning    IN VARCHAR2
14525 --Accounting Reversal Indicator
14527 --Distribution Link Type
14528  , p_source_55            IN VARCHAR2
14529 --Allocation to Main Distribution Identifier
14530  , p_source_57            IN NUMBER
14531 --Invoice Identifier
14532  , p_source_58            IN NUMBER
14533 --Invoice Distribution Identifier
14534  , p_source_64            IN NUMBER
14535 --Payables Encumbrance Upgrade Credit Account
14536  , p_source_65            IN NUMBER
14537 --Payables Encumbrance Upgrade Credit Amount
14538  , p_source_66            IN NUMBER
14539 --Invoice Currency Code
14540  , p_source_67            IN VARCHAR2
14541 --Payables Encumbrance Upgrade Credit Base Amount
14542  , p_source_68            IN NUMBER
14543 --Payables Encumbrance Upgrade Debit Account
14544  , p_source_69            IN NUMBER
14545 --Payables Encumbrance Upgrade Debit Amount
14546  , p_source_70            IN NUMBER
14547 --Payables Encumbrance Upgrade Debit Base Amount
14548  , p_source_71            IN NUMBER
14549 --Payables Encumbrance Upgrade Option
14550  , p_source_72            IN VARCHAR2
14551 --Deferred Accounting End Date
14552  , p_source_77            IN DATE
14553 --Deferred Accounting Option
14554  , p_source_78            IN VARCHAR2
14555 --Deferred Accounting Start Date
14556  , p_source_79            IN DATE
14557 --Override Accounted Amount Indicator
14558  , p_source_80            IN VARCHAR2
14559  , p_source_80_meaning    IN VARCHAR2
14560 --Invoice Supplier Identifier
14561  , p_source_81            IN NUMBER
14562 --Invoice Supplier Site Identifier
14563  , p_source_82            IN NUMBER
14564 --Third Party Type
14565  , p_source_83            IN VARCHAR2
14566 --Parent Reversal Identifier
14567  , p_source_84            IN NUMBER
14568 --Invoice Distribution Tax Line Identifier
14569  , p_source_86            IN NUMBER
14570 --Invoice Distribution Tax Distribution Identifier from Tax
14571  , p_source_87            IN NUMBER
14572 --Invoice Distribution Summary Tax Line Identifier
14573  , p_source_88            IN NUMBER
14574 --Payables Upgrade Credit Encumbrance Type Identifier
14575  , p_source_89            IN NUMBER
14576 --Payables Upgrade Debit Encumbrance Type Identifier
14577  , p_source_90            IN NUMBER
14578 --Business Flow Accounts Payable Application Identifier
14579  , p_source_91            IN NUMBER
14580 --Business Flow Invoice Distribution Type
14581  , p_source_92            IN VARCHAR2
14582 --Business Flow Invoice Entity Code
14583  , p_source_93            IN VARCHAR2
14584 --Business Flow Invoice Distribution Identifier
14585  , p_source_94            IN NUMBER
14586 --Business Flow Invoice Identifier
14587  , p_source_95            IN NUMBER
14588 --Accrue on Receipt Option
14589  , p_source_96            IN VARCHAR2
14590  , p_source_96_meaning    IN VARCHAR2
14591 )
14592 IS
14593 
14594 l_component_type              VARCHAR2(80);
14595 l_component_code              VARCHAR2(30);
14596 l_component_type_code         VARCHAR2(1);
14597 l_component_appl_id           INTEGER;
14598 l_amb_context_code            VARCHAR2(30);
14599 l_entity_code                 VARCHAR2(30);
14600 l_event_class_code            VARCHAR2(30);
14601 l_ae_header_id                NUMBER;
14602 l_event_type_code             VARCHAR2(30);
14603 l_line_definition_code        VARCHAR2(30);
14604 l_line_definition_owner_code  VARCHAR2(1);
14605 --
14606 -- adr variables
14607 l_segment                     VARCHAR2(30);
14608 l_ccid                        NUMBER;
14609 l_adr_transaction_coa_id      NUMBER;
14610 l_adr_accounting_coa_id       NUMBER;
14611 l_adr_flexfield_segment_code  VARCHAR2(30);
14612 l_adr_flex_value_set_id       NUMBER;
14613 l_adr_value_type_code         VARCHAR2(30);
14614 l_adr_value_combination_id    NUMBER;
14615 l_adr_value_segment_code      VARCHAR2(30);
14616 
14617 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
14618 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
14619 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
14620 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
14621 
14622 -- 4262811 Variables ------------------------------------------------------------------------------------------
14623 l_entered_amt_idx             NUMBER;
14624 l_accted_amt_idx              NUMBER;
14625 l_acc_rev_flag                VARCHAR2(1);
14626 l_accrual_line_num            NUMBER;
14627 l_tmp_amt                     NUMBER;
14628 l_acc_rev_natural_side_code   VARCHAR2(1);
14629 
14630 l_num_entries                 NUMBER;
14631 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
14632 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
14633 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
14634 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
14635 l_recog_line_1                NUMBER;
14636 l_recog_line_2                NUMBER;
14637 
14638 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
14639 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
14640 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
14641 
14642 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
14643 
14647 ---------------------------------------------------------------------------------------------------------------
14644 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
14645 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
14646 
14648 
14649 
14650 --
14651 -- bulk performance
14652 --
14653 l_balance_type_code           VARCHAR2(1);
14654 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
14655 l_log_module                  VARCHAR2(240);
14656 
14657 --
14658 -- Upgrade strategy
14659 --
14660 l_actual_upg_option           VARCHAR2(1);
14661 l_enc_upg_option           VARCHAR2(1);
14662 
14663 --
14664 BEGIN
14665 --
14666 IF g_log_enabled THEN
14667       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_56';
14668 END IF;
14669 --
14670 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14671 
14672       trace
14673          (p_msg      => 'BEGIN of AcctLineType_56'
14674          ,p_level    => C_LEVEL_PROCEDURE
14675          ,p_module   => l_log_module);
14676 
14677 END IF;
14678 --
14679 l_component_type             := 'AMB_JLT';
14680 l_component_code             := 'AP_ALC_TAX_EX_RATE_VAR_DM';
14681 l_component_type_code        := 'S';
14682 l_component_appl_id          :=  200;
14683 l_amb_context_code           := 'DEFAULT';
14684 l_entity_code                := 'AP_INVOICES';
14685 l_event_class_code           := 'DEBIT MEMOS';
14686 l_event_type_code            := 'DEBIT MEMOS_ALL';
14687 l_line_definition_owner_code := 'S';
14688 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
14689 --
14690 l_balance_type_code          := 'A';
14691 l_segment                     := NULL;
14692 l_ccid                        := NULL;
14693 l_adr_transaction_coa_id      := NULL;
14694 l_adr_accounting_coa_id       := NULL;
14695 l_adr_flexfield_segment_code  := NULL;
14696 l_adr_flex_value_set_id       := NULL;
14697 l_adr_value_type_code         := NULL;
14698 l_adr_value_combination_id    := NULL;
14699 l_adr_value_segment_code      := NULL;
14700 
14701 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
14702 l_bflow_class_code           := '';    -- 4219869 Business Flow
14703 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
14704 l_budgetary_control_flag     := 'N';
14705 
14706 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
14707 l_bflow_applied_to_amt       := NULL; -- 5132302
14708 l_entered_amt_idx            := NULL;          -- 4262811
14709 l_accted_amt_idx             := NULL;          -- 4262811
14710 l_acc_rev_flag               := NULL;          -- 4262811
14711 l_accrual_line_num           := NULL;          -- 4262811
14712 l_tmp_amt                    := NULL;          -- 4262811
14713 --
14714 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
14715             (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
14716                return;
14717   END IF;
14718   
14719 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
14720     l_balance_type_code <> 'B' THEN
14721 IF NVL(p_source_33,'
14722 ') =  'NONREC_TAX' AND 
14723 NVL(p_source_96,'
14724 ') =  'Y'
14725  THEN 
14726 
14727    --
14728    XLA_AE_LINES_PKG.SetNewLine;
14729 
14730    p_balance_type_code          := l_balance_type_code;
14731    -- set the flag so later we will know whether the gain loss line needs to be created
14732    
14733    IF(l_balance_type_code = 'A' ) THEN
14734      p_actual_flag :='G';
14735    END IF;
14736 
14737    --
14738    -- bulk performance
14739    --
14740    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
14741                                       p_header_num   => 0); -- 4262811
14742    --
14743    -- set accounting line options
14744    --
14745    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
14746            p_natural_side_code          => 'G'
14747          , p_gain_or_loss_flag          => 'N'
14748          , p_gl_transfer_mode_code      => 'S'
14749          , p_acct_entry_type_code       => 'A'
14750          , p_switch_side_flag           => ''
14751          , p_merge_duplicate_code       => 'A'
14752          );
14753    --
14754    l_acc_rev_natural_side_code := 'C';  -- 4262811
14755    -- 
14756    --
14757    -- set accounting line type info
14758    --
14759    xla_ae_lines_pkg.SetAcctLineType
14760       (p_component_type             => l_component_type
14761       ,p_event_type_code            => l_event_type_code
14762       ,p_line_definition_owner_code => l_line_definition_owner_code
14763       ,p_line_definition_code       => l_line_definition_code
14764       ,p_accounting_line_code       => l_component_code
14765       ,p_accounting_line_type_code  => l_component_type_code
14766       ,p_accounting_line_appl_id    => l_component_appl_id
14767       ,p_amb_context_code           => l_amb_context_code
14768       ,p_entity_code                => l_entity_code
14769       ,p_event_class_code           => l_event_class_code);
14770    --
14771    -- set accounting class
14772    --
14773    xla_ae_lines_pkg.SetAcctClass(
14774            p_accounting_class_code  => 'TERV'
14775          , p_ae_header_id           => l_ae_header_id
14776          );
14780    --
14777 
14778    --
14779    -- set rounding class
14781    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
14782                       'TERV';
14783 
14784    --
14785    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
14786    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
14787    --
14788    -- bulk performance
14789    --
14790    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
14791 
14792    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
14793       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
14794 
14795    -- 4955764
14796    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14797       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
14798 
14799    -- 4458381 Public Sector Enh
14800    
14801    --
14802    -- set accounting attributes for the line type
14803    --
14804    l_entered_amt_idx := NULL;
14805    l_accted_amt_idx  := 23;
14806    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
14807    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
14808    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
14809    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
14810    l_rec_acct_attrs.array_num_value(2)  := 
14811 xla_ae_sources_pkg.GetSystemSourceNum(
14812    p_source_code           => 'XLA_EVENT_APPL_ID'
14813  , p_source_type_code      => 'Y'
14814  , p_source_application_id =>  602
14815 );
14816    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
14817    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
14818    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
14819    l_rec_acct_attrs.array_char_value(4)  := 
14820 xla_ae_sources_pkg.GetSystemSourceChar(
14821    p_source_code           => 'XLA_ENTITY_CODE'
14822  , p_source_type_code      => 'Y'
14823  , p_source_application_id =>  602
14824 );
14825    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
14826    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
14827    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
14828    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
14829    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
14830    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
14831    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
14832    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
14833    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
14834    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
14835    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
14836    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
14837    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
14838    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
14839    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
14840    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
14841    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
14842    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
14843    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
14844    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
14845    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
14846    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
14847    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
14848    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
14849    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
14850    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
14851    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
14852    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
14853    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
14854    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
14855    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
14856    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
14857    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
14858    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
14859    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
14860    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
14861    l_rec_acct_attrs.array_acct_attr_code(23) := 'LEDGER_AMOUNT';
14862    l_rec_acct_attrs.array_num_value(23)  := p_source_21;
14863    l_rec_acct_attrs.array_acct_attr_code(24) := 'MULTIPERIOD_END_DATE';
14864    l_rec_acct_attrs.array_date_value(24)  := p_source_77;
14865    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_OPTION';
14866    l_rec_acct_attrs.array_char_value(25)  := p_source_78;
14867    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_START_DATE';
14868    l_rec_acct_attrs.array_date_value(26)  := p_source_79;
14869    l_rec_acct_attrs.array_acct_attr_code(27) := 'OVERRIDE_ACCTD_AMT_FLAG';
14870    l_rec_acct_attrs.array_char_value(27)  := p_source_80;
14871    l_rec_acct_attrs.array_acct_attr_code(28) := 'PARTY_ID';
14872    l_rec_acct_attrs.array_num_value(28)  := p_source_81;
14873    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_SITE_ID';
14877    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
14874    l_rec_acct_attrs.array_num_value(29)  := p_source_82;
14875    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
14876    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
14878    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_84);
14879    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
14880    l_rec_acct_attrs.array_char_value(32)  := p_source_55;
14881    l_rec_acct_attrs.array_acct_attr_code(33) := 'TAX_LINE_REF_ID';
14882    l_rec_acct_attrs.array_num_value(33)  := p_source_86;
14883    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_REC_NREC_DIST_REF_ID';
14884    l_rec_acct_attrs.array_num_value(34)  := p_source_87;
14885    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_SUMMARY_LINE_REF_ID';
14886    l_rec_acct_attrs.array_num_value(35)  := p_source_88;
14887    l_rec_acct_attrs.array_acct_attr_code(36) := 'UPG_CR_ENC_TYPE_ID';
14888    l_rec_acct_attrs.array_num_value(36)  := p_source_89;
14889    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_DR_ENC_TYPE_ID';
14890    l_rec_acct_attrs.array_num_value(37)  := p_source_90;
14891 
14892    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
14893    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
14894 
14895    ---------------------------------------------------------------------------------------------------------------
14896    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
14897    ---------------------------------------------------------------------------------------------------------------
14898    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
14899 
14900    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14901    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14902 
14903    IF xla_accounting_cache_pkg.GetValueChar
14904          (p_source_code         => 'LEDGER_CATEGORY_CODE'
14905          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
14906    AND l_bflow_method_code = 'PRIOR_ENTRY'
14907 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
14908    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
14909          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
14910        )
14911    THEN
14912          xla_ae_lines_pkg.BflowUpgEntry
14913            (p_business_method_code    => l_bflow_method_code
14914            ,p_business_class_code     => l_bflow_class_code
14915            ,p_balance_type            => l_balance_type_code);
14916    ELSE
14917       NULL;
14918 -- No business flow processing for business flow method of NONE.
14919    END IF;
14920 
14921    --
14922    -- call analytical criteria
14923    --
14924    
14925    --
14926    -- call description
14927    --
14928    
14929 xla_ae_lines_pkg.SetLineDescription(
14930    p_ae_header_id => l_ae_header_id
14931   ,p_description  => Description_1 (
14932      p_application_id         => p_application_id
14933    , p_ae_header_id           => l_ae_header_id 
14934 , p_source_1 => p_source_1
14935    )
14936 );
14937 
14938 
14939    --
14940    -- call ADRs
14941    -- Bug 4922099
14942    --
14943    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14944         (NVL(l_actual_upg_option, 'N') = 'O') OR
14945         (NVL(l_enc_upg_option, 'N') = 'O')
14946       )
14947    THEN
14948    NULL;
14949    --
14950    --
14951    
14952   l_ccid := AcctDerRule_30(
14953            p_application_id           => p_application_id
14954          , p_ae_header_id             => l_ae_header_id 
14955 , p_source_15 => p_source_15
14956 , p_source_15_meaning => p_source_15_meaning
14957 , p_source_20 => p_source_20
14958 , p_source_21 => p_source_21
14959 , p_source_22 => p_source_22
14960 , p_source_22_meaning => p_source_22_meaning
14961 , p_source_23 => p_source_23
14962 , p_source_30 => p_source_30
14963 , p_source_47 => p_source_47
14964 , p_source_47_meaning => p_source_47_meaning
14965          , x_transaction_coa_id       => l_adr_transaction_coa_id
14966          , x_accounting_coa_id        => l_adr_accounting_coa_id
14967          , x_value_type_code          => l_adr_value_type_code
14968          , p_side                     => 'ALL'
14969    );
14970 
14971    xla_ae_lines_pkg.set_ccid(
14972     p_code_combination_id          => l_ccid
14973   , p_value_type_code              => l_adr_value_type_code
14974   , p_transaction_coa_id           => l_adr_transaction_coa_id
14975   , p_accounting_coa_id            => l_adr_accounting_coa_id
14976   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
14977   , p_adr_type_code                => 'S'
14978   , p_component_type               => l_component_type
14979   , p_component_code               => l_component_code
14980   , p_component_type_code          => l_component_type_code
14981   , p_component_appl_id            => l_component_appl_id
14982   , p_amb_context_code             => l_amb_context_code
14983   , p_side                         => 'ALL'
14984   );
14985 
14986 
14987    l_segment := AcctDerRule_9(
14988            p_application_id           => p_application_id
14989          , p_ae_header_id             => l_ae_header_id 
14990 , p_source_15 => p_source_15
14994 , p_source_22_meaning => p_source_22_meaning
14991 , p_source_15_meaning => p_source_15_meaning
14992 , p_source_20 => p_source_20
14993 , p_source_22 => p_source_22
14995          , x_transaction_coa_id       => l_adr_transaction_coa_id
14996          , x_accounting_coa_id        => l_adr_accounting_coa_id
14997          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
14998          , x_flex_value_set_id        => l_adr_flex_value_set_id
14999          , x_value_type_code          => l_adr_value_type_code
15000          , x_value_combination_id     => l_adr_value_combination_id
15001          , x_value_segment_code       => l_adr_value_segment_code
15002          , p_side                     => 'DEBIT'
15003          , p_override_seg_flag        => 'Y'
15004    );
15005 
15006    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15007 
15008       xla_ae_lines_pkg.set_segment(
15009           p_to_segment_code         => 'GL_ACCOUNT'
15010         , p_segment_value           => l_segment
15011         , p_from_segment_code       => l_adr_value_segment_code
15012         , p_from_combination_id     => l_adr_value_combination_id
15013         , p_value_type_code         => l_adr_value_type_code
15014         , p_transaction_coa_id      => l_adr_transaction_coa_id
15015         , p_accounting_coa_id       => l_adr_accounting_coa_id
15016         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15017         , p_flex_value_set_id       => l_adr_flex_value_set_id
15018         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
15019         , p_adr_type_code           => 'S'
15020         , p_component_type          => l_component_type
15021         , p_component_code          => l_component_code
15022         , p_component_type_code     => l_component_type_code
15023         , p_component_appl_id       => l_component_appl_id
15024         , p_amb_context_code        => l_amb_context_code
15025         , p_entity_code             => 'AP_INVOICES'
15026         , p_event_class_code        => 'DEBIT MEMOS'
15027         , p_side                    => 'DEBIT'
15028         );
15029 
15030   END IF;
15031 
15032    l_segment := AcctDerRule_10(
15033            p_application_id           => p_application_id
15034          , p_ae_header_id             => l_ae_header_id 
15035 , p_source_15 => p_source_15
15036 , p_source_15_meaning => p_source_15_meaning
15037 , p_source_22 => p_source_22
15038 , p_source_22_meaning => p_source_22_meaning
15039 , p_source_23 => p_source_23
15040          , x_transaction_coa_id       => l_adr_transaction_coa_id
15041          , x_accounting_coa_id        => l_adr_accounting_coa_id
15042          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15043          , x_flex_value_set_id        => l_adr_flex_value_set_id
15044          , x_value_type_code          => l_adr_value_type_code
15045          , x_value_combination_id     => l_adr_value_combination_id
15046          , x_value_segment_code       => l_adr_value_segment_code
15047          , p_side                     => 'CREDIT'
15048          , p_override_seg_flag        => 'Y'
15049    );
15050 
15051    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15052 
15053       xla_ae_lines_pkg.set_segment(
15054           p_to_segment_code         => 'GL_ACCOUNT'
15055         , p_segment_value           => l_segment
15056         , p_from_segment_code       => l_adr_value_segment_code
15057         , p_from_combination_id     => l_adr_value_combination_id
15058         , p_value_type_code         => l_adr_value_type_code
15059         , p_transaction_coa_id      => l_adr_transaction_coa_id
15060         , p_accounting_coa_id       => l_adr_accounting_coa_id
15061         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15062         , p_flex_value_set_id       => l_adr_flex_value_set_id
15063         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
15064         , p_adr_type_code           => 'S'
15065         , p_component_type          => l_component_type
15066         , p_component_code          => l_component_code
15067         , p_component_type_code     => l_component_type_code
15068         , p_component_appl_id       => l_component_appl_id
15069         , p_amb_context_code        => l_amb_context_code
15070         , p_entity_code             => 'AP_INVOICES'
15071         , p_event_class_code        => 'DEBIT MEMOS'
15072         , p_side                    => 'CREDIT'
15073         );
15074 
15075   END IF;
15076 
15077    l_segment := AcctDerRule_23(
15078            p_application_id           => p_application_id
15079          , p_ae_header_id             => l_ae_header_id 
15080 , p_source_15 => p_source_15
15081 , p_source_15_meaning => p_source_15_meaning
15082 , p_source_22 => p_source_22
15083 , p_source_22_meaning => p_source_22_meaning
15084 , p_source_30 => p_source_30
15085          , x_transaction_coa_id       => l_adr_transaction_coa_id
15086          , x_accounting_coa_id        => l_adr_accounting_coa_id
15087          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15088          , x_flex_value_set_id        => l_adr_flex_value_set_id
15089          , x_value_type_code          => l_adr_value_type_code
15090          , x_value_combination_id     => l_adr_value_combination_id
15091          , x_value_segment_code       => l_adr_value_segment_code
15092          , p_side                     => 'ALL'
15093          , p_override_seg_flag        => 'Y'
15094    );
15095 
15096    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15097 
15101         , p_from_segment_code       => l_adr_value_segment_code
15098       xla_ae_lines_pkg.set_segment(
15099           p_to_segment_code         => 'GL_BALANCING'
15100         , p_segment_value           => l_segment
15102         , p_from_combination_id     => l_adr_value_combination_id
15103         , p_value_type_code         => l_adr_value_type_code
15104         , p_transaction_coa_id      => l_adr_transaction_coa_id
15105         , p_accounting_coa_id       => l_adr_accounting_coa_id
15106         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15107         , p_flex_value_set_id       => l_adr_flex_value_set_id
15108         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
15109         , p_adr_type_code           => 'S'
15110         , p_component_type          => l_component_type
15111         , p_component_code          => l_component_code
15112         , p_component_type_code     => l_component_type_code
15113         , p_component_appl_id       => l_component_appl_id
15114         , p_amb_context_code        => l_amb_context_code
15115         , p_entity_code             => 'AP_INVOICES'
15116         , p_event_class_code        => 'DEBIT MEMOS'
15117         , p_side                    => 'ALL'
15118         );
15119 
15120   END IF;
15121 
15122    --
15123    --
15124    END IF;
15125    --
15126    -- Bug 4922099
15127    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
15128           (NVL(l_enc_upg_option, 'N') = 'O')
15129         ) AND
15130         (l_bflow_method_code = 'PRIOR_ENTRY')
15131       )
15132    THEN
15133       IF
15134       --
15135       1 = 2
15136       --
15137       THEN
15138       xla_accounting_err_pkg.build_message
15139                                     (p_appli_s_name            => 'XLA'
15140                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15141                                     ,p_token_1                 => 'LINE_NUMBER'
15142                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
15143                                     ,p_token_2                 => 'LINE_TYPE_NAME'
15144                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
15145                                                                              l_component_type
15146                                                                             ,l_component_code
15147                                                                             ,l_component_type_code
15148                                                                             ,l_component_appl_id
15149                                                                             ,l_amb_context_code
15150                                                                             ,l_entity_code
15151                                                                             ,l_event_class_code
15152                                                                            )
15153                                     ,p_token_3                 => 'OWNER'
15154                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
15155                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
15156                                                                           ,p_lookup_code    => l_component_type_code
15157                                                                          )
15158                                     ,p_token_4                 => 'PRODUCT_NAME'
15159                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
15160                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
15161                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
15162                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
15163                                     ,p_ae_header_id            =>  NULL
15164                                        );
15165 
15166         IF (C_LEVEL_ERROR>= g_log_level) THEN
15167                  trace
15168                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15169                       ,p_level    => C_LEVEL_ERROR
15170                       ,p_module   => l_log_module);
15171         END IF;
15172       END IF;
15173    END IF;
15174    --
15175    --
15176    ------------------------------------------------------------------------------------------------
15177    -- 4219869 Business Flow
15178    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
15179    -- Prior Entry.  Currently, the following code is always generated.
15180    ------------------------------------------------------------------------------------------------
15181    XLA_AE_LINES_PKG.ValidateCurrentLine;
15182 
15183    ------------------------------------------------------------------------------------
15184    -- 4219869 Business Flow
15185    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
15186    ------------------------------------------------------------------------------------
15187    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15188 
15189    ----------------------------------------------------------------------------------
15190    -- 4219869 Business Flow
15191    -- Update journal entry status -- Need to generate this within IF <condition>
15195          ,p_balance_type_code => l_balance_type_code
15192    ----------------------------------------------------------------------------------
15193    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15194          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
15196          );
15197 
15198    -------------------------------------------------------------------------------------------
15199    -- 4262811 - Generate the Accrual Reversal lines
15200    -------------------------------------------------------------------------------------------
15201    BEGIN
15202       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
15203                               (g_array_event(p_event_id).array_value_num('header_index'));
15204       IF l_acc_rev_flag IS NULL THEN
15205          l_acc_rev_flag := 'N';
15206       END IF;
15207    EXCEPTION
15208       WHEN OTHERS THEN
15209          l_acc_rev_flag := 'N';
15210    END;
15211    --
15212    IF (l_acc_rev_flag = 'Y') THEN
15213 
15214        -- 4645092  ------------------------------------------------------------------------------
15215        -- To allow MPA report to determine if it should generate report process
15216        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
15217        ------------------------------------------------------------------------------------------
15218 
15219        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
15220        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
15221    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
15222    -- call ADRs
15223    -- Bug 4922099
15224    --
15225    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15226         (NVL(l_actual_upg_option, 'N') = 'O') OR
15227         (NVL(l_enc_upg_option, 'N') = 'O')
15228       )
15229    THEN
15230    NULL;
15231    --
15232    --
15233    
15234   l_ccid := AcctDerRule_30(
15235            p_application_id           => p_application_id
15236          , p_ae_header_id             => l_ae_header_id 
15237 , p_source_15 => p_source_15
15238 , p_source_15_meaning => p_source_15_meaning
15239 , p_source_20 => p_source_20
15240 , p_source_21 => p_source_21
15241 , p_source_22 => p_source_22
15242 , p_source_22_meaning => p_source_22_meaning
15243 , p_source_23 => p_source_23
15244 , p_source_30 => p_source_30
15245 , p_source_47 => p_source_47
15246 , p_source_47_meaning => p_source_47_meaning
15247          , x_transaction_coa_id       => l_adr_transaction_coa_id
15248          , x_accounting_coa_id        => l_adr_accounting_coa_id
15249          , x_value_type_code          => l_adr_value_type_code
15250          , p_side                     => 'ALL'
15251    );
15252 
15253    xla_ae_lines_pkg.set_ccid(
15254     p_code_combination_id          => l_ccid
15255   , p_value_type_code              => l_adr_value_type_code
15256   , p_transaction_coa_id           => l_adr_transaction_coa_id
15257   , p_accounting_coa_id            => l_adr_accounting_coa_id
15258   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
15259   , p_adr_type_code                => 'S'
15260   , p_component_type               => l_component_type
15261   , p_component_code               => l_component_code
15262   , p_component_type_code          => l_component_type_code
15263   , p_component_appl_id            => l_component_appl_id
15264   , p_amb_context_code             => l_amb_context_code
15265   , p_side                         => 'ALL'
15266   );
15267 
15268 
15269    l_segment := AcctDerRule_9(
15270            p_application_id           => p_application_id
15271          , p_ae_header_id             => l_ae_header_id 
15272 , p_source_15 => p_source_15
15273 , p_source_15_meaning => p_source_15_meaning
15274 , p_source_20 => p_source_20
15275 , p_source_22 => p_source_22
15276 , p_source_22_meaning => p_source_22_meaning
15277          , x_transaction_coa_id       => l_adr_transaction_coa_id
15278          , x_accounting_coa_id        => l_adr_accounting_coa_id
15279          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15280          , x_flex_value_set_id        => l_adr_flex_value_set_id
15281          , x_value_type_code          => l_adr_value_type_code
15282          , x_value_combination_id     => l_adr_value_combination_id
15283          , x_value_segment_code       => l_adr_value_segment_code
15284          , p_side                     => 'DEBIT'
15285          , p_override_seg_flag        => 'Y'
15286    );
15287 
15288    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15289 
15290       xla_ae_lines_pkg.set_segment(
15291           p_to_segment_code         => 'GL_ACCOUNT'
15292         , p_segment_value           => l_segment
15293         , p_from_segment_code       => l_adr_value_segment_code
15294         , p_from_combination_id     => l_adr_value_combination_id
15295         , p_value_type_code         => l_adr_value_type_code
15296         , p_transaction_coa_id      => l_adr_transaction_coa_id
15297         , p_accounting_coa_id       => l_adr_accounting_coa_id
15298         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15299         , p_flex_value_set_id       => l_adr_flex_value_set_id
15300         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
15301         , p_adr_type_code           => 'S'
15302         , p_component_type          => l_component_type
15303         , p_component_code          => l_component_code
15304         , p_component_type_code     => l_component_type_code
15308         , p_event_class_code        => 'DEBIT MEMOS'
15305         , p_component_appl_id       => l_component_appl_id
15306         , p_amb_context_code        => l_amb_context_code
15307         , p_entity_code             => 'AP_INVOICES'
15309         , p_side                    => 'DEBIT'
15310         );
15311 
15312   END IF;
15313 
15314    l_segment := AcctDerRule_10(
15315            p_application_id           => p_application_id
15316          , p_ae_header_id             => l_ae_header_id 
15317 , p_source_15 => p_source_15
15318 , p_source_15_meaning => p_source_15_meaning
15319 , p_source_22 => p_source_22
15320 , p_source_22_meaning => p_source_22_meaning
15321 , p_source_23 => p_source_23
15322          , x_transaction_coa_id       => l_adr_transaction_coa_id
15323          , x_accounting_coa_id        => l_adr_accounting_coa_id
15324          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15325          , x_flex_value_set_id        => l_adr_flex_value_set_id
15326          , x_value_type_code          => l_adr_value_type_code
15327          , x_value_combination_id     => l_adr_value_combination_id
15328          , x_value_segment_code       => l_adr_value_segment_code
15329          , p_side                     => 'CREDIT'
15330          , p_override_seg_flag        => 'Y'
15331    );
15332 
15333    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15334 
15335       xla_ae_lines_pkg.set_segment(
15336           p_to_segment_code         => 'GL_ACCOUNT'
15337         , p_segment_value           => l_segment
15338         , p_from_segment_code       => l_adr_value_segment_code
15339         , p_from_combination_id     => l_adr_value_combination_id
15340         , p_value_type_code         => l_adr_value_type_code
15341         , p_transaction_coa_id      => l_adr_transaction_coa_id
15342         , p_accounting_coa_id       => l_adr_accounting_coa_id
15343         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15344         , p_flex_value_set_id       => l_adr_flex_value_set_id
15345         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
15346         , p_adr_type_code           => 'S'
15347         , p_component_type          => l_component_type
15348         , p_component_code          => l_component_code
15349         , p_component_type_code     => l_component_type_code
15350         , p_component_appl_id       => l_component_appl_id
15351         , p_amb_context_code        => l_amb_context_code
15352         , p_entity_code             => 'AP_INVOICES'
15353         , p_event_class_code        => 'DEBIT MEMOS'
15354         , p_side                    => 'CREDIT'
15355         );
15356 
15357   END IF;
15358 
15359    l_segment := AcctDerRule_23(
15360            p_application_id           => p_application_id
15361          , p_ae_header_id             => l_ae_header_id 
15362 , p_source_15 => p_source_15
15363 , p_source_15_meaning => p_source_15_meaning
15364 , p_source_22 => p_source_22
15365 , p_source_22_meaning => p_source_22_meaning
15366 , p_source_30 => p_source_30
15367          , x_transaction_coa_id       => l_adr_transaction_coa_id
15368          , x_accounting_coa_id        => l_adr_accounting_coa_id
15369          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
15370          , x_flex_value_set_id        => l_adr_flex_value_set_id
15371          , x_value_type_code          => l_adr_value_type_code
15372          , x_value_combination_id     => l_adr_value_combination_id
15373          , x_value_segment_code       => l_adr_value_segment_code
15374          , p_side                     => 'ALL'
15375          , p_override_seg_flag        => 'Y'
15376    );
15377 
15378    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
15379 
15380       xla_ae_lines_pkg.set_segment(
15381           p_to_segment_code         => 'GL_BALANCING'
15382         , p_segment_value           => l_segment
15383         , p_from_segment_code       => l_adr_value_segment_code
15384         , p_from_combination_id     => l_adr_value_combination_id
15385         , p_value_type_code         => l_adr_value_type_code
15386         , p_transaction_coa_id      => l_adr_transaction_coa_id
15387         , p_accounting_coa_id       => l_adr_accounting_coa_id
15388         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
15389         , p_flex_value_set_id       => l_adr_flex_value_set_id
15390         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
15391         , p_adr_type_code           => 'S'
15392         , p_component_type          => l_component_type
15393         , p_component_code          => l_component_code
15394         , p_component_type_code     => l_component_type_code
15395         , p_component_appl_id       => l_component_appl_id
15396         , p_amb_context_code        => l_amb_context_code
15397         , p_entity_code             => 'AP_INVOICES'
15398         , p_event_class_code        => 'DEBIT MEMOS'
15399         , p_side                    => 'ALL'
15400         );
15401 
15402   END IF;
15403 
15404    --
15405    --
15406    END IF;
15407 
15408        --
15409        -- Update the line information that should be overwritten
15410        --
15411        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
15412                                          p_header_num   => 1);
15413        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
15414 
15415        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
15416 
15420 
15417        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
15418           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
15419        END IF;
15421       --
15422       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
15423       --
15424       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
15425           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
15426       ELSE
15427           ---------------------------------------------------------------------------------------------------
15428           -- 4262811a Switch Sign
15429           ---------------------------------------------------------------------------------------------------
15430           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
15431           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15432                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15433           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15434                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15435           -- 5132302
15436           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
15437                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15438 
15439       END IF;
15440 
15441       -- 4955764
15442       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15443       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
15444 
15445 
15446       XLA_AE_LINES_PKG.ValidateCurrentLine;
15447       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15448 
15449       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15450                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
15451                ,p_balance_type_code => l_balance_type_code);
15452 
15453    END IF;
15454 
15455    -----------------------------------------------------------------------------------------
15456    -- 4262811 Multiperiod Accounting
15457    -----------------------------------------------------------------------------------------
15458      -- No MPA option is assigned.
15459 
15460 
15461 END IF;
15462 END IF;
15463 --
15464 
15465 --
15466 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15467    trace
15468       (p_msg      => 'END of AcctLineType_56'
15469       ,p_level    => C_LEVEL_PROCEDURE
15470       ,p_module   => l_log_module);
15471 END IF;
15472 --
15473 EXCEPTION
15474   WHEN xla_exceptions_pkg.application_exception THEN
15475       RAISE;
15476   WHEN OTHERS THEN
15477        xla_exceptions_pkg.raise_message
15478            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_56');
15479 END AcctLineType_56;
15480 --
15481 
15482 ---------------------------------------
15483 --
15484 -- PRIVATE FUNCTION
15485 --         AcctLineType_57
15486 --
15487 ---------------------------------------
15488 PROCEDURE AcctLineType_57 (
15489   p_application_id        IN NUMBER
15490  ,p_event_id              IN NUMBER
15491  ,p_calculate_acctd_flag  IN VARCHAR2
15492  ,p_calculate_g_l_flag    IN VARCHAR2
15493  ,p_actual_flag           IN OUT VARCHAR2
15494  ,p_balance_type_code     OUT VARCHAR2
15495  ,p_gain_or_loss_ref      OUT VARCHAR2
15496  
15497 --Invoice Distribution Description
15498  , p_source_1            IN VARCHAR2
15499 --Automatic Offsets Value
15500  , p_source_15            IN VARCHAR2
15501  , p_source_15_meaning    IN VARCHAR2
15502 --Purchase Order Rate Variance Gain Account
15503  , p_source_20            IN NUMBER
15504 --Invoice Distribution Ledger Amount
15505  , p_source_21            IN NUMBER
15506 --Destination Type of the PO Distribution
15507  , p_source_22            IN VARCHAR2
15508  , p_source_22_meaning    IN VARCHAR2
15509 --Purchase Order Rate Variance Loss Account
15510  , p_source_23            IN NUMBER
15511 --Invoice Distribution Account
15512  , p_source_30            IN NUMBER
15513 --Invoice Distribution Type
15514  , p_source_33            IN VARCHAR2
15515  , p_source_33_meaning    IN VARCHAR2
15516 --Automatic Offsets Flag
15517  , p_source_47            IN VARCHAR2
15518  , p_source_47_meaning    IN VARCHAR2
15519 --Accounting Reversal Indicator
15520  , p_source_53            IN VARCHAR2
15521 --Distribution Link Type
15522  , p_source_55            IN VARCHAR2
15523 --Allocation to Main Distribution Identifier
15524  , p_source_57            IN NUMBER
15525 --Invoice Identifier
15526  , p_source_58            IN NUMBER
15527 --Invoice Distribution Identifier
15528  , p_source_64            IN NUMBER
15529 --Payables Encumbrance Upgrade Credit Account
15530  , p_source_65            IN NUMBER
15531 --Payables Encumbrance Upgrade Credit Amount
15532  , p_source_66            IN NUMBER
15533 --Invoice Currency Code
15534  , p_source_67            IN VARCHAR2
15535 --Payables Encumbrance Upgrade Credit Base Amount
15536  , p_source_68            IN NUMBER
15537 --Payables Encumbrance Upgrade Debit Account
15538  , p_source_69            IN NUMBER
15539 --Payables Encumbrance Upgrade Debit Amount
15543 --Payables Encumbrance Upgrade Option
15540  , p_source_70            IN NUMBER
15541 --Payables Encumbrance Upgrade Debit Base Amount
15542  , p_source_71            IN NUMBER
15544  , p_source_72            IN VARCHAR2
15545 --Invoice Distribution Amount
15546  , p_source_73            IN NUMBER
15547 --Deferred Accounting End Date
15548  , p_source_77            IN DATE
15549 --Deferred Accounting Option
15550  , p_source_78            IN VARCHAR2
15551 --Deferred Accounting Start Date
15552  , p_source_79            IN DATE
15553 --Override Accounted Amount Indicator
15554  , p_source_80            IN VARCHAR2
15555  , p_source_80_meaning    IN VARCHAR2
15556 --Invoice Supplier Identifier
15557  , p_source_81            IN NUMBER
15558 --Invoice Supplier Site Identifier
15559  , p_source_82            IN NUMBER
15560 --Third Party Type
15561  , p_source_83            IN VARCHAR2
15562 --Parent Reversal Identifier
15563  , p_source_84            IN NUMBER
15564 --Invoice Distribution Statistical Amount
15565  , p_source_85            IN NUMBER
15566 --Invoice Distribution Tax Line Identifier
15567  , p_source_86            IN NUMBER
15568 --Invoice Distribution Tax Distribution Identifier from Tax
15569  , p_source_87            IN NUMBER
15570 --Invoice Distribution Summary Tax Line Identifier
15571  , p_source_88            IN NUMBER
15572 --Payables Upgrade Credit Encumbrance Type Identifier
15573  , p_source_89            IN NUMBER
15574 --Payables Upgrade Debit Encumbrance Type Identifier
15575  , p_source_90            IN NUMBER
15576 --Business Flow Accounts Payable Application Identifier
15577  , p_source_91            IN NUMBER
15578 --Business Flow Invoice Distribution Type
15579  , p_source_92            IN VARCHAR2
15580 --Business Flow Invoice Entity Code
15581  , p_source_93            IN VARCHAR2
15582 --Business Flow Invoice Distribution Identifier
15583  , p_source_94            IN NUMBER
15584 --Business Flow Invoice Identifier
15585  , p_source_95            IN NUMBER
15586 --Accrue on Receipt Option
15587  , p_source_96            IN VARCHAR2
15588  , p_source_96_meaning    IN VARCHAR2
15589 )
15590 IS
15591 
15592 l_component_type              VARCHAR2(80);
15593 l_component_code              VARCHAR2(30);
15594 l_component_type_code         VARCHAR2(1);
15595 l_component_appl_id           INTEGER;
15596 l_amb_context_code            VARCHAR2(30);
15597 l_entity_code                 VARCHAR2(30);
15598 l_event_class_code            VARCHAR2(30);
15599 l_ae_header_id                NUMBER;
15600 l_event_type_code             VARCHAR2(30);
15601 l_line_definition_code        VARCHAR2(30);
15602 l_line_definition_owner_code  VARCHAR2(1);
15603 --
15604 -- adr variables
15605 l_segment                     VARCHAR2(30);
15606 l_ccid                        NUMBER;
15607 l_adr_transaction_coa_id      NUMBER;
15608 l_adr_accounting_coa_id       NUMBER;
15609 l_adr_flexfield_segment_code  VARCHAR2(30);
15610 l_adr_flex_value_set_id       NUMBER;
15611 l_adr_value_type_code         VARCHAR2(30);
15612 l_adr_value_combination_id    NUMBER;
15613 l_adr_value_segment_code      VARCHAR2(30);
15614 
15615 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
15616 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
15617 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
15618 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
15619 
15620 -- 4262811 Variables ------------------------------------------------------------------------------------------
15621 l_entered_amt_idx             NUMBER;
15622 l_accted_amt_idx              NUMBER;
15623 l_acc_rev_flag                VARCHAR2(1);
15624 l_accrual_line_num            NUMBER;
15625 l_tmp_amt                     NUMBER;
15626 l_acc_rev_natural_side_code   VARCHAR2(1);
15627 
15628 l_num_entries                 NUMBER;
15629 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
15630 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
15631 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
15632 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
15633 l_recog_line_1                NUMBER;
15634 l_recog_line_2                NUMBER;
15635 
15636 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
15637 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
15638 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
15639 
15640 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
15641 
15642 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
15643 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
15644 
15645 ---------------------------------------------------------------------------------------------------------------
15646 
15647 
15648 --
15649 -- bulk performance
15650 --
15651 l_balance_type_code           VARCHAR2(1);
15652 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
15653 l_log_module                  VARCHAR2(240);
15654 
15655 --
15656 -- Upgrade strategy
15657 --
15658 l_actual_upg_option           VARCHAR2(1);
15659 l_enc_upg_option           VARCHAR2(1);
15660 
15661 --
15662 BEGIN
15663 --
15664 IF g_log_enabled THEN
15665       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_57';
15666 END IF;
15667 --
15671          (p_msg      => 'BEGIN of AcctLineType_57'
15668 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15669 
15670       trace
15672          ,p_level    => C_LEVEL_PROCEDURE
15673          ,p_module   => l_log_module);
15674 
15675 END IF;
15676 --
15677 l_component_type             := 'AMB_JLT';
15678 l_component_code             := 'AP_ALC_TAX_EX_RATE_VAR_INV';
15679 l_component_type_code        := 'S';
15680 l_component_appl_id          :=  200;
15681 l_amb_context_code           := 'DEFAULT';
15682 l_entity_code                := 'AP_INVOICES';
15683 l_event_class_code           := 'INVOICES';
15684 l_event_type_code            := 'INVOICES_ALL';
15685 l_line_definition_owner_code := 'S';
15686 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
15687 --
15688 l_balance_type_code          := 'A';
15689 l_segment                     := NULL;
15690 l_ccid                        := NULL;
15691 l_adr_transaction_coa_id      := NULL;
15692 l_adr_accounting_coa_id       := NULL;
15693 l_adr_flexfield_segment_code  := NULL;
15694 l_adr_flex_value_set_id       := NULL;
15695 l_adr_value_type_code         := NULL;
15696 l_adr_value_combination_id    := NULL;
15697 l_adr_value_segment_code      := NULL;
15698 
15699 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
15700 l_bflow_class_code           := '';    -- 4219869 Business Flow
15701 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
15702 l_budgetary_control_flag     := 'N';
15703 
15704 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
15705 l_bflow_applied_to_amt       := NULL; -- 5132302
15706 l_entered_amt_idx            := NULL;          -- 4262811
15707 l_accted_amt_idx             := NULL;          -- 4262811
15708 l_acc_rev_flag               := NULL;          -- 4262811
15709 l_accrual_line_num           := NULL;          -- 4262811
15710 l_tmp_amt                    := NULL;          -- 4262811
15711 --
15712 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
15713             (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
15714                return;
15715   END IF;
15716   
15717 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
15718     l_balance_type_code <> 'B' THEN
15719 IF NVL(p_source_33,'
15720 ') =  'NONREC_TAX' AND 
15721 NVL(p_source_96,'
15722 ') =  'Y'
15723  THEN 
15724 
15725    --
15726    XLA_AE_LINES_PKG.SetNewLine;
15727 
15728    p_balance_type_code          := l_balance_type_code;
15729    -- set the flag so later we will know whether the gain loss line needs to be created
15730    
15731    IF(l_balance_type_code = 'A' ) THEN
15732      p_actual_flag :='G';
15733    END IF;
15734 
15735    --
15736    -- bulk performance
15737    --
15738    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
15739                                       p_header_num   => 0); -- 4262811
15740    --
15741    -- set accounting line options
15742    --
15743    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
15744            p_natural_side_code          => 'G'
15745          , p_gain_or_loss_flag          => 'N'
15746          , p_gl_transfer_mode_code      => 'S'
15747          , p_acct_entry_type_code       => 'A'
15748          , p_switch_side_flag           => ''
15749          , p_merge_duplicate_code       => 'A'
15750          );
15751    --
15752    l_acc_rev_natural_side_code := 'C';  -- 4262811
15753    -- 
15754    --
15755    -- set accounting line type info
15756    --
15757    xla_ae_lines_pkg.SetAcctLineType
15758       (p_component_type             => l_component_type
15759       ,p_event_type_code            => l_event_type_code
15760       ,p_line_definition_owner_code => l_line_definition_owner_code
15761       ,p_line_definition_code       => l_line_definition_code
15762       ,p_accounting_line_code       => l_component_code
15763       ,p_accounting_line_type_code  => l_component_type_code
15764       ,p_accounting_line_appl_id    => l_component_appl_id
15765       ,p_amb_context_code           => l_amb_context_code
15766       ,p_entity_code                => l_entity_code
15767       ,p_event_class_code           => l_event_class_code);
15768    --
15769    -- set accounting class
15770    --
15771    xla_ae_lines_pkg.SetAcctClass(
15772            p_accounting_class_code  => 'TERV'
15773          , p_ae_header_id           => l_ae_header_id
15774          );
15775 
15776    --
15777    -- set rounding class
15778    --
15779    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
15780                       'TERV';
15781 
15782    --
15783    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
15784    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
15785    --
15786    -- bulk performance
15787    --
15788    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
15789 
15790    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
15794    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15791       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
15792 
15793    -- 4955764
15795       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
15796 
15797    -- 4458381 Public Sector Enh
15798    
15799    --
15800    -- set accounting attributes for the line type
15801    --
15802    l_entered_amt_idx := NULL;
15803    l_accted_amt_idx  := 24;
15804    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
15805    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
15806    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
15807    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
15808    l_rec_acct_attrs.array_num_value(2)  := 
15809 xla_ae_sources_pkg.GetSystemSourceNum(
15810    p_source_code           => 'XLA_EVENT_APPL_ID'
15811  , p_source_type_code      => 'Y'
15812  , p_source_application_id =>  602
15813 );
15814    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
15815    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
15816    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
15817    l_rec_acct_attrs.array_char_value(4)  := 
15818 xla_ae_sources_pkg.GetSystemSourceChar(
15819    p_source_code           => 'XLA_ENTITY_CODE'
15820  , p_source_type_code      => 'Y'
15821  , p_source_application_id =>  602
15822 );
15823    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
15824    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
15825    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
15826    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
15827    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
15828    l_rec_acct_attrs.array_num_value(7)  := p_source_73;
15829    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
15830    l_rec_acct_attrs.array_num_value(8)  := p_source_91;
15831    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
15832    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
15833    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
15834    l_rec_acct_attrs.array_char_value(10)  := p_source_93;
15835    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
15836    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
15837    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
15838    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_95);
15839    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
15840    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_64);
15841    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
15842    l_rec_acct_attrs.array_char_value(14)  := p_source_55;
15843    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
15844    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
15845    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
15846    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
15847    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
15848    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
15849    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
15850    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
15851    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
15852    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
15853    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
15854    l_rec_acct_attrs.array_num_value(20)  := p_source_70;
15855    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
15856    l_rec_acct_attrs.array_char_value(21)  := p_source_67;
15857    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
15858    l_rec_acct_attrs.array_num_value(22)  := p_source_71;
15859    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
15860    l_rec_acct_attrs.array_char_value(23)  := p_source_72;
15861    l_rec_acct_attrs.array_acct_attr_code(24) := 'LEDGER_AMOUNT';
15862    l_rec_acct_attrs.array_num_value(24)  := p_source_21;
15863    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_END_DATE';
15864    l_rec_acct_attrs.array_date_value(25)  := p_source_77;
15865    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_OPTION';
15866    l_rec_acct_attrs.array_char_value(26)  := p_source_78;
15867    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_START_DATE';
15868    l_rec_acct_attrs.array_date_value(27)  := p_source_79;
15869    l_rec_acct_attrs.array_acct_attr_code(28) := 'OVERRIDE_ACCTD_AMT_FLAG';
15870    l_rec_acct_attrs.array_char_value(28)  := p_source_80;
15871    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_ID';
15872    l_rec_acct_attrs.array_num_value(29)  := p_source_81;
15873    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_SITE_ID';
15874    l_rec_acct_attrs.array_num_value(30)  := p_source_82;
15875    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
15876    l_rec_acct_attrs.array_char_value(31)  := p_source_83;
15877    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
15878    l_rec_acct_attrs.array_num_value(32)  :=  to_char(p_source_84);
15879    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
15880    l_rec_acct_attrs.array_char_value(33)  := p_source_55;
15881    l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
15882    l_rec_acct_attrs.array_num_value(34)  := p_source_85;
15883    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
15887    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
15884    l_rec_acct_attrs.array_num_value(35)  := p_source_86;
15885    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
15886    l_rec_acct_attrs.array_num_value(36)  := p_source_87;
15888    l_rec_acct_attrs.array_num_value(37)  := p_source_88;
15889    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
15890    l_rec_acct_attrs.array_num_value(38)  := p_source_89;
15891    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
15892    l_rec_acct_attrs.array_num_value(39)  := p_source_90;
15893 
15894    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
15895    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
15896 
15897    ---------------------------------------------------------------------------------------------------------------
15898    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
15899    ---------------------------------------------------------------------------------------------------------------
15900    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
15901 
15902    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15903    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15904 
15905    IF xla_accounting_cache_pkg.GetValueChar
15906          (p_source_code         => 'LEDGER_CATEGORY_CODE'
15907          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
15908    AND l_bflow_method_code = 'PRIOR_ENTRY'
15909 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
15910    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
15911          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
15912        )
15913    THEN
15914          xla_ae_lines_pkg.BflowUpgEntry
15915            (p_business_method_code    => l_bflow_method_code
15916            ,p_business_class_code     => l_bflow_class_code
15917            ,p_balance_type            => l_balance_type_code);
15918    ELSE
15919       NULL;
15920 -- No business flow processing for business flow method of NONE.
15921    END IF;
15922 
15923    --
15924    -- call analytical criteria
15925    --
15926    
15927    --
15928    -- call description
15929    --
15930    
15931 xla_ae_lines_pkg.SetLineDescription(
15932    p_ae_header_id => l_ae_header_id
15933   ,p_description  => Description_1 (
15934      p_application_id         => p_application_id
15935    , p_ae_header_id           => l_ae_header_id 
15936 , p_source_1 => p_source_1
15937    )
15938 );
15939 
15940 
15941    --
15942    -- call ADRs
15943    -- Bug 4922099
15944    --
15945    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15946         (NVL(l_actual_upg_option, 'N') = 'O') OR
15947         (NVL(l_enc_upg_option, 'N') = 'O')
15948       )
15949    THEN
15950    NULL;
15951    --
15952    --
15953    
15954   l_ccid := AcctDerRule_30(
15955            p_application_id           => p_application_id
15956          , p_ae_header_id             => l_ae_header_id 
15957 , p_source_15 => p_source_15
15958 , p_source_15_meaning => p_source_15_meaning
15959 , p_source_20 => p_source_20
15960 , p_source_21 => p_source_21
15961 , p_source_22 => p_source_22
15962 , p_source_22_meaning => p_source_22_meaning
15963 , p_source_23 => p_source_23
15964 , p_source_30 => p_source_30
15965 , p_source_47 => p_source_47
15966 , p_source_47_meaning => p_source_47_meaning
15967          , x_transaction_coa_id       => l_adr_transaction_coa_id
15968          , x_accounting_coa_id        => l_adr_accounting_coa_id
15969          , x_value_type_code          => l_adr_value_type_code
15970          , p_side                     => 'ALL'
15971    );
15972 
15973    xla_ae_lines_pkg.set_ccid(
15974     p_code_combination_id          => l_ccid
15975   , p_value_type_code              => l_adr_value_type_code
15976   , p_transaction_coa_id           => l_adr_transaction_coa_id
15977   , p_accounting_coa_id            => l_adr_accounting_coa_id
15978   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
15979   , p_adr_type_code                => 'S'
15980   , p_component_type               => l_component_type
15981   , p_component_code               => l_component_code
15982   , p_component_type_code          => l_component_type_code
15983   , p_component_appl_id            => l_component_appl_id
15984   , p_amb_context_code             => l_amb_context_code
15985   , p_side                         => 'ALL'
15986   );
15987 
15988 
15989    l_segment := AcctDerRule_9(
15990            p_application_id           => p_application_id
15991          , p_ae_header_id             => l_ae_header_id 
15992 , p_source_15 => p_source_15
15993 , p_source_15_meaning => p_source_15_meaning
15994 , p_source_20 => p_source_20
15995 , p_source_22 => p_source_22
15996 , p_source_22_meaning => p_source_22_meaning
15997          , x_transaction_coa_id       => l_adr_transaction_coa_id
15998          , x_accounting_coa_id        => l_adr_accounting_coa_id
15999          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16000          , x_flex_value_set_id        => l_adr_flex_value_set_id
16001          , x_value_type_code          => l_adr_value_type_code
16005          , p_override_seg_flag        => 'Y'
16002          , x_value_combination_id     => l_adr_value_combination_id
16003          , x_value_segment_code       => l_adr_value_segment_code
16004          , p_side                     => 'CREDIT'
16006    );
16007 
16008    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16009 
16010       xla_ae_lines_pkg.set_segment(
16011           p_to_segment_code         => 'GL_ACCOUNT'
16012         , p_segment_value           => l_segment
16013         , p_from_segment_code       => l_adr_value_segment_code
16014         , p_from_combination_id     => l_adr_value_combination_id
16015         , p_value_type_code         => l_adr_value_type_code
16016         , p_transaction_coa_id      => l_adr_transaction_coa_id
16017         , p_accounting_coa_id       => l_adr_accounting_coa_id
16018         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16019         , p_flex_value_set_id       => l_adr_flex_value_set_id
16020         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
16021         , p_adr_type_code           => 'S'
16022         , p_component_type          => l_component_type
16023         , p_component_code          => l_component_code
16024         , p_component_type_code     => l_component_type_code
16025         , p_component_appl_id       => l_component_appl_id
16026         , p_amb_context_code        => l_amb_context_code
16027         , p_entity_code             => 'AP_INVOICES'
16028         , p_event_class_code        => 'INVOICES'
16029         , p_side                    => 'CREDIT'
16030         );
16031 
16032   END IF;
16033 
16034    l_segment := AcctDerRule_10(
16035            p_application_id           => p_application_id
16036          , p_ae_header_id             => l_ae_header_id 
16037 , p_source_15 => p_source_15
16038 , p_source_15_meaning => p_source_15_meaning
16039 , p_source_22 => p_source_22
16040 , p_source_22_meaning => p_source_22_meaning
16041 , p_source_23 => p_source_23
16042          , x_transaction_coa_id       => l_adr_transaction_coa_id
16043          , x_accounting_coa_id        => l_adr_accounting_coa_id
16044          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16045          , x_flex_value_set_id        => l_adr_flex_value_set_id
16046          , x_value_type_code          => l_adr_value_type_code
16047          , x_value_combination_id     => l_adr_value_combination_id
16048          , x_value_segment_code       => l_adr_value_segment_code
16049          , p_side                     => 'DEBIT'
16050          , p_override_seg_flag        => 'Y'
16051    );
16052 
16053    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16054 
16055       xla_ae_lines_pkg.set_segment(
16056           p_to_segment_code         => 'GL_ACCOUNT'
16057         , p_segment_value           => l_segment
16058         , p_from_segment_code       => l_adr_value_segment_code
16059         , p_from_combination_id     => l_adr_value_combination_id
16060         , p_value_type_code         => l_adr_value_type_code
16061         , p_transaction_coa_id      => l_adr_transaction_coa_id
16062         , p_accounting_coa_id       => l_adr_accounting_coa_id
16063         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16064         , p_flex_value_set_id       => l_adr_flex_value_set_id
16065         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
16066         , p_adr_type_code           => 'S'
16067         , p_component_type          => l_component_type
16068         , p_component_code          => l_component_code
16069         , p_component_type_code     => l_component_type_code
16070         , p_component_appl_id       => l_component_appl_id
16071         , p_amb_context_code        => l_amb_context_code
16072         , p_entity_code             => 'AP_INVOICES'
16073         , p_event_class_code        => 'INVOICES'
16074         , p_side                    => 'DEBIT'
16075         );
16076 
16077   END IF;
16078 
16079    l_segment := AcctDerRule_23(
16080            p_application_id           => p_application_id
16081          , p_ae_header_id             => l_ae_header_id 
16082 , p_source_15 => p_source_15
16083 , p_source_15_meaning => p_source_15_meaning
16084 , p_source_22 => p_source_22
16085 , p_source_22_meaning => p_source_22_meaning
16086 , p_source_30 => p_source_30
16087          , x_transaction_coa_id       => l_adr_transaction_coa_id
16088          , x_accounting_coa_id        => l_adr_accounting_coa_id
16089          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16090          , x_flex_value_set_id        => l_adr_flex_value_set_id
16091          , x_value_type_code          => l_adr_value_type_code
16092          , x_value_combination_id     => l_adr_value_combination_id
16093          , x_value_segment_code       => l_adr_value_segment_code
16094          , p_side                     => 'ALL'
16095          , p_override_seg_flag        => 'Y'
16096    );
16097 
16098    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16099 
16100       xla_ae_lines_pkg.set_segment(
16101           p_to_segment_code         => 'GL_BALANCING'
16102         , p_segment_value           => l_segment
16103         , p_from_segment_code       => l_adr_value_segment_code
16104         , p_from_combination_id     => l_adr_value_combination_id
16105         , p_value_type_code         => l_adr_value_type_code
16106         , p_transaction_coa_id      => l_adr_transaction_coa_id
16107         , p_accounting_coa_id       => l_adr_accounting_coa_id
16111         , p_adr_type_code           => 'S'
16108         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16109         , p_flex_value_set_id       => l_adr_flex_value_set_id
16110         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
16112         , p_component_type          => l_component_type
16113         , p_component_code          => l_component_code
16114         , p_component_type_code     => l_component_type_code
16115         , p_component_appl_id       => l_component_appl_id
16116         , p_amb_context_code        => l_amb_context_code
16117         , p_entity_code             => 'AP_INVOICES'
16118         , p_event_class_code        => 'INVOICES'
16119         , p_side                    => 'ALL'
16120         );
16121 
16122   END IF;
16123 
16124    --
16125    --
16126    END IF;
16127    --
16128    -- Bug 4922099
16129    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
16130           (NVL(l_enc_upg_option, 'N') = 'O')
16131         ) AND
16132         (l_bflow_method_code = 'PRIOR_ENTRY')
16133       )
16134    THEN
16135       IF
16136       --
16137       1 = 2
16138       --
16139       THEN
16140       xla_accounting_err_pkg.build_message
16141                                     (p_appli_s_name            => 'XLA'
16142                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16143                                     ,p_token_1                 => 'LINE_NUMBER'
16144                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
16145                                     ,p_token_2                 => 'LINE_TYPE_NAME'
16146                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
16147                                                                              l_component_type
16148                                                                             ,l_component_code
16149                                                                             ,l_component_type_code
16150                                                                             ,l_component_appl_id
16151                                                                             ,l_amb_context_code
16152                                                                             ,l_entity_code
16153                                                                             ,l_event_class_code
16154                                                                            )
16155                                     ,p_token_3                 => 'OWNER'
16156                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
16157                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
16158                                                                           ,p_lookup_code    => l_component_type_code
16159                                                                          )
16160                                     ,p_token_4                 => 'PRODUCT_NAME'
16161                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
16162                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
16163                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
16164                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
16165                                     ,p_ae_header_id            =>  NULL
16166                                        );
16167 
16168         IF (C_LEVEL_ERROR>= g_log_level) THEN
16169                  trace
16170                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16171                       ,p_level    => C_LEVEL_ERROR
16172                       ,p_module   => l_log_module);
16173         END IF;
16174       END IF;
16175    END IF;
16176    --
16177    --
16178    ------------------------------------------------------------------------------------------------
16179    -- 4219869 Business Flow
16180    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
16181    -- Prior Entry.  Currently, the following code is always generated.
16182    ------------------------------------------------------------------------------------------------
16183    XLA_AE_LINES_PKG.ValidateCurrentLine;
16184 
16185    ------------------------------------------------------------------------------------
16186    -- 4219869 Business Flow
16187    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
16188    ------------------------------------------------------------------------------------
16189    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16190 
16191    ----------------------------------------------------------------------------------
16192    -- 4219869 Business Flow
16193    -- Update journal entry status -- Need to generate this within IF <condition>
16194    ----------------------------------------------------------------------------------
16195    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16196          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
16197          ,p_balance_type_code => l_balance_type_code
16198          );
16199 
16200    -------------------------------------------------------------------------------------------
16201    -- 4262811 - Generate the Accrual Reversal lines
16205                               (g_array_event(p_event_id).array_value_num('header_index'));
16202    -------------------------------------------------------------------------------------------
16203    BEGIN
16204       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
16206       IF l_acc_rev_flag IS NULL THEN
16207          l_acc_rev_flag := 'N';
16208       END IF;
16209    EXCEPTION
16210       WHEN OTHERS THEN
16211          l_acc_rev_flag := 'N';
16212    END;
16213    --
16214    IF (l_acc_rev_flag = 'Y') THEN
16215 
16216        -- 4645092  ------------------------------------------------------------------------------
16217        -- To allow MPA report to determine if it should generate report process
16218        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
16219        ------------------------------------------------------------------------------------------
16220 
16221        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
16222        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
16223    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
16224    -- call ADRs
16225    -- Bug 4922099
16226    --
16227    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16228         (NVL(l_actual_upg_option, 'N') = 'O') OR
16229         (NVL(l_enc_upg_option, 'N') = 'O')
16230       )
16231    THEN
16232    NULL;
16233    --
16234    --
16235    
16236   l_ccid := AcctDerRule_30(
16237            p_application_id           => p_application_id
16238          , p_ae_header_id             => l_ae_header_id 
16239 , p_source_15 => p_source_15
16240 , p_source_15_meaning => p_source_15_meaning
16241 , p_source_20 => p_source_20
16242 , p_source_21 => p_source_21
16243 , p_source_22 => p_source_22
16244 , p_source_22_meaning => p_source_22_meaning
16245 , p_source_23 => p_source_23
16246 , p_source_30 => p_source_30
16247 , p_source_47 => p_source_47
16248 , p_source_47_meaning => p_source_47_meaning
16249          , x_transaction_coa_id       => l_adr_transaction_coa_id
16250          , x_accounting_coa_id        => l_adr_accounting_coa_id
16251          , x_value_type_code          => l_adr_value_type_code
16252          , p_side                     => 'ALL'
16253    );
16254 
16255    xla_ae_lines_pkg.set_ccid(
16256     p_code_combination_id          => l_ccid
16257   , p_value_type_code              => l_adr_value_type_code
16258   , p_transaction_coa_id           => l_adr_transaction_coa_id
16259   , p_accounting_coa_id            => l_adr_accounting_coa_id
16260   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
16261   , p_adr_type_code                => 'S'
16262   , p_component_type               => l_component_type
16263   , p_component_code               => l_component_code
16264   , p_component_type_code          => l_component_type_code
16265   , p_component_appl_id            => l_component_appl_id
16266   , p_amb_context_code             => l_amb_context_code
16267   , p_side                         => 'ALL'
16268   );
16269 
16270 
16271    l_segment := AcctDerRule_9(
16272            p_application_id           => p_application_id
16273          , p_ae_header_id             => l_ae_header_id 
16274 , p_source_15 => p_source_15
16275 , p_source_15_meaning => p_source_15_meaning
16276 , p_source_20 => p_source_20
16277 , p_source_22 => p_source_22
16278 , p_source_22_meaning => p_source_22_meaning
16279          , x_transaction_coa_id       => l_adr_transaction_coa_id
16280          , x_accounting_coa_id        => l_adr_accounting_coa_id
16281          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16282          , x_flex_value_set_id        => l_adr_flex_value_set_id
16283          , x_value_type_code          => l_adr_value_type_code
16284          , x_value_combination_id     => l_adr_value_combination_id
16285          , x_value_segment_code       => l_adr_value_segment_code
16286          , p_side                     => 'CREDIT'
16287          , p_override_seg_flag        => 'Y'
16288    );
16289 
16290    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16291 
16292       xla_ae_lines_pkg.set_segment(
16293           p_to_segment_code         => 'GL_ACCOUNT'
16294         , p_segment_value           => l_segment
16295         , p_from_segment_code       => l_adr_value_segment_code
16296         , p_from_combination_id     => l_adr_value_combination_id
16297         , p_value_type_code         => l_adr_value_type_code
16298         , p_transaction_coa_id      => l_adr_transaction_coa_id
16299         , p_accounting_coa_id       => l_adr_accounting_coa_id
16300         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16301         , p_flex_value_set_id       => l_adr_flex_value_set_id
16302         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
16303         , p_adr_type_code           => 'S'
16304         , p_component_type          => l_component_type
16305         , p_component_code          => l_component_code
16306         , p_component_type_code     => l_component_type_code
16307         , p_component_appl_id       => l_component_appl_id
16308         , p_amb_context_code        => l_amb_context_code
16309         , p_entity_code             => 'AP_INVOICES'
16310         , p_event_class_code        => 'INVOICES'
16311         , p_side                    => 'CREDIT'
16312         );
16313 
16314   END IF;
16315 
16316    l_segment := AcctDerRule_10(
16317            p_application_id           => p_application_id
16318          , p_ae_header_id             => l_ae_header_id 
16319 , p_source_15 => p_source_15
16323 , p_source_23 => p_source_23
16320 , p_source_15_meaning => p_source_15_meaning
16321 , p_source_22 => p_source_22
16322 , p_source_22_meaning => p_source_22_meaning
16324          , x_transaction_coa_id       => l_adr_transaction_coa_id
16325          , x_accounting_coa_id        => l_adr_accounting_coa_id
16326          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16327          , x_flex_value_set_id        => l_adr_flex_value_set_id
16328          , x_value_type_code          => l_adr_value_type_code
16329          , x_value_combination_id     => l_adr_value_combination_id
16330          , x_value_segment_code       => l_adr_value_segment_code
16331          , p_side                     => 'DEBIT'
16332          , p_override_seg_flag        => 'Y'
16333    );
16334 
16335    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16336 
16337       xla_ae_lines_pkg.set_segment(
16338           p_to_segment_code         => 'GL_ACCOUNT'
16339         , p_segment_value           => l_segment
16340         , p_from_segment_code       => l_adr_value_segment_code
16341         , p_from_combination_id     => l_adr_value_combination_id
16342         , p_value_type_code         => l_adr_value_type_code
16343         , p_transaction_coa_id      => l_adr_transaction_coa_id
16344         , p_accounting_coa_id       => l_adr_accounting_coa_id
16345         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16346         , p_flex_value_set_id       => l_adr_flex_value_set_id
16347         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
16348         , p_adr_type_code           => 'S'
16349         , p_component_type          => l_component_type
16350         , p_component_code          => l_component_code
16351         , p_component_type_code     => l_component_type_code
16352         , p_component_appl_id       => l_component_appl_id
16353         , p_amb_context_code        => l_amb_context_code
16354         , p_entity_code             => 'AP_INVOICES'
16355         , p_event_class_code        => 'INVOICES'
16356         , p_side                    => 'DEBIT'
16357         );
16358 
16359   END IF;
16360 
16361    l_segment := AcctDerRule_23(
16362            p_application_id           => p_application_id
16363          , p_ae_header_id             => l_ae_header_id 
16364 , p_source_15 => p_source_15
16365 , p_source_15_meaning => p_source_15_meaning
16366 , p_source_22 => p_source_22
16367 , p_source_22_meaning => p_source_22_meaning
16368 , p_source_30 => p_source_30
16369          , x_transaction_coa_id       => l_adr_transaction_coa_id
16370          , x_accounting_coa_id        => l_adr_accounting_coa_id
16371          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16372          , x_flex_value_set_id        => l_adr_flex_value_set_id
16373          , x_value_type_code          => l_adr_value_type_code
16374          , x_value_combination_id     => l_adr_value_combination_id
16375          , x_value_segment_code       => l_adr_value_segment_code
16376          , p_side                     => 'ALL'
16377          , p_override_seg_flag        => 'Y'
16378    );
16379 
16380    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
16381 
16382       xla_ae_lines_pkg.set_segment(
16383           p_to_segment_code         => 'GL_BALANCING'
16384         , p_segment_value           => l_segment
16385         , p_from_segment_code       => l_adr_value_segment_code
16386         , p_from_combination_id     => l_adr_value_combination_id
16387         , p_value_type_code         => l_adr_value_type_code
16388         , p_transaction_coa_id      => l_adr_transaction_coa_id
16389         , p_accounting_coa_id       => l_adr_accounting_coa_id
16390         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
16391         , p_flex_value_set_id       => l_adr_flex_value_set_id
16392         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
16393         , p_adr_type_code           => 'S'
16394         , p_component_type          => l_component_type
16395         , p_component_code          => l_component_code
16396         , p_component_type_code     => l_component_type_code
16397         , p_component_appl_id       => l_component_appl_id
16398         , p_amb_context_code        => l_amb_context_code
16399         , p_entity_code             => 'AP_INVOICES'
16400         , p_event_class_code        => 'INVOICES'
16401         , p_side                    => 'ALL'
16402         );
16403 
16404   END IF;
16405 
16406    --
16407    --
16408    END IF;
16409 
16410        --
16411        -- Update the line information that should be overwritten
16412        --
16413        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
16414                                          p_header_num   => 1);
16415        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
16416 
16417        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
16418 
16419        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
16420           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
16421        END IF;
16422 
16423       --
16424       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
16425       --
16426       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
16427           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
16428       ELSE
16429           ---------------------------------------------------------------------------------------------------
16430           -- 4262811a Switch Sign
16434                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16431           ---------------------------------------------------------------------------------------------------
16432           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
16433           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16435           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16436                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16437           -- 5132302
16438           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
16439                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16440 
16441       END IF;
16442 
16443       -- 4955764
16444       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16445       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
16446 
16447 
16448       XLA_AE_LINES_PKG.ValidateCurrentLine;
16449       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16450 
16451       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16452                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
16453                ,p_balance_type_code => l_balance_type_code);
16454 
16455    END IF;
16456 
16457    -----------------------------------------------------------------------------------------
16458    -- 4262811 Multiperiod Accounting
16459    -----------------------------------------------------------------------------------------
16460      -- No MPA option is assigned.
16461 
16462 
16463 END IF;
16464 END IF;
16465 --
16466 
16467 --
16468 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16469    trace
16470       (p_msg      => 'END of AcctLineType_57'
16471       ,p_level    => C_LEVEL_PROCEDURE
16472       ,p_module   => l_log_module);
16473 END IF;
16474 --
16475 EXCEPTION
16476   WHEN xla_exceptions_pkg.application_exception THEN
16477       RAISE;
16478   WHEN OTHERS THEN
16479        xla_exceptions_pkg.raise_message
16480            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_57');
16481 END AcctLineType_57;
16482 --
16483 
16484 ---------------------------------------
16485 --
16486 -- PRIVATE FUNCTION
16487 --         AcctLineType_58
16488 --
16489 ---------------------------------------
16490 PROCEDURE AcctLineType_58 (
16491   p_application_id        IN NUMBER
16492  ,p_event_id              IN NUMBER
16493  ,p_calculate_acctd_flag  IN VARCHAR2
16494  ,p_calculate_g_l_flag    IN VARCHAR2
16495  ,p_actual_flag           IN OUT VARCHAR2
16496  ,p_balance_type_code     OUT VARCHAR2
16497  ,p_gain_or_loss_ref      OUT VARCHAR2
16498  
16499 --Invoice Distribution Description
16500  , p_source_1            IN VARCHAR2
16501 --Automatic Offsets Value
16502  , p_source_15            IN VARCHAR2
16503  , p_source_15_meaning    IN VARCHAR2
16504 --Purchase Order Rate Variance Gain Account
16505  , p_source_20            IN NUMBER
16506 --Invoice Distribution Ledger Amount
16507  , p_source_21            IN NUMBER
16508 --Destination Type of the PO Distribution
16509  , p_source_22            IN VARCHAR2
16510  , p_source_22_meaning    IN VARCHAR2
16511 --Purchase Order Rate Variance Loss Account
16512  , p_source_23            IN NUMBER
16513 --Invoice Distribution Account
16514  , p_source_30            IN NUMBER
16515 --Invoice Distribution Type
16516  , p_source_33            IN VARCHAR2
16517  , p_source_33_meaning    IN VARCHAR2
16518 --Automatic Offsets Flag
16519  , p_source_47            IN VARCHAR2
16520  , p_source_47_meaning    IN VARCHAR2
16521 --Accounting Reversal Indicator
16522  , p_source_53            IN VARCHAR2
16523 --Distribution Link Type
16524  , p_source_55            IN VARCHAR2
16525 --Allocation to Main Distribution Identifier
16526  , p_source_57            IN NUMBER
16527 --Invoice Identifier
16528  , p_source_58            IN NUMBER
16529 --Invoice Distribution Identifier
16530  , p_source_64            IN NUMBER
16531 --Payables Encumbrance Upgrade Credit Account
16532  , p_source_65            IN NUMBER
16533 --Payables Encumbrance Upgrade Credit Amount
16534  , p_source_66            IN NUMBER
16535 --Invoice Currency Code
16536  , p_source_67            IN VARCHAR2
16537 --Payables Encumbrance Upgrade Credit Base Amount
16538  , p_source_68            IN NUMBER
16539 --Payables Encumbrance Upgrade Debit Account
16540  , p_source_69            IN NUMBER
16541 --Payables Encumbrance Upgrade Debit Amount
16542  , p_source_70            IN NUMBER
16543 --Payables Encumbrance Upgrade Debit Base Amount
16544  , p_source_71            IN NUMBER
16545 --Payables Encumbrance Upgrade Option
16546  , p_source_72            IN VARCHAR2
16547 --Deferred Accounting End Date
16548  , p_source_77            IN DATE
16549 --Deferred Accounting Option
16550  , p_source_78            IN VARCHAR2
16551 --Deferred Accounting Start Date
16552  , p_source_79            IN DATE
16553 --Override Accounted Amount Indicator
16554  , p_source_80            IN VARCHAR2
16555  , p_source_80_meaning    IN VARCHAR2
16556 --Invoice Supplier Identifier
16557  , p_source_81            IN NUMBER
16558 --Invoice Supplier Site Identifier
16559  , p_source_82            IN NUMBER
16563  , p_source_84            IN NUMBER
16560 --Third Party Type
16561  , p_source_83            IN VARCHAR2
16562 --Parent Reversal Identifier
16564 --Invoice Distribution Statistical Amount
16565  , p_source_85            IN NUMBER
16566 --Invoice Distribution Tax Line Identifier
16567  , p_source_86            IN NUMBER
16568 --Invoice Distribution Tax Distribution Identifier from Tax
16569  , p_source_87            IN NUMBER
16570 --Invoice Distribution Summary Tax Line Identifier
16571  , p_source_88            IN NUMBER
16572 --Payables Upgrade Credit Encumbrance Type Identifier
16573  , p_source_89            IN NUMBER
16574 --Payables Upgrade Debit Encumbrance Type Identifier
16575  , p_source_90            IN NUMBER
16576 --Business Flow Accounts Payable Application Identifier
16577  , p_source_91            IN NUMBER
16578 --Business Flow Invoice Distribution Type
16579  , p_source_92            IN VARCHAR2
16580 --Business Flow Invoice Entity Code
16581  , p_source_93            IN VARCHAR2
16582 --Business Flow Invoice Distribution Identifier
16583  , p_source_94            IN NUMBER
16584 --Business Flow Invoice Identifier
16585  , p_source_95            IN NUMBER
16586 --Accrue on Receipt Option
16587  , p_source_96            IN VARCHAR2
16588  , p_source_96_meaning    IN VARCHAR2
16589 )
16590 IS
16591 
16592 l_component_type              VARCHAR2(80);
16593 l_component_code              VARCHAR2(30);
16594 l_component_type_code         VARCHAR2(1);
16595 l_component_appl_id           INTEGER;
16596 l_amb_context_code            VARCHAR2(30);
16597 l_entity_code                 VARCHAR2(30);
16598 l_event_class_code            VARCHAR2(30);
16599 l_ae_header_id                NUMBER;
16600 l_event_type_code             VARCHAR2(30);
16601 l_line_definition_code        VARCHAR2(30);
16602 l_line_definition_owner_code  VARCHAR2(1);
16603 --
16604 -- adr variables
16605 l_segment                     VARCHAR2(30);
16606 l_ccid                        NUMBER;
16607 l_adr_transaction_coa_id      NUMBER;
16608 l_adr_accounting_coa_id       NUMBER;
16609 l_adr_flexfield_segment_code  VARCHAR2(30);
16610 l_adr_flex_value_set_id       NUMBER;
16611 l_adr_value_type_code         VARCHAR2(30);
16612 l_adr_value_combination_id    NUMBER;
16613 l_adr_value_segment_code      VARCHAR2(30);
16614 
16615 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
16616 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
16617 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
16618 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
16619 
16620 -- 4262811 Variables ------------------------------------------------------------------------------------------
16621 l_entered_amt_idx             NUMBER;
16622 l_accted_amt_idx              NUMBER;
16623 l_acc_rev_flag                VARCHAR2(1);
16624 l_accrual_line_num            NUMBER;
16625 l_tmp_amt                     NUMBER;
16626 l_acc_rev_natural_side_code   VARCHAR2(1);
16627 
16628 l_num_entries                 NUMBER;
16629 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
16630 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
16631 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
16632 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
16633 l_recog_line_1                NUMBER;
16634 l_recog_line_2                NUMBER;
16635 
16636 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
16637 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
16638 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
16639 
16640 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
16641 
16642 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
16643 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
16644 
16645 ---------------------------------------------------------------------------------------------------------------
16646 
16647 
16648 --
16649 -- bulk performance
16650 --
16651 l_balance_type_code           VARCHAR2(1);
16652 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
16653 l_log_module                  VARCHAR2(240);
16654 
16655 --
16656 -- Upgrade strategy
16657 --
16658 l_actual_upg_option           VARCHAR2(1);
16659 l_enc_upg_option           VARCHAR2(1);
16660 
16661 --
16662 BEGIN
16663 --
16664 IF g_log_enabled THEN
16665       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_58';
16666 END IF;
16667 --
16668 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16669 
16670       trace
16671          (p_msg      => 'BEGIN of AcctLineType_58'
16672          ,p_level    => C_LEVEL_PROCEDURE
16673          ,p_module   => l_log_module);
16674 
16675 END IF;
16676 --
16677 l_component_type             := 'AMB_JLT';
16678 l_component_code             := 'AP_ALC_TAX_EX_RATE_VAR_PREPAY';
16679 l_component_type_code        := 'S';
16680 l_component_appl_id          :=  200;
16681 l_amb_context_code           := 'DEFAULT';
16682 l_entity_code                := 'AP_INVOICES';
16683 l_event_class_code           := 'PREPAYMENTS';
16684 l_event_type_code            := 'PREPAYMENTS_ALL';
16685 l_line_definition_owner_code := 'S';
16686 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
16687 --
16688 l_balance_type_code          := 'A';
16692 l_adr_accounting_coa_id       := NULL;
16689 l_segment                     := NULL;
16690 l_ccid                        := NULL;
16691 l_adr_transaction_coa_id      := NULL;
16693 l_adr_flexfield_segment_code  := NULL;
16694 l_adr_flex_value_set_id       := NULL;
16695 l_adr_value_type_code         := NULL;
16696 l_adr_value_combination_id    := NULL;
16697 l_adr_value_segment_code      := NULL;
16698 
16699 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
16700 l_bflow_class_code           := '';    -- 4219869 Business Flow
16701 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
16702 l_budgetary_control_flag     := 'N';
16703 
16704 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
16705 l_bflow_applied_to_amt       := NULL; -- 5132302
16706 l_entered_amt_idx            := NULL;          -- 4262811
16707 l_accted_amt_idx             := NULL;          -- 4262811
16708 l_acc_rev_flag               := NULL;          -- 4262811
16709 l_accrual_line_num           := NULL;          -- 4262811
16710 l_tmp_amt                    := NULL;          -- 4262811
16711 --
16712 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
16713             (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
16714                return;
16715   END IF;
16716   
16717 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
16718     l_balance_type_code <> 'B' THEN
16719 IF NVL(p_source_33,'
16720 ') =  'NONREC_TAX' AND 
16721 NVL(p_source_96,'
16722 ') =  'Y'
16723  THEN 
16724 
16725    --
16726    XLA_AE_LINES_PKG.SetNewLine;
16727 
16728    p_balance_type_code          := l_balance_type_code;
16729    -- set the flag so later we will know whether the gain loss line needs to be created
16730    
16731    IF(l_balance_type_code = 'A' ) THEN
16732      p_actual_flag :='G';
16733    END IF;
16734 
16735    --
16736    -- bulk performance
16737    --
16738    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
16739                                       p_header_num   => 0); -- 4262811
16740    --
16741    -- set accounting line options
16742    --
16743    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
16744            p_natural_side_code          => 'G'
16745          , p_gain_or_loss_flag          => 'N'
16746          , p_gl_transfer_mode_code      => 'S'
16747          , p_acct_entry_type_code       => 'A'
16748          , p_switch_side_flag           => ''
16749          , p_merge_duplicate_code       => 'A'
16750          );
16751    --
16752    l_acc_rev_natural_side_code := 'C';  -- 4262811
16753    -- 
16754    --
16755    -- set accounting line type info
16756    --
16757    xla_ae_lines_pkg.SetAcctLineType
16758       (p_component_type             => l_component_type
16759       ,p_event_type_code            => l_event_type_code
16760       ,p_line_definition_owner_code => l_line_definition_owner_code
16761       ,p_line_definition_code       => l_line_definition_code
16762       ,p_accounting_line_code       => l_component_code
16763       ,p_accounting_line_type_code  => l_component_type_code
16764       ,p_accounting_line_appl_id    => l_component_appl_id
16765       ,p_amb_context_code           => l_amb_context_code
16766       ,p_entity_code                => l_entity_code
16767       ,p_event_class_code           => l_event_class_code);
16768    --
16769    -- set accounting class
16770    --
16771    xla_ae_lines_pkg.SetAcctClass(
16772            p_accounting_class_code  => 'TERV'
16773          , p_ae_header_id           => l_ae_header_id
16774          );
16775 
16776    --
16777    -- set rounding class
16778    --
16779    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
16780                       'TERV';
16781 
16782    --
16783    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
16784    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
16785    --
16786    -- bulk performance
16787    --
16788    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
16789 
16790    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
16791       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
16792 
16793    -- 4955764
16794    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16795       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
16796 
16797    -- 4458381 Public Sector Enh
16798    
16799    --
16800    -- set accounting attributes for the line type
16801    --
16802    l_entered_amt_idx := NULL;
16803    l_accted_amt_idx  := 23;
16804    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
16805    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
16806    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
16807    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
16808    l_rec_acct_attrs.array_num_value(2)  := 
16809 xla_ae_sources_pkg.GetSystemSourceNum(
16810    p_source_code           => 'XLA_EVENT_APPL_ID'
16811  , p_source_type_code      => 'Y'
16812  , p_source_application_id =>  602
16813 );
16817    l_rec_acct_attrs.array_char_value(4)  := 
16814    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
16815    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
16816    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
16818 xla_ae_sources_pkg.GetSystemSourceChar(
16819    p_source_code           => 'XLA_ENTITY_CODE'
16820  , p_source_type_code      => 'Y'
16821  , p_source_application_id =>  602
16822 );
16823    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
16824    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
16825    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
16826    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
16827    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
16828    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
16829    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
16830    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
16831    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
16832    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
16833    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
16834    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
16835    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
16836    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
16837    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
16838    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
16839    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
16840    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
16841    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
16842    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
16843    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
16844    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
16845    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
16846    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
16847    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
16848    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
16849    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
16850    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
16851    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
16852    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
16853    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
16854    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
16855    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
16856    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
16857    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
16858    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
16859    l_rec_acct_attrs.array_acct_attr_code(23) := 'LEDGER_AMOUNT';
16860    l_rec_acct_attrs.array_num_value(23)  := p_source_21;
16861    l_rec_acct_attrs.array_acct_attr_code(24) := 'MULTIPERIOD_END_DATE';
16862    l_rec_acct_attrs.array_date_value(24)  := p_source_77;
16863    l_rec_acct_attrs.array_acct_attr_code(25) := 'MULTIPERIOD_OPTION';
16864    l_rec_acct_attrs.array_char_value(25)  := p_source_78;
16865    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_START_DATE';
16866    l_rec_acct_attrs.array_date_value(26)  := p_source_79;
16867    l_rec_acct_attrs.array_acct_attr_code(27) := 'OVERRIDE_ACCTD_AMT_FLAG';
16868    l_rec_acct_attrs.array_char_value(27)  := p_source_80;
16869    l_rec_acct_attrs.array_acct_attr_code(28) := 'PARTY_ID';
16870    l_rec_acct_attrs.array_num_value(28)  := p_source_81;
16871    l_rec_acct_attrs.array_acct_attr_code(29) := 'PARTY_SITE_ID';
16872    l_rec_acct_attrs.array_num_value(29)  := p_source_82;
16873    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_TYPE';
16874    l_rec_acct_attrs.array_char_value(30)  := p_source_83;
16875    l_rec_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_ID1';
16876    l_rec_acct_attrs.array_num_value(31)  :=  to_char(p_source_84);
16877    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_TYPE';
16878    l_rec_acct_attrs.array_char_value(32)  := p_source_55;
16879    l_rec_acct_attrs.array_acct_attr_code(33) := 'STATISTICAL_AMOUNT';
16880    l_rec_acct_attrs.array_num_value(33)  := p_source_85;
16881    l_rec_acct_attrs.array_acct_attr_code(34) := 'TAX_LINE_REF_ID';
16882    l_rec_acct_attrs.array_num_value(34)  := p_source_86;
16883    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_REC_NREC_DIST_REF_ID';
16884    l_rec_acct_attrs.array_num_value(35)  := p_source_87;
16885    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_SUMMARY_LINE_REF_ID';
16886    l_rec_acct_attrs.array_num_value(36)  := p_source_88;
16887    l_rec_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
16888    l_rec_acct_attrs.array_num_value(37)  := p_source_89;
16889    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
16890    l_rec_acct_attrs.array_num_value(38)  := p_source_90;
16891 
16892    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
16893    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
16894 
16895    ---------------------------------------------------------------------------------------------------------------
16896    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
16897    ---------------------------------------------------------------------------------------------------------------
16901    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16898    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
16899 
16900    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16902 
16903    IF xla_accounting_cache_pkg.GetValueChar
16904          (p_source_code         => 'LEDGER_CATEGORY_CODE'
16905          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
16906    AND l_bflow_method_code = 'PRIOR_ENTRY'
16907 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
16908    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
16909          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
16910        )
16911    THEN
16912          xla_ae_lines_pkg.BflowUpgEntry
16913            (p_business_method_code    => l_bflow_method_code
16914            ,p_business_class_code     => l_bflow_class_code
16915            ,p_balance_type            => l_balance_type_code);
16916    ELSE
16917       NULL;
16918 -- No business flow processing for business flow method of NONE.
16919    END IF;
16920 
16921    --
16922    -- call analytical criteria
16923    --
16924    
16925    --
16926    -- call description
16927    --
16928    
16929 xla_ae_lines_pkg.SetLineDescription(
16930    p_ae_header_id => l_ae_header_id
16931   ,p_description  => Description_1 (
16932      p_application_id         => p_application_id
16933    , p_ae_header_id           => l_ae_header_id 
16934 , p_source_1 => p_source_1
16935    )
16936 );
16937 
16938 
16939    --
16940    -- call ADRs
16941    -- Bug 4922099
16942    --
16943    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16944         (NVL(l_actual_upg_option, 'N') = 'O') OR
16945         (NVL(l_enc_upg_option, 'N') = 'O')
16946       )
16947    THEN
16948    NULL;
16949    --
16950    --
16951    
16952   l_ccid := AcctDerRule_30(
16953            p_application_id           => p_application_id
16954          , p_ae_header_id             => l_ae_header_id 
16955 , p_source_15 => p_source_15
16956 , p_source_15_meaning => p_source_15_meaning
16957 , p_source_20 => p_source_20
16958 , p_source_21 => p_source_21
16959 , p_source_22 => p_source_22
16960 , p_source_22_meaning => p_source_22_meaning
16961 , p_source_23 => p_source_23
16962 , p_source_30 => p_source_30
16963 , p_source_47 => p_source_47
16964 , p_source_47_meaning => p_source_47_meaning
16965          , x_transaction_coa_id       => l_adr_transaction_coa_id
16966          , x_accounting_coa_id        => l_adr_accounting_coa_id
16967          , x_value_type_code          => l_adr_value_type_code
16968          , p_side                     => 'ALL'
16969    );
16970 
16971    xla_ae_lines_pkg.set_ccid(
16972     p_code_combination_id          => l_ccid
16973   , p_value_type_code              => l_adr_value_type_code
16974   , p_transaction_coa_id           => l_adr_transaction_coa_id
16975   , p_accounting_coa_id            => l_adr_accounting_coa_id
16976   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
16977   , p_adr_type_code                => 'S'
16978   , p_component_type               => l_component_type
16979   , p_component_code               => l_component_code
16980   , p_component_type_code          => l_component_type_code
16981   , p_component_appl_id            => l_component_appl_id
16982   , p_amb_context_code             => l_amb_context_code
16983   , p_side                         => 'ALL'
16984   );
16985 
16986 
16987    l_segment := AcctDerRule_9(
16988            p_application_id           => p_application_id
16989          , p_ae_header_id             => l_ae_header_id 
16990 , p_source_15 => p_source_15
16991 , p_source_15_meaning => p_source_15_meaning
16992 , p_source_20 => p_source_20
16993 , p_source_22 => p_source_22
16994 , p_source_22_meaning => p_source_22_meaning
16995          , x_transaction_coa_id       => l_adr_transaction_coa_id
16996          , x_accounting_coa_id        => l_adr_accounting_coa_id
16997          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
16998          , x_flex_value_set_id        => l_adr_flex_value_set_id
16999          , x_value_type_code          => l_adr_value_type_code
17000          , x_value_combination_id     => l_adr_value_combination_id
17001          , x_value_segment_code       => l_adr_value_segment_code
17002          , p_side                     => 'CREDIT'
17003          , p_override_seg_flag        => 'Y'
17004    );
17005 
17006    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
17007 
17008       xla_ae_lines_pkg.set_segment(
17009           p_to_segment_code         => 'GL_ACCOUNT'
17010         , p_segment_value           => l_segment
17011         , p_from_segment_code       => l_adr_value_segment_code
17012         , p_from_combination_id     => l_adr_value_combination_id
17013         , p_value_type_code         => l_adr_value_type_code
17014         , p_transaction_coa_id      => l_adr_transaction_coa_id
17015         , p_accounting_coa_id       => l_adr_accounting_coa_id
17016         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
17017         , p_flex_value_set_id       => l_adr_flex_value_set_id
17018         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
17019         , p_adr_type_code           => 'S'
17023         , p_component_appl_id       => l_component_appl_id
17020         , p_component_type          => l_component_type
17021         , p_component_code          => l_component_code
17022         , p_component_type_code     => l_component_type_code
17024         , p_amb_context_code        => l_amb_context_code
17025         , p_entity_code             => 'AP_INVOICES'
17026         , p_event_class_code        => 'PREPAYMENTS'
17027         , p_side                    => 'CREDIT'
17028         );
17029 
17030   END IF;
17031 
17032    l_segment := AcctDerRule_10(
17033            p_application_id           => p_application_id
17034          , p_ae_header_id             => l_ae_header_id 
17035 , p_source_15 => p_source_15
17036 , p_source_15_meaning => p_source_15_meaning
17037 , p_source_22 => p_source_22
17038 , p_source_22_meaning => p_source_22_meaning
17039 , p_source_23 => p_source_23
17040          , x_transaction_coa_id       => l_adr_transaction_coa_id
17041          , x_accounting_coa_id        => l_adr_accounting_coa_id
17042          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
17043          , x_flex_value_set_id        => l_adr_flex_value_set_id
17044          , x_value_type_code          => l_adr_value_type_code
17045          , x_value_combination_id     => l_adr_value_combination_id
17046          , x_value_segment_code       => l_adr_value_segment_code
17047          , p_side                     => 'DEBIT'
17048          , p_override_seg_flag        => 'Y'
17049    );
17050 
17051    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
17052 
17053       xla_ae_lines_pkg.set_segment(
17054           p_to_segment_code         => 'GL_ACCOUNT'
17055         , p_segment_value           => l_segment
17056         , p_from_segment_code       => l_adr_value_segment_code
17057         , p_from_combination_id     => l_adr_value_combination_id
17058         , p_value_type_code         => l_adr_value_type_code
17059         , p_transaction_coa_id      => l_adr_transaction_coa_id
17060         , p_accounting_coa_id       => l_adr_accounting_coa_id
17061         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
17062         , p_flex_value_set_id       => l_adr_flex_value_set_id
17063         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
17064         , p_adr_type_code           => 'S'
17065         , p_component_type          => l_component_type
17066         , p_component_code          => l_component_code
17067         , p_component_type_code     => l_component_type_code
17068         , p_component_appl_id       => l_component_appl_id
17069         , p_amb_context_code        => l_amb_context_code
17070         , p_entity_code             => 'AP_INVOICES'
17071         , p_event_class_code        => 'PREPAYMENTS'
17072         , p_side                    => 'DEBIT'
17073         );
17074 
17075   END IF;
17076 
17077    l_segment := AcctDerRule_23(
17078            p_application_id           => p_application_id
17079          , p_ae_header_id             => l_ae_header_id 
17080 , p_source_15 => p_source_15
17081 , p_source_15_meaning => p_source_15_meaning
17082 , p_source_22 => p_source_22
17083 , p_source_22_meaning => p_source_22_meaning
17084 , p_source_30 => p_source_30
17085          , x_transaction_coa_id       => l_adr_transaction_coa_id
17086          , x_accounting_coa_id        => l_adr_accounting_coa_id
17087          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
17088          , x_flex_value_set_id        => l_adr_flex_value_set_id
17089          , x_value_type_code          => l_adr_value_type_code
17090          , x_value_combination_id     => l_adr_value_combination_id
17091          , x_value_segment_code       => l_adr_value_segment_code
17092          , p_side                     => 'ALL'
17093          , p_override_seg_flag        => 'Y'
17094    );
17095 
17096    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
17097 
17098       xla_ae_lines_pkg.set_segment(
17099           p_to_segment_code         => 'GL_BALANCING'
17100         , p_segment_value           => l_segment
17101         , p_from_segment_code       => l_adr_value_segment_code
17102         , p_from_combination_id     => l_adr_value_combination_id
17103         , p_value_type_code         => l_adr_value_type_code
17104         , p_transaction_coa_id      => l_adr_transaction_coa_id
17105         , p_accounting_coa_id       => l_adr_accounting_coa_id
17106         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
17107         , p_flex_value_set_id       => l_adr_flex_value_set_id
17108         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
17109         , p_adr_type_code           => 'S'
17110         , p_component_type          => l_component_type
17111         , p_component_code          => l_component_code
17112         , p_component_type_code     => l_component_type_code
17113         , p_component_appl_id       => l_component_appl_id
17114         , p_amb_context_code        => l_amb_context_code
17115         , p_entity_code             => 'AP_INVOICES'
17116         , p_event_class_code        => 'PREPAYMENTS'
17117         , p_side                    => 'ALL'
17118         );
17119 
17120   END IF;
17121 
17122    --
17123    --
17124    END IF;
17125    --
17126    -- Bug 4922099
17127    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17128           (NVL(l_enc_upg_option, 'N') = 'O')
17129         ) AND
17130         (l_bflow_method_code = 'PRIOR_ENTRY')
17131       )
17132    THEN
17133       IF
17134       --
17138       xla_accounting_err_pkg.build_message
17135       1 = 2
17136       --
17137       THEN
17139                                     (p_appli_s_name            => 'XLA'
17140                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17141                                     ,p_token_1                 => 'LINE_NUMBER'
17142                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
17143                                     ,p_token_2                 => 'LINE_TYPE_NAME'
17144                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
17145                                                                              l_component_type
17146                                                                             ,l_component_code
17147                                                                             ,l_component_type_code
17148                                                                             ,l_component_appl_id
17149                                                                             ,l_amb_context_code
17150                                                                             ,l_entity_code
17151                                                                             ,l_event_class_code
17152                                                                            )
17153                                     ,p_token_3                 => 'OWNER'
17154                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
17155                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
17156                                                                           ,p_lookup_code    => l_component_type_code
17157                                                                          )
17158                                     ,p_token_4                 => 'PRODUCT_NAME'
17159                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
17160                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
17161                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
17162                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
17163                                     ,p_ae_header_id            =>  NULL
17164                                        );
17165 
17166         IF (C_LEVEL_ERROR>= g_log_level) THEN
17167                  trace
17168                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17169                       ,p_level    => C_LEVEL_ERROR
17170                       ,p_module   => l_log_module);
17171         END IF;
17172       END IF;
17173    END IF;
17174    --
17175    --
17176    ------------------------------------------------------------------------------------------------
17177    -- 4219869 Business Flow
17178    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
17179    -- Prior Entry.  Currently, the following code is always generated.
17180    ------------------------------------------------------------------------------------------------
17181    XLA_AE_LINES_PKG.ValidateCurrentLine;
17182 
17183    ------------------------------------------------------------------------------------
17184    -- 4219869 Business Flow
17185    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
17186    ------------------------------------------------------------------------------------
17187    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17188 
17189    ----------------------------------------------------------------------------------
17190    -- 4219869 Business Flow
17191    -- Update journal entry status -- Need to generate this within IF <condition>
17192    ----------------------------------------------------------------------------------
17193    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17194          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
17195          ,p_balance_type_code => l_balance_type_code
17196          );
17197 
17198    -------------------------------------------------------------------------------------------
17199    -- 4262811 - Generate the Accrual Reversal lines
17200    -------------------------------------------------------------------------------------------
17201    BEGIN
17202       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
17203                               (g_array_event(p_event_id).array_value_num('header_index'));
17204       IF l_acc_rev_flag IS NULL THEN
17205          l_acc_rev_flag := 'N';
17206       END IF;
17207    EXCEPTION
17208       WHEN OTHERS THEN
17209          l_acc_rev_flag := 'N';
17210    END;
17211    --
17212    IF (l_acc_rev_flag = 'Y') THEN
17213 
17214        -- 4645092  ------------------------------------------------------------------------------
17215        -- To allow MPA report to determine if it should generate report process
17216        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
17217        ------------------------------------------------------------------------------------------
17218 
17219        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
17220        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
17224    --
17221    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
17222    -- call ADRs
17223    -- Bug 4922099
17225    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17226         (NVL(l_actual_upg_option, 'N') = 'O') OR
17227         (NVL(l_enc_upg_option, 'N') = 'O')
17228       )
17229    THEN
17230    NULL;
17231    --
17232    --
17233    
17234   l_ccid := AcctDerRule_30(
17235            p_application_id           => p_application_id
17236          , p_ae_header_id             => l_ae_header_id 
17237 , p_source_15 => p_source_15
17238 , p_source_15_meaning => p_source_15_meaning
17239 , p_source_20 => p_source_20
17240 , p_source_21 => p_source_21
17241 , p_source_22 => p_source_22
17242 , p_source_22_meaning => p_source_22_meaning
17243 , p_source_23 => p_source_23
17244 , p_source_30 => p_source_30
17245 , p_source_47 => p_source_47
17246 , p_source_47_meaning => p_source_47_meaning
17247          , x_transaction_coa_id       => l_adr_transaction_coa_id
17248          , x_accounting_coa_id        => l_adr_accounting_coa_id
17249          , x_value_type_code          => l_adr_value_type_code
17250          , p_side                     => 'ALL'
17251    );
17252 
17253    xla_ae_lines_pkg.set_ccid(
17254     p_code_combination_id          => l_ccid
17255   , p_value_type_code              => l_adr_value_type_code
17256   , p_transaction_coa_id           => l_adr_transaction_coa_id
17257   , p_accounting_coa_id            => l_adr_accounting_coa_id
17258   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
17259   , p_adr_type_code                => 'S'
17260   , p_component_type               => l_component_type
17261   , p_component_code               => l_component_code
17262   , p_component_type_code          => l_component_type_code
17263   , p_component_appl_id            => l_component_appl_id
17264   , p_amb_context_code             => l_amb_context_code
17265   , p_side                         => 'ALL'
17266   );
17267 
17268 
17269    l_segment := AcctDerRule_9(
17270            p_application_id           => p_application_id
17271          , p_ae_header_id             => l_ae_header_id 
17272 , p_source_15 => p_source_15
17273 , p_source_15_meaning => p_source_15_meaning
17274 , p_source_20 => p_source_20
17275 , p_source_22 => p_source_22
17276 , p_source_22_meaning => p_source_22_meaning
17277          , x_transaction_coa_id       => l_adr_transaction_coa_id
17278          , x_accounting_coa_id        => l_adr_accounting_coa_id
17279          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
17280          , x_flex_value_set_id        => l_adr_flex_value_set_id
17281          , x_value_type_code          => l_adr_value_type_code
17282          , x_value_combination_id     => l_adr_value_combination_id
17283          , x_value_segment_code       => l_adr_value_segment_code
17284          , p_side                     => 'CREDIT'
17285          , p_override_seg_flag        => 'Y'
17286    );
17287 
17288    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
17289 
17290       xla_ae_lines_pkg.set_segment(
17291           p_to_segment_code         => 'GL_ACCOUNT'
17292         , p_segment_value           => l_segment
17293         , p_from_segment_code       => l_adr_value_segment_code
17294         , p_from_combination_id     => l_adr_value_combination_id
17295         , p_value_type_code         => l_adr_value_type_code
17296         , p_transaction_coa_id      => l_adr_transaction_coa_id
17297         , p_accounting_coa_id       => l_adr_accounting_coa_id
17298         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
17299         , p_flex_value_set_id       => l_adr_flex_value_set_id
17300         , p_adr_code                => 'AP_ERV_GAIN_NAT_ACCT_SEG'
17301         , p_adr_type_code           => 'S'
17302         , p_component_type          => l_component_type
17303         , p_component_code          => l_component_code
17304         , p_component_type_code     => l_component_type_code
17305         , p_component_appl_id       => l_component_appl_id
17306         , p_amb_context_code        => l_amb_context_code
17307         , p_entity_code             => 'AP_INVOICES'
17308         , p_event_class_code        => 'PREPAYMENTS'
17309         , p_side                    => 'CREDIT'
17310         );
17311 
17312   END IF;
17313 
17314    l_segment := AcctDerRule_10(
17315            p_application_id           => p_application_id
17316          , p_ae_header_id             => l_ae_header_id 
17317 , p_source_15 => p_source_15
17318 , p_source_15_meaning => p_source_15_meaning
17319 , p_source_22 => p_source_22
17320 , p_source_22_meaning => p_source_22_meaning
17321 , p_source_23 => p_source_23
17322          , x_transaction_coa_id       => l_adr_transaction_coa_id
17323          , x_accounting_coa_id        => l_adr_accounting_coa_id
17324          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
17325          , x_flex_value_set_id        => l_adr_flex_value_set_id
17326          , x_value_type_code          => l_adr_value_type_code
17327          , x_value_combination_id     => l_adr_value_combination_id
17328          , x_value_segment_code       => l_adr_value_segment_code
17329          , p_side                     => 'DEBIT'
17330          , p_override_seg_flag        => 'Y'
17331    );
17332 
17333    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
17334 
17335       xla_ae_lines_pkg.set_segment(
17336           p_to_segment_code         => 'GL_ACCOUNT'
17340         , p_value_type_code         => l_adr_value_type_code
17337         , p_segment_value           => l_segment
17338         , p_from_segment_code       => l_adr_value_segment_code
17339         , p_from_combination_id     => l_adr_value_combination_id
17341         , p_transaction_coa_id      => l_adr_transaction_coa_id
17342         , p_accounting_coa_id       => l_adr_accounting_coa_id
17343         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
17344         , p_flex_value_set_id       => l_adr_flex_value_set_id
17345         , p_adr_code                => 'AP_ERV_LOSS_NAT_ACCT_SEG'
17346         , p_adr_type_code           => 'S'
17347         , p_component_type          => l_component_type
17348         , p_component_code          => l_component_code
17349         , p_component_type_code     => l_component_type_code
17350         , p_component_appl_id       => l_component_appl_id
17351         , p_amb_context_code        => l_amb_context_code
17352         , p_entity_code             => 'AP_INVOICES'
17353         , p_event_class_code        => 'PREPAYMENTS'
17354         , p_side                    => 'DEBIT'
17355         );
17356 
17357   END IF;
17358 
17359    l_segment := AcctDerRule_23(
17360            p_application_id           => p_application_id
17361          , p_ae_header_id             => l_ae_header_id 
17362 , p_source_15 => p_source_15
17363 , p_source_15_meaning => p_source_15_meaning
17364 , p_source_22 => p_source_22
17365 , p_source_22_meaning => p_source_22_meaning
17366 , p_source_30 => p_source_30
17367          , x_transaction_coa_id       => l_adr_transaction_coa_id
17368          , x_accounting_coa_id        => l_adr_accounting_coa_id
17369          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
17370          , x_flex_value_set_id        => l_adr_flex_value_set_id
17371          , x_value_type_code          => l_adr_value_type_code
17372          , x_value_combination_id     => l_adr_value_combination_id
17373          , x_value_segment_code       => l_adr_value_segment_code
17374          , p_side                     => 'ALL'
17375          , p_override_seg_flag        => 'Y'
17376    );
17377 
17378    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
17379 
17380       xla_ae_lines_pkg.set_segment(
17381           p_to_segment_code         => 'GL_BALANCING'
17382         , p_segment_value           => l_segment
17383         , p_from_segment_code       => l_adr_value_segment_code
17384         , p_from_combination_id     => l_adr_value_combination_id
17385         , p_value_type_code         => l_adr_value_type_code
17386         , p_transaction_coa_id      => l_adr_transaction_coa_id
17387         , p_accounting_coa_id       => l_adr_accounting_coa_id
17388         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
17389         , p_flex_value_set_id       => l_adr_flex_value_set_id
17390         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
17391         , p_adr_type_code           => 'S'
17392         , p_component_type          => l_component_type
17393         , p_component_code          => l_component_code
17394         , p_component_type_code     => l_component_type_code
17395         , p_component_appl_id       => l_component_appl_id
17396         , p_amb_context_code        => l_amb_context_code
17397         , p_entity_code             => 'AP_INVOICES'
17398         , p_event_class_code        => 'PREPAYMENTS'
17399         , p_side                    => 'ALL'
17400         );
17401 
17402   END IF;
17403 
17404    --
17405    --
17406    END IF;
17407 
17408        --
17409        -- Update the line information that should be overwritten
17410        --
17411        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
17412                                          p_header_num   => 1);
17413        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
17414 
17415        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
17416 
17417        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
17418           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
17419        END IF;
17420 
17421       --
17422       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
17423       --
17424       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
17425           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
17426       ELSE
17427           ---------------------------------------------------------------------------------------------------
17428           -- 4262811a Switch Sign
17429           ---------------------------------------------------------------------------------------------------
17430           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
17431           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17432                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17433           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17434                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17435           -- 5132302
17436           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
17440 
17437                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17438 
17439       END IF;
17441       -- 4955764
17442       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17443       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
17444 
17445 
17446       XLA_AE_LINES_PKG.ValidateCurrentLine;
17447       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17448 
17449       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17450                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
17451                ,p_balance_type_code => l_balance_type_code);
17452 
17453    END IF;
17454 
17455    -----------------------------------------------------------------------------------------
17456    -- 4262811 Multiperiod Accounting
17457    -----------------------------------------------------------------------------------------
17458      -- No MPA option is assigned.
17459 
17460 
17461 END IF;
17462 END IF;
17463 --
17464 
17465 --
17466 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17467    trace
17468       (p_msg      => 'END of AcctLineType_58'
17469       ,p_level    => C_LEVEL_PROCEDURE
17470       ,p_module   => l_log_module);
17471 END IF;
17472 --
17473 EXCEPTION
17474   WHEN xla_exceptions_pkg.application_exception THEN
17475       RAISE;
17476   WHEN OTHERS THEN
17477        xla_exceptions_pkg.raise_message
17478            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_58');
17479 END AcctLineType_58;
17480 --
17481 
17482 ---------------------------------------
17483 --
17484 -- PRIVATE FUNCTION
17485 --         AcctLineType_59
17486 --
17487 ---------------------------------------
17488 PROCEDURE AcctLineType_59 (
17489   p_application_id        IN NUMBER
17490  ,p_event_id              IN NUMBER
17491  ,p_calculate_acctd_flag  IN VARCHAR2
17492  ,p_calculate_g_l_flag    IN VARCHAR2
17493  ,p_actual_flag           IN OUT VARCHAR2
17494  ,p_balance_type_code     OUT VARCHAR2
17495  ,p_gain_or_loss_ref      OUT VARCHAR2
17496  
17497 --Bank Charges Account
17498  , p_source_14            IN NUMBER
17499 --Automatic Offsets Value
17500  , p_source_15            IN VARCHAR2
17501  , p_source_15_meaning    IN VARCHAR2
17502 --Invoice Distribution Account
17503  , p_source_30            IN NUMBER
17504 --Accounting Reversal Indicator
17505  , p_source_53            IN VARCHAR2
17506 --Distribution Link Type
17507  , p_source_55            IN VARCHAR2
17508 --Override Accounted Amount Indicator
17509  , p_source_80            IN VARCHAR2
17510  , p_source_80_meaning    IN VARCHAR2
17511 --Third Party Type
17512  , p_source_83            IN VARCHAR2
17513 --Invoice Distribution Tax Line Identifier
17514  , p_source_86            IN NUMBER
17515 --Invoice Distribution Summary Tax Line Identifier
17516  , p_source_88            IN NUMBER
17517 --Business Flow Accounts Payable Application Identifier
17518  , p_source_91            IN NUMBER
17519 --When to Account for Payment Option
17520  , p_source_97            IN VARCHAR2
17521 --Payment Distribution Type
17522  , p_source_98            IN VARCHAR2
17523  , p_source_98_meaning    IN VARCHAR2
17524 --Payment Distribution Amount
17525  , p_source_99            IN NUMBER
17526 --Business Flow Payment Distribution Type
17527  , p_source_100            IN VARCHAR2
17528 --Business Flow Payment Entity Code
17529  , p_source_101            IN VARCHAR2
17530 --Business Flow Payment Distribution Identifier
17531  , p_source_102            IN NUMBER
17532 --Business Flow Payment Identifier
17533  , p_source_103            IN NUMBER
17534 --Payment Distribution Identifier
17535  , p_source_104            IN NUMBER
17536 --Cleared Currency Code
17537  , p_source_105            IN VARCHAR2
17538 --Cleared Exchange Date
17539  , p_source_106            IN DATE
17540 --Cleared Exchange Rate
17541  , p_source_107            IN NUMBER
17542 --Cleared Exchange Rate Type
17543  , p_source_108            IN VARCHAR2
17544 --Payment Distribution (Cleared Rate) Ledger Amount
17545  , p_source_109            IN NUMBER
17546 --Payment Supplier Identifier
17547  , p_source_110            IN NUMBER
17548 --Payment Supplier Site Identifier
17549  , p_source_111            IN NUMBER
17550 --Payment Distribution Reversed Identifier
17551  , p_source_112            IN NUMBER
17552 )
17553 IS
17554 
17555 l_component_type              VARCHAR2(80);
17556 l_component_code              VARCHAR2(30);
17557 l_component_type_code         VARCHAR2(1);
17558 l_component_appl_id           INTEGER;
17559 l_amb_context_code            VARCHAR2(30);
17560 l_entity_code                 VARCHAR2(30);
17561 l_event_class_code            VARCHAR2(30);
17562 l_ae_header_id                NUMBER;
17563 l_event_type_code             VARCHAR2(30);
17564 l_line_definition_code        VARCHAR2(30);
17565 l_line_definition_owner_code  VARCHAR2(1);
17566 --
17567 -- adr variables
17568 l_segment                     VARCHAR2(30);
17569 l_ccid                        NUMBER;
17570 l_adr_transaction_coa_id      NUMBER;
17571 l_adr_accounting_coa_id       NUMBER;
17572 l_adr_flexfield_segment_code  VARCHAR2(30);
17573 l_adr_flex_value_set_id       NUMBER;
17577 
17574 l_adr_value_type_code         VARCHAR2(30);
17575 l_adr_value_combination_id    NUMBER;
17576 l_adr_value_segment_code      VARCHAR2(30);
17578 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
17579 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
17580 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
17581 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
17582 
17583 -- 4262811 Variables ------------------------------------------------------------------------------------------
17584 l_entered_amt_idx             NUMBER;
17585 l_accted_amt_idx              NUMBER;
17586 l_acc_rev_flag                VARCHAR2(1);
17587 l_accrual_line_num            NUMBER;
17588 l_tmp_amt                     NUMBER;
17589 l_acc_rev_natural_side_code   VARCHAR2(1);
17590 
17591 l_num_entries                 NUMBER;
17592 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
17593 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
17594 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
17595 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
17596 l_recog_line_1                NUMBER;
17597 l_recog_line_2                NUMBER;
17598 
17599 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
17600 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
17601 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
17602 
17603 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
17604 
17605 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
17606 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
17607 
17608 ---------------------------------------------------------------------------------------------------------------
17609 
17610 
17611 --
17612 -- bulk performance
17613 --
17614 l_balance_type_code           VARCHAR2(1);
17615 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
17616 l_log_module                  VARCHAR2(240);
17617 
17618 --
17619 -- Upgrade strategy
17620 --
17621 l_actual_upg_option           VARCHAR2(1);
17622 l_enc_upg_option           VARCHAR2(1);
17623 
17624 --
17625 BEGIN
17626 --
17627 IF g_log_enabled THEN
17628       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_59';
17629 END IF;
17630 --
17631 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17632 
17633       trace
17634          (p_msg      => 'BEGIN of AcctLineType_59'
17635          ,p_level    => C_LEVEL_PROCEDURE
17636          ,p_module   => l_log_module);
17637 
17638 END IF;
17639 --
17640 l_component_type             := 'AMB_JLT';
17641 l_component_code             := 'AP_BANK_CHARGES_CLEAR';
17642 l_component_type_code        := 'S';
17643 l_component_appl_id          :=  200;
17644 l_amb_context_code           := 'DEFAULT';
17645 l_entity_code                := 'AP_PAYMENTS';
17646 l_event_class_code           := 'RECONCILED PAYMENTS';
17647 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
17648 l_line_definition_owner_code := 'S';
17649 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
17650 --
17651 l_balance_type_code          := 'A';
17652 l_segment                     := NULL;
17653 l_ccid                        := NULL;
17654 l_adr_transaction_coa_id      := NULL;
17655 l_adr_accounting_coa_id       := NULL;
17656 l_adr_flexfield_segment_code  := NULL;
17657 l_adr_flex_value_set_id       := NULL;
17658 l_adr_value_type_code         := NULL;
17659 l_adr_value_combination_id    := NULL;
17660 l_adr_value_segment_code      := NULL;
17661 
17662 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
17663 l_bflow_class_code           := '';    -- 4219869 Business Flow
17664 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
17665 l_budgetary_control_flag     := 'N';
17666 
17667 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
17668 l_bflow_applied_to_amt       := NULL; -- 5132302
17669 l_entered_amt_idx            := NULL;          -- 4262811
17670 l_accted_amt_idx             := NULL;          -- 4262811
17671 l_acc_rev_flag               := NULL;          -- 4262811
17672 l_accrual_line_num           := NULL;          -- 4262811
17673 l_tmp_amt                    := NULL;          -- 4262811
17674 --
17675  
17676 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
17677     l_balance_type_code <> 'B' THEN
17678 IF NVL(p_source_97,'
17679 ') <>  'ISSUE_ISSUE' AND 
17680 NVL(p_source_98,'
17681 ') =  'BANK CHARGE'
17682  THEN 
17683 
17684    --
17685    XLA_AE_LINES_PKG.SetNewLine;
17686 
17687    p_balance_type_code          := l_balance_type_code;
17688    -- set the flag so later we will know whether the gain loss line needs to be created
17689    
17690    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
17691      p_actual_flag :='A';
17692    END IF;
17693 
17694    --
17695    -- bulk performance
17696    --
17697    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
17698                                       p_header_num   => 0); -- 4262811
17699    --
17700    -- set accounting line options
17701    --
17702    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
17703            p_natural_side_code          => 'D'
17707          , p_switch_side_flag           => 'Y'
17704          , p_gain_or_loss_flag          => 'N'
17705          , p_gl_transfer_mode_code      => 'S'
17706          , p_acct_entry_type_code       => 'A'
17708          , p_merge_duplicate_code       => 'A'
17709          );
17710    --
17711    l_acc_rev_natural_side_code := 'C';  -- 4262811
17712    -- 
17713    --
17714    -- set accounting line type info
17715    --
17716    xla_ae_lines_pkg.SetAcctLineType
17717       (p_component_type             => l_component_type
17718       ,p_event_type_code            => l_event_type_code
17719       ,p_line_definition_owner_code => l_line_definition_owner_code
17720       ,p_line_definition_code       => l_line_definition_code
17721       ,p_accounting_line_code       => l_component_code
17722       ,p_accounting_line_type_code  => l_component_type_code
17723       ,p_accounting_line_appl_id    => l_component_appl_id
17724       ,p_amb_context_code           => l_amb_context_code
17725       ,p_entity_code                => l_entity_code
17726       ,p_event_class_code           => l_event_class_code);
17727    --
17728    -- set accounting class
17729    --
17730    xla_ae_lines_pkg.SetAcctClass(
17731            p_accounting_class_code  => 'BANK_CHG'
17732          , p_ae_header_id           => l_ae_header_id
17733          );
17734 
17735    --
17736    -- set rounding class
17737    --
17738    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
17739                       'BANK_CHG';
17740 
17741    --
17742    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
17743    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
17744    --
17745    -- bulk performance
17746    --
17747    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
17748 
17749    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
17750       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
17751 
17752    -- 4955764
17753    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17754       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
17755 
17756    -- 4458381 Public Sector Enh
17757    
17758    --
17759    -- set accounting attributes for the line type
17760    --
17761    l_entered_amt_idx := 10;
17762    l_accted_amt_idx  := 15;
17763    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
17764    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
17765    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
17766    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
17767    l_rec_acct_attrs.array_num_value(2)  := p_source_99;
17768    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
17769    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
17770    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
17771    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
17772    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
17773    l_rec_acct_attrs.array_char_value(5)  := p_source_101;
17774    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
17775    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
17776    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
17777    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
17778    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
17779    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
17780    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
17781    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
17782    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
17783    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
17784    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
17785    l_rec_acct_attrs.array_char_value(11)  := p_source_105;
17786    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
17787    l_rec_acct_attrs.array_date_value(12)  := p_source_106;
17788    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
17789    l_rec_acct_attrs.array_num_value(13)  := p_source_107;
17790    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
17791    l_rec_acct_attrs.array_char_value(14)  := p_source_108;
17792    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
17793    l_rec_acct_attrs.array_num_value(15)  := p_source_109;
17794    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
17795    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
17796    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
17797    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
17798    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
17799    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
17800    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
17801    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
17802    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
17803    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
17804    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
17805    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
17806    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
17810    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
17807    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
17808    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
17809    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
17811    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
17812 
17813    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
17814    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
17815 
17816    ---------------------------------------------------------------------------------------------------------------
17817    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
17818    ---------------------------------------------------------------------------------------------------------------
17819    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
17820 
17821    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17822    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17823 
17824    IF xla_accounting_cache_pkg.GetValueChar
17825          (p_source_code         => 'LEDGER_CATEGORY_CODE'
17826          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
17827    AND l_bflow_method_code = 'PRIOR_ENTRY'
17828 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
17829    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
17830          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
17831        )
17832    THEN
17833          xla_ae_lines_pkg.BflowUpgEntry
17834            (p_business_method_code    => l_bflow_method_code
17835            ,p_business_class_code     => l_bflow_class_code
17836            ,p_balance_type            => l_balance_type_code);
17837    ELSE
17838       NULL;
17839 -- No business flow processing for business flow method of NONE.
17840    END IF;
17841 
17842    --
17843    -- call analytical criteria
17844    --
17845    
17846    --
17847    -- call description
17848    --
17849    -- No description or it is inherited.
17850    --
17851    -- call ADRs
17852    -- Bug 4922099
17853    --
17854    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17855         (NVL(l_actual_upg_option, 'N') = 'O') OR
17856         (NVL(l_enc_upg_option, 'N') = 'O')
17857       )
17858    THEN
17859    NULL;
17860    --
17861    --
17862    
17863   l_ccid := AcctDerRule_26(
17864            p_application_id           => p_application_id
17865          , p_ae_header_id             => l_ae_header_id 
17866 , p_source_14 => p_source_14
17867 , p_source_15 => p_source_15
17868 , p_source_15_meaning => p_source_15_meaning
17869 , p_source_30 => p_source_30
17870          , x_transaction_coa_id       => l_adr_transaction_coa_id
17871          , x_accounting_coa_id        => l_adr_accounting_coa_id
17872          , x_value_type_code          => l_adr_value_type_code
17873          , p_side                     => 'NA'
17874    );
17875 
17876    xla_ae_lines_pkg.set_ccid(
17877     p_code_combination_id          => l_ccid
17878   , p_value_type_code              => l_adr_value_type_code
17879   , p_transaction_coa_id           => l_adr_transaction_coa_id
17880   , p_accounting_coa_id            => l_adr_accounting_coa_id
17881   , p_adr_code                     => 'AP_BANK_CHARGES'
17882   , p_adr_type_code                => 'S'
17883   , p_component_type               => l_component_type
17884   , p_component_code               => l_component_code
17885   , p_component_type_code          => l_component_type_code
17886   , p_component_appl_id            => l_component_appl_id
17887   , p_amb_context_code             => l_amb_context_code
17888   , p_side                         => 'NA'
17889   );
17890 
17891 
17892    l_segment := AcctDerRule_4(
17893            p_application_id           => p_application_id
17894          , p_ae_header_id             => l_ae_header_id 
17895 , p_source_14 => p_source_14
17896 , p_source_15 => p_source_15
17897 , p_source_15_meaning => p_source_15_meaning
17898          , x_transaction_coa_id       => l_adr_transaction_coa_id
17899          , x_accounting_coa_id        => l_adr_accounting_coa_id
17900          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
17901          , x_flex_value_set_id        => l_adr_flex_value_set_id
17902          , x_value_type_code          => l_adr_value_type_code
17903          , x_value_combination_id     => l_adr_value_combination_id
17904          , x_value_segment_code       => l_adr_value_segment_code
17905          , p_side                     => 'NA'
17906          , p_override_seg_flag        => 'Y'
17907    );
17908 
17909    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
17910 
17911       xla_ae_lines_pkg.set_segment(
17912           p_to_segment_code         => 'GL_ACCOUNT'
17913         , p_segment_value           => l_segment
17914         , p_from_segment_code       => l_adr_value_segment_code
17915         , p_from_combination_id     => l_adr_value_combination_id
17916         , p_value_type_code         => l_adr_value_type_code
17917         , p_transaction_coa_id      => l_adr_transaction_coa_id
17918         , p_accounting_coa_id       => l_adr_accounting_coa_id
17919         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
17920         , p_flex_value_set_id       => l_adr_flex_value_set_id
17924         , p_component_code          => l_component_code
17921         , p_adr_code                => 'AP_BANK_CHARGES_NAT_ACCT_SEG'
17922         , p_adr_type_code           => 'S'
17923         , p_component_type          => l_component_type
17925         , p_component_type_code     => l_component_type_code
17926         , p_component_appl_id       => l_component_appl_id
17927         , p_amb_context_code        => l_amb_context_code
17928         , p_entity_code             => 'AP_PAYMENTS'
17929         , p_event_class_code        => 'RECONCILED PAYMENTS'
17930         , p_side                    => 'NA'
17931         );
17932 
17933   END IF;
17934 
17935    l_segment := AcctDerRule_22(
17936            p_application_id           => p_application_id
17937          , p_ae_header_id             => l_ae_header_id 
17938 , p_source_15 => p_source_15
17939 , p_source_15_meaning => p_source_15_meaning
17940 , p_source_30 => p_source_30
17941          , x_transaction_coa_id       => l_adr_transaction_coa_id
17942          , x_accounting_coa_id        => l_adr_accounting_coa_id
17943          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
17944          , x_flex_value_set_id        => l_adr_flex_value_set_id
17945          , x_value_type_code          => l_adr_value_type_code
17946          , x_value_combination_id     => l_adr_value_combination_id
17947          , x_value_segment_code       => l_adr_value_segment_code
17948          , p_side                     => 'NA'
17949          , p_override_seg_flag        => 'Y'
17950    );
17951 
17952    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
17953 
17954       xla_ae_lines_pkg.set_segment(
17955           p_to_segment_code         => 'GL_BALANCING'
17956         , p_segment_value           => l_segment
17957         , p_from_segment_code       => l_adr_value_segment_code
17958         , p_from_combination_id     => l_adr_value_combination_id
17959         , p_value_type_code         => l_adr_value_type_code
17960         , p_transaction_coa_id      => l_adr_transaction_coa_id
17961         , p_accounting_coa_id       => l_adr_accounting_coa_id
17962         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
17963         , p_flex_value_set_id       => l_adr_flex_value_set_id
17964         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
17965         , p_adr_type_code           => 'S'
17966         , p_component_type          => l_component_type
17967         , p_component_code          => l_component_code
17968         , p_component_type_code     => l_component_type_code
17969         , p_component_appl_id       => l_component_appl_id
17970         , p_amb_context_code        => l_amb_context_code
17971         , p_entity_code             => 'AP_PAYMENTS'
17972         , p_event_class_code        => 'RECONCILED PAYMENTS'
17973         , p_side                    => 'NA'
17974         );
17975 
17976   END IF;
17977 
17978    --
17979    --
17980    END IF;
17981    --
17982    -- Bug 4922099
17983    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17984           (NVL(l_enc_upg_option, 'N') = 'O')
17985         ) AND
17986         (l_bflow_method_code = 'PRIOR_ENTRY')
17987       )
17988    THEN
17989       IF
17990       --
17991       1 = 2
17992       --
17993       THEN
17994       xla_accounting_err_pkg.build_message
17995                                     (p_appli_s_name            => 'XLA'
17996                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17997                                     ,p_token_1                 => 'LINE_NUMBER'
17998                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
17999                                     ,p_token_2                 => 'LINE_TYPE_NAME'
18000                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
18001                                                                              l_component_type
18002                                                                             ,l_component_code
18003                                                                             ,l_component_type_code
18004                                                                             ,l_component_appl_id
18005                                                                             ,l_amb_context_code
18006                                                                             ,l_entity_code
18007                                                                             ,l_event_class_code
18008                                                                            )
18009                                     ,p_token_3                 => 'OWNER'
18010                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
18011                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
18012                                                                           ,p_lookup_code    => l_component_type_code
18013                                                                          )
18014                                     ,p_token_4                 => 'PRODUCT_NAME'
18015                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
18016                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
18017                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
18021 
18018                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
18019                                     ,p_ae_header_id            =>  NULL
18020                                        );
18022         IF (C_LEVEL_ERROR>= g_log_level) THEN
18023                  trace
18024                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18025                       ,p_level    => C_LEVEL_ERROR
18026                       ,p_module   => l_log_module);
18027         END IF;
18028       END IF;
18029    END IF;
18030    --
18031    --
18032    ------------------------------------------------------------------------------------------------
18033    -- 4219869 Business Flow
18034    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
18035    -- Prior Entry.  Currently, the following code is always generated.
18036    ------------------------------------------------------------------------------------------------
18037    XLA_AE_LINES_PKG.ValidateCurrentLine;
18038 
18039    ------------------------------------------------------------------------------------
18040    -- 4219869 Business Flow
18041    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
18042    ------------------------------------------------------------------------------------
18043    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18044 
18045    ----------------------------------------------------------------------------------
18046    -- 4219869 Business Flow
18047    -- Update journal entry status -- Need to generate this within IF <condition>
18048    ----------------------------------------------------------------------------------
18049    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18050          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
18051          ,p_balance_type_code => l_balance_type_code
18052          );
18053 
18054    -------------------------------------------------------------------------------------------
18055    -- 4262811 - Generate the Accrual Reversal lines
18056    -------------------------------------------------------------------------------------------
18057    BEGIN
18058       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
18059                               (g_array_event(p_event_id).array_value_num('header_index'));
18060       IF l_acc_rev_flag IS NULL THEN
18061          l_acc_rev_flag := 'N';
18062       END IF;
18063    EXCEPTION
18064       WHEN OTHERS THEN
18065          l_acc_rev_flag := 'N';
18066    END;
18067    --
18068    IF (l_acc_rev_flag = 'Y') THEN
18069 
18070        -- 4645092  ------------------------------------------------------------------------------
18071        -- To allow MPA report to determine if it should generate report process
18072        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
18073        ------------------------------------------------------------------------------------------
18074 
18075        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
18076        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
18077    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
18078    -- call ADRs
18079    -- Bug 4922099
18080    --
18081    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18082         (NVL(l_actual_upg_option, 'N') = 'O') OR
18083         (NVL(l_enc_upg_option, 'N') = 'O')
18084       )
18085    THEN
18086    NULL;
18087    --
18088    --
18089    
18090   l_ccid := AcctDerRule_26(
18091            p_application_id           => p_application_id
18092          , p_ae_header_id             => l_ae_header_id 
18093 , p_source_14 => p_source_14
18094 , p_source_15 => p_source_15
18095 , p_source_15_meaning => p_source_15_meaning
18096 , p_source_30 => p_source_30
18097          , x_transaction_coa_id       => l_adr_transaction_coa_id
18098          , x_accounting_coa_id        => l_adr_accounting_coa_id
18099          , x_value_type_code          => l_adr_value_type_code
18100          , p_side                     => 'NA'
18101    );
18102 
18103    xla_ae_lines_pkg.set_ccid(
18104     p_code_combination_id          => l_ccid
18105   , p_value_type_code              => l_adr_value_type_code
18106   , p_transaction_coa_id           => l_adr_transaction_coa_id
18107   , p_accounting_coa_id            => l_adr_accounting_coa_id
18108   , p_adr_code                     => 'AP_BANK_CHARGES'
18109   , p_adr_type_code                => 'S'
18110   , p_component_type               => l_component_type
18111   , p_component_code               => l_component_code
18112   , p_component_type_code          => l_component_type_code
18113   , p_component_appl_id            => l_component_appl_id
18114   , p_amb_context_code             => l_amb_context_code
18115   , p_side                         => 'NA'
18116   );
18117 
18118 
18119    l_segment := AcctDerRule_4(
18120            p_application_id           => p_application_id
18121          , p_ae_header_id             => l_ae_header_id 
18122 , p_source_14 => p_source_14
18123 , p_source_15 => p_source_15
18124 , p_source_15_meaning => p_source_15_meaning
18125          , x_transaction_coa_id       => l_adr_transaction_coa_id
18126          , x_accounting_coa_id        => l_adr_accounting_coa_id
18127          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
18128          , x_flex_value_set_id        => l_adr_flex_value_set_id
18129          , x_value_type_code          => l_adr_value_type_code
18133          , p_override_seg_flag        => 'Y'
18130          , x_value_combination_id     => l_adr_value_combination_id
18131          , x_value_segment_code       => l_adr_value_segment_code
18132          , p_side                     => 'NA'
18134    );
18135 
18136    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
18137 
18138       xla_ae_lines_pkg.set_segment(
18139           p_to_segment_code         => 'GL_ACCOUNT'
18140         , p_segment_value           => l_segment
18141         , p_from_segment_code       => l_adr_value_segment_code
18142         , p_from_combination_id     => l_adr_value_combination_id
18143         , p_value_type_code         => l_adr_value_type_code
18144         , p_transaction_coa_id      => l_adr_transaction_coa_id
18145         , p_accounting_coa_id       => l_adr_accounting_coa_id
18146         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
18147         , p_flex_value_set_id       => l_adr_flex_value_set_id
18148         , p_adr_code                => 'AP_BANK_CHARGES_NAT_ACCT_SEG'
18149         , p_adr_type_code           => 'S'
18150         , p_component_type          => l_component_type
18151         , p_component_code          => l_component_code
18152         , p_component_type_code     => l_component_type_code
18153         , p_component_appl_id       => l_component_appl_id
18154         , p_amb_context_code        => l_amb_context_code
18155         , p_entity_code             => 'AP_PAYMENTS'
18156         , p_event_class_code        => 'RECONCILED PAYMENTS'
18157         , p_side                    => 'NA'
18158         );
18159 
18160   END IF;
18161 
18162    l_segment := AcctDerRule_22(
18163            p_application_id           => p_application_id
18164          , p_ae_header_id             => l_ae_header_id 
18165 , p_source_15 => p_source_15
18166 , p_source_15_meaning => p_source_15_meaning
18167 , p_source_30 => p_source_30
18168          , x_transaction_coa_id       => l_adr_transaction_coa_id
18169          , x_accounting_coa_id        => l_adr_accounting_coa_id
18170          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
18171          , x_flex_value_set_id        => l_adr_flex_value_set_id
18172          , x_value_type_code          => l_adr_value_type_code
18173          , x_value_combination_id     => l_adr_value_combination_id
18174          , x_value_segment_code       => l_adr_value_segment_code
18175          , p_side                     => 'NA'
18176          , p_override_seg_flag        => 'Y'
18177    );
18178 
18179    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
18180 
18181       xla_ae_lines_pkg.set_segment(
18182           p_to_segment_code         => 'GL_BALANCING'
18183         , p_segment_value           => l_segment
18184         , p_from_segment_code       => l_adr_value_segment_code
18185         , p_from_combination_id     => l_adr_value_combination_id
18186         , p_value_type_code         => l_adr_value_type_code
18187         , p_transaction_coa_id      => l_adr_transaction_coa_id
18188         , p_accounting_coa_id       => l_adr_accounting_coa_id
18189         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
18190         , p_flex_value_set_id       => l_adr_flex_value_set_id
18191         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
18192         , p_adr_type_code           => 'S'
18193         , p_component_type          => l_component_type
18194         , p_component_code          => l_component_code
18195         , p_component_type_code     => l_component_type_code
18196         , p_component_appl_id       => l_component_appl_id
18197         , p_amb_context_code        => l_amb_context_code
18198         , p_entity_code             => 'AP_PAYMENTS'
18199         , p_event_class_code        => 'RECONCILED PAYMENTS'
18200         , p_side                    => 'NA'
18201         );
18202 
18203   END IF;
18204 
18205    --
18206    --
18207    END IF;
18208 
18209        --
18210        -- Update the line information that should be overwritten
18211        --
18212        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
18213                                          p_header_num   => 1);
18214        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
18215 
18216        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
18217 
18218        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
18219           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
18220        END IF;
18221 
18222       --
18223       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
18224       --
18225       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
18226           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
18227       ELSE
18228           ---------------------------------------------------------------------------------------------------
18229           -- 4262811a Switch Sign
18230           ---------------------------------------------------------------------------------------------------
18231           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
18232           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18236           -- 5132302
18233                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18234           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18235                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18237           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
18238                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18239 
18240       END IF;
18241 
18242       -- 4955764
18243       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18244       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
18245 
18246 
18247       XLA_AE_LINES_PKG.ValidateCurrentLine;
18248       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18249 
18250       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18251                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
18252                ,p_balance_type_code => l_balance_type_code);
18253 
18254    END IF;
18255 
18256    -----------------------------------------------------------------------------------------
18257    -- 4262811 Multiperiod Accounting
18258    -----------------------------------------------------------------------------------------
18259      -- No MPA option is assigned.
18260 
18261 
18262 END IF;
18263 END IF;
18264 --
18265 
18266 --
18267 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18268    trace
18269       (p_msg      => 'END of AcctLineType_59'
18270       ,p_level    => C_LEVEL_PROCEDURE
18271       ,p_module   => l_log_module);
18272 END IF;
18273 --
18274 EXCEPTION
18275   WHEN xla_exceptions_pkg.application_exception THEN
18276       RAISE;
18277   WHEN OTHERS THEN
18278        xla_exceptions_pkg.raise_message
18279            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_59');
18280 END AcctLineType_59;
18281 --
18282 
18283 ---------------------------------------
18284 --
18285 -- PRIVATE FUNCTION
18286 --         AcctLineType_60
18287 --
18288 ---------------------------------------
18289 PROCEDURE AcctLineType_60 (
18290   p_application_id        IN NUMBER
18291  ,p_event_id              IN NUMBER
18292  ,p_calculate_acctd_flag  IN VARCHAR2
18293  ,p_calculate_g_l_flag    IN VARCHAR2
18294  ,p_actual_flag           IN OUT VARCHAR2
18295  ,p_balance_type_code     OUT VARCHAR2
18296  ,p_gain_or_loss_ref      OUT VARCHAR2
18297  
18298 --Automatic Offsets Value
18299  , p_source_15            IN VARCHAR2
18300  , p_source_15_meaning    IN VARCHAR2
18301 --Bank Errors Account
18302  , p_source_16            IN NUMBER
18303 --Invoice Distribution Account
18304  , p_source_30            IN NUMBER
18305 --Accounting Reversal Indicator
18306  , p_source_53            IN VARCHAR2
18307 --Distribution Link Type
18308  , p_source_55            IN VARCHAR2
18309 --Override Accounted Amount Indicator
18310  , p_source_80            IN VARCHAR2
18311  , p_source_80_meaning    IN VARCHAR2
18312 --Third Party Type
18313  , p_source_83            IN VARCHAR2
18314 --Invoice Distribution Tax Line Identifier
18315  , p_source_86            IN NUMBER
18316 --Invoice Distribution Summary Tax Line Identifier
18317  , p_source_88            IN NUMBER
18318 --Business Flow Accounts Payable Application Identifier
18319  , p_source_91            IN NUMBER
18320 --When to Account for Payment Option
18321  , p_source_97            IN VARCHAR2
18322 --Payment Distribution Type
18323  , p_source_98            IN VARCHAR2
18324  , p_source_98_meaning    IN VARCHAR2
18325 --Payment Distribution Amount
18326  , p_source_99            IN NUMBER
18327 --Business Flow Payment Distribution Type
18328  , p_source_100            IN VARCHAR2
18329 --Business Flow Payment Entity Code
18330  , p_source_101            IN VARCHAR2
18331 --Business Flow Payment Distribution Identifier
18332  , p_source_102            IN NUMBER
18333 --Business Flow Payment Identifier
18334  , p_source_103            IN NUMBER
18335 --Payment Distribution Identifier
18336  , p_source_104            IN NUMBER
18337 --Cleared Currency Code
18338  , p_source_105            IN VARCHAR2
18339 --Cleared Exchange Date
18340  , p_source_106            IN DATE
18341 --Cleared Exchange Rate
18342  , p_source_107            IN NUMBER
18343 --Cleared Exchange Rate Type
18344  , p_source_108            IN VARCHAR2
18345 --Payment Distribution (Cleared Rate) Ledger Amount
18346  , p_source_109            IN NUMBER
18347 --Payment Supplier Identifier
18348  , p_source_110            IN NUMBER
18349 --Payment Supplier Site Identifier
18350  , p_source_111            IN NUMBER
18351 --Payment Distribution Reversed Identifier
18352  , p_source_112            IN NUMBER
18353 )
18354 IS
18355 
18356 l_component_type              VARCHAR2(80);
18357 l_component_code              VARCHAR2(30);
18358 l_component_type_code         VARCHAR2(1);
18359 l_component_appl_id           INTEGER;
18360 l_amb_context_code            VARCHAR2(30);
18361 l_entity_code                 VARCHAR2(30);
18362 l_event_class_code            VARCHAR2(30);
18363 l_ae_header_id                NUMBER;
18364 l_event_type_code             VARCHAR2(30);
18365 l_line_definition_code        VARCHAR2(30);
18366 l_line_definition_owner_code  VARCHAR2(1);
18367 --
18368 -- adr variables
18372 l_adr_accounting_coa_id       NUMBER;
18369 l_segment                     VARCHAR2(30);
18370 l_ccid                        NUMBER;
18371 l_adr_transaction_coa_id      NUMBER;
18373 l_adr_flexfield_segment_code  VARCHAR2(30);
18374 l_adr_flex_value_set_id       NUMBER;
18375 l_adr_value_type_code         VARCHAR2(30);
18376 l_adr_value_combination_id    NUMBER;
18377 l_adr_value_segment_code      VARCHAR2(30);
18378 
18379 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
18380 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
18381 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
18382 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
18383 
18384 -- 4262811 Variables ------------------------------------------------------------------------------------------
18385 l_entered_amt_idx             NUMBER;
18386 l_accted_amt_idx              NUMBER;
18387 l_acc_rev_flag                VARCHAR2(1);
18388 l_accrual_line_num            NUMBER;
18389 l_tmp_amt                     NUMBER;
18390 l_acc_rev_natural_side_code   VARCHAR2(1);
18391 
18392 l_num_entries                 NUMBER;
18393 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
18394 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
18395 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
18396 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
18397 l_recog_line_1                NUMBER;
18398 l_recog_line_2                NUMBER;
18399 
18400 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
18401 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
18402 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
18403 
18404 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
18405 
18406 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
18407 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
18408 
18409 ---------------------------------------------------------------------------------------------------------------
18410 
18411 
18412 --
18413 -- bulk performance
18414 --
18415 l_balance_type_code           VARCHAR2(1);
18416 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
18417 l_log_module                  VARCHAR2(240);
18418 
18419 --
18420 -- Upgrade strategy
18421 --
18422 l_actual_upg_option           VARCHAR2(1);
18423 l_enc_upg_option           VARCHAR2(1);
18424 
18425 --
18426 BEGIN
18427 --
18428 IF g_log_enabled THEN
18429       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_60';
18430 END IF;
18431 --
18432 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18433 
18434       trace
18435          (p_msg      => 'BEGIN of AcctLineType_60'
18436          ,p_level    => C_LEVEL_PROCEDURE
18437          ,p_module   => l_log_module);
18438 
18439 END IF;
18440 --
18441 l_component_type             := 'AMB_JLT';
18442 l_component_code             := 'AP_BANK_ERROR_CLEAR';
18443 l_component_type_code        := 'S';
18444 l_component_appl_id          :=  200;
18445 l_amb_context_code           := 'DEFAULT';
18446 l_entity_code                := 'AP_PAYMENTS';
18447 l_event_class_code           := 'RECONCILED PAYMENTS';
18448 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
18449 l_line_definition_owner_code := 'S';
18450 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
18451 --
18452 l_balance_type_code          := 'A';
18453 l_segment                     := NULL;
18454 l_ccid                        := NULL;
18455 l_adr_transaction_coa_id      := NULL;
18456 l_adr_accounting_coa_id       := NULL;
18457 l_adr_flexfield_segment_code  := NULL;
18458 l_adr_flex_value_set_id       := NULL;
18459 l_adr_value_type_code         := NULL;
18460 l_adr_value_combination_id    := NULL;
18461 l_adr_value_segment_code      := NULL;
18462 
18463 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
18464 l_bflow_class_code           := '';    -- 4219869 Business Flow
18465 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
18466 l_budgetary_control_flag     := 'N';
18467 
18468 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
18469 l_bflow_applied_to_amt       := NULL; -- 5132302
18470 l_entered_amt_idx            := NULL;          -- 4262811
18471 l_accted_amt_idx             := NULL;          -- 4262811
18472 l_acc_rev_flag               := NULL;          -- 4262811
18473 l_accrual_line_num           := NULL;          -- 4262811
18474 l_tmp_amt                    := NULL;          -- 4262811
18475 --
18476  
18477 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
18478     l_balance_type_code <> 'B' THEN
18479 IF NVL(p_source_97,'
18480 ') <>  'ISSUE_ISSUE' AND 
18481 NVL(p_source_98,'
18482 ') =  'BANK ERROR'
18483  THEN 
18484 
18485    --
18486    XLA_AE_LINES_PKG.SetNewLine;
18487 
18488    p_balance_type_code          := l_balance_type_code;
18489    -- set the flag so later we will know whether the gain loss line needs to be created
18490    
18491    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
18492      p_actual_flag :='A';
18493    END IF;
18494 
18495    --
18496    -- bulk performance
18497    --
18501    -- set accounting line options
18498    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
18499                                       p_header_num   => 0); -- 4262811
18500    --
18502    --
18503    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
18504            p_natural_side_code          => 'D'
18505          , p_gain_or_loss_flag          => 'N'
18506          , p_gl_transfer_mode_code      => 'S'
18507          , p_acct_entry_type_code       => 'A'
18508          , p_switch_side_flag           => 'Y'
18509          , p_merge_duplicate_code       => 'A'
18510          );
18511    --
18512    l_acc_rev_natural_side_code := 'C';  -- 4262811
18513    -- 
18514    --
18515    -- set accounting line type info
18516    --
18517    xla_ae_lines_pkg.SetAcctLineType
18518       (p_component_type             => l_component_type
18519       ,p_event_type_code            => l_event_type_code
18520       ,p_line_definition_owner_code => l_line_definition_owner_code
18521       ,p_line_definition_code       => l_line_definition_code
18522       ,p_accounting_line_code       => l_component_code
18523       ,p_accounting_line_type_code  => l_component_type_code
18524       ,p_accounting_line_appl_id    => l_component_appl_id
18525       ,p_amb_context_code           => l_amb_context_code
18526       ,p_entity_code                => l_entity_code
18527       ,p_event_class_code           => l_event_class_code);
18528    --
18529    -- set accounting class
18530    --
18531    xla_ae_lines_pkg.SetAcctClass(
18532            p_accounting_class_code  => 'BANK_ERROR'
18533          , p_ae_header_id           => l_ae_header_id
18534          );
18535 
18536    --
18537    -- set rounding class
18538    --
18539    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
18540                       'BANK_ERROR';
18541 
18542    --
18543    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
18544    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
18545    --
18546    -- bulk performance
18547    --
18548    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
18549 
18550    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
18551       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
18552 
18553    -- 4955764
18554    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18555       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
18556 
18557    -- 4458381 Public Sector Enh
18558    
18559    --
18560    -- set accounting attributes for the line type
18561    --
18562    l_entered_amt_idx := 10;
18563    l_accted_amt_idx  := 15;
18564    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
18565    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
18566    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
18567    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
18568    l_rec_acct_attrs.array_num_value(2)  := p_source_99;
18569    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
18570    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
18571    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
18572    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
18573    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
18574    l_rec_acct_attrs.array_char_value(5)  := p_source_101;
18575    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
18576    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
18577    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
18578    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
18579    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
18580    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
18581    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
18582    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
18583    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
18584    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
18585    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
18586    l_rec_acct_attrs.array_char_value(11)  := p_source_105;
18587    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
18588    l_rec_acct_attrs.array_date_value(12)  := p_source_106;
18589    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
18590    l_rec_acct_attrs.array_num_value(13)  := p_source_107;
18591    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
18592    l_rec_acct_attrs.array_char_value(14)  := p_source_108;
18593    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
18594    l_rec_acct_attrs.array_num_value(15)  := p_source_109;
18595    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
18596    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
18597    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
18598    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
18599    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
18600    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
18601    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
18605    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
18602    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
18603    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
18604    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
18606    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
18607    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
18608    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
18609    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
18610    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
18611    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
18612    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
18613 
18614    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
18615    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
18616 
18617    ---------------------------------------------------------------------------------------------------------------
18618    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
18619    ---------------------------------------------------------------------------------------------------------------
18620    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
18621 
18622    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18623    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18624 
18625    IF xla_accounting_cache_pkg.GetValueChar
18626          (p_source_code         => 'LEDGER_CATEGORY_CODE'
18627          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
18628    AND l_bflow_method_code = 'PRIOR_ENTRY'
18629 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
18630    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
18631          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
18632        )
18633    THEN
18634          xla_ae_lines_pkg.BflowUpgEntry
18635            (p_business_method_code    => l_bflow_method_code
18636            ,p_business_class_code     => l_bflow_class_code
18637            ,p_balance_type            => l_balance_type_code);
18638    ELSE
18639       NULL;
18640 -- No business flow processing for business flow method of NONE.
18641    END IF;
18642 
18643    --
18644    -- call analytical criteria
18645    --
18646    
18647    --
18648    -- call description
18649    --
18650    -- No description or it is inherited.
18651    --
18652    -- call ADRs
18653    -- Bug 4922099
18654    --
18655    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18656         (NVL(l_actual_upg_option, 'N') = 'O') OR
18657         (NVL(l_enc_upg_option, 'N') = 'O')
18658       )
18659    THEN
18660    NULL;
18661    --
18662    --
18663    
18664   l_ccid := AcctDerRule_27(
18665            p_application_id           => p_application_id
18666          , p_ae_header_id             => l_ae_header_id 
18667 , p_source_15 => p_source_15
18668 , p_source_15_meaning => p_source_15_meaning
18669 , p_source_16 => p_source_16
18670 , p_source_30 => p_source_30
18671          , x_transaction_coa_id       => l_adr_transaction_coa_id
18672          , x_accounting_coa_id        => l_adr_accounting_coa_id
18673          , x_value_type_code          => l_adr_value_type_code
18674          , p_side                     => 'NA'
18675    );
18676 
18677    xla_ae_lines_pkg.set_ccid(
18678     p_code_combination_id          => l_ccid
18679   , p_value_type_code              => l_adr_value_type_code
18680   , p_transaction_coa_id           => l_adr_transaction_coa_id
18681   , p_accounting_coa_id            => l_adr_accounting_coa_id
18682   , p_adr_code                     => 'AP_BANK_ERRORS'
18683   , p_adr_type_code                => 'S'
18684   , p_component_type               => l_component_type
18685   , p_component_code               => l_component_code
18686   , p_component_type_code          => l_component_type_code
18687   , p_component_appl_id            => l_component_appl_id
18688   , p_amb_context_code             => l_amb_context_code
18689   , p_side                         => 'NA'
18690   );
18691 
18692 
18693    l_segment := AcctDerRule_5(
18694            p_application_id           => p_application_id
18695          , p_ae_header_id             => l_ae_header_id 
18696 , p_source_15 => p_source_15
18697 , p_source_15_meaning => p_source_15_meaning
18698 , p_source_16 => p_source_16
18699          , x_transaction_coa_id       => l_adr_transaction_coa_id
18700          , x_accounting_coa_id        => l_adr_accounting_coa_id
18701          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
18702          , x_flex_value_set_id        => l_adr_flex_value_set_id
18703          , x_value_type_code          => l_adr_value_type_code
18704          , x_value_combination_id     => l_adr_value_combination_id
18705          , x_value_segment_code       => l_adr_value_segment_code
18706          , p_side                     => 'NA'
18707          , p_override_seg_flag        => 'Y'
18708    );
18709 
18710    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
18711 
18712       xla_ae_lines_pkg.set_segment(
18713           p_to_segment_code         => 'GL_ACCOUNT'
18714         , p_segment_value           => l_segment
18718         , p_transaction_coa_id      => l_adr_transaction_coa_id
18715         , p_from_segment_code       => l_adr_value_segment_code
18716         , p_from_combination_id     => l_adr_value_combination_id
18717         , p_value_type_code         => l_adr_value_type_code
18719         , p_accounting_coa_id       => l_adr_accounting_coa_id
18720         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
18721         , p_flex_value_set_id       => l_adr_flex_value_set_id
18722         , p_adr_code                => 'AP_BANK_ERRORS_NAT_ACCT_SEG'
18723         , p_adr_type_code           => 'S'
18724         , p_component_type          => l_component_type
18725         , p_component_code          => l_component_code
18726         , p_component_type_code     => l_component_type_code
18727         , p_component_appl_id       => l_component_appl_id
18728         , p_amb_context_code        => l_amb_context_code
18729         , p_entity_code             => 'AP_PAYMENTS'
18730         , p_event_class_code        => 'RECONCILED PAYMENTS'
18731         , p_side                    => 'NA'
18732         );
18733 
18734   END IF;
18735 
18736    l_segment := AcctDerRule_22(
18737            p_application_id           => p_application_id
18738          , p_ae_header_id             => l_ae_header_id 
18739 , p_source_15 => p_source_15
18740 , p_source_15_meaning => p_source_15_meaning
18741 , p_source_30 => p_source_30
18742          , x_transaction_coa_id       => l_adr_transaction_coa_id
18743          , x_accounting_coa_id        => l_adr_accounting_coa_id
18744          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
18745          , x_flex_value_set_id        => l_adr_flex_value_set_id
18746          , x_value_type_code          => l_adr_value_type_code
18747          , x_value_combination_id     => l_adr_value_combination_id
18748          , x_value_segment_code       => l_adr_value_segment_code
18749          , p_side                     => 'NA'
18750          , p_override_seg_flag        => 'Y'
18751    );
18752 
18753    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
18754 
18755       xla_ae_lines_pkg.set_segment(
18756           p_to_segment_code         => 'GL_BALANCING'
18757         , p_segment_value           => l_segment
18758         , p_from_segment_code       => l_adr_value_segment_code
18759         , p_from_combination_id     => l_adr_value_combination_id
18760         , p_value_type_code         => l_adr_value_type_code
18761         , p_transaction_coa_id      => l_adr_transaction_coa_id
18762         , p_accounting_coa_id       => l_adr_accounting_coa_id
18763         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
18764         , p_flex_value_set_id       => l_adr_flex_value_set_id
18765         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
18766         , p_adr_type_code           => 'S'
18767         , p_component_type          => l_component_type
18768         , p_component_code          => l_component_code
18769         , p_component_type_code     => l_component_type_code
18770         , p_component_appl_id       => l_component_appl_id
18771         , p_amb_context_code        => l_amb_context_code
18772         , p_entity_code             => 'AP_PAYMENTS'
18773         , p_event_class_code        => 'RECONCILED PAYMENTS'
18774         , p_side                    => 'NA'
18775         );
18776 
18777   END IF;
18778 
18779    --
18780    --
18781    END IF;
18782    --
18783    -- Bug 4922099
18784    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
18785           (NVL(l_enc_upg_option, 'N') = 'O')
18786         ) AND
18787         (l_bflow_method_code = 'PRIOR_ENTRY')
18788       )
18789    THEN
18790       IF
18791       --
18792       1 = 2
18793       --
18794       THEN
18795       xla_accounting_err_pkg.build_message
18796                                     (p_appli_s_name            => 'XLA'
18797                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18798                                     ,p_token_1                 => 'LINE_NUMBER'
18799                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
18800                                     ,p_token_2                 => 'LINE_TYPE_NAME'
18801                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
18802                                                                              l_component_type
18803                                                                             ,l_component_code
18804                                                                             ,l_component_type_code
18805                                                                             ,l_component_appl_id
18806                                                                             ,l_amb_context_code
18807                                                                             ,l_entity_code
18808                                                                             ,l_event_class_code
18809                                                                            )
18810                                     ,p_token_3                 => 'OWNER'
18811                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
18812                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
18813                                                                           ,p_lookup_code    => l_component_type_code
18814                                                                          )
18815                                     ,p_token_4                 => 'PRODUCT_NAME'
18816                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
18820                                     ,p_ae_header_id            =>  NULL
18817                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
18818                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
18819                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
18821                                        );
18822 
18823         IF (C_LEVEL_ERROR>= g_log_level) THEN
18824                  trace
18825                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18826                       ,p_level    => C_LEVEL_ERROR
18827                       ,p_module   => l_log_module);
18828         END IF;
18829       END IF;
18830    END IF;
18831    --
18832    --
18833    ------------------------------------------------------------------------------------------------
18834    -- 4219869 Business Flow
18835    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
18836    -- Prior Entry.  Currently, the following code is always generated.
18837    ------------------------------------------------------------------------------------------------
18838    XLA_AE_LINES_PKG.ValidateCurrentLine;
18839 
18840    ------------------------------------------------------------------------------------
18841    -- 4219869 Business Flow
18842    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
18843    ------------------------------------------------------------------------------------
18844    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18845 
18846    ----------------------------------------------------------------------------------
18847    -- 4219869 Business Flow
18848    -- Update journal entry status -- Need to generate this within IF <condition>
18849    ----------------------------------------------------------------------------------
18850    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18851          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
18852          ,p_balance_type_code => l_balance_type_code
18853          );
18854 
18855    -------------------------------------------------------------------------------------------
18856    -- 4262811 - Generate the Accrual Reversal lines
18857    -------------------------------------------------------------------------------------------
18858    BEGIN
18859       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
18860                               (g_array_event(p_event_id).array_value_num('header_index'));
18861       IF l_acc_rev_flag IS NULL THEN
18862          l_acc_rev_flag := 'N';
18863       END IF;
18864    EXCEPTION
18865       WHEN OTHERS THEN
18866          l_acc_rev_flag := 'N';
18867    END;
18868    --
18869    IF (l_acc_rev_flag = 'Y') THEN
18870 
18871        -- 4645092  ------------------------------------------------------------------------------
18872        -- To allow MPA report to determine if it should generate report process
18873        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
18874        ------------------------------------------------------------------------------------------
18875 
18876        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
18877        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
18878    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
18879    -- call ADRs
18880    -- Bug 4922099
18881    --
18882    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18883         (NVL(l_actual_upg_option, 'N') = 'O') OR
18884         (NVL(l_enc_upg_option, 'N') = 'O')
18885       )
18886    THEN
18887    NULL;
18888    --
18889    --
18890    
18891   l_ccid := AcctDerRule_27(
18892            p_application_id           => p_application_id
18893          , p_ae_header_id             => l_ae_header_id 
18894 , p_source_15 => p_source_15
18895 , p_source_15_meaning => p_source_15_meaning
18896 , p_source_16 => p_source_16
18897 , p_source_30 => p_source_30
18898          , x_transaction_coa_id       => l_adr_transaction_coa_id
18899          , x_accounting_coa_id        => l_adr_accounting_coa_id
18900          , x_value_type_code          => l_adr_value_type_code
18901          , p_side                     => 'NA'
18902    );
18903 
18904    xla_ae_lines_pkg.set_ccid(
18905     p_code_combination_id          => l_ccid
18906   , p_value_type_code              => l_adr_value_type_code
18907   , p_transaction_coa_id           => l_adr_transaction_coa_id
18908   , p_accounting_coa_id            => l_adr_accounting_coa_id
18909   , p_adr_code                     => 'AP_BANK_ERRORS'
18910   , p_adr_type_code                => 'S'
18911   , p_component_type               => l_component_type
18912   , p_component_code               => l_component_code
18913   , p_component_type_code          => l_component_type_code
18914   , p_component_appl_id            => l_component_appl_id
18915   , p_amb_context_code             => l_amb_context_code
18916   , p_side                         => 'NA'
18917   );
18918 
18919 
18920    l_segment := AcctDerRule_5(
18921            p_application_id           => p_application_id
18922          , p_ae_header_id             => l_ae_header_id 
18923 , p_source_15 => p_source_15
18924 , p_source_15_meaning => p_source_15_meaning
18925 , p_source_16 => p_source_16
18926          , x_transaction_coa_id       => l_adr_transaction_coa_id
18927          , x_accounting_coa_id        => l_adr_accounting_coa_id
18931          , x_value_combination_id     => l_adr_value_combination_id
18928          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
18929          , x_flex_value_set_id        => l_adr_flex_value_set_id
18930          , x_value_type_code          => l_adr_value_type_code
18932          , x_value_segment_code       => l_adr_value_segment_code
18933          , p_side                     => 'NA'
18934          , p_override_seg_flag        => 'Y'
18935    );
18936 
18937    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
18938 
18939       xla_ae_lines_pkg.set_segment(
18940           p_to_segment_code         => 'GL_ACCOUNT'
18941         , p_segment_value           => l_segment
18942         , p_from_segment_code       => l_adr_value_segment_code
18943         , p_from_combination_id     => l_adr_value_combination_id
18944         , p_value_type_code         => l_adr_value_type_code
18945         , p_transaction_coa_id      => l_adr_transaction_coa_id
18946         , p_accounting_coa_id       => l_adr_accounting_coa_id
18947         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
18948         , p_flex_value_set_id       => l_adr_flex_value_set_id
18949         , p_adr_code                => 'AP_BANK_ERRORS_NAT_ACCT_SEG'
18950         , p_adr_type_code           => 'S'
18951         , p_component_type          => l_component_type
18952         , p_component_code          => l_component_code
18953         , p_component_type_code     => l_component_type_code
18954         , p_component_appl_id       => l_component_appl_id
18955         , p_amb_context_code        => l_amb_context_code
18956         , p_entity_code             => 'AP_PAYMENTS'
18957         , p_event_class_code        => 'RECONCILED PAYMENTS'
18958         , p_side                    => 'NA'
18959         );
18960 
18961   END IF;
18962 
18963    l_segment := AcctDerRule_22(
18964            p_application_id           => p_application_id
18965          , p_ae_header_id             => l_ae_header_id 
18966 , p_source_15 => p_source_15
18967 , p_source_15_meaning => p_source_15_meaning
18968 , p_source_30 => p_source_30
18969          , x_transaction_coa_id       => l_adr_transaction_coa_id
18970          , x_accounting_coa_id        => l_adr_accounting_coa_id
18971          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
18972          , x_flex_value_set_id        => l_adr_flex_value_set_id
18973          , x_value_type_code          => l_adr_value_type_code
18974          , x_value_combination_id     => l_adr_value_combination_id
18975          , x_value_segment_code       => l_adr_value_segment_code
18976          , p_side                     => 'NA'
18977          , p_override_seg_flag        => 'Y'
18978    );
18979 
18980    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
18981 
18982       xla_ae_lines_pkg.set_segment(
18983           p_to_segment_code         => 'GL_BALANCING'
18984         , p_segment_value           => l_segment
18985         , p_from_segment_code       => l_adr_value_segment_code
18986         , p_from_combination_id     => l_adr_value_combination_id
18987         , p_value_type_code         => l_adr_value_type_code
18988         , p_transaction_coa_id      => l_adr_transaction_coa_id
18989         , p_accounting_coa_id       => l_adr_accounting_coa_id
18990         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
18991         , p_flex_value_set_id       => l_adr_flex_value_set_id
18992         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
18993         , p_adr_type_code           => 'S'
18994         , p_component_type          => l_component_type
18995         , p_component_code          => l_component_code
18996         , p_component_type_code     => l_component_type_code
18997         , p_component_appl_id       => l_component_appl_id
18998         , p_amb_context_code        => l_amb_context_code
18999         , p_entity_code             => 'AP_PAYMENTS'
19000         , p_event_class_code        => 'RECONCILED PAYMENTS'
19001         , p_side                    => 'NA'
19002         );
19003 
19004   END IF;
19005 
19006    --
19007    --
19008    END IF;
19009 
19010        --
19011        -- Update the line information that should be overwritten
19012        --
19013        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
19014                                          p_header_num   => 1);
19015        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
19016 
19017        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
19018 
19019        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
19020           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
19021        END IF;
19022 
19023       --
19024       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
19025       --
19026       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
19027           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
19028       ELSE
19029           ---------------------------------------------------------------------------------------------------
19030           -- 4262811a Switch Sign
19031           ---------------------------------------------------------------------------------------------------
19032           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
19036                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19033           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19034                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19035           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19037           -- 5132302
19038           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
19039                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19040 
19041       END IF;
19042 
19043       -- 4955764
19044       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19045       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
19046 
19047 
19048       XLA_AE_LINES_PKG.ValidateCurrentLine;
19049       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19050 
19051       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19052                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19053                ,p_balance_type_code => l_balance_type_code);
19054 
19055    END IF;
19056 
19057    -----------------------------------------------------------------------------------------
19058    -- 4262811 Multiperiod Accounting
19059    -----------------------------------------------------------------------------------------
19060      -- No MPA option is assigned.
19061 
19062 
19063 END IF;
19064 END IF;
19065 --
19066 
19067 --
19068 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19069    trace
19070       (p_msg      => 'END of AcctLineType_60'
19071       ,p_level    => C_LEVEL_PROCEDURE
19072       ,p_module   => l_log_module);
19073 END IF;
19074 --
19075 EXCEPTION
19076   WHEN xla_exceptions_pkg.application_exception THEN
19077       RAISE;
19078   WHEN OTHERS THEN
19079        xla_exceptions_pkg.raise_message
19080            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_60');
19081 END AcctLineType_60;
19082 --
19083 
19084 ---------------------------------------
19085 --
19086 -- PRIVATE FUNCTION
19087 --         AcctLineType_61
19088 --
19089 ---------------------------------------
19090 PROCEDURE AcctLineType_61 (
19091   p_application_id        IN NUMBER
19092  ,p_event_id              IN NUMBER
19093  ,p_calculate_acctd_flag  IN VARCHAR2
19094  ,p_calculate_g_l_flag    IN VARCHAR2
19095  ,p_actual_flag           IN OUT VARCHAR2
19096  ,p_balance_type_code     OUT VARCHAR2
19097  ,p_gain_or_loss_ref      OUT VARCHAR2
19098  
19099 --Payment Currency Code
19100  , p_source_13            IN VARCHAR2
19101 --Automatic Offsets Value
19102  , p_source_15            IN VARCHAR2
19103  , p_source_15_meaning    IN VARCHAR2
19104 --Bank Cash Account
19105  , p_source_17            IN NUMBER
19106 --Accounting Reversal Indicator
19107  , p_source_53            IN VARCHAR2
19108 --Distribution Link Type
19109  , p_source_55            IN VARCHAR2
19110 --Override Accounted Amount Indicator
19111  , p_source_80            IN VARCHAR2
19112  , p_source_80_meaning    IN VARCHAR2
19113 --Third Party Type
19114  , p_source_83            IN VARCHAR2
19115 --Invoice Distribution Tax Line Identifier
19116  , p_source_86            IN NUMBER
19117 --Invoice Distribution Summary Tax Line Identifier
19118  , p_source_88            IN NUMBER
19119 --Business Flow Accounts Payable Application Identifier
19120  , p_source_91            IN NUMBER
19121 --When to Account for Payment Option
19122  , p_source_97            IN VARCHAR2
19123 --Payment Distribution Type
19124  , p_source_98            IN VARCHAR2
19125  , p_source_98_meaning    IN VARCHAR2
19126 --Payment Distribution Amount
19127  , p_source_99            IN NUMBER
19128 --Business Flow Payment Distribution Type
19129  , p_source_100            IN VARCHAR2
19130 --Business Flow Payment Entity Code
19131  , p_source_101            IN VARCHAR2
19132 --Business Flow Payment Distribution Identifier
19133  , p_source_102            IN NUMBER
19134 --Business Flow Payment Identifier
19135  , p_source_103            IN NUMBER
19136 --Payment Distribution Identifier
19137  , p_source_104            IN NUMBER
19138 --Cleared Exchange Date
19139  , p_source_106            IN DATE
19140 --Cleared Exchange Rate
19141  , p_source_107            IN NUMBER
19142 --Cleared Exchange Rate Type
19143  , p_source_108            IN VARCHAR2
19144 --Payment Distribution (Cleared Rate) Ledger Amount
19145  , p_source_109            IN NUMBER
19146 --Payment Supplier Identifier
19147  , p_source_110            IN NUMBER
19148 --Payment Supplier Site Identifier
19149  , p_source_111            IN NUMBER
19150 --Payment Distribution Reversed Identifier
19151  , p_source_112            IN NUMBER
19152 --Pooled Bank Account Option
19153  , p_source_113            IN VARCHAR2
19154  , p_source_113_meaning    IN VARCHAR2
19155 )
19156 IS
19157 
19158 l_component_type              VARCHAR2(80);
19159 l_component_code              VARCHAR2(30);
19160 l_component_type_code         VARCHAR2(1);
19161 l_component_appl_id           INTEGER;
19162 l_amb_context_code            VARCHAR2(30);
19163 l_entity_code                 VARCHAR2(30);
19164 l_event_class_code            VARCHAR2(30);
19165 l_ae_header_id                NUMBER;
19169 --
19166 l_event_type_code             VARCHAR2(30);
19167 l_line_definition_code        VARCHAR2(30);
19168 l_line_definition_owner_code  VARCHAR2(1);
19170 -- adr variables
19171 l_segment                     VARCHAR2(30);
19172 l_ccid                        NUMBER;
19173 l_adr_transaction_coa_id      NUMBER;
19174 l_adr_accounting_coa_id       NUMBER;
19175 l_adr_flexfield_segment_code  VARCHAR2(30);
19176 l_adr_flex_value_set_id       NUMBER;
19177 l_adr_value_type_code         VARCHAR2(30);
19178 l_adr_value_combination_id    NUMBER;
19179 l_adr_value_segment_code      VARCHAR2(30);
19180 
19181 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
19182 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
19183 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
19184 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
19185 
19186 -- 4262811 Variables ------------------------------------------------------------------------------------------
19187 l_entered_amt_idx             NUMBER;
19188 l_accted_amt_idx              NUMBER;
19189 l_acc_rev_flag                VARCHAR2(1);
19190 l_accrual_line_num            NUMBER;
19191 l_tmp_amt                     NUMBER;
19192 l_acc_rev_natural_side_code   VARCHAR2(1);
19193 
19194 l_num_entries                 NUMBER;
19195 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
19196 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
19197 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
19198 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
19199 l_recog_line_1                NUMBER;
19200 l_recog_line_2                NUMBER;
19201 
19202 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
19203 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
19204 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
19205 
19206 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
19207 
19208 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
19209 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
19210 
19211 ---------------------------------------------------------------------------------------------------------------
19212 
19213 
19214 --
19215 -- bulk performance
19216 --
19217 l_balance_type_code           VARCHAR2(1);
19218 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
19219 l_log_module                  VARCHAR2(240);
19220 
19221 --
19222 -- Upgrade strategy
19223 --
19224 l_actual_upg_option           VARCHAR2(1);
19225 l_enc_upg_option           VARCHAR2(1);
19226 
19227 --
19228 BEGIN
19229 --
19230 IF g_log_enabled THEN
19231       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_61';
19232 END IF;
19233 --
19234 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19235 
19236       trace
19237          (p_msg      => 'BEGIN of AcctLineType_61'
19238          ,p_level    => C_LEVEL_PROCEDURE
19239          ,p_module   => l_log_module);
19240 
19241 END IF;
19242 --
19243 l_component_type             := 'AMB_JLT';
19244 l_component_code             := 'AP_CASH_CLEARONLY_AOS_AS';
19245 l_component_type_code        := 'S';
19246 l_component_appl_id          :=  200;
19247 l_amb_context_code           := 'DEFAULT';
19248 l_entity_code                := 'AP_PAYMENTS';
19249 l_event_class_code           := 'RECONCILED PAYMENTS';
19250 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
19251 l_line_definition_owner_code := 'S';
19252 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
19253 --
19254 l_balance_type_code          := 'A';
19255 l_segment                     := NULL;
19256 l_ccid                        := NULL;
19257 l_adr_transaction_coa_id      := NULL;
19258 l_adr_accounting_coa_id       := NULL;
19259 l_adr_flexfield_segment_code  := NULL;
19260 l_adr_flex_value_set_id       := NULL;
19261 l_adr_value_type_code         := NULL;
19262 l_adr_value_combination_id    := NULL;
19263 l_adr_value_segment_code      := NULL;
19264 
19265 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
19266 l_bflow_class_code           := '';    -- 4219869 Business Flow
19267 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
19268 l_budgetary_control_flag     := 'N';
19269 
19270 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
19271 l_bflow_applied_to_amt       := NULL; -- 5132302
19272 l_entered_amt_idx            := NULL;          -- 4262811
19273 l_accted_amt_idx             := NULL;          -- 4262811
19274 l_acc_rev_flag               := NULL;          -- 4262811
19275 l_accrual_line_num           := NULL;          -- 4262811
19276 l_tmp_amt                    := NULL;          -- 4262811
19277 --
19278  
19279 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
19280     l_balance_type_code <> 'B' THEN
19281 IF NVL(p_source_97,'
19282 ') <>  'ISSUE_ISSUE' AND 
19283 (NVL(p_source_113,'
19284 ') =  'Y' AND 
19285 NVL(p_source_15,'
19286 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
19287 (NVL(p_source_98,'
19288 ') =  'CASH' OR 
19289 NVL(p_source_98,'
19290 ') =  'BANK CHARGE' OR 
19291 NVL(p_source_98,'
19292 ') =  'BANK ERROR')
19293  THEN 
19294 
19295    --
19299    -- set the flag so later we will know whether the gain loss line needs to be created
19296    XLA_AE_LINES_PKG.SetNewLine;
19297 
19298    p_balance_type_code          := l_balance_type_code;
19300    
19301    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
19302      p_actual_flag :='A';
19303    END IF;
19304 
19305    --
19306    -- bulk performance
19307    --
19308    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
19309                                       p_header_num   => 0); -- 4262811
19310    --
19311    -- set accounting line options
19312    --
19313    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
19314            p_natural_side_code          => 'C'
19315          , p_gain_or_loss_flag          => 'N'
19316          , p_gl_transfer_mode_code      => 'S'
19317          , p_acct_entry_type_code       => 'A'
19318          , p_switch_side_flag           => 'Y'
19319          , p_merge_duplicate_code       => 'A'
19320          );
19321    --
19322    l_acc_rev_natural_side_code := 'D';  -- 4262811
19323    -- 
19324    --
19325    -- set accounting line type info
19326    --
19327    xla_ae_lines_pkg.SetAcctLineType
19328       (p_component_type             => l_component_type
19329       ,p_event_type_code            => l_event_type_code
19330       ,p_line_definition_owner_code => l_line_definition_owner_code
19331       ,p_line_definition_code       => l_line_definition_code
19332       ,p_accounting_line_code       => l_component_code
19333       ,p_accounting_line_type_code  => l_component_type_code
19334       ,p_accounting_line_appl_id    => l_component_appl_id
19335       ,p_amb_context_code           => l_amb_context_code
19336       ,p_entity_code                => l_entity_code
19337       ,p_event_class_code           => l_event_class_code);
19338    --
19339    -- set accounting class
19340    --
19341    xla_ae_lines_pkg.SetAcctClass(
19342            p_accounting_class_code  => 'CASH'
19343          , p_ae_header_id           => l_ae_header_id
19344          );
19345 
19346    --
19347    -- set rounding class
19348    --
19349    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
19350                       'CASH';
19351 
19352    --
19353    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
19354    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
19355    --
19356    -- bulk performance
19357    --
19358    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
19359 
19360    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
19361       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
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('header_index'));
19366 
19367    -- 4458381 Public Sector Enh
19368    
19369    --
19370    -- set accounting attributes for the line type
19371    --
19372    l_entered_amt_idx := 10;
19373    l_accted_amt_idx  := 15;
19374    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
19375    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
19376    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
19377    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
19378    l_rec_acct_attrs.array_num_value(2)  := p_source_99;
19379    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
19380    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
19381    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
19382    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
19383    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
19384    l_rec_acct_attrs.array_char_value(5)  := p_source_101;
19385    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
19386    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
19387    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
19388    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
19389    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
19390    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
19391    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
19392    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
19393    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
19394    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
19395    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
19396    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
19397    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
19398    l_rec_acct_attrs.array_date_value(12)  := p_source_106;
19399    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
19400    l_rec_acct_attrs.array_num_value(13)  := p_source_107;
19401    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
19402    l_rec_acct_attrs.array_char_value(14)  := p_source_108;
19403    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
19404    l_rec_acct_attrs.array_num_value(15)  := p_source_109;
19405    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
19406    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
19410    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
19407    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
19408    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
19409    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
19411    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
19412    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
19413    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
19414    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
19415    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
19416    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
19417    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
19418    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
19419    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
19420    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
19421    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
19422    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
19423 
19424    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
19425    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
19426 
19427    ---------------------------------------------------------------------------------------------------------------
19428    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
19429    ---------------------------------------------------------------------------------------------------------------
19430    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
19431 
19432    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19433    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19434 
19435    IF xla_accounting_cache_pkg.GetValueChar
19436          (p_source_code         => 'LEDGER_CATEGORY_CODE'
19437          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
19438    AND l_bflow_method_code = 'PRIOR_ENTRY'
19439 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
19440    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
19441          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
19442        )
19443    THEN
19444          xla_ae_lines_pkg.BflowUpgEntry
19445            (p_business_method_code    => l_bflow_method_code
19446            ,p_business_class_code     => l_bflow_class_code
19447            ,p_balance_type            => l_balance_type_code);
19448    ELSE
19449       NULL;
19450 XLA_AE_LINES_PKG.business_flow_validation(
19451                                 p_business_method_code     => l_bflow_method_code
19452                                ,p_business_class_code      => l_bflow_class_code
19453                                ,p_inherit_description_flag => l_inherit_desc_flag);
19454    END IF;
19455 
19456    --
19457    -- call analytical criteria
19458    --
19459    
19460    --
19461    -- call description
19462    --
19463    -- No description or it is inherited.
19464    --
19465    -- call ADRs
19466    -- Bug 4922099
19467    --
19468    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19469         (NVL(l_actual_upg_option, 'N') = 'O') OR
19470         (NVL(l_enc_upg_option, 'N') = 'O')
19471       )
19472    THEN
19473    NULL;
19474    --
19475    --
19476    
19477    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
19478      p_code_combination_id      => TO_NUMBER(C_NUM)
19479    , p_value_type_code          => NULL
19480    , p_transaction_coa_id       => null
19481    , p_accounting_coa_id        => null
19482    , p_adr_code                 => NULL
19483    , p_adr_type_code            => NULL
19484    , p_component_type           => l_component_type
19485    , p_component_code           => l_component_code
19486    , p_component_type_code      => l_component_type_code
19487    , p_component_appl_id        => l_component_appl_id
19488    , p_amb_context_code         => l_amb_context_code
19489    , p_side                     => NULL
19490    );
19491 
19492    
19493   -- initialise segments
19494   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19495   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19496   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19497   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19498   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19499   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19500   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19501   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19502   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19503   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19504   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19505   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19509   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19506   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19507   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19508   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19510   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19511   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19512   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19513   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19514   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19515   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19516   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19517   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19518   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19519   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19520   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19521   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19522   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19523   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19524   --
19525 
19526    --
19527 
19528 
19529    l_segment := AcctDerRule_6(
19530            p_application_id           => p_application_id
19531          , p_ae_header_id             => l_ae_header_id 
19532 , p_source_17 => p_source_17
19533          , x_transaction_coa_id       => l_adr_transaction_coa_id
19534          , x_accounting_coa_id        => l_adr_accounting_coa_id
19535          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
19536          , x_flex_value_set_id        => l_adr_flex_value_set_id
19537          , x_value_type_code          => l_adr_value_type_code
19538          , x_value_combination_id     => l_adr_value_combination_id
19539          , x_value_segment_code       => l_adr_value_segment_code
19540          , p_side                     => 'NA'
19541          , p_override_seg_flag        => 'Y'
19542    );
19543 
19544    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
19545 
19546       xla_ae_lines_pkg.set_segment(
19547           p_to_segment_code         => 'GL_ACCOUNT'
19548         , p_segment_value           => l_segment
19549         , p_from_segment_code       => l_adr_value_segment_code
19550         , p_from_combination_id     => l_adr_value_combination_id
19551         , p_value_type_code         => l_adr_value_type_code
19552         , p_transaction_coa_id      => l_adr_transaction_coa_id
19553         , p_accounting_coa_id       => l_adr_accounting_coa_id
19554         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
19555         , p_flex_value_set_id       => l_adr_flex_value_set_id
19556         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
19557         , p_adr_type_code           => 'S'
19558         , p_component_type          => l_component_type
19559         , p_component_code          => l_component_code
19560         , p_component_type_code     => l_component_type_code
19561         , p_component_appl_id       => l_component_appl_id
19562         , p_amb_context_code        => l_amb_context_code
19563         , p_entity_code             => 'AP_PAYMENTS'
19564         , p_event_class_code        => 'RECONCILED PAYMENTS'
19565         , p_side                    => 'NA'
19566         );
19567 
19568   END IF;
19569 
19570    --
19571    --
19572    END IF;
19573    --
19574    -- Bug 4922099
19575    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
19576           (NVL(l_enc_upg_option, 'N') = 'O')
19577         ) AND
19578         (l_bflow_method_code = 'PRIOR_ENTRY')
19579       )
19580    THEN
19581       IF
19582       --
19583       1 = 2
19584       --
19585       THEN
19586       xla_accounting_err_pkg.build_message
19587                                     (p_appli_s_name            => 'XLA'
19588                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19589                                     ,p_token_1                 => 'LINE_NUMBER'
19590                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
19591                                     ,p_token_2                 => 'LINE_TYPE_NAME'
19592                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
19593                                                                              l_component_type
19594                                                                             ,l_component_code
19595                                                                             ,l_component_type_code
19596                                                                             ,l_component_appl_id
19597                                                                             ,l_amb_context_code
19598                                                                             ,l_entity_code
19599                                                                             ,l_event_class_code
19600                                                                            )
19601                                     ,p_token_3                 => 'OWNER'
19605                                                                          )
19602                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
19603                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
19604                                                                           ,p_lookup_code    => l_component_type_code
19606                                     ,p_token_4                 => 'PRODUCT_NAME'
19607                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
19608                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
19609                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
19610                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
19611                                     ,p_ae_header_id            =>  NULL
19612                                        );
19613 
19614         IF (C_LEVEL_ERROR>= g_log_level) THEN
19615                  trace
19616                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19617                       ,p_level    => C_LEVEL_ERROR
19618                       ,p_module   => l_log_module);
19619         END IF;
19620       END IF;
19621    END IF;
19622    --
19623    --
19624    ------------------------------------------------------------------------------------------------
19625    -- 4219869 Business Flow
19626    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
19627    -- Prior Entry.  Currently, the following code is always generated.
19628    ------------------------------------------------------------------------------------------------
19629    XLA_AE_LINES_PKG.ValidateCurrentLine;
19630 
19631    ------------------------------------------------------------------------------------
19632    -- 4219869 Business Flow
19633    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
19634    ------------------------------------------------------------------------------------
19635    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19636 
19637    ----------------------------------------------------------------------------------
19638    -- 4219869 Business Flow
19639    -- Update journal entry status -- Need to generate this within IF <condition>
19640    ----------------------------------------------------------------------------------
19641    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19642          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
19643          ,p_balance_type_code => l_balance_type_code
19644          );
19645 
19646    -------------------------------------------------------------------------------------------
19647    -- 4262811 - Generate the Accrual Reversal lines
19648    -------------------------------------------------------------------------------------------
19649    BEGIN
19650       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
19651                               (g_array_event(p_event_id).array_value_num('header_index'));
19652       IF l_acc_rev_flag IS NULL THEN
19653          l_acc_rev_flag := 'N';
19654       END IF;
19655    EXCEPTION
19656       WHEN OTHERS THEN
19657          l_acc_rev_flag := 'N';
19658    END;
19659    --
19660    IF (l_acc_rev_flag = 'Y') THEN
19661 
19662        -- 4645092  ------------------------------------------------------------------------------
19663        -- To allow MPA report to determine if it should generate report process
19664        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
19665        ------------------------------------------------------------------------------------------
19666 
19667        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
19668        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
19669    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
19670    -- call ADRs
19671    -- Bug 4922099
19672    --
19673    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19674         (NVL(l_actual_upg_option, 'N') = 'O') OR
19675         (NVL(l_enc_upg_option, 'N') = 'O')
19676       )
19677    THEN
19678    NULL;
19679    --
19680    --
19681    
19682    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
19683      p_code_combination_id      => TO_NUMBER(C_NUM)
19684    , p_value_type_code          => NULL
19685    , p_transaction_coa_id       => null
19686    , p_accounting_coa_id        => null
19687    , p_adr_code                 => NULL
19688    , p_adr_type_code            => NULL
19689    , p_component_type           => l_component_type
19690    , p_component_code           => l_component_code
19691    , p_component_type_code      => l_component_type_code
19692    , p_component_appl_id        => l_component_appl_id
19693    , p_amb_context_code         => l_amb_context_code
19694    , p_side                     => NULL
19695    );
19696 
19697    
19698   -- initialise segments
19699   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19700   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19701   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19702   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19706   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19703   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19704   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19705   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19707   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
19708   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19709   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19710   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19711   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19712   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19713   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19714   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19715   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19716   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19717   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19718   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19719   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19720   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19721   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19722   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19723   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19724   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19725   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19726   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19727   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19728   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
19729   --
19730 
19731    --
19732 
19733 
19734    l_segment := AcctDerRule_6(
19735            p_application_id           => p_application_id
19736          , p_ae_header_id             => l_ae_header_id 
19737 , p_source_17 => p_source_17
19738          , x_transaction_coa_id       => l_adr_transaction_coa_id
19739          , x_accounting_coa_id        => l_adr_accounting_coa_id
19740          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
19741          , x_flex_value_set_id        => l_adr_flex_value_set_id
19742          , x_value_type_code          => l_adr_value_type_code
19743          , x_value_combination_id     => l_adr_value_combination_id
19744          , x_value_segment_code       => l_adr_value_segment_code
19745          , p_side                     => 'NA'
19746          , p_override_seg_flag        => 'Y'
19747    );
19748 
19749    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
19750 
19751       xla_ae_lines_pkg.set_segment(
19752           p_to_segment_code         => 'GL_ACCOUNT'
19753         , p_segment_value           => l_segment
19754         , p_from_segment_code       => l_adr_value_segment_code
19755         , p_from_combination_id     => l_adr_value_combination_id
19756         , p_value_type_code         => l_adr_value_type_code
19757         , p_transaction_coa_id      => l_adr_transaction_coa_id
19758         , p_accounting_coa_id       => l_adr_accounting_coa_id
19759         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
19760         , p_flex_value_set_id       => l_adr_flex_value_set_id
19761         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
19762         , p_adr_type_code           => 'S'
19763         , p_component_type          => l_component_type
19764         , p_component_code          => l_component_code
19765         , p_component_type_code     => l_component_type_code
19766         , p_component_appl_id       => l_component_appl_id
19767         , p_amb_context_code        => l_amb_context_code
19768         , p_entity_code             => 'AP_PAYMENTS'
19769         , p_event_class_code        => 'RECONCILED PAYMENTS'
19770         , p_side                    => 'NA'
19771         );
19772 
19773   END IF;
19774 
19775    --
19776    --
19777    END IF;
19778 
19779        --
19780        -- Update the line information that should be overwritten
19781        --
19782        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
19783                                          p_header_num   => 1);
19784        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
19785 
19786        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
19787 
19788        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
19789           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
19790        END IF;
19791 
19792       --
19793       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
19794       --
19795       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
19796           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
19800           ---------------------------------------------------------------------------------------------------
19797       ELSE
19798           ---------------------------------------------------------------------------------------------------
19799           -- 4262811a Switch Sign
19801           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
19802           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19803                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19804           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19805                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19806           -- 5132302
19807           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
19808                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19809 
19810       END IF;
19811 
19812       -- 4955764
19813       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19814       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
19815 
19816 
19817       XLA_AE_LINES_PKG.ValidateCurrentLine;
19818       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19819 
19820       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19821                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19822                ,p_balance_type_code => l_balance_type_code);
19823 
19824    END IF;
19825 
19826    -----------------------------------------------------------------------------------------
19827    -- 4262811 Multiperiod Accounting
19828    -----------------------------------------------------------------------------------------
19829      -- No MPA option is assigned.
19830 
19831 
19832 END IF;
19833 END IF;
19834 --
19835 
19836 --
19837 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19838    trace
19839       (p_msg      => 'END of AcctLineType_61'
19840       ,p_level    => C_LEVEL_PROCEDURE
19841       ,p_module   => l_log_module);
19842 END IF;
19843 --
19844 EXCEPTION
19845   WHEN xla_exceptions_pkg.application_exception THEN
19846       RAISE;
19847   WHEN OTHERS THEN
19848        xla_exceptions_pkg.raise_message
19849            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_61');
19850 END AcctLineType_61;
19851 --
19852 
19853 ---------------------------------------
19854 --
19855 -- PRIVATE FUNCTION
19856 --         AcctLineType_62
19857 --
19858 ---------------------------------------
19859 PROCEDURE AcctLineType_62 (
19860   p_application_id        IN NUMBER
19861  ,p_event_id              IN NUMBER
19862  ,p_calculate_acctd_flag  IN VARCHAR2
19863  ,p_calculate_g_l_flag    IN VARCHAR2
19864  ,p_actual_flag           IN OUT VARCHAR2
19865  ,p_balance_type_code     OUT VARCHAR2
19866  ,p_gain_or_loss_ref      OUT VARCHAR2
19867  
19868 --Payment Currency Code
19869  , p_source_13            IN VARCHAR2
19870 --Automatic Offsets Value
19871  , p_source_15            IN VARCHAR2
19872  , p_source_15_meaning    IN VARCHAR2
19873 --Bank Cash Account
19874  , p_source_17            IN NUMBER
19875 --Accounting Reversal Indicator
19876  , p_source_53            IN VARCHAR2
19877 --Distribution Link Type
19878  , p_source_55            IN VARCHAR2
19879 --Override Accounted Amount Indicator
19880  , p_source_80            IN VARCHAR2
19881  , p_source_80_meaning    IN VARCHAR2
19882 --Third Party Type
19883  , p_source_83            IN VARCHAR2
19884 --Invoice Distribution Tax Line Identifier
19885  , p_source_86            IN NUMBER
19886 --Invoice Distribution Summary Tax Line Identifier
19887  , p_source_88            IN NUMBER
19888 --Business Flow Accounts Payable Application Identifier
19889  , p_source_91            IN NUMBER
19890 --When to Account for Payment Option
19891  , p_source_97            IN VARCHAR2
19892 --Payment Distribution Type
19893  , p_source_98            IN VARCHAR2
19894  , p_source_98_meaning    IN VARCHAR2
19895 --Payment Distribution Amount
19896  , p_source_99            IN NUMBER
19897 --Business Flow Payment Distribution Type
19898  , p_source_100            IN VARCHAR2
19899 --Business Flow Payment Entity Code
19900  , p_source_101            IN VARCHAR2
19901 --Business Flow Payment Distribution Identifier
19902  , p_source_102            IN NUMBER
19903 --Business Flow Payment Identifier
19904  , p_source_103            IN NUMBER
19905 --Payment Distribution Identifier
19906  , p_source_104            IN NUMBER
19907 --Cleared Exchange Date
19908  , p_source_106            IN DATE
19909 --Cleared Exchange Rate
19910  , p_source_107            IN NUMBER
19911 --Cleared Exchange Rate Type
19912  , p_source_108            IN VARCHAR2
19913 --Payment Distribution (Cleared Rate) Ledger Amount
19914  , p_source_109            IN NUMBER
19915 --Payment Supplier Identifier
19916  , p_source_110            IN NUMBER
19917 --Payment Supplier Site Identifier
19918  , p_source_111            IN NUMBER
19919 --Payment Distribution Reversed Identifier
19920  , p_source_112            IN NUMBER
19921 --Pooled Bank Account Option
19922  , p_source_113            IN VARCHAR2
19923  , p_source_113_meaning    IN VARCHAR2
19924 )
19928 l_component_code              VARCHAR2(30);
19925 IS
19926 
19927 l_component_type              VARCHAR2(80);
19929 l_component_type_code         VARCHAR2(1);
19930 l_component_appl_id           INTEGER;
19931 l_amb_context_code            VARCHAR2(30);
19932 l_entity_code                 VARCHAR2(30);
19933 l_event_class_code            VARCHAR2(30);
19934 l_ae_header_id                NUMBER;
19935 l_event_type_code             VARCHAR2(30);
19936 l_line_definition_code        VARCHAR2(30);
19937 l_line_definition_owner_code  VARCHAR2(1);
19938 --
19939 -- adr variables
19940 l_segment                     VARCHAR2(30);
19941 l_ccid                        NUMBER;
19942 l_adr_transaction_coa_id      NUMBER;
19943 l_adr_accounting_coa_id       NUMBER;
19944 l_adr_flexfield_segment_code  VARCHAR2(30);
19945 l_adr_flex_value_set_id       NUMBER;
19946 l_adr_value_type_code         VARCHAR2(30);
19947 l_adr_value_combination_id    NUMBER;
19948 l_adr_value_segment_code      VARCHAR2(30);
19949 
19950 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
19951 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
19952 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
19953 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
19954 
19955 -- 4262811 Variables ------------------------------------------------------------------------------------------
19956 l_entered_amt_idx             NUMBER;
19957 l_accted_amt_idx              NUMBER;
19958 l_acc_rev_flag                VARCHAR2(1);
19959 l_accrual_line_num            NUMBER;
19960 l_tmp_amt                     NUMBER;
19961 l_acc_rev_natural_side_code   VARCHAR2(1);
19962 
19963 l_num_entries                 NUMBER;
19964 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
19965 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
19966 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
19967 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
19968 l_recog_line_1                NUMBER;
19969 l_recog_line_2                NUMBER;
19970 
19971 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
19972 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
19973 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
19974 
19975 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
19976 
19977 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
19978 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
19979 
19980 ---------------------------------------------------------------------------------------------------------------
19981 
19982 
19983 --
19984 -- bulk performance
19985 --
19986 l_balance_type_code           VARCHAR2(1);
19987 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
19988 l_log_module                  VARCHAR2(240);
19989 
19990 --
19991 -- Upgrade strategy
19992 --
19993 l_actual_upg_option           VARCHAR2(1);
19994 l_enc_upg_option           VARCHAR2(1);
19995 
19996 --
19997 BEGIN
19998 --
19999 IF g_log_enabled THEN
20000       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_62';
20001 END IF;
20002 --
20003 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20004 
20005       trace
20006          (p_msg      => 'BEGIN of AcctLineType_62'
20007          ,p_level    => C_LEVEL_PROCEDURE
20008          ,p_module   => l_log_module);
20009 
20010 END IF;
20011 --
20012 l_component_type             := 'AMB_JLT';
20013 l_component_code             := 'AP_CASH_CLEARONLY_AOS_BS';
20014 l_component_type_code        := 'S';
20015 l_component_appl_id          :=  200;
20016 l_amb_context_code           := 'DEFAULT';
20017 l_entity_code                := 'AP_PAYMENTS';
20018 l_event_class_code           := 'RECONCILED PAYMENTS';
20019 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
20020 l_line_definition_owner_code := 'S';
20021 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
20022 --
20023 l_balance_type_code          := 'A';
20024 l_segment                     := NULL;
20025 l_ccid                        := NULL;
20026 l_adr_transaction_coa_id      := NULL;
20027 l_adr_accounting_coa_id       := NULL;
20028 l_adr_flexfield_segment_code  := NULL;
20029 l_adr_flex_value_set_id       := NULL;
20030 l_adr_value_type_code         := NULL;
20031 l_adr_value_combination_id    := NULL;
20032 l_adr_value_segment_code      := NULL;
20033 
20034 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
20035 l_bflow_class_code           := '';    -- 4219869 Business Flow
20036 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
20037 l_budgetary_control_flag     := 'N';
20038 
20039 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
20040 l_bflow_applied_to_amt       := NULL; -- 5132302
20041 l_entered_amt_idx            := NULL;          -- 4262811
20042 l_accted_amt_idx             := NULL;          -- 4262811
20043 l_acc_rev_flag               := NULL;          -- 4262811
20044 l_accrual_line_num           := NULL;          -- 4262811
20045 l_tmp_amt                    := NULL;          -- 4262811
20046 --
20047  
20048 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
20049     l_balance_type_code <> 'B' THEN
20053 ') =  'Y' AND 
20050 IF NVL(p_source_97,'
20051 ') <>  'ISSUE_ISSUE' AND 
20052 (NVL(p_source_113,'
20054 NVL(p_source_15,'
20055 ') =  'BALANCING_SEGMENT') AND 
20056 (NVL(p_source_98,'
20057 ') =  'CASH' OR 
20058 NVL(p_source_98,'
20059 ') =  'BANK CHARGE' OR 
20060 NVL(p_source_98,'
20061 ') =  'BANK ERROR')
20062  THEN 
20063 
20064    --
20065    XLA_AE_LINES_PKG.SetNewLine;
20066 
20067    p_balance_type_code          := l_balance_type_code;
20068    -- set the flag so later we will know whether the gain loss line needs to be created
20069    
20070    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
20071      p_actual_flag :='A';
20072    END IF;
20073 
20074    --
20075    -- bulk performance
20076    --
20077    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
20078                                       p_header_num   => 0); -- 4262811
20079    --
20080    -- set accounting line options
20081    --
20082    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
20083            p_natural_side_code          => 'C'
20084          , p_gain_or_loss_flag          => 'N'
20085          , p_gl_transfer_mode_code      => 'S'
20086          , p_acct_entry_type_code       => 'A'
20087          , p_switch_side_flag           => 'Y'
20088          , p_merge_duplicate_code       => 'A'
20089          );
20090    --
20091    l_acc_rev_natural_side_code := 'D';  -- 4262811
20092    -- 
20093    --
20094    -- set accounting line type info
20095    --
20096    xla_ae_lines_pkg.SetAcctLineType
20097       (p_component_type             => l_component_type
20098       ,p_event_type_code            => l_event_type_code
20099       ,p_line_definition_owner_code => l_line_definition_owner_code
20100       ,p_line_definition_code       => l_line_definition_code
20101       ,p_accounting_line_code       => l_component_code
20102       ,p_accounting_line_type_code  => l_component_type_code
20103       ,p_accounting_line_appl_id    => l_component_appl_id
20104       ,p_amb_context_code           => l_amb_context_code
20105       ,p_entity_code                => l_entity_code
20106       ,p_event_class_code           => l_event_class_code);
20107    --
20108    -- set accounting class
20109    --
20110    xla_ae_lines_pkg.SetAcctClass(
20111            p_accounting_class_code  => 'CASH'
20112          , p_ae_header_id           => l_ae_header_id
20113          );
20114 
20115    --
20116    -- set rounding class
20117    --
20118    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
20119                       'CASH';
20120 
20121    --
20122    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
20123    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
20124    --
20125    -- bulk performance
20126    --
20127    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
20128 
20129    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
20130       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
20131 
20132    -- 4955764
20133    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20134       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
20135 
20136    -- 4458381 Public Sector Enh
20137    
20138    --
20139    -- set accounting attributes for the line type
20140    --
20141    l_entered_amt_idx := 10;
20142    l_accted_amt_idx  := 15;
20143    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
20144    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
20145    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
20146    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
20147    l_rec_acct_attrs.array_num_value(2)  := p_source_99;
20148    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
20149    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
20150    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
20151    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
20152    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
20153    l_rec_acct_attrs.array_char_value(5)  := p_source_101;
20154    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
20155    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
20156    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
20157    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
20158    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
20159    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
20160    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
20161    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
20162    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
20163    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
20164    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
20165    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
20166    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
20167    l_rec_acct_attrs.array_date_value(12)  := p_source_106;
20168    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
20169    l_rec_acct_attrs.array_num_value(13)  := p_source_107;
20173    l_rec_acct_attrs.array_num_value(15)  := p_source_109;
20170    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
20171    l_rec_acct_attrs.array_char_value(14)  := p_source_108;
20172    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
20174    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
20175    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
20176    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
20177    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
20178    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
20179    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
20180    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
20181    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
20182    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
20183    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
20184    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
20185    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
20186    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
20187    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
20188    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
20189    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
20190    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
20191    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
20192 
20193    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20194    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20195 
20196    ---------------------------------------------------------------------------------------------------------------
20197    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20198    ---------------------------------------------------------------------------------------------------------------
20199    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20200 
20201    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20202    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20203 
20204    IF xla_accounting_cache_pkg.GetValueChar
20205          (p_source_code         => 'LEDGER_CATEGORY_CODE'
20206          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20207    AND l_bflow_method_code = 'PRIOR_ENTRY'
20208 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20209    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20210          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20211        )
20212    THEN
20213          xla_ae_lines_pkg.BflowUpgEntry
20214            (p_business_method_code    => l_bflow_method_code
20215            ,p_business_class_code     => l_bflow_class_code
20216            ,p_balance_type            => l_balance_type_code);
20217    ELSE
20218       NULL;
20219 XLA_AE_LINES_PKG.business_flow_validation(
20220                                 p_business_method_code     => l_bflow_method_code
20221                                ,p_business_class_code      => l_bflow_class_code
20222                                ,p_inherit_description_flag => l_inherit_desc_flag);
20223    END IF;
20224 
20225    --
20226    -- call analytical criteria
20227    --
20228    
20229    --
20230    -- call description
20231    --
20232    -- No description or it is inherited.
20233    --
20234    -- call ADRs
20235    -- Bug 4922099
20236    --
20237    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20238         (NVL(l_actual_upg_option, 'N') = 'O') OR
20239         (NVL(l_enc_upg_option, 'N') = 'O')
20240       )
20241    THEN
20242    NULL;
20243    --
20244    --
20245    
20246   l_ccid := AcctDerRule_28(
20247            p_application_id           => p_application_id
20248          , p_ae_header_id             => l_ae_header_id 
20249 , p_source_17 => p_source_17
20250          , x_transaction_coa_id       => l_adr_transaction_coa_id
20251          , x_accounting_coa_id        => l_adr_accounting_coa_id
20252          , x_value_type_code          => l_adr_value_type_code
20253          , p_side                     => 'NA'
20254    );
20255 
20256    xla_ae_lines_pkg.set_ccid(
20257     p_code_combination_id          => l_ccid
20258   , p_value_type_code              => l_adr_value_type_code
20259   , p_transaction_coa_id           => l_adr_transaction_coa_id
20260   , p_accounting_coa_id            => l_adr_accounting_coa_id
20261   , p_adr_code                     => 'AP_CASH'
20262   , p_adr_type_code                => 'S'
20263   , p_component_type               => l_component_type
20264   , p_component_code               => l_component_code
20265   , p_component_type_code          => l_component_type_code
20266   , p_component_appl_id            => l_component_appl_id
20267   , p_amb_context_code             => l_amb_context_code
20268   , p_side                         => 'NA'
20269   );
20270 
20271 
20272    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
20273      p_to_segment_code         => 'GL_BALANCING'
20274    , p_segment_value           => C_CHAR
20275    , p_from_segment_code       => NULL
20276    , p_from_combination_id     => NULL
20277    , p_value_type_code         => NULL
20281    , p_flex_value_set_id       => NULL
20278    , p_transaction_coa_id      => null
20279    , p_accounting_coa_id       => null
20280    , p_flexfield_segment_code  => NULL
20282    , p_adr_code                => NULL
20283    , p_adr_type_code           => NULL
20284    , p_component_type          => l_component_type
20285    , p_component_code          => l_component_code
20286    , p_component_type_code     => l_component_type_code
20287    , p_component_appl_id       => l_component_appl_id
20288    , p_amb_context_code        => l_amb_context_code
20289    , p_entity_code             => 'AP_PAYMENTS'
20290    , p_event_class_code        => 'RECONCILED PAYMENTS'
20291    , p_side                    => 'NA'
20292    );
20293    --
20294 
20295 
20296    --
20297    --
20298    END IF;
20299    --
20300    -- Bug 4922099
20301    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20302           (NVL(l_enc_upg_option, 'N') = 'O')
20303         ) AND
20304         (l_bflow_method_code = 'PRIOR_ENTRY')
20305       )
20306    THEN
20307       IF
20308       --
20309       1 = 2
20310       --
20311       THEN
20312       xla_accounting_err_pkg.build_message
20313                                     (p_appli_s_name            => 'XLA'
20314                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20315                                     ,p_token_1                 => 'LINE_NUMBER'
20316                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
20317                                     ,p_token_2                 => 'LINE_TYPE_NAME'
20318                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
20319                                                                              l_component_type
20320                                                                             ,l_component_code
20321                                                                             ,l_component_type_code
20322                                                                             ,l_component_appl_id
20323                                                                             ,l_amb_context_code
20324                                                                             ,l_entity_code
20325                                                                             ,l_event_class_code
20326                                                                            )
20327                                     ,p_token_3                 => 'OWNER'
20328                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
20329                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
20330                                                                           ,p_lookup_code    => l_component_type_code
20331                                                                          )
20332                                     ,p_token_4                 => 'PRODUCT_NAME'
20333                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
20334                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
20335                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
20336                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
20337                                     ,p_ae_header_id            =>  NULL
20338                                        );
20339 
20340         IF (C_LEVEL_ERROR>= g_log_level) THEN
20341                  trace
20342                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20343                       ,p_level    => C_LEVEL_ERROR
20344                       ,p_module   => l_log_module);
20345         END IF;
20346       END IF;
20347    END IF;
20348    --
20349    --
20350    ------------------------------------------------------------------------------------------------
20351    -- 4219869 Business Flow
20352    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
20353    -- Prior Entry.  Currently, the following code is always generated.
20354    ------------------------------------------------------------------------------------------------
20355    XLA_AE_LINES_PKG.ValidateCurrentLine;
20356 
20357    ------------------------------------------------------------------------------------
20358    -- 4219869 Business Flow
20359    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
20360    ------------------------------------------------------------------------------------
20361    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20362 
20363    ----------------------------------------------------------------------------------
20364    -- 4219869 Business Flow
20365    -- Update journal entry status -- Need to generate this within IF <condition>
20366    ----------------------------------------------------------------------------------
20367    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20368          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
20369          ,p_balance_type_code => l_balance_type_code
20370          );
20371 
20372    -------------------------------------------------------------------------------------------
20373    -- 4262811 - Generate the Accrual Reversal lines
20374    -------------------------------------------------------------------------------------------
20375    BEGIN
20379          l_acc_rev_flag := 'N';
20376       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
20377                               (g_array_event(p_event_id).array_value_num('header_index'));
20378       IF l_acc_rev_flag IS NULL THEN
20380       END IF;
20381    EXCEPTION
20382       WHEN OTHERS THEN
20383          l_acc_rev_flag := 'N';
20384    END;
20385    --
20386    IF (l_acc_rev_flag = 'Y') THEN
20387 
20388        -- 4645092  ------------------------------------------------------------------------------
20389        -- To allow MPA report to determine if it should generate report process
20390        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
20391        ------------------------------------------------------------------------------------------
20392 
20393        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
20394        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
20395    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
20396    -- call ADRs
20397    -- Bug 4922099
20398    --
20399    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20400         (NVL(l_actual_upg_option, 'N') = 'O') OR
20401         (NVL(l_enc_upg_option, 'N') = 'O')
20402       )
20403    THEN
20404    NULL;
20405    --
20406    --
20407    
20408   l_ccid := AcctDerRule_28(
20409            p_application_id           => p_application_id
20410          , p_ae_header_id             => l_ae_header_id 
20411 , p_source_17 => p_source_17
20412          , x_transaction_coa_id       => l_adr_transaction_coa_id
20413          , x_accounting_coa_id        => l_adr_accounting_coa_id
20414          , x_value_type_code          => l_adr_value_type_code
20415          , p_side                     => 'NA'
20416    );
20417 
20418    xla_ae_lines_pkg.set_ccid(
20419     p_code_combination_id          => l_ccid
20420   , p_value_type_code              => l_adr_value_type_code
20421   , p_transaction_coa_id           => l_adr_transaction_coa_id
20422   , p_accounting_coa_id            => l_adr_accounting_coa_id
20423   , p_adr_code                     => 'AP_CASH'
20424   , p_adr_type_code                => 'S'
20425   , p_component_type               => l_component_type
20426   , p_component_code               => l_component_code
20427   , p_component_type_code          => l_component_type_code
20428   , p_component_appl_id            => l_component_appl_id
20429   , p_amb_context_code             => l_amb_context_code
20430   , p_side                         => 'NA'
20431   );
20432 
20433 
20434    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
20435      p_to_segment_code         => 'GL_BALANCING'
20436    , p_segment_value           => C_CHAR
20437    , p_from_segment_code       => NULL
20438    , p_from_combination_id     => NULL
20439    , p_value_type_code         => NULL
20440    , p_transaction_coa_id      => null
20441    , p_accounting_coa_id       => null
20442    , p_flexfield_segment_code  => NULL
20443    , p_flex_value_set_id       => NULL
20444    , p_adr_code                => NULL
20445    , p_adr_type_code           => NULL
20446    , p_component_type          => l_component_type
20447    , p_component_code          => l_component_code
20448    , p_component_type_code     => l_component_type_code
20449    , p_component_appl_id       => l_component_appl_id
20450    , p_amb_context_code        => l_amb_context_code
20451    , p_entity_code             => 'AP_PAYMENTS'
20452    , p_event_class_code        => 'RECONCILED PAYMENTS'
20453    , p_side                    => 'NA'
20454    );
20455    --
20456 
20457 
20458    --
20459    --
20460    END IF;
20461 
20462        --
20463        -- Update the line information that should be overwritten
20464        --
20465        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
20466                                          p_header_num   => 1);
20467        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
20468 
20469        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
20470 
20471        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
20472           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
20473        END IF;
20474 
20475       --
20476       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
20477       --
20478       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
20479           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
20480       ELSE
20481           ---------------------------------------------------------------------------------------------------
20482           -- 4262811a Switch Sign
20483           ---------------------------------------------------------------------------------------------------
20484           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
20485           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20486                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20487           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20491                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20488                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20489           -- 5132302
20490           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
20492 
20493       END IF;
20494 
20495       -- 4955764
20496       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20497       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
20498 
20499 
20500       XLA_AE_LINES_PKG.ValidateCurrentLine;
20501       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20502 
20503       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20504                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
20505                ,p_balance_type_code => l_balance_type_code);
20506 
20507    END IF;
20508 
20509    -----------------------------------------------------------------------------------------
20510    -- 4262811 Multiperiod Accounting
20511    -----------------------------------------------------------------------------------------
20512      -- No MPA option is assigned.
20513 
20514 
20515 END IF;
20516 END IF;
20517 --
20518 
20519 --
20520 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20521    trace
20522       (p_msg      => 'END of AcctLineType_62'
20523       ,p_level    => C_LEVEL_PROCEDURE
20524       ,p_module   => l_log_module);
20525 END IF;
20526 --
20527 EXCEPTION
20528   WHEN xla_exceptions_pkg.application_exception THEN
20529       RAISE;
20530   WHEN OTHERS THEN
20531        xla_exceptions_pkg.raise_message
20532            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_62');
20533 END AcctLineType_62;
20534 --
20535 
20536 ---------------------------------------
20537 --
20538 -- PRIVATE FUNCTION
20539 --         AcctLineType_63
20540 --
20541 ---------------------------------------
20542 PROCEDURE AcctLineType_63 (
20543   p_application_id        IN NUMBER
20544  ,p_event_id              IN NUMBER
20545  ,p_calculate_acctd_flag  IN VARCHAR2
20546  ,p_calculate_g_l_flag    IN VARCHAR2
20547  ,p_actual_flag           IN OUT VARCHAR2
20548  ,p_balance_type_code     OUT VARCHAR2
20549  ,p_gain_or_loss_ref      OUT VARCHAR2
20550  
20551 --Payment Currency Code
20552  , p_source_13            IN VARCHAR2
20553 --Bank Cash Account
20554  , p_source_17            IN NUMBER
20555 --Automatic Offsets Flag
20556  , p_source_47            IN VARCHAR2
20557  , p_source_47_meaning    IN VARCHAR2
20558 --Accounting Reversal Indicator
20559  , p_source_53            IN VARCHAR2
20560 --Distribution Link Type
20561  , p_source_55            IN VARCHAR2
20562 --Override Accounted Amount Indicator
20563  , p_source_80            IN VARCHAR2
20564  , p_source_80_meaning    IN VARCHAR2
20565 --Third Party Type
20566  , p_source_83            IN VARCHAR2
20567 --Invoice Distribution Tax Line Identifier
20568  , p_source_86            IN NUMBER
20569 --Invoice Distribution Summary Tax Line Identifier
20570  , p_source_88            IN NUMBER
20571 --Business Flow Accounts Payable Application Identifier
20572  , p_source_91            IN NUMBER
20573 --When to Account for Payment Option
20574  , p_source_97            IN VARCHAR2
20575 --Payment Distribution Type
20576  , p_source_98            IN VARCHAR2
20577  , p_source_98_meaning    IN VARCHAR2
20578 --Payment Distribution Amount
20579  , p_source_99            IN NUMBER
20580 --Business Flow Payment Distribution Type
20581  , p_source_100            IN VARCHAR2
20582 --Business Flow Payment Entity Code
20583  , p_source_101            IN VARCHAR2
20584 --Business Flow Payment Distribution Identifier
20585  , p_source_102            IN NUMBER
20586 --Business Flow Payment Identifier
20587  , p_source_103            IN NUMBER
20588 --Payment Distribution Identifier
20589  , p_source_104            IN NUMBER
20590 --Cleared Exchange Date
20591  , p_source_106            IN DATE
20592 --Cleared Exchange Rate
20593  , p_source_107            IN NUMBER
20594 --Cleared Exchange Rate Type
20595  , p_source_108            IN VARCHAR2
20596 --Payment Distribution (Cleared Rate) Ledger Amount
20597  , p_source_109            IN NUMBER
20598 --Payment Supplier Identifier
20599  , p_source_110            IN NUMBER
20600 --Payment Supplier Site Identifier
20601  , p_source_111            IN NUMBER
20602 --Payment Distribution Reversed Identifier
20603  , p_source_112            IN NUMBER
20604 --Pooled Bank Account Option
20605  , p_source_113            IN VARCHAR2
20606  , p_source_113_meaning    IN VARCHAR2
20607 )
20608 IS
20609 
20610 l_component_type              VARCHAR2(80);
20611 l_component_code              VARCHAR2(30);
20612 l_component_type_code         VARCHAR2(1);
20613 l_component_appl_id           INTEGER;
20614 l_amb_context_code            VARCHAR2(30);
20615 l_entity_code                 VARCHAR2(30);
20616 l_event_class_code            VARCHAR2(30);
20617 l_ae_header_id                NUMBER;
20618 l_event_type_code             VARCHAR2(30);
20619 l_line_definition_code        VARCHAR2(30);
20620 l_line_definition_owner_code  VARCHAR2(1);
20621 --
20622 -- adr variables
20623 l_segment                     VARCHAR2(30);
20627 l_adr_flexfield_segment_code  VARCHAR2(30);
20624 l_ccid                        NUMBER;
20625 l_adr_transaction_coa_id      NUMBER;
20626 l_adr_accounting_coa_id       NUMBER;
20628 l_adr_flex_value_set_id       NUMBER;
20629 l_adr_value_type_code         VARCHAR2(30);
20630 l_adr_value_combination_id    NUMBER;
20631 l_adr_value_segment_code      VARCHAR2(30);
20632 
20633 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
20634 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
20635 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
20636 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
20637 
20638 -- 4262811 Variables ------------------------------------------------------------------------------------------
20639 l_entered_amt_idx             NUMBER;
20640 l_accted_amt_idx              NUMBER;
20641 l_acc_rev_flag                VARCHAR2(1);
20642 l_accrual_line_num            NUMBER;
20643 l_tmp_amt                     NUMBER;
20644 l_acc_rev_natural_side_code   VARCHAR2(1);
20645 
20646 l_num_entries                 NUMBER;
20647 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
20648 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
20649 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
20650 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
20651 l_recog_line_1                NUMBER;
20652 l_recog_line_2                NUMBER;
20653 
20654 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
20655 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
20656 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
20657 
20658 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
20659 
20660 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
20661 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
20662 
20663 ---------------------------------------------------------------------------------------------------------------
20664 
20665 
20666 --
20667 -- bulk performance
20668 --
20669 l_balance_type_code           VARCHAR2(1);
20670 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
20671 l_log_module                  VARCHAR2(240);
20672 
20673 --
20674 -- Upgrade strategy
20675 --
20676 l_actual_upg_option           VARCHAR2(1);
20677 l_enc_upg_option           VARCHAR2(1);
20678 
20679 --
20680 BEGIN
20681 --
20682 IF g_log_enabled THEN
20683       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_63';
20684 END IF;
20685 --
20686 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20687 
20688       trace
20689          (p_msg      => 'BEGIN of AcctLineType_63'
20690          ,p_level    => C_LEVEL_PROCEDURE
20691          ,p_module   => l_log_module);
20692 
20693 END IF;
20694 --
20695 l_component_type             := 'AMB_JLT';
20696 l_component_code             := 'AP_CASH_CLEARONLY_NP';
20697 l_component_type_code        := 'S';
20698 l_component_appl_id          :=  200;
20699 l_amb_context_code           := 'DEFAULT';
20700 l_entity_code                := 'AP_PAYMENTS';
20701 l_event_class_code           := 'RECONCILED PAYMENTS';
20702 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
20703 l_line_definition_owner_code := 'S';
20704 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
20705 --
20706 l_balance_type_code          := 'A';
20707 l_segment                     := NULL;
20708 l_ccid                        := NULL;
20709 l_adr_transaction_coa_id      := NULL;
20710 l_adr_accounting_coa_id       := NULL;
20711 l_adr_flexfield_segment_code  := NULL;
20712 l_adr_flex_value_set_id       := NULL;
20713 l_adr_value_type_code         := NULL;
20714 l_adr_value_combination_id    := NULL;
20715 l_adr_value_segment_code      := NULL;
20716 
20717 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
20718 l_bflow_class_code           := '';    -- 4219869 Business Flow
20719 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
20720 l_budgetary_control_flag     := 'N';
20721 
20722 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
20723 l_bflow_applied_to_amt       := NULL; -- 5132302
20724 l_entered_amt_idx            := NULL;          -- 4262811
20725 l_accted_amt_idx             := NULL;          -- 4262811
20726 l_acc_rev_flag               := NULL;          -- 4262811
20727 l_accrual_line_num           := NULL;          -- 4262811
20728 l_tmp_amt                    := NULL;          -- 4262811
20729 --
20730  
20731 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
20732     l_balance_type_code <> 'B' THEN
20733 IF NVL(p_source_97,'
20734 ') <>  'ISSUE_ISSUE' AND 
20735 (NVL(p_source_47,'
20736 ') <>  'Y' OR 
20737 NVL(p_source_47,'
20738 ') =  'Y' AND 
20739 NVL(p_source_113,'
20740 ') <>  'Y') AND 
20741 (NVL(p_source_98,'
20742 ') =  'CASH' OR 
20743 NVL(p_source_98,'
20744 ') =  'BANK CHARGE' OR 
20745 NVL(p_source_98,'
20746 ') =  'BANK ERROR')
20747  THEN 
20748 
20749    --
20750    XLA_AE_LINES_PKG.SetNewLine;
20751 
20752    p_balance_type_code          := l_balance_type_code;
20753    -- set the flag so later we will know whether the gain loss line needs to be created
20754    
20758 
20755    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
20756      p_actual_flag :='A';
20757    END IF;
20759    --
20760    -- bulk performance
20761    --
20762    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
20763                                       p_header_num   => 0); -- 4262811
20764    --
20765    -- set accounting line options
20766    --
20767    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
20768            p_natural_side_code          => 'C'
20769          , p_gain_or_loss_flag          => 'N'
20770          , p_gl_transfer_mode_code      => 'S'
20771          , p_acct_entry_type_code       => 'A'
20772          , p_switch_side_flag           => 'Y'
20773          , p_merge_duplicate_code       => 'A'
20774          );
20775    --
20776    l_acc_rev_natural_side_code := 'D';  -- 4262811
20777    -- 
20778    --
20779    -- set accounting line type info
20780    --
20781    xla_ae_lines_pkg.SetAcctLineType
20782       (p_component_type             => l_component_type
20783       ,p_event_type_code            => l_event_type_code
20784       ,p_line_definition_owner_code => l_line_definition_owner_code
20785       ,p_line_definition_code       => l_line_definition_code
20786       ,p_accounting_line_code       => l_component_code
20787       ,p_accounting_line_type_code  => l_component_type_code
20788       ,p_accounting_line_appl_id    => l_component_appl_id
20789       ,p_amb_context_code           => l_amb_context_code
20790       ,p_entity_code                => l_entity_code
20791       ,p_event_class_code           => l_event_class_code);
20792    --
20793    -- set accounting class
20794    --
20795    xla_ae_lines_pkg.SetAcctClass(
20796            p_accounting_class_code  => 'CASH'
20797          , p_ae_header_id           => l_ae_header_id
20798          );
20799 
20800    --
20801    -- set rounding class
20802    --
20803    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
20804                       'CASH';
20805 
20806    --
20807    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
20808    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
20809    --
20810    -- bulk performance
20811    --
20812    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
20813 
20814    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
20815       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
20816 
20817    -- 4955764
20818    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20819       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
20820 
20821    -- 4458381 Public Sector Enh
20822    
20823    --
20824    -- set accounting attributes for the line type
20825    --
20826    l_entered_amt_idx := 10;
20827    l_accted_amt_idx  := 15;
20828    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
20829    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
20830    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
20831    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
20832    l_rec_acct_attrs.array_num_value(2)  := p_source_99;
20833    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
20834    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
20835    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
20836    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
20837    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
20838    l_rec_acct_attrs.array_char_value(5)  := p_source_101;
20839    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
20840    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
20841    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
20842    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
20843    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
20844    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
20845    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
20846    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
20847    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
20848    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
20849    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
20850    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
20851    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
20852    l_rec_acct_attrs.array_date_value(12)  := p_source_106;
20853    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
20854    l_rec_acct_attrs.array_num_value(13)  := p_source_107;
20855    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
20856    l_rec_acct_attrs.array_char_value(14)  := p_source_108;
20857    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
20858    l_rec_acct_attrs.array_num_value(15)  := p_source_109;
20859    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
20860    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
20861    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
20862    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
20863    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
20867    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
20864    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
20865    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
20866    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
20868    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
20869    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
20870    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
20871    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
20872    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
20873    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
20874    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
20875    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
20876    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
20877 
20878    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20879    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20880 
20881    ---------------------------------------------------------------------------------------------------------------
20882    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20883    ---------------------------------------------------------------------------------------------------------------
20884    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20885 
20886    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20887    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20888 
20889    IF xla_accounting_cache_pkg.GetValueChar
20890          (p_source_code         => 'LEDGER_CATEGORY_CODE'
20891          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20892    AND l_bflow_method_code = 'PRIOR_ENTRY'
20893 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20894    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20895          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20896        )
20897    THEN
20898          xla_ae_lines_pkg.BflowUpgEntry
20899            (p_business_method_code    => l_bflow_method_code
20900            ,p_business_class_code     => l_bflow_class_code
20901            ,p_balance_type            => l_balance_type_code);
20902    ELSE
20903       NULL;
20904 -- No business flow processing for business flow method of NONE.
20905    END IF;
20906 
20907    --
20908    -- call analytical criteria
20909    --
20910    
20911    --
20912    -- call description
20913    --
20914    -- No description or it is inherited.
20915    --
20916    -- call ADRs
20917    -- Bug 4922099
20918    --
20919    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20920         (NVL(l_actual_upg_option, 'N') = 'O') OR
20921         (NVL(l_enc_upg_option, 'N') = 'O')
20922       )
20923    THEN
20924    NULL;
20925    --
20926    --
20927    
20928   l_ccid := AcctDerRule_28(
20929            p_application_id           => p_application_id
20930          , p_ae_header_id             => l_ae_header_id 
20931 , p_source_17 => p_source_17
20932          , x_transaction_coa_id       => l_adr_transaction_coa_id
20933          , x_accounting_coa_id        => l_adr_accounting_coa_id
20934          , x_value_type_code          => l_adr_value_type_code
20935          , p_side                     => 'NA'
20936    );
20937 
20938    xla_ae_lines_pkg.set_ccid(
20939     p_code_combination_id          => l_ccid
20940   , p_value_type_code              => l_adr_value_type_code
20941   , p_transaction_coa_id           => l_adr_transaction_coa_id
20942   , p_accounting_coa_id            => l_adr_accounting_coa_id
20943   , p_adr_code                     => 'AP_CASH'
20944   , p_adr_type_code                => 'S'
20945   , p_component_type               => l_component_type
20946   , p_component_code               => l_component_code
20947   , p_component_type_code          => l_component_type_code
20948   , p_component_appl_id            => l_component_appl_id
20949   , p_amb_context_code             => l_amb_context_code
20950   , p_side                         => 'NA'
20951   );
20952 
20953 
20954    --
20955    --
20956    END IF;
20957    --
20958    -- Bug 4922099
20959    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20960           (NVL(l_enc_upg_option, 'N') = 'O')
20961         ) AND
20962         (l_bflow_method_code = 'PRIOR_ENTRY')
20963       )
20964    THEN
20965       IF
20966       --
20967       1 = 2
20968       --
20969       THEN
20970       xla_accounting_err_pkg.build_message
20971                                     (p_appli_s_name            => 'XLA'
20972                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20973                                     ,p_token_1                 => 'LINE_NUMBER'
20974                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
20975                                     ,p_token_2                 => 'LINE_TYPE_NAME'
20976                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
20977                                                                              l_component_type
20978                                                                             ,l_component_code
20982                                                                             ,l_entity_code
20979                                                                             ,l_component_type_code
20980                                                                             ,l_component_appl_id
20981                                                                             ,l_amb_context_code
20983                                                                             ,l_event_class_code
20984                                                                            )
20985                                     ,p_token_3                 => 'OWNER'
20986                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
20987                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
20988                                                                           ,p_lookup_code    => l_component_type_code
20989                                                                          )
20990                                     ,p_token_4                 => 'PRODUCT_NAME'
20991                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
20992                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
20993                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
20994                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
20995                                     ,p_ae_header_id            =>  NULL
20996                                        );
20997 
20998         IF (C_LEVEL_ERROR>= g_log_level) THEN
20999                  trace
21000                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21001                       ,p_level    => C_LEVEL_ERROR
21002                       ,p_module   => l_log_module);
21003         END IF;
21004       END IF;
21005    END IF;
21006    --
21007    --
21008    ------------------------------------------------------------------------------------------------
21009    -- 4219869 Business Flow
21010    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
21011    -- Prior Entry.  Currently, the following code is always generated.
21012    ------------------------------------------------------------------------------------------------
21013    XLA_AE_LINES_PKG.ValidateCurrentLine;
21014 
21015    ------------------------------------------------------------------------------------
21016    -- 4219869 Business Flow
21017    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
21018    ------------------------------------------------------------------------------------
21019    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21020 
21021    ----------------------------------------------------------------------------------
21022    -- 4219869 Business Flow
21023    -- Update journal entry status -- Need to generate this within IF <condition>
21024    ----------------------------------------------------------------------------------
21025    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21026          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
21027          ,p_balance_type_code => l_balance_type_code
21028          );
21029 
21030    -------------------------------------------------------------------------------------------
21031    -- 4262811 - Generate the Accrual Reversal lines
21032    -------------------------------------------------------------------------------------------
21033    BEGIN
21034       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
21035                               (g_array_event(p_event_id).array_value_num('header_index'));
21036       IF l_acc_rev_flag IS NULL THEN
21037          l_acc_rev_flag := 'N';
21038       END IF;
21039    EXCEPTION
21040       WHEN OTHERS THEN
21041          l_acc_rev_flag := 'N';
21042    END;
21043    --
21044    IF (l_acc_rev_flag = 'Y') THEN
21045 
21046        -- 4645092  ------------------------------------------------------------------------------
21047        -- To allow MPA report to determine if it should generate report process
21048        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
21049        ------------------------------------------------------------------------------------------
21050 
21051        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
21052        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
21053    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
21054    -- call ADRs
21055    -- Bug 4922099
21056    --
21057    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21058         (NVL(l_actual_upg_option, 'N') = 'O') OR
21059         (NVL(l_enc_upg_option, 'N') = 'O')
21060       )
21061    THEN
21062    NULL;
21063    --
21064    --
21065    
21066   l_ccid := AcctDerRule_28(
21067            p_application_id           => p_application_id
21068          , p_ae_header_id             => l_ae_header_id 
21069 , p_source_17 => p_source_17
21070          , x_transaction_coa_id       => l_adr_transaction_coa_id
21071          , x_accounting_coa_id        => l_adr_accounting_coa_id
21072          , x_value_type_code          => l_adr_value_type_code
21073          , p_side                     => 'NA'
21074    );
21075 
21076    xla_ae_lines_pkg.set_ccid(
21080   , p_accounting_coa_id            => l_adr_accounting_coa_id
21077     p_code_combination_id          => l_ccid
21078   , p_value_type_code              => l_adr_value_type_code
21079   , p_transaction_coa_id           => l_adr_transaction_coa_id
21081   , p_adr_code                     => 'AP_CASH'
21082   , p_adr_type_code                => 'S'
21083   , p_component_type               => l_component_type
21084   , p_component_code               => l_component_code
21085   , p_component_type_code          => l_component_type_code
21086   , p_component_appl_id            => l_component_appl_id
21087   , p_amb_context_code             => l_amb_context_code
21088   , p_side                         => 'NA'
21089   );
21090 
21091 
21092    --
21093    --
21094    END IF;
21095 
21096        --
21097        -- Update the line information that should be overwritten
21098        --
21099        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
21100                                          p_header_num   => 1);
21101        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
21102 
21103        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
21104 
21105        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
21106           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
21107        END IF;
21108 
21109       --
21110       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
21111       --
21112       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
21113           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
21114       ELSE
21115           ---------------------------------------------------------------------------------------------------
21116           -- 4262811a Switch Sign
21117           ---------------------------------------------------------------------------------------------------
21118           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
21119           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21120                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21121           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21122                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21123           -- 5132302
21124           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
21125                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21126 
21127       END IF;
21128 
21129       -- 4955764
21130       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21131       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
21132 
21133 
21134       XLA_AE_LINES_PKG.ValidateCurrentLine;
21135       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21136 
21137       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21138                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
21139                ,p_balance_type_code => l_balance_type_code);
21140 
21141    END IF;
21142 
21143    -----------------------------------------------------------------------------------------
21144    -- 4262811 Multiperiod Accounting
21145    -----------------------------------------------------------------------------------------
21146      -- No MPA option is assigned.
21147 
21148 
21149 END IF;
21150 END IF;
21151 --
21152 
21153 --
21154 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21155    trace
21156       (p_msg      => 'END of AcctLineType_63'
21157       ,p_level    => C_LEVEL_PROCEDURE
21158       ,p_module   => l_log_module);
21159 END IF;
21160 --
21161 EXCEPTION
21162   WHEN xla_exceptions_pkg.application_exception THEN
21163       RAISE;
21164   WHEN OTHERS THEN
21165        xla_exceptions_pkg.raise_message
21166            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_63');
21167 END AcctLineType_63;
21168 --
21169 
21170 ---------------------------------------
21171 --
21172 -- PRIVATE FUNCTION
21173 --         AcctLineType_64
21174 --
21175 ---------------------------------------
21176 PROCEDURE AcctLineType_64 (
21177   p_application_id        IN NUMBER
21178  ,p_event_id              IN NUMBER
21179  ,p_calculate_acctd_flag  IN VARCHAR2
21180  ,p_calculate_g_l_flag    IN VARCHAR2
21181  ,p_actual_flag           IN OUT VARCHAR2
21182  ,p_balance_type_code     OUT VARCHAR2
21183  ,p_gain_or_loss_ref      OUT VARCHAR2
21184  
21185 --Payment Currency Code
21186  , p_source_13            IN VARCHAR2
21187 --Accounting Reversal Indicator
21188  , p_source_53            IN VARCHAR2
21189 --Distribution Link Type
21190  , p_source_55            IN VARCHAR2
21191 --Override Accounted Amount Indicator
21192  , p_source_80            IN VARCHAR2
21193  , p_source_80_meaning    IN VARCHAR2
21194 --Third Party Type
21195  , p_source_83            IN VARCHAR2
21196 --Invoice Distribution Tax Line Identifier
21200 --Business Flow Accounts Payable Application Identifier
21197  , p_source_86            IN NUMBER
21198 --Invoice Distribution Summary Tax Line Identifier
21199  , p_source_88            IN NUMBER
21201  , p_source_91            IN NUMBER
21202 --When to Account for Payment Option
21203  , p_source_97            IN VARCHAR2
21204 --Payment Distribution Type
21205  , p_source_98            IN VARCHAR2
21206  , p_source_98_meaning    IN VARCHAR2
21207 --Payment Distribution Amount
21208  , p_source_99            IN NUMBER
21209 --Business Flow Payment Distribution Type
21210  , p_source_100            IN VARCHAR2
21211 --Business Flow Payment Entity Code
21212  , p_source_101            IN VARCHAR2
21213 --Business Flow Payment Distribution Identifier
21214  , p_source_102            IN NUMBER
21215 --Business Flow Payment Identifier
21216  , p_source_103            IN NUMBER
21217 --Payment Distribution Identifier
21218  , p_source_104            IN NUMBER
21219 --Payment Distribution Reversed Identifier
21220  , p_source_112            IN NUMBER
21221 --Payment Maturity Date
21222  , p_source_114            IN DATE
21223 --Payment Distribution (Payment Rate) Ledger Amount
21224  , p_source_115            IN NUMBER
21225 )
21226 IS
21227 
21228 l_component_type              VARCHAR2(80);
21229 l_component_code              VARCHAR2(30);
21230 l_component_type_code         VARCHAR2(1);
21231 l_component_appl_id           INTEGER;
21232 l_amb_context_code            VARCHAR2(30);
21233 l_entity_code                 VARCHAR2(30);
21234 l_event_class_code            VARCHAR2(30);
21235 l_ae_header_id                NUMBER;
21236 l_event_type_code             VARCHAR2(30);
21237 l_line_definition_code        VARCHAR2(30);
21238 l_line_definition_owner_code  VARCHAR2(1);
21239 --
21240 -- adr variables
21241 l_segment                     VARCHAR2(30);
21242 l_ccid                        NUMBER;
21243 l_adr_transaction_coa_id      NUMBER;
21244 l_adr_accounting_coa_id       NUMBER;
21245 l_adr_flexfield_segment_code  VARCHAR2(30);
21246 l_adr_flex_value_set_id       NUMBER;
21247 l_adr_value_type_code         VARCHAR2(30);
21248 l_adr_value_combination_id    NUMBER;
21249 l_adr_value_segment_code      VARCHAR2(30);
21250 
21251 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
21252 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
21253 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
21254 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
21255 
21256 -- 4262811 Variables ------------------------------------------------------------------------------------------
21257 l_entered_amt_idx             NUMBER;
21258 l_accted_amt_idx              NUMBER;
21259 l_acc_rev_flag                VARCHAR2(1);
21260 l_accrual_line_num            NUMBER;
21261 l_tmp_amt                     NUMBER;
21262 l_acc_rev_natural_side_code   VARCHAR2(1);
21263 
21264 l_num_entries                 NUMBER;
21265 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
21266 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
21267 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
21268 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
21269 l_recog_line_1                NUMBER;
21270 l_recog_line_2                NUMBER;
21271 
21272 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
21273 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
21274 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
21275 
21276 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21277 
21278 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
21279 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
21280 
21281 ---------------------------------------------------------------------------------------------------------------
21282 
21283 
21284 --
21285 -- bulk performance
21286 --
21287 l_balance_type_code           VARCHAR2(1);
21288 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
21289 l_log_module                  VARCHAR2(240);
21290 
21291 --
21292 -- Upgrade strategy
21293 --
21294 l_actual_upg_option           VARCHAR2(1);
21295 l_enc_upg_option           VARCHAR2(1);
21296 
21297 --
21298 BEGIN
21299 --
21300 IF g_log_enabled THEN
21301       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_64';
21302 END IF;
21303 --
21304 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21305 
21306       trace
21307          (p_msg      => 'BEGIN of AcctLineType_64'
21308          ,p_level    => C_LEVEL_PROCEDURE
21309          ,p_module   => l_log_module);
21310 
21311 END IF;
21312 --
21313 l_component_type             := 'AMB_JLT';
21314 l_component_code             := 'AP_CASH_CLEAR_CLEAR';
21315 l_component_type_code        := 'S';
21316 l_component_appl_id          :=  200;
21317 l_amb_context_code           := 'DEFAULT';
21318 l_entity_code                := 'AP_PAYMENTS';
21319 l_event_class_code           := 'RECONCILED PAYMENTS';
21320 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
21321 l_line_definition_owner_code := 'S';
21322 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
21323 --
21324 l_balance_type_code          := 'A';
21325 l_segment                     := NULL;
21326 l_ccid                        := NULL;
21330 l_adr_flex_value_set_id       := NULL;
21327 l_adr_transaction_coa_id      := NULL;
21328 l_adr_accounting_coa_id       := NULL;
21329 l_adr_flexfield_segment_code  := NULL;
21331 l_adr_value_type_code         := NULL;
21332 l_adr_value_combination_id    := NULL;
21333 l_adr_value_segment_code      := NULL;
21334 
21335 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
21336 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
21337 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
21338 l_budgetary_control_flag     := 'N';
21339 
21340 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
21341 l_bflow_applied_to_amt       := NULL; -- 5132302
21342 l_entered_amt_idx            := NULL;          -- 4262811
21343 l_accted_amt_idx             := NULL;          -- 4262811
21344 l_acc_rev_flag               := NULL;          -- 4262811
21345 l_accrual_line_num           := NULL;          -- 4262811
21346 l_tmp_amt                    := NULL;          -- 4262811
21347 --
21348  
21349 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21350     l_balance_type_code <> 'B' THEN
21351 IF (NVL(p_source_97,'
21352 ') =  'ALWAYS_ALWAYS' OR 
21353 NVL(p_source_97,'
21354 ') =  'ALWAYS_ISSUE') AND 
21355 NVL(p_source_98,'
21356 ') =  'CASH' AND 
21357 p_source_114 IS NULL 
21358  THEN 
21359 
21360    --
21361    XLA_AE_LINES_PKG.SetNewLine;
21362 
21363    p_balance_type_code          := l_balance_type_code;
21364    -- set the flag so later we will know whether the gain loss line needs to be created
21365    
21366    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21367      p_actual_flag :='A';
21368    END IF;
21369 
21370    --
21371    -- bulk performance
21372    --
21373    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21374                                       p_header_num   => 0); -- 4262811
21375    --
21376    -- set accounting line options
21377    --
21378    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21379            p_natural_side_code          => 'D'
21380          , p_gain_or_loss_flag          => 'N'
21381          , p_gl_transfer_mode_code      => 'S'
21382          , p_acct_entry_type_code       => 'A'
21383          , p_switch_side_flag           => 'Y'
21384          , p_merge_duplicate_code       => 'A'
21385          );
21386    --
21387    l_acc_rev_natural_side_code := 'C';  -- 4262811
21388    -- 
21389    --
21390    -- set accounting line type info
21391    --
21392    xla_ae_lines_pkg.SetAcctLineType
21393       (p_component_type             => l_component_type
21394       ,p_event_type_code            => l_event_type_code
21395       ,p_line_definition_owner_code => l_line_definition_owner_code
21396       ,p_line_definition_code       => l_line_definition_code
21397       ,p_accounting_line_code       => l_component_code
21398       ,p_accounting_line_type_code  => l_component_type_code
21399       ,p_accounting_line_appl_id    => l_component_appl_id
21400       ,p_amb_context_code           => l_amb_context_code
21401       ,p_entity_code                => l_entity_code
21402       ,p_event_class_code           => l_event_class_code);
21403    --
21404    -- set accounting class
21405    --
21406    xla_ae_lines_pkg.SetAcctClass(
21407            p_accounting_class_code  => 'CASH_CLEARING'
21408          , p_ae_header_id           => l_ae_header_id
21409          );
21410 
21411    --
21412    -- set rounding class
21413    --
21414    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
21415                       'CASH_CLEARING';
21416 
21417    --
21418    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
21419    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
21420    --
21421    -- bulk performance
21422    --
21423    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
21424 
21425    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
21426       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
21427 
21428    -- 4955764
21429    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21430       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
21431 
21432    -- 4458381 Public Sector Enh
21433    
21434    --
21435    -- set accounting attributes for the line type
21436    --
21437    l_entered_amt_idx := 10;
21438    l_accted_amt_idx  := 12;
21439    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
21440    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
21441    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
21442    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
21443    l_rec_acct_attrs.array_num_value(2)  := p_source_99;
21444    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
21445    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
21446    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
21447    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
21448    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
21452    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
21449    l_rec_acct_attrs.array_char_value(5)  := p_source_101;
21450    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
21451    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
21453    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
21454    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
21455    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
21456    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
21457    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
21458    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
21459    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
21460    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
21461    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
21462    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
21463    l_rec_acct_attrs.array_num_value(12)  := p_source_115;
21464    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
21465    l_rec_acct_attrs.array_char_value(13)  := p_source_80;
21466    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
21467    l_rec_acct_attrs.array_char_value(14)  := p_source_83;
21468    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
21469    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_112);
21470    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
21471    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
21472    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
21473    l_rec_acct_attrs.array_num_value(17)  := p_source_86;
21474    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
21475    l_rec_acct_attrs.array_num_value(18)  := p_source_86;
21476    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
21477    l_rec_acct_attrs.array_num_value(19)  := p_source_88;
21478 
21479    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
21480    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
21481 
21482    ---------------------------------------------------------------------------------------------------------------
21483    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
21484    ---------------------------------------------------------------------------------------------------------------
21485    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
21486 
21487    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21488    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21489 
21490    IF xla_accounting_cache_pkg.GetValueChar
21491          (p_source_code         => 'LEDGER_CATEGORY_CODE'
21492          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
21493    AND l_bflow_method_code = 'PRIOR_ENTRY'
21494 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
21495    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
21496          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
21497        )
21498    THEN
21499          xla_ae_lines_pkg.BflowUpgEntry
21500            (p_business_method_code    => l_bflow_method_code
21501            ,p_business_class_code     => l_bflow_class_code
21502            ,p_balance_type            => l_balance_type_code);
21503    ELSE
21504       NULL;
21505 XLA_AE_LINES_PKG.business_flow_validation(
21506                                 p_business_method_code     => l_bflow_method_code
21507                                ,p_business_class_code      => l_bflow_class_code
21508                                ,p_inherit_description_flag => l_inherit_desc_flag);
21509    END IF;
21510 
21511    --
21512    -- call analytical criteria
21513    --
21514    -- Inherited Analytical Criteria for business flow method of Prior Entry.
21515    --
21516    -- call description
21517    --
21518    -- No description or it is inherited.
21519    --
21520    -- call ADRs
21521    -- Bug 4922099
21522    --
21523    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21524         (NVL(l_actual_upg_option, 'N') = 'O') OR
21525         (NVL(l_enc_upg_option, 'N') = 'O')
21526       )
21527    THEN
21528    NULL;
21529    --
21530    --
21531    
21532    --
21533    --
21534    END IF;
21535    --
21536    -- Bug 4922099
21537    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
21538           (NVL(l_enc_upg_option, 'N') = 'O')
21539         ) AND
21540         (l_bflow_method_code = 'PRIOR_ENTRY')
21541       )
21542    THEN
21543       IF
21544       --
21545       1 = 1
21546       --
21547       THEN
21548       xla_accounting_err_pkg.build_message
21549                                     (p_appli_s_name            => 'XLA'
21550                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21551                                     ,p_token_1                 => 'LINE_NUMBER'
21552                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
21553                                     ,p_token_2                 => 'LINE_TYPE_NAME'
21554                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
21558                                                                             ,l_component_appl_id
21555                                                                              l_component_type
21556                                                                             ,l_component_code
21557                                                                             ,l_component_type_code
21559                                                                             ,l_amb_context_code
21560                                                                             ,l_entity_code
21561                                                                             ,l_event_class_code
21562                                                                            )
21563                                     ,p_token_3                 => 'OWNER'
21564                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
21565                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
21566                                                                           ,p_lookup_code    => l_component_type_code
21567                                                                          )
21568                                     ,p_token_4                 => 'PRODUCT_NAME'
21569                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
21570                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
21571                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
21572                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
21573                                     ,p_ae_header_id            =>  NULL
21574                                        );
21575 
21576         IF (C_LEVEL_ERROR>= g_log_level) THEN
21577                  trace
21578                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21579                       ,p_level    => C_LEVEL_ERROR
21580                       ,p_module   => l_log_module);
21581         END IF;
21582       END IF;
21583    END IF;
21584    --
21585    --
21586    ------------------------------------------------------------------------------------------------
21587    -- 4219869 Business Flow
21588    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
21589    -- Prior Entry.  Currently, the following code is always generated.
21590    ------------------------------------------------------------------------------------------------
21591    -- No ValidateCurrentLine for business flow method of Prior Entry
21592 
21593    ------------------------------------------------------------------------------------
21594    -- 4219869 Business Flow
21595    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
21596    ------------------------------------------------------------------------------------
21597    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21598 
21599    ----------------------------------------------------------------------------------
21600    -- 4219869 Business Flow
21601    -- Update journal entry status -- Need to generate this within IF <condition>
21602    ----------------------------------------------------------------------------------
21603    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21604          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
21605          ,p_balance_type_code => l_balance_type_code
21606          );
21607 
21608    -------------------------------------------------------------------------------------------
21609    -- 4262811 - Generate the Accrual Reversal lines
21610    -------------------------------------------------------------------------------------------
21611    BEGIN
21612       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
21613                               (g_array_event(p_event_id).array_value_num('header_index'));
21614       IF l_acc_rev_flag IS NULL THEN
21615          l_acc_rev_flag := 'N';
21616       END IF;
21617    EXCEPTION
21618       WHEN OTHERS THEN
21619          l_acc_rev_flag := 'N';
21620    END;
21621    --
21622    IF (l_acc_rev_flag = 'Y') THEN
21623 
21624        -- 4645092  ------------------------------------------------------------------------------
21625        -- To allow MPA report to determine if it should generate report process
21626        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
21627        ------------------------------------------------------------------------------------------
21628 
21629        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
21630        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
21631    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
21632    -- call ADRs
21633    -- Bug 4922099
21634    --
21635    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21636         (NVL(l_actual_upg_option, 'N') = 'O') OR
21637         (NVL(l_enc_upg_option, 'N') = 'O')
21638       )
21639    THEN
21640    NULL;
21641    --
21642    --
21643    
21644    --
21645    --
21646    END IF;
21647 
21648        --
21649        -- Update the line information that should be overwritten
21650        --
21651        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
21652                                          p_header_num   => 1);
21656 
21653        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
21654 
21655        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
21657        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
21658           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
21659        END IF;
21660 
21661       --
21662       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
21663       --
21664       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
21665           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
21666       ELSE
21667           ---------------------------------------------------------------------------------------------------
21668           -- 4262811a Switch Sign
21669           ---------------------------------------------------------------------------------------------------
21670           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
21671           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21672                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21673           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21674                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21675           -- 5132302
21676           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
21677                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21678 
21679       END IF;
21680 
21681       -- 4955764
21682       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21683       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
21684 
21685 
21686       XLA_AE_LINES_PKG.ValidateCurrentLine;
21687       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21688 
21689       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21690                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
21691                ,p_balance_type_code => l_balance_type_code);
21692 
21693    END IF;
21694 
21695    -----------------------------------------------------------------------------------------
21696    -- 4262811 Multiperiod Accounting
21697    -----------------------------------------------------------------------------------------
21698      -- No MPA option is assigned.
21699 
21700 
21701 END IF;
21702 END IF;
21703 --
21704 
21705 --
21706 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21707    trace
21708       (p_msg      => 'END of AcctLineType_64'
21709       ,p_level    => C_LEVEL_PROCEDURE
21710       ,p_module   => l_log_module);
21711 END IF;
21712 --
21713 EXCEPTION
21714   WHEN xla_exceptions_pkg.application_exception THEN
21715       RAISE;
21716   WHEN OTHERS THEN
21717        xla_exceptions_pkg.raise_message
21718            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_64');
21719 END AcctLineType_64;
21720 --
21721 
21722 ---------------------------------------
21723 --
21724 -- PRIVATE FUNCTION
21725 --         AcctLineType_65
21726 --
21727 ---------------------------------------
21728 PROCEDURE AcctLineType_65 (
21729   p_application_id        IN NUMBER
21730  ,p_event_id              IN NUMBER
21731  ,p_calculate_acctd_flag  IN VARCHAR2
21732  ,p_calculate_g_l_flag    IN VARCHAR2
21733  ,p_actual_flag           IN OUT VARCHAR2
21734  ,p_balance_type_code     OUT VARCHAR2
21735  ,p_gain_or_loss_ref      OUT VARCHAR2
21736  
21737 --Payment Currency Code
21738  , p_source_13            IN VARCHAR2
21739 --Accounting Reversal Indicator
21740  , p_source_53            IN VARCHAR2
21741 --Distribution Link Type
21742  , p_source_55            IN VARCHAR2
21743 --Override Accounted Amount Indicator
21744  , p_source_80            IN VARCHAR2
21745  , p_source_80_meaning    IN VARCHAR2
21746 --Third Party Type
21747  , p_source_83            IN VARCHAR2
21748 --Invoice Distribution Tax Line Identifier
21749  , p_source_86            IN NUMBER
21750 --Invoice Distribution Summary Tax Line Identifier
21751  , p_source_88            IN NUMBER
21752 --Business Flow Accounts Payable Application Identifier
21753  , p_source_91            IN NUMBER
21754 --When to Account for Payment Option
21755  , p_source_97            IN VARCHAR2
21756 --Payment Distribution Type
21757  , p_source_98            IN VARCHAR2
21758  , p_source_98_meaning    IN VARCHAR2
21759 --Payment Distribution Amount
21760  , p_source_99            IN NUMBER
21761 --Business Flow Payment Distribution Type
21762  , p_source_100            IN VARCHAR2
21763 --Business Flow Payment Entity Code
21764  , p_source_101            IN VARCHAR2
21765 --Business Flow Payment Distribution Identifier
21766  , p_source_102            IN NUMBER
21767 --Business Flow Payment Identifier
21768  , p_source_103            IN NUMBER
21769 --Payment Distribution Identifier
21770  , p_source_104            IN NUMBER
21771 --Payment Distribution Reversed Identifier
21772  , p_source_112            IN NUMBER
21773 --Payment Maturity Date
21774  , p_source_114            IN DATE
21775 --Payment Distribution (Invoice Rate) Ledger Amount
21776  , p_source_116            IN NUMBER
21777 )
21778 IS
21779 
21783 l_component_appl_id           INTEGER;
21780 l_component_type              VARCHAR2(80);
21781 l_component_code              VARCHAR2(30);
21782 l_component_type_code         VARCHAR2(1);
21784 l_amb_context_code            VARCHAR2(30);
21785 l_entity_code                 VARCHAR2(30);
21786 l_event_class_code            VARCHAR2(30);
21787 l_ae_header_id                NUMBER;
21788 l_event_type_code             VARCHAR2(30);
21789 l_line_definition_code        VARCHAR2(30);
21790 l_line_definition_owner_code  VARCHAR2(1);
21791 --
21792 -- adr variables
21793 l_segment                     VARCHAR2(30);
21794 l_ccid                        NUMBER;
21795 l_adr_transaction_coa_id      NUMBER;
21796 l_adr_accounting_coa_id       NUMBER;
21797 l_adr_flexfield_segment_code  VARCHAR2(30);
21798 l_adr_flex_value_set_id       NUMBER;
21799 l_adr_value_type_code         VARCHAR2(30);
21800 l_adr_value_combination_id    NUMBER;
21801 l_adr_value_segment_code      VARCHAR2(30);
21802 
21803 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
21804 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
21805 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
21806 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
21807 
21808 -- 4262811 Variables ------------------------------------------------------------------------------------------
21809 l_entered_amt_idx             NUMBER;
21810 l_accted_amt_idx              NUMBER;
21811 l_acc_rev_flag                VARCHAR2(1);
21812 l_accrual_line_num            NUMBER;
21813 l_tmp_amt                     NUMBER;
21814 l_acc_rev_natural_side_code   VARCHAR2(1);
21815 
21816 l_num_entries                 NUMBER;
21817 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
21818 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
21819 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
21820 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
21821 l_recog_line_1                NUMBER;
21822 l_recog_line_2                NUMBER;
21823 
21824 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
21825 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
21826 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
21827 
21828 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21829 
21830 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
21831 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
21832 
21833 ---------------------------------------------------------------------------------------------------------------
21834 
21835 
21836 --
21837 -- bulk performance
21838 --
21839 l_balance_type_code           VARCHAR2(1);
21840 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
21841 l_log_module                  VARCHAR2(240);
21842 
21843 --
21844 -- Upgrade strategy
21845 --
21846 l_actual_upg_option           VARCHAR2(1);
21847 l_enc_upg_option           VARCHAR2(1);
21848 
21849 --
21850 BEGIN
21851 --
21852 IF g_log_enabled THEN
21853       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_65';
21854 END IF;
21855 --
21856 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21857 
21858       trace
21859          (p_msg      => 'BEGIN of AcctLineType_65'
21860          ,p_level    => C_LEVEL_PROCEDURE
21861          ,p_module   => l_log_module);
21862 
21863 END IF;
21864 --
21865 l_component_type             := 'AMB_JLT';
21866 l_component_code             := 'AP_CASH_CLEAR_CLEAR_INVXRATE';
21867 l_component_type_code        := 'S';
21868 l_component_appl_id          :=  200;
21869 l_amb_context_code           := 'DEFAULT';
21870 l_entity_code                := 'AP_PAYMENTS';
21871 l_event_class_code           := 'RECONCILED PAYMENTS';
21872 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
21873 l_line_definition_owner_code := 'S';
21874 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
21875 --
21876 l_balance_type_code          := 'A';
21877 l_segment                     := NULL;
21878 l_ccid                        := NULL;
21879 l_adr_transaction_coa_id      := NULL;
21880 l_adr_accounting_coa_id       := NULL;
21881 l_adr_flexfield_segment_code  := NULL;
21882 l_adr_flex_value_set_id       := NULL;
21883 l_adr_value_type_code         := NULL;
21884 l_adr_value_combination_id    := NULL;
21885 l_adr_value_segment_code      := NULL;
21886 
21887 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
21888 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
21889 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
21890 l_budgetary_control_flag     := 'N';
21891 
21892 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
21893 l_bflow_applied_to_amt       := NULL; -- 5132302
21894 l_entered_amt_idx            := NULL;          -- 4262811
21895 l_accted_amt_idx             := NULL;          -- 4262811
21896 l_acc_rev_flag               := NULL;          -- 4262811
21897 l_accrual_line_num           := NULL;          -- 4262811
21898 l_tmp_amt                    := NULL;          -- 4262811
21899 --
21900  
21901 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21902     l_balance_type_code <> 'B' THEN
21903 IF NVL(p_source_97,'
21904 ') =  'ALWAYS_CLEAR' AND 
21905 NVL(p_source_98,'
21906 ') =  'CASH' AND 
21907 p_source_114 IS NULL 
21911    XLA_AE_LINES_PKG.SetNewLine;
21908  THEN 
21909 
21910    --
21912 
21913    p_balance_type_code          := l_balance_type_code;
21914    -- set the flag so later we will know whether the gain loss line needs to be created
21915    
21916    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21917      p_actual_flag :='A';
21918    END IF;
21919 
21920    --
21921    -- bulk performance
21922    --
21923    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21924                                       p_header_num   => 0); -- 4262811
21925    --
21926    -- set accounting line options
21927    --
21928    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21929            p_natural_side_code          => 'D'
21930          , p_gain_or_loss_flag          => 'N'
21931          , p_gl_transfer_mode_code      => 'S'
21932          , p_acct_entry_type_code       => 'A'
21933          , p_switch_side_flag           => 'Y'
21934          , p_merge_duplicate_code       => 'A'
21935          );
21936    --
21937    l_acc_rev_natural_side_code := 'C';  -- 4262811
21938    -- 
21939    --
21940    -- set accounting line type info
21941    --
21942    xla_ae_lines_pkg.SetAcctLineType
21943       (p_component_type             => l_component_type
21944       ,p_event_type_code            => l_event_type_code
21945       ,p_line_definition_owner_code => l_line_definition_owner_code
21946       ,p_line_definition_code       => l_line_definition_code
21947       ,p_accounting_line_code       => l_component_code
21948       ,p_accounting_line_type_code  => l_component_type_code
21949       ,p_accounting_line_appl_id    => l_component_appl_id
21950       ,p_amb_context_code           => l_amb_context_code
21951       ,p_entity_code                => l_entity_code
21952       ,p_event_class_code           => l_event_class_code);
21953    --
21954    -- set accounting class
21955    --
21956    xla_ae_lines_pkg.SetAcctClass(
21957            p_accounting_class_code  => 'CASH_CLEARING'
21958          , p_ae_header_id           => l_ae_header_id
21959          );
21960 
21961    --
21962    -- set rounding class
21963    --
21964    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
21965                       'CASH_CLEARING';
21966 
21967    --
21968    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
21969    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
21970    --
21971    -- bulk performance
21972    --
21973    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
21974 
21975    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
21976       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
21977 
21978    -- 4955764
21979    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21980       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
21981 
21982    -- 4458381 Public Sector Enh
21983    
21984    --
21985    -- set accounting attributes for the line type
21986    --
21987    l_entered_amt_idx := 10;
21988    l_accted_amt_idx  := 12;
21989    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
21990    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
21991    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
21992    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
21993    l_rec_acct_attrs.array_num_value(2)  := p_source_99;
21994    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
21995    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
21996    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
21997    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
21998    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
21999    l_rec_acct_attrs.array_char_value(5)  := p_source_101;
22000    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
22001    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
22002    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
22003    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
22004    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
22005    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
22006    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
22007    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
22008    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
22009    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
22010    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
22011    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
22012    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
22013    l_rec_acct_attrs.array_num_value(12)  := p_source_116;
22014    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
22015    l_rec_acct_attrs.array_char_value(13)  := p_source_80;
22016    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
22017    l_rec_acct_attrs.array_char_value(14)  := p_source_83;
22018    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
22019    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_112);
22020    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
22024    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
22021    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
22022    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
22023    l_rec_acct_attrs.array_num_value(17)  := p_source_86;
22025    l_rec_acct_attrs.array_num_value(18)  := p_source_86;
22026    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
22027    l_rec_acct_attrs.array_num_value(19)  := p_source_88;
22028 
22029    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
22030    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
22031 
22032    ---------------------------------------------------------------------------------------------------------------
22033    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
22034    ---------------------------------------------------------------------------------------------------------------
22035    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
22036 
22037    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22038    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22039 
22040    IF xla_accounting_cache_pkg.GetValueChar
22041          (p_source_code         => 'LEDGER_CATEGORY_CODE'
22042          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
22043    AND l_bflow_method_code = 'PRIOR_ENTRY'
22044 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
22045    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
22046          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
22047        )
22048    THEN
22049          xla_ae_lines_pkg.BflowUpgEntry
22050            (p_business_method_code    => l_bflow_method_code
22051            ,p_business_class_code     => l_bflow_class_code
22052            ,p_balance_type            => l_balance_type_code);
22053    ELSE
22054       NULL;
22055 XLA_AE_LINES_PKG.business_flow_validation(
22056                                 p_business_method_code     => l_bflow_method_code
22057                                ,p_business_class_code      => l_bflow_class_code
22058                                ,p_inherit_description_flag => l_inherit_desc_flag);
22059    END IF;
22060 
22061    --
22062    -- call analytical criteria
22063    --
22064    -- Inherited Analytical Criteria for business flow method of Prior Entry.
22065    --
22066    -- call description
22067    --
22068    -- No description or it is inherited.
22069    --
22070    -- call ADRs
22071    -- Bug 4922099
22072    --
22073    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22074         (NVL(l_actual_upg_option, 'N') = 'O') OR
22075         (NVL(l_enc_upg_option, 'N') = 'O')
22076       )
22077    THEN
22078    NULL;
22079    --
22080    --
22081    
22082    --
22083    --
22084    END IF;
22085    --
22086    -- Bug 4922099
22087    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
22088           (NVL(l_enc_upg_option, 'N') = 'O')
22089         ) AND
22090         (l_bflow_method_code = 'PRIOR_ENTRY')
22091       )
22092    THEN
22093       IF
22094       --
22095       1 = 1
22096       --
22097       THEN
22098       xla_accounting_err_pkg.build_message
22099                                     (p_appli_s_name            => 'XLA'
22100                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22101                                     ,p_token_1                 => 'LINE_NUMBER'
22102                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
22103                                     ,p_token_2                 => 'LINE_TYPE_NAME'
22104                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
22105                                                                              l_component_type
22106                                                                             ,l_component_code
22107                                                                             ,l_component_type_code
22108                                                                             ,l_component_appl_id
22109                                                                             ,l_amb_context_code
22110                                                                             ,l_entity_code
22111                                                                             ,l_event_class_code
22112                                                                            )
22113                                     ,p_token_3                 => 'OWNER'
22114                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
22115                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
22116                                                                           ,p_lookup_code    => l_component_type_code
22117                                                                          )
22118                                     ,p_token_4                 => 'PRODUCT_NAME'
22119                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
22120                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
22124                                        );
22121                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
22122                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
22123                                     ,p_ae_header_id            =>  NULL
22125 
22126         IF (C_LEVEL_ERROR>= g_log_level) THEN
22127                  trace
22128                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22129                       ,p_level    => C_LEVEL_ERROR
22130                       ,p_module   => l_log_module);
22131         END IF;
22132       END IF;
22133    END IF;
22134    --
22135    --
22136    ------------------------------------------------------------------------------------------------
22137    -- 4219869 Business Flow
22138    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
22139    -- Prior Entry.  Currently, the following code is always generated.
22140    ------------------------------------------------------------------------------------------------
22141    -- No ValidateCurrentLine for business flow method of Prior Entry
22142 
22143    ------------------------------------------------------------------------------------
22144    -- 4219869 Business Flow
22145    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
22146    ------------------------------------------------------------------------------------
22147    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22148 
22149    ----------------------------------------------------------------------------------
22150    -- 4219869 Business Flow
22151    -- Update journal entry status -- Need to generate this within IF <condition>
22152    ----------------------------------------------------------------------------------
22153    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22154          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
22155          ,p_balance_type_code => l_balance_type_code
22156          );
22157 
22158    -------------------------------------------------------------------------------------------
22159    -- 4262811 - Generate the Accrual Reversal lines
22160    -------------------------------------------------------------------------------------------
22161    BEGIN
22162       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
22163                               (g_array_event(p_event_id).array_value_num('header_index'));
22164       IF l_acc_rev_flag IS NULL THEN
22165          l_acc_rev_flag := 'N';
22166       END IF;
22167    EXCEPTION
22168       WHEN OTHERS THEN
22169          l_acc_rev_flag := 'N';
22170    END;
22171    --
22172    IF (l_acc_rev_flag = 'Y') THEN
22173 
22174        -- 4645092  ------------------------------------------------------------------------------
22175        -- To allow MPA report to determine if it should generate report process
22176        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
22177        ------------------------------------------------------------------------------------------
22178 
22179        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
22180        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
22181    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
22182    -- call ADRs
22183    -- Bug 4922099
22184    --
22185    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22186         (NVL(l_actual_upg_option, 'N') = 'O') OR
22187         (NVL(l_enc_upg_option, 'N') = 'O')
22188       )
22189    THEN
22190    NULL;
22191    --
22192    --
22193    
22194    --
22195    --
22196    END IF;
22197 
22198        --
22199        -- Update the line information that should be overwritten
22200        --
22201        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
22202                                          p_header_num   => 1);
22203        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
22204 
22205        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
22206 
22207        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
22208           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
22209        END IF;
22210 
22211       --
22212       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
22213       --
22214       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
22215           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
22216       ELSE
22217           ---------------------------------------------------------------------------------------------------
22218           -- 4262811a Switch Sign
22219           ---------------------------------------------------------------------------------------------------
22220           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
22221           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22222                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22223           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22224                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22225           -- 5132302
22229       END IF;
22226           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
22227                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22228 
22230 
22231       -- 4955764
22232       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22233       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
22234 
22235 
22236       XLA_AE_LINES_PKG.ValidateCurrentLine;
22237       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22238 
22239       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22240                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
22241                ,p_balance_type_code => l_balance_type_code);
22242 
22243    END IF;
22244 
22245    -----------------------------------------------------------------------------------------
22246    -- 4262811 Multiperiod Accounting
22247    -----------------------------------------------------------------------------------------
22248      -- No MPA option is assigned.
22249 
22250 
22251 END IF;
22252 END IF;
22253 --
22254 
22255 --
22256 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22257    trace
22258       (p_msg      => 'END of AcctLineType_65'
22259       ,p_level    => C_LEVEL_PROCEDURE
22260       ,p_module   => l_log_module);
22261 END IF;
22262 --
22263 EXCEPTION
22264   WHEN xla_exceptions_pkg.application_exception THEN
22265       RAISE;
22266   WHEN OTHERS THEN
22267        xla_exceptions_pkg.raise_message
22268            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_65');
22269 END AcctLineType_65;
22270 --
22271 
22272 ---------------------------------------
22273 --
22274 -- PRIVATE FUNCTION
22275 --         AcctLineType_66
22276 --
22277 ---------------------------------------
22278 PROCEDURE AcctLineType_66 (
22279   p_application_id        IN NUMBER
22280  ,p_event_id              IN NUMBER
22281  ,p_calculate_acctd_flag  IN VARCHAR2
22282  ,p_calculate_g_l_flag    IN VARCHAR2
22283  ,p_actual_flag           IN OUT VARCHAR2
22284  ,p_balance_type_code     OUT VARCHAR2
22285  ,p_gain_or_loss_ref      OUT VARCHAR2
22286  
22287 --Payment Currency Code
22288  , p_source_13            IN VARCHAR2
22289 --Automatic Offsets Value
22290  , p_source_15            IN VARCHAR2
22291  , p_source_15_meaning    IN VARCHAR2
22292 --Bank Cash Clearing Account
22293  , p_source_35            IN NUMBER
22294 --Accounting Reversal Indicator
22295  , p_source_53            IN VARCHAR2
22296 --Distribution Link Type
22297  , p_source_55            IN VARCHAR2
22298 --Override Accounted Amount Indicator
22299  , p_source_80            IN VARCHAR2
22300  , p_source_80_meaning    IN VARCHAR2
22301 --Third Party Type
22302  , p_source_83            IN VARCHAR2
22303 --Business Flow Accounts Payable Application Identifier
22304  , p_source_91            IN NUMBER
22305 --When to Account for Payment Option
22306  , p_source_97            IN VARCHAR2
22307 --Payment Distribution Type
22308  , p_source_98            IN VARCHAR2
22309  , p_source_98_meaning    IN VARCHAR2
22310 --Payment Distribution Amount
22311  , p_source_99            IN NUMBER
22312 --Business Flow Payment Distribution Type
22313  , p_source_100            IN VARCHAR2
22314 --Business Flow Payment Entity Code
22315  , p_source_101            IN VARCHAR2
22316 --Business Flow Payment Distribution Identifier
22317  , p_source_102            IN NUMBER
22318 --Business Flow Payment Identifier
22319  , p_source_103            IN NUMBER
22320 --Payment Distribution Identifier
22321  , p_source_104            IN NUMBER
22322 --Payment Supplier Identifier
22323  , p_source_110            IN NUMBER
22324 --Payment Supplier Site Identifier
22325  , p_source_111            IN NUMBER
22326 --Payment Distribution Reversed Identifier
22327  , p_source_112            IN NUMBER
22328 --Pooled Bank Account Option
22329  , p_source_113            IN VARCHAR2
22330  , p_source_113_meaning    IN VARCHAR2
22331 --Payment Maturity Date
22332  , p_source_114            IN DATE
22333 --Payment Distribution (Invoice Rate) Ledger Amount
22334  , p_source_116            IN NUMBER
22335 --Payment Exchange Date
22336  , p_source_117            IN DATE
22337 --Payment Exchange Rate
22338  , p_source_118            IN NUMBER
22339 --Payment Exchange Rate Type
22340  , p_source_119            IN VARCHAR2
22341 )
22342 IS
22343 
22344 l_component_type              VARCHAR2(80);
22345 l_component_code              VARCHAR2(30);
22346 l_component_type_code         VARCHAR2(1);
22347 l_component_appl_id           INTEGER;
22348 l_amb_context_code            VARCHAR2(30);
22349 l_entity_code                 VARCHAR2(30);
22350 l_event_class_code            VARCHAR2(30);
22351 l_ae_header_id                NUMBER;
22352 l_event_type_code             VARCHAR2(30);
22353 l_line_definition_code        VARCHAR2(30);
22354 l_line_definition_owner_code  VARCHAR2(1);
22355 --
22356 -- adr variables
22357 l_segment                     VARCHAR2(30);
22358 l_ccid                        NUMBER;
22359 l_adr_transaction_coa_id      NUMBER;
22360 l_adr_accounting_coa_id       NUMBER;
22361 l_adr_flexfield_segment_code  VARCHAR2(30);
22362 l_adr_flex_value_set_id       NUMBER;
22366 
22363 l_adr_value_type_code         VARCHAR2(30);
22364 l_adr_value_combination_id    NUMBER;
22365 l_adr_value_segment_code      VARCHAR2(30);
22367 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
22368 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
22369 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
22370 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
22371 
22372 -- 4262811 Variables ------------------------------------------------------------------------------------------
22373 l_entered_amt_idx             NUMBER;
22374 l_accted_amt_idx              NUMBER;
22375 l_acc_rev_flag                VARCHAR2(1);
22376 l_accrual_line_num            NUMBER;
22377 l_tmp_amt                     NUMBER;
22378 l_acc_rev_natural_side_code   VARCHAR2(1);
22379 
22380 l_num_entries                 NUMBER;
22381 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
22382 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
22383 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
22384 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
22385 l_recog_line_1                NUMBER;
22386 l_recog_line_2                NUMBER;
22387 
22388 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
22389 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
22390 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
22391 
22392 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
22393 
22394 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
22395 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
22396 
22397 ---------------------------------------------------------------------------------------------------------------
22398 
22399 
22400 --
22401 -- bulk performance
22402 --
22403 l_balance_type_code           VARCHAR2(1);
22404 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
22405 l_log_module                  VARCHAR2(240);
22406 
22407 --
22408 -- Upgrade strategy
22409 --
22410 l_actual_upg_option           VARCHAR2(1);
22411 l_enc_upg_option           VARCHAR2(1);
22412 
22413 --
22414 BEGIN
22415 --
22416 IF g_log_enabled THEN
22417       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_66';
22418 END IF;
22419 --
22420 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22421 
22422       trace
22423          (p_msg      => 'BEGIN of AcctLineType_66'
22424          ,p_level    => C_LEVEL_PROCEDURE
22425          ,p_module   => l_log_module);
22426 
22427 END IF;
22428 --
22429 l_component_type             := 'AMB_JLT';
22430 l_component_code             := 'AP_CASH_CLEAR_MAT_AS_INVXRATE';
22431 l_component_type_code        := 'S';
22432 l_component_appl_id          :=  200;
22433 l_amb_context_code           := 'DEFAULT';
22434 l_entity_code                := 'AP_PAYMENTS';
22435 l_event_class_code           := 'FUTURE DATED PAYMENTS';
22436 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
22437 l_line_definition_owner_code := 'S';
22438 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
22439 --
22440 l_balance_type_code          := 'A';
22441 l_segment                     := NULL;
22442 l_ccid                        := NULL;
22443 l_adr_transaction_coa_id      := NULL;
22444 l_adr_accounting_coa_id       := NULL;
22445 l_adr_flexfield_segment_code  := NULL;
22446 l_adr_flex_value_set_id       := NULL;
22447 l_adr_value_type_code         := NULL;
22448 l_adr_value_combination_id    := NULL;
22449 l_adr_value_segment_code      := NULL;
22450 
22451 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
22452 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
22453 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
22454 l_budgetary_control_flag     := 'N';
22455 
22456 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
22457 l_bflow_applied_to_amt       := NULL; -- 5132302
22458 l_entered_amt_idx            := NULL;          -- 4262811
22459 l_accted_amt_idx             := NULL;          -- 4262811
22460 l_acc_rev_flag               := NULL;          -- 4262811
22461 l_accrual_line_num           := NULL;          -- 4262811
22462 l_tmp_amt                    := NULL;          -- 4262811
22463 --
22464  
22465 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
22466     l_balance_type_code <> 'B' THEN
22467 IF NVL(p_source_97,'
22468 ') =  'ALWAYS_CLEAR' AND 
22469 (NVL(p_source_113,'
22470 ') =  'Y' AND 
22471 NVL(p_source_15,'
22472 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
22473 p_source_114 IS NOT NULL AND 
22474 NVL(p_source_98,'
22475 ') =  'CASH'
22476  THEN 
22477 
22478    --
22479    XLA_AE_LINES_PKG.SetNewLine;
22480 
22481    p_balance_type_code          := l_balance_type_code;
22482    -- set the flag so later we will know whether the gain loss line needs to be created
22483    
22484    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
22485      p_actual_flag :='A';
22486    END IF;
22487 
22488    --
22489    -- bulk performance
22490    --
22491    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
22495    --
22492                                       p_header_num   => 0); -- 4262811
22493    --
22494    -- set accounting line options
22496    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
22497            p_natural_side_code          => 'C'
22498          , p_gain_or_loss_flag          => 'N'
22499          , p_gl_transfer_mode_code      => 'S'
22500          , p_acct_entry_type_code       => 'A'
22501          , p_switch_side_flag           => 'Y'
22502          , p_merge_duplicate_code       => 'A'
22503          );
22504    --
22505    l_acc_rev_natural_side_code := 'D';  -- 4262811
22506    -- 
22507    --
22508    -- set accounting line type info
22509    --
22510    xla_ae_lines_pkg.SetAcctLineType
22511       (p_component_type             => l_component_type
22512       ,p_event_type_code            => l_event_type_code
22513       ,p_line_definition_owner_code => l_line_definition_owner_code
22514       ,p_line_definition_code       => l_line_definition_code
22515       ,p_accounting_line_code       => l_component_code
22516       ,p_accounting_line_type_code  => l_component_type_code
22517       ,p_accounting_line_appl_id    => l_component_appl_id
22518       ,p_amb_context_code           => l_amb_context_code
22519       ,p_entity_code                => l_entity_code
22520       ,p_event_class_code           => l_event_class_code);
22521    --
22522    -- set accounting class
22523    --
22524    xla_ae_lines_pkg.SetAcctClass(
22525            p_accounting_class_code  => 'CASH_CLEARING'
22526          , p_ae_header_id           => l_ae_header_id
22527          );
22528 
22529    --
22530    -- set rounding class
22531    --
22532    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
22533                       'CASH_CLEARING';
22534 
22535    --
22536    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
22537    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
22538    --
22539    -- bulk performance
22540    --
22541    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
22542 
22543    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
22544       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
22545 
22546    -- 4955764
22547    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22548       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
22549 
22550    -- 4458381 Public Sector Enh
22551    
22552    --
22553    -- set accounting attributes for the line type
22554    --
22555    l_entered_amt_idx := 9;
22556    l_accted_amt_idx  := 14;
22557    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
22558    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
22559    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
22560    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
22561    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
22562    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
22563    l_rec_acct_attrs.array_char_value(3)  := p_source_100;
22564    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
22565    l_rec_acct_attrs.array_char_value(4)  := p_source_101;
22566    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
22567    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_102);
22568    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
22569    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_103);
22570    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
22571    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
22572    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
22573    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
22574    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
22575    l_rec_acct_attrs.array_num_value(9)  := p_source_99;
22576    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
22577    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
22578    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
22579    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
22580    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
22581    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
22582    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
22583    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
22584    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
22585    l_rec_acct_attrs.array_num_value(14)  := p_source_116;
22586    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
22587    l_rec_acct_attrs.array_char_value(15)  := p_source_80;
22588    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
22589    l_rec_acct_attrs.array_num_value(16)  := p_source_110;
22590    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
22591    l_rec_acct_attrs.array_num_value(17)  := p_source_111;
22592    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
22593    l_rec_acct_attrs.array_char_value(18)  := p_source_83;
22594    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
22598 
22595    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_112);
22596    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
22597    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
22599    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
22600    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
22601 
22602    ---------------------------------------------------------------------------------------------------------------
22603    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
22604    ---------------------------------------------------------------------------------------------------------------
22605    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
22606 
22607    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22608    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22609 
22610    IF xla_accounting_cache_pkg.GetValueChar
22611          (p_source_code         => 'LEDGER_CATEGORY_CODE'
22612          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
22613    AND l_bflow_method_code = 'PRIOR_ENTRY'
22614 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
22615    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
22616          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
22617        )
22618    THEN
22619          xla_ae_lines_pkg.BflowUpgEntry
22620            (p_business_method_code    => l_bflow_method_code
22621            ,p_business_class_code     => l_bflow_class_code
22622            ,p_balance_type            => l_balance_type_code);
22623    ELSE
22624       NULL;
22625 XLA_AE_LINES_PKG.business_flow_validation(
22626                                 p_business_method_code     => l_bflow_method_code
22627                                ,p_business_class_code      => l_bflow_class_code
22628                                ,p_inherit_description_flag => l_inherit_desc_flag);
22629    END IF;
22630 
22631    --
22632    -- call analytical criteria
22633    --
22634    
22635    --
22636    -- call description
22637    --
22638    -- No description or it is inherited.
22639    --
22640    -- call ADRs
22641    -- Bug 4922099
22642    --
22643    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22644         (NVL(l_actual_upg_option, 'N') = 'O') OR
22645         (NVL(l_enc_upg_option, 'N') = 'O')
22646       )
22647    THEN
22648    NULL;
22649    --
22650    --
22651    
22652    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
22653      p_code_combination_id      => TO_NUMBER(C_NUM)
22654    , p_value_type_code          => NULL
22655    , p_transaction_coa_id       => null
22656    , p_accounting_coa_id        => null
22657    , p_adr_code                 => NULL
22658    , p_adr_type_code            => NULL
22659    , p_component_type           => l_component_type
22660    , p_component_code           => l_component_code
22661    , p_component_type_code      => l_component_type_code
22662    , p_component_appl_id        => l_component_appl_id
22663    , p_amb_context_code         => l_amb_context_code
22664    , p_side                     => NULL
22665    );
22666 
22667    
22668   -- initialise segments
22669   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22670   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22671   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22672   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22673   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22674   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22675   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22676   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22677   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22678   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22679   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22680   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22681   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22682   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22683   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22684   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22685   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22686   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22687   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22688   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22689   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22690   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22691   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22692   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22696   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22693   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22694   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22695   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22697   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22698   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22699   --
22700 
22701    --
22702 
22703 
22704    l_segment := AcctDerRule_16(
22705            p_application_id           => p_application_id
22706          , p_ae_header_id             => l_ae_header_id 
22707 , p_source_35 => p_source_35
22708          , x_transaction_coa_id       => l_adr_transaction_coa_id
22709          , x_accounting_coa_id        => l_adr_accounting_coa_id
22710          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
22711          , x_flex_value_set_id        => l_adr_flex_value_set_id
22712          , x_value_type_code          => l_adr_value_type_code
22713          , x_value_combination_id     => l_adr_value_combination_id
22714          , x_value_segment_code       => l_adr_value_segment_code
22715          , p_side                     => 'NA'
22716          , p_override_seg_flag        => 'Y'
22717    );
22718 
22719    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
22720 
22721       xla_ae_lines_pkg.set_segment(
22722           p_to_segment_code         => 'GL_ACCOUNT'
22723         , p_segment_value           => l_segment
22724         , p_from_segment_code       => l_adr_value_segment_code
22725         , p_from_combination_id     => l_adr_value_combination_id
22726         , p_value_type_code         => l_adr_value_type_code
22727         , p_transaction_coa_id      => l_adr_transaction_coa_id
22728         , p_accounting_coa_id       => l_adr_accounting_coa_id
22729         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
22730         , p_flex_value_set_id       => l_adr_flex_value_set_id
22731         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
22732         , p_adr_type_code           => 'S'
22733         , p_component_type          => l_component_type
22734         , p_component_code          => l_component_code
22735         , p_component_type_code     => l_component_type_code
22736         , p_component_appl_id       => l_component_appl_id
22737         , p_amb_context_code        => l_amb_context_code
22738         , p_entity_code             => 'AP_PAYMENTS'
22739         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
22740         , p_side                    => 'NA'
22741         );
22742 
22743   END IF;
22744 
22745    --
22746    --
22747    END IF;
22748    --
22749    -- Bug 4922099
22750    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
22751           (NVL(l_enc_upg_option, 'N') = 'O')
22752         ) AND
22753         (l_bflow_method_code = 'PRIOR_ENTRY')
22754       )
22755    THEN
22756       IF
22757       --
22758       1 = 2
22759       --
22760       THEN
22761       xla_accounting_err_pkg.build_message
22762                                     (p_appli_s_name            => 'XLA'
22763                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22764                                     ,p_token_1                 => 'LINE_NUMBER'
22765                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
22766                                     ,p_token_2                 => 'LINE_TYPE_NAME'
22767                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
22768                                                                              l_component_type
22769                                                                             ,l_component_code
22770                                                                             ,l_component_type_code
22771                                                                             ,l_component_appl_id
22772                                                                             ,l_amb_context_code
22773                                                                             ,l_entity_code
22774                                                                             ,l_event_class_code
22775                                                                            )
22776                                     ,p_token_3                 => 'OWNER'
22777                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
22778                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
22779                                                                           ,p_lookup_code    => l_component_type_code
22780                                                                          )
22781                                     ,p_token_4                 => 'PRODUCT_NAME'
22782                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
22783                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
22784                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
22785                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
22786                                     ,p_ae_header_id            =>  NULL
22790                  trace
22787                                        );
22788 
22789         IF (C_LEVEL_ERROR>= g_log_level) THEN
22791                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22792                       ,p_level    => C_LEVEL_ERROR
22793                       ,p_module   => l_log_module);
22794         END IF;
22795       END IF;
22796    END IF;
22797    --
22798    --
22799    ------------------------------------------------------------------------------------------------
22800    -- 4219869 Business Flow
22801    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
22802    -- Prior Entry.  Currently, the following code is always generated.
22803    ------------------------------------------------------------------------------------------------
22804    XLA_AE_LINES_PKG.ValidateCurrentLine;
22805 
22806    ------------------------------------------------------------------------------------
22807    -- 4219869 Business Flow
22808    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
22809    ------------------------------------------------------------------------------------
22810    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22811 
22812    ----------------------------------------------------------------------------------
22813    -- 4219869 Business Flow
22814    -- Update journal entry status -- Need to generate this within IF <condition>
22815    ----------------------------------------------------------------------------------
22816    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22817          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
22818          ,p_balance_type_code => l_balance_type_code
22819          );
22820 
22821    -------------------------------------------------------------------------------------------
22822    -- 4262811 - Generate the Accrual Reversal lines
22823    -------------------------------------------------------------------------------------------
22824    BEGIN
22825       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
22826                               (g_array_event(p_event_id).array_value_num('header_index'));
22827       IF l_acc_rev_flag IS NULL THEN
22828          l_acc_rev_flag := 'N';
22829       END IF;
22830    EXCEPTION
22831       WHEN OTHERS THEN
22832          l_acc_rev_flag := 'N';
22833    END;
22834    --
22835    IF (l_acc_rev_flag = 'Y') THEN
22836 
22837        -- 4645092  ------------------------------------------------------------------------------
22838        -- To allow MPA report to determine if it should generate report process
22839        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
22840        ------------------------------------------------------------------------------------------
22841 
22842        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
22843        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
22844    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
22845    -- call ADRs
22846    -- Bug 4922099
22847    --
22848    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22849         (NVL(l_actual_upg_option, 'N') = 'O') OR
22850         (NVL(l_enc_upg_option, 'N') = 'O')
22851       )
22852    THEN
22853    NULL;
22854    --
22855    --
22856    
22857    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
22858      p_code_combination_id      => TO_NUMBER(C_NUM)
22859    , p_value_type_code          => NULL
22860    , p_transaction_coa_id       => null
22861    , p_accounting_coa_id        => null
22862    , p_adr_code                 => NULL
22863    , p_adr_type_code            => NULL
22864    , p_component_type           => l_component_type
22865    , p_component_code           => l_component_code
22866    , p_component_type_code      => l_component_type_code
22867    , p_component_appl_id        => l_component_appl_id
22868    , p_amb_context_code         => l_amb_context_code
22869    , p_side                     => NULL
22870    );
22871 
22872    
22873   -- initialise segments
22874   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22875   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22876   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22877   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22878   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22879   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22880   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22881   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22882   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
22883   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22884   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22885   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22886   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22887   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22888   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22889   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22893   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22890   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22891   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22892   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22894   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22895   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22896   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22897   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22898   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22899   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22900   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22901   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22902   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22903   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
22904   --
22905 
22906    --
22907 
22908 
22909    l_segment := AcctDerRule_16(
22910            p_application_id           => p_application_id
22911          , p_ae_header_id             => l_ae_header_id 
22912 , p_source_35 => p_source_35
22913          , x_transaction_coa_id       => l_adr_transaction_coa_id
22914          , x_accounting_coa_id        => l_adr_accounting_coa_id
22915          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
22916          , x_flex_value_set_id        => l_adr_flex_value_set_id
22917          , x_value_type_code          => l_adr_value_type_code
22918          , x_value_combination_id     => l_adr_value_combination_id
22919          , x_value_segment_code       => l_adr_value_segment_code
22920          , p_side                     => 'NA'
22921          , p_override_seg_flag        => 'Y'
22922    );
22923 
22924    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
22925 
22926       xla_ae_lines_pkg.set_segment(
22927           p_to_segment_code         => 'GL_ACCOUNT'
22928         , p_segment_value           => l_segment
22929         , p_from_segment_code       => l_adr_value_segment_code
22930         , p_from_combination_id     => l_adr_value_combination_id
22931         , p_value_type_code         => l_adr_value_type_code
22932         , p_transaction_coa_id      => l_adr_transaction_coa_id
22933         , p_accounting_coa_id       => l_adr_accounting_coa_id
22934         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
22935         , p_flex_value_set_id       => l_adr_flex_value_set_id
22936         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
22937         , p_adr_type_code           => 'S'
22938         , p_component_type          => l_component_type
22939         , p_component_code          => l_component_code
22940         , p_component_type_code     => l_component_type_code
22941         , p_component_appl_id       => l_component_appl_id
22942         , p_amb_context_code        => l_amb_context_code
22943         , p_entity_code             => 'AP_PAYMENTS'
22944         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
22945         , p_side                    => 'NA'
22946         );
22947 
22948   END IF;
22949 
22950    --
22951    --
22952    END IF;
22953 
22954        --
22955        -- Update the line information that should be overwritten
22956        --
22957        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
22958                                          p_header_num   => 1);
22959        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
22960 
22961        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
22962 
22963        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
22964           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
22965        END IF;
22966 
22967       --
22968       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
22969       --
22970       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
22971           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
22972       ELSE
22973           ---------------------------------------------------------------------------------------------------
22974           -- 4262811a Switch Sign
22975           ---------------------------------------------------------------------------------------------------
22976           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
22977           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22978                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22979           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22980                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22981           -- 5132302
22982           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
22983                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22984 
22988       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22985       END IF;
22986 
22987       -- 4955764
22989       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
22990 
22991 
22992       XLA_AE_LINES_PKG.ValidateCurrentLine;
22993       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22994 
22995       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22996                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
22997                ,p_balance_type_code => l_balance_type_code);
22998 
22999    END IF;
23000 
23001    -----------------------------------------------------------------------------------------
23002    -- 4262811 Multiperiod Accounting
23003    -----------------------------------------------------------------------------------------
23004      -- No MPA option is assigned.
23005 
23006 
23007 END IF;
23008 END IF;
23009 --
23010 
23011 --
23012 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23013    trace
23014       (p_msg      => 'END of AcctLineType_66'
23015       ,p_level    => C_LEVEL_PROCEDURE
23016       ,p_module   => l_log_module);
23017 END IF;
23018 --
23019 EXCEPTION
23020   WHEN xla_exceptions_pkg.application_exception THEN
23021       RAISE;
23022   WHEN OTHERS THEN
23023        xla_exceptions_pkg.raise_message
23024            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_66');
23025 END AcctLineType_66;
23026 --
23027 
23028 ---------------------------------------
23029 --
23030 -- PRIVATE FUNCTION
23031 --         AcctLineType_67
23032 --
23033 ---------------------------------------
23034 PROCEDURE AcctLineType_67 (
23035   p_application_id        IN NUMBER
23036  ,p_event_id              IN NUMBER
23037  ,p_calculate_acctd_flag  IN VARCHAR2
23038  ,p_calculate_g_l_flag    IN VARCHAR2
23039  ,p_actual_flag           IN OUT VARCHAR2
23040  ,p_balance_type_code     OUT VARCHAR2
23041  ,p_gain_or_loss_ref      OUT VARCHAR2
23042  
23043 --Payment Currency Code
23044  , p_source_13            IN VARCHAR2
23045 --Automatic Offsets Value
23046  , p_source_15            IN VARCHAR2
23047  , p_source_15_meaning    IN VARCHAR2
23048 --Bank Cash Clearing Account
23049  , p_source_35            IN NUMBER
23050 --Accounting Reversal Indicator
23051  , p_source_53            IN VARCHAR2
23052 --Distribution Link Type
23053  , p_source_55            IN VARCHAR2
23054 --Override Accounted Amount Indicator
23055  , p_source_80            IN VARCHAR2
23056  , p_source_80_meaning    IN VARCHAR2
23057 --Third Party Type
23058  , p_source_83            IN VARCHAR2
23059 --Business Flow Accounts Payable Application Identifier
23060  , p_source_91            IN NUMBER
23061 --When to Account for Payment Option
23062  , p_source_97            IN VARCHAR2
23063 --Payment Distribution Type
23064  , p_source_98            IN VARCHAR2
23065  , p_source_98_meaning    IN VARCHAR2
23066 --Payment Distribution Amount
23067  , p_source_99            IN NUMBER
23068 --Business Flow Payment Distribution Type
23069  , p_source_100            IN VARCHAR2
23070 --Business Flow Payment Entity Code
23071  , p_source_101            IN VARCHAR2
23072 --Business Flow Payment Distribution Identifier
23073  , p_source_102            IN NUMBER
23074 --Business Flow Payment Identifier
23075  , p_source_103            IN NUMBER
23076 --Payment Distribution Identifier
23077  , p_source_104            IN NUMBER
23078 --Payment Supplier Identifier
23079  , p_source_110            IN NUMBER
23080 --Payment Supplier Site Identifier
23081  , p_source_111            IN NUMBER
23082 --Payment Distribution Reversed Identifier
23083  , p_source_112            IN NUMBER
23084 --Pooled Bank Account Option
23085  , p_source_113            IN VARCHAR2
23086  , p_source_113_meaning    IN VARCHAR2
23087 --Payment Maturity Date
23088  , p_source_114            IN DATE
23089 --Payment Distribution (Invoice Rate) Ledger Amount
23090  , p_source_116            IN NUMBER
23091 --Payment Exchange Date
23092  , p_source_117            IN DATE
23093 --Payment Exchange Rate
23094  , p_source_118            IN NUMBER
23095 --Payment Exchange Rate Type
23096  , p_source_119            IN VARCHAR2
23097 )
23098 IS
23099 
23100 l_component_type              VARCHAR2(80);
23101 l_component_code              VARCHAR2(30);
23102 l_component_type_code         VARCHAR2(1);
23103 l_component_appl_id           INTEGER;
23104 l_amb_context_code            VARCHAR2(30);
23105 l_entity_code                 VARCHAR2(30);
23106 l_event_class_code            VARCHAR2(30);
23107 l_ae_header_id                NUMBER;
23108 l_event_type_code             VARCHAR2(30);
23109 l_line_definition_code        VARCHAR2(30);
23110 l_line_definition_owner_code  VARCHAR2(1);
23111 --
23112 -- adr variables
23113 l_segment                     VARCHAR2(30);
23114 l_ccid                        NUMBER;
23115 l_adr_transaction_coa_id      NUMBER;
23116 l_adr_accounting_coa_id       NUMBER;
23117 l_adr_flexfield_segment_code  VARCHAR2(30);
23118 l_adr_flex_value_set_id       NUMBER;
23119 l_adr_value_type_code         VARCHAR2(30);
23120 l_adr_value_combination_id    NUMBER;
23121 l_adr_value_segment_code      VARCHAR2(30);
23122 
23123 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
23127 
23124 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
23125 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
23126 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
23128 -- 4262811 Variables ------------------------------------------------------------------------------------------
23129 l_entered_amt_idx             NUMBER;
23130 l_accted_amt_idx              NUMBER;
23131 l_acc_rev_flag                VARCHAR2(1);
23132 l_accrual_line_num            NUMBER;
23133 l_tmp_amt                     NUMBER;
23134 l_acc_rev_natural_side_code   VARCHAR2(1);
23135 
23136 l_num_entries                 NUMBER;
23137 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
23138 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
23139 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
23140 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
23141 l_recog_line_1                NUMBER;
23142 l_recog_line_2                NUMBER;
23143 
23144 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
23145 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
23146 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
23147 
23148 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
23149 
23150 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
23151 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
23152 
23153 ---------------------------------------------------------------------------------------------------------------
23154 
23155 
23156 --
23157 -- bulk performance
23158 --
23159 l_balance_type_code           VARCHAR2(1);
23160 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
23161 l_log_module                  VARCHAR2(240);
23162 
23163 --
23164 -- Upgrade strategy
23165 --
23166 l_actual_upg_option           VARCHAR2(1);
23167 l_enc_upg_option           VARCHAR2(1);
23168 
23169 --
23170 BEGIN
23171 --
23172 IF g_log_enabled THEN
23173       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_67';
23174 END IF;
23175 --
23176 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23177 
23178       trace
23179          (p_msg      => 'BEGIN of AcctLineType_67'
23180          ,p_level    => C_LEVEL_PROCEDURE
23181          ,p_module   => l_log_module);
23182 
23183 END IF;
23184 --
23185 l_component_type             := 'AMB_JLT';
23186 l_component_code             := 'AP_CASH_CLEAR_MAT_BS_INVXRATE';
23187 l_component_type_code        := 'S';
23188 l_component_appl_id          :=  200;
23189 l_amb_context_code           := 'DEFAULT';
23190 l_entity_code                := 'AP_PAYMENTS';
23191 l_event_class_code           := 'FUTURE DATED PAYMENTS';
23192 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
23193 l_line_definition_owner_code := 'S';
23194 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
23195 --
23196 l_balance_type_code          := 'A';
23197 l_segment                     := NULL;
23198 l_ccid                        := NULL;
23199 l_adr_transaction_coa_id      := NULL;
23200 l_adr_accounting_coa_id       := NULL;
23201 l_adr_flexfield_segment_code  := NULL;
23202 l_adr_flex_value_set_id       := NULL;
23203 l_adr_value_type_code         := NULL;
23204 l_adr_value_combination_id    := NULL;
23205 l_adr_value_segment_code      := NULL;
23206 
23207 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
23208 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
23209 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
23210 l_budgetary_control_flag     := 'N';
23211 
23212 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
23213 l_bflow_applied_to_amt       := NULL; -- 5132302
23214 l_entered_amt_idx            := NULL;          -- 4262811
23215 l_accted_amt_idx             := NULL;          -- 4262811
23216 l_acc_rev_flag               := NULL;          -- 4262811
23217 l_accrual_line_num           := NULL;          -- 4262811
23218 l_tmp_amt                    := NULL;          -- 4262811
23219 --
23220  
23221 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
23222     l_balance_type_code <> 'B' THEN
23223 IF NVL(p_source_97,'
23224 ') =  'ALWAYS_CLEAR' AND 
23225 (NVL(p_source_113,'
23226 ') =  'Y' AND 
23227 NVL(p_source_15,'
23228 ') =  'BALANCING_SEGMENT') AND 
23229 p_source_114 IS NOT NULL AND 
23230 NVL(p_source_98,'
23231 ') =  'CASH'
23232  THEN 
23233 
23234    --
23235    XLA_AE_LINES_PKG.SetNewLine;
23236 
23237    p_balance_type_code          := l_balance_type_code;
23238    -- set the flag so later we will know whether the gain loss line needs to be created
23239    
23240    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
23241      p_actual_flag :='A';
23242    END IF;
23243 
23244    --
23245    -- bulk performance
23246    --
23247    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
23248                                       p_header_num   => 0); -- 4262811
23249    --
23250    -- set accounting line options
23251    --
23252    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
23253            p_natural_side_code          => 'C'
23257          , p_switch_side_flag           => 'Y'
23254          , p_gain_or_loss_flag          => 'N'
23255          , p_gl_transfer_mode_code      => 'S'
23256          , p_acct_entry_type_code       => 'A'
23258          , p_merge_duplicate_code       => 'A'
23259          );
23260    --
23261    l_acc_rev_natural_side_code := 'D';  -- 4262811
23262    -- 
23263    --
23264    -- set accounting line type info
23265    --
23266    xla_ae_lines_pkg.SetAcctLineType
23267       (p_component_type             => l_component_type
23268       ,p_event_type_code            => l_event_type_code
23269       ,p_line_definition_owner_code => l_line_definition_owner_code
23270       ,p_line_definition_code       => l_line_definition_code
23271       ,p_accounting_line_code       => l_component_code
23272       ,p_accounting_line_type_code  => l_component_type_code
23273       ,p_accounting_line_appl_id    => l_component_appl_id
23274       ,p_amb_context_code           => l_amb_context_code
23275       ,p_entity_code                => l_entity_code
23276       ,p_event_class_code           => l_event_class_code);
23277    --
23278    -- set accounting class
23279    --
23280    xla_ae_lines_pkg.SetAcctClass(
23281            p_accounting_class_code  => 'CASH_CLEARING'
23282          , p_ae_header_id           => l_ae_header_id
23283          );
23284 
23285    --
23286    -- set rounding class
23287    --
23288    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
23289                       'CASH_CLEARING';
23290 
23291    --
23292    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
23293    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
23294    --
23295    -- bulk performance
23296    --
23297    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
23298 
23299    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
23300       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
23301 
23302    -- 4955764
23303    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23304       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
23305 
23306    -- 4458381 Public Sector Enh
23307    
23308    --
23309    -- set accounting attributes for the line type
23310    --
23311    l_entered_amt_idx := 9;
23312    l_accted_amt_idx  := 14;
23313    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
23314    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
23315    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
23316    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
23317    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
23318    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
23319    l_rec_acct_attrs.array_char_value(3)  := p_source_100;
23320    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
23321    l_rec_acct_attrs.array_char_value(4)  := p_source_101;
23322    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
23323    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_102);
23324    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
23325    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_103);
23326    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
23327    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
23328    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
23329    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
23330    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
23331    l_rec_acct_attrs.array_num_value(9)  := p_source_99;
23332    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
23333    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
23334    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
23335    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
23336    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
23337    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
23338    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
23339    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
23340    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
23341    l_rec_acct_attrs.array_num_value(14)  := p_source_116;
23342    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
23343    l_rec_acct_attrs.array_char_value(15)  := p_source_80;
23344    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
23345    l_rec_acct_attrs.array_num_value(16)  := p_source_110;
23346    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
23347    l_rec_acct_attrs.array_num_value(17)  := p_source_111;
23348    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
23349    l_rec_acct_attrs.array_char_value(18)  := p_source_83;
23350    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
23351    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_112);
23352    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
23353    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
23354 
23355    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
23356    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
23357 
23361    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
23358    ---------------------------------------------------------------------------------------------------------------
23359    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
23360    ---------------------------------------------------------------------------------------------------------------
23362 
23363    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23364    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23365 
23366    IF xla_accounting_cache_pkg.GetValueChar
23367          (p_source_code         => 'LEDGER_CATEGORY_CODE'
23368          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
23369    AND l_bflow_method_code = 'PRIOR_ENTRY'
23370 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
23371    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
23372          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
23373        )
23374    THEN
23375          xla_ae_lines_pkg.BflowUpgEntry
23376            (p_business_method_code    => l_bflow_method_code
23377            ,p_business_class_code     => l_bflow_class_code
23378            ,p_balance_type            => l_balance_type_code);
23379    ELSE
23380       NULL;
23381 XLA_AE_LINES_PKG.business_flow_validation(
23382                                 p_business_method_code     => l_bflow_method_code
23383                                ,p_business_class_code      => l_bflow_class_code
23384                                ,p_inherit_description_flag => l_inherit_desc_flag);
23385    END IF;
23386 
23387    --
23388    -- call analytical criteria
23389    --
23390    
23391    --
23392    -- call description
23393    --
23394    -- No description or it is inherited.
23395    --
23396    -- call ADRs
23397    -- Bug 4922099
23398    --
23399    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23400         (NVL(l_actual_upg_option, 'N') = 'O') OR
23401         (NVL(l_enc_upg_option, 'N') = 'O')
23402       )
23403    THEN
23404    NULL;
23405    --
23406    --
23407    
23408   l_ccid := AcctDerRule_36(
23409            p_application_id           => p_application_id
23410          , p_ae_header_id             => l_ae_header_id 
23411 , p_source_35 => p_source_35
23412          , x_transaction_coa_id       => l_adr_transaction_coa_id
23413          , x_accounting_coa_id        => l_adr_accounting_coa_id
23414          , x_value_type_code          => l_adr_value_type_code
23415          , p_side                     => 'NA'
23416    );
23417 
23418    xla_ae_lines_pkg.set_ccid(
23419     p_code_combination_id          => l_ccid
23420   , p_value_type_code              => l_adr_value_type_code
23421   , p_transaction_coa_id           => l_adr_transaction_coa_id
23422   , p_accounting_coa_id            => l_adr_accounting_coa_id
23423   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
23424   , p_adr_type_code                => 'S'
23425   , p_component_type               => l_component_type
23426   , p_component_code               => l_component_code
23427   , p_component_type_code          => l_component_type_code
23428   , p_component_appl_id            => l_component_appl_id
23429   , p_amb_context_code             => l_amb_context_code
23430   , p_side                         => 'NA'
23431   );
23432 
23433 
23434    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
23435      p_to_segment_code         => 'GL_BALANCING'
23436    , p_segment_value           => C_CHAR
23437    , p_from_segment_code       => NULL
23438    , p_from_combination_id     => NULL
23439    , p_value_type_code         => NULL
23440    , p_transaction_coa_id      => null
23441    , p_accounting_coa_id       => null
23442    , p_flexfield_segment_code  => NULL
23443    , p_flex_value_set_id       => NULL
23444    , p_adr_code                => NULL
23445    , p_adr_type_code           => NULL
23446    , p_component_type          => l_component_type
23447    , p_component_code          => l_component_code
23448    , p_component_type_code     => l_component_type_code
23449    , p_component_appl_id       => l_component_appl_id
23450    , p_amb_context_code        => l_amb_context_code
23451    , p_entity_code             => 'AP_PAYMENTS'
23452    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
23453    , p_side                    => 'NA'
23454    );
23455    --
23456 
23457 
23458    --
23459    --
23460    END IF;
23461    --
23462    -- Bug 4922099
23463    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
23464           (NVL(l_enc_upg_option, 'N') = 'O')
23465         ) AND
23466         (l_bflow_method_code = 'PRIOR_ENTRY')
23467       )
23468    THEN
23469       IF
23470       --
23471       1 = 2
23472       --
23473       THEN
23474       xla_accounting_err_pkg.build_message
23475                                     (p_appli_s_name            => 'XLA'
23476                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23477                                     ,p_token_1                 => 'LINE_NUMBER'
23478                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
23479                                     ,p_token_2                 => 'LINE_TYPE_NAME'
23483                                                                             ,l_component_type_code
23480                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
23481                                                                              l_component_type
23482                                                                             ,l_component_code
23484                                                                             ,l_component_appl_id
23485                                                                             ,l_amb_context_code
23486                                                                             ,l_entity_code
23487                                                                             ,l_event_class_code
23488                                                                            )
23489                                     ,p_token_3                 => 'OWNER'
23490                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
23491                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
23492                                                                           ,p_lookup_code    => l_component_type_code
23493                                                                          )
23494                                     ,p_token_4                 => 'PRODUCT_NAME'
23495                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
23496                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
23497                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
23498                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
23499                                     ,p_ae_header_id            =>  NULL
23500                                        );
23501 
23502         IF (C_LEVEL_ERROR>= g_log_level) THEN
23503                  trace
23504                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23505                       ,p_level    => C_LEVEL_ERROR
23506                       ,p_module   => l_log_module);
23507         END IF;
23508       END IF;
23509    END IF;
23510    --
23511    --
23512    ------------------------------------------------------------------------------------------------
23513    -- 4219869 Business Flow
23514    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
23515    -- Prior Entry.  Currently, the following code is always generated.
23516    ------------------------------------------------------------------------------------------------
23517    XLA_AE_LINES_PKG.ValidateCurrentLine;
23518 
23519    ------------------------------------------------------------------------------------
23520    -- 4219869 Business Flow
23521    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
23522    ------------------------------------------------------------------------------------
23523    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23524 
23525    ----------------------------------------------------------------------------------
23526    -- 4219869 Business Flow
23527    -- Update journal entry status -- Need to generate this within IF <condition>
23528    ----------------------------------------------------------------------------------
23529    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23530          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
23531          ,p_balance_type_code => l_balance_type_code
23532          );
23533 
23534    -------------------------------------------------------------------------------------------
23535    -- 4262811 - Generate the Accrual Reversal lines
23536    -------------------------------------------------------------------------------------------
23537    BEGIN
23538       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
23539                               (g_array_event(p_event_id).array_value_num('header_index'));
23540       IF l_acc_rev_flag IS NULL THEN
23541          l_acc_rev_flag := 'N';
23542       END IF;
23543    EXCEPTION
23544       WHEN OTHERS THEN
23545          l_acc_rev_flag := 'N';
23546    END;
23547    --
23548    IF (l_acc_rev_flag = 'Y') THEN
23549 
23550        -- 4645092  ------------------------------------------------------------------------------
23551        -- To allow MPA report to determine if it should generate report process
23552        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
23553        ------------------------------------------------------------------------------------------
23554 
23555        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
23556        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
23557    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
23558    -- call ADRs
23559    -- Bug 4922099
23560    --
23561    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23562         (NVL(l_actual_upg_option, 'N') = 'O') OR
23563         (NVL(l_enc_upg_option, 'N') = 'O')
23564       )
23565    THEN
23566    NULL;
23567    --
23568    --
23569    
23570   l_ccid := AcctDerRule_36(
23571            p_application_id           => p_application_id
23572          , p_ae_header_id             => l_ae_header_id 
23573 , p_source_35 => p_source_35
23574          , x_transaction_coa_id       => l_adr_transaction_coa_id
23578    );
23575          , x_accounting_coa_id        => l_adr_accounting_coa_id
23576          , x_value_type_code          => l_adr_value_type_code
23577          , p_side                     => 'NA'
23579 
23580    xla_ae_lines_pkg.set_ccid(
23581     p_code_combination_id          => l_ccid
23582   , p_value_type_code              => l_adr_value_type_code
23583   , p_transaction_coa_id           => l_adr_transaction_coa_id
23584   , p_accounting_coa_id            => l_adr_accounting_coa_id
23585   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
23586   , p_adr_type_code                => 'S'
23587   , p_component_type               => l_component_type
23588   , p_component_code               => l_component_code
23589   , p_component_type_code          => l_component_type_code
23590   , p_component_appl_id            => l_component_appl_id
23591   , p_amb_context_code             => l_amb_context_code
23592   , p_side                         => 'NA'
23593   );
23594 
23595 
23596    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
23597      p_to_segment_code         => 'GL_BALANCING'
23598    , p_segment_value           => C_CHAR
23599    , p_from_segment_code       => NULL
23600    , p_from_combination_id     => NULL
23601    , p_value_type_code         => NULL
23602    , p_transaction_coa_id      => null
23603    , p_accounting_coa_id       => null
23604    , p_flexfield_segment_code  => NULL
23605    , p_flex_value_set_id       => NULL
23606    , p_adr_code                => NULL
23607    , p_adr_type_code           => NULL
23608    , p_component_type          => l_component_type
23609    , p_component_code          => l_component_code
23610    , p_component_type_code     => l_component_type_code
23611    , p_component_appl_id       => l_component_appl_id
23612    , p_amb_context_code        => l_amb_context_code
23613    , p_entity_code             => 'AP_PAYMENTS'
23614    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
23615    , p_side                    => 'NA'
23616    );
23617    --
23618 
23619 
23620    --
23621    --
23622    END IF;
23623 
23624        --
23625        -- Update the line information that should be overwritten
23626        --
23627        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
23628                                          p_header_num   => 1);
23629        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
23630 
23631        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
23632 
23633        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
23634           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
23635        END IF;
23636 
23637       --
23638       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
23639       --
23640       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
23641           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
23642       ELSE
23643           ---------------------------------------------------------------------------------------------------
23644           -- 4262811a Switch Sign
23645           ---------------------------------------------------------------------------------------------------
23646           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
23647           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23648                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23649           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23650                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23651           -- 5132302
23652           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
23653                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23654 
23655       END IF;
23656 
23657       -- 4955764
23658       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23659       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
23660 
23661 
23662       XLA_AE_LINES_PKG.ValidateCurrentLine;
23663       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23664 
23665       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23666                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
23667                ,p_balance_type_code => l_balance_type_code);
23668 
23669    END IF;
23670 
23671    -----------------------------------------------------------------------------------------
23672    -- 4262811 Multiperiod Accounting
23673    -----------------------------------------------------------------------------------------
23674      -- No MPA option is assigned.
23675 
23676 
23677 END IF;
23678 END IF;
23679 --
23680 
23681 --
23682 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23683    trace
23684       (p_msg      => 'END of AcctLineType_67'
23685       ,p_level    => C_LEVEL_PROCEDURE
23686       ,p_module   => l_log_module);
23687 END IF;
23688 --
23689 EXCEPTION
23690   WHEN xla_exceptions_pkg.application_exception THEN
23694            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_67');
23691       RAISE;
23692   WHEN OTHERS THEN
23693        xla_exceptions_pkg.raise_message
23695 END AcctLineType_67;
23696 --
23697 
23698 ---------------------------------------
23699 --
23700 -- PRIVATE FUNCTION
23701 --         AcctLineType_68
23702 --
23703 ---------------------------------------
23704 PROCEDURE AcctLineType_68 (
23705   p_application_id        IN NUMBER
23706  ,p_event_id              IN NUMBER
23707  ,p_calculate_acctd_flag  IN VARCHAR2
23708  ,p_calculate_g_l_flag    IN VARCHAR2
23709  ,p_actual_flag           IN OUT VARCHAR2
23710  ,p_balance_type_code     OUT VARCHAR2
23711  ,p_gain_or_loss_ref      OUT VARCHAR2
23712  
23713 --Payment Currency Code
23714  , p_source_13            IN VARCHAR2
23715 --Accounting Reversal Indicator
23716  , p_source_53            IN VARCHAR2
23717 --Distribution Link Type
23718  , p_source_55            IN VARCHAR2
23719 --Override Accounted Amount Indicator
23720  , p_source_80            IN VARCHAR2
23721  , p_source_80_meaning    IN VARCHAR2
23722 --Third Party Type
23723  , p_source_83            IN VARCHAR2
23724 --Invoice Distribution Tax Line Identifier
23725  , p_source_86            IN NUMBER
23726 --Invoice Distribution Summary Tax Line Identifier
23727  , p_source_88            IN NUMBER
23728 --Business Flow Accounts Payable Application Identifier
23729  , p_source_91            IN NUMBER
23730 --When to Account for Payment Option
23731  , p_source_97            IN VARCHAR2
23732 --Payment Distribution Type
23733  , p_source_98            IN VARCHAR2
23734  , p_source_98_meaning    IN VARCHAR2
23735 --Payment Distribution Amount
23736  , p_source_99            IN NUMBER
23737 --Business Flow Payment Distribution Type
23738  , p_source_100            IN VARCHAR2
23739 --Business Flow Payment Entity Code
23740  , p_source_101            IN VARCHAR2
23741 --Business Flow Payment Identifier
23742  , p_source_103            IN NUMBER
23743 --Payment Distribution Identifier
23744  , p_source_104            IN NUMBER
23745 --Payment Distribution Reversed Identifier
23746  , p_source_112            IN NUMBER
23747 --Payment Maturity Date
23748  , p_source_114            IN DATE
23749 --Business Flow Payment Maturity Identifier
23750  , p_source_120            IN NUMBER
23751 --Payment Distribution (Matured Rate) Ledger Amount
23752  , p_source_121            IN NUMBER
23753 )
23754 IS
23755 
23756 l_component_type              VARCHAR2(80);
23757 l_component_code              VARCHAR2(30);
23758 l_component_type_code         VARCHAR2(1);
23759 l_component_appl_id           INTEGER;
23760 l_amb_context_code            VARCHAR2(30);
23761 l_entity_code                 VARCHAR2(30);
23762 l_event_class_code            VARCHAR2(30);
23763 l_ae_header_id                NUMBER;
23764 l_event_type_code             VARCHAR2(30);
23765 l_line_definition_code        VARCHAR2(30);
23766 l_line_definition_owner_code  VARCHAR2(1);
23767 --
23768 -- adr variables
23769 l_segment                     VARCHAR2(30);
23770 l_ccid                        NUMBER;
23771 l_adr_transaction_coa_id      NUMBER;
23772 l_adr_accounting_coa_id       NUMBER;
23773 l_adr_flexfield_segment_code  VARCHAR2(30);
23774 l_adr_flex_value_set_id       NUMBER;
23775 l_adr_value_type_code         VARCHAR2(30);
23776 l_adr_value_combination_id    NUMBER;
23777 l_adr_value_segment_code      VARCHAR2(30);
23778 
23779 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
23780 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
23781 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
23782 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
23783 
23784 -- 4262811 Variables ------------------------------------------------------------------------------------------
23785 l_entered_amt_idx             NUMBER;
23786 l_accted_amt_idx              NUMBER;
23787 l_acc_rev_flag                VARCHAR2(1);
23788 l_accrual_line_num            NUMBER;
23789 l_tmp_amt                     NUMBER;
23790 l_acc_rev_natural_side_code   VARCHAR2(1);
23791 
23792 l_num_entries                 NUMBER;
23793 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
23794 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
23795 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
23796 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
23797 l_recog_line_1                NUMBER;
23798 l_recog_line_2                NUMBER;
23799 
23800 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
23801 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
23802 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
23803 
23804 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
23805 
23806 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
23807 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
23808 
23809 ---------------------------------------------------------------------------------------------------------------
23810 
23811 
23812 --
23813 -- bulk performance
23814 --
23815 l_balance_type_code           VARCHAR2(1);
23816 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
23817 l_log_module                  VARCHAR2(240);
23818 
23819 --
23823 l_enc_upg_option           VARCHAR2(1);
23820 -- Upgrade strategy
23821 --
23822 l_actual_upg_option           VARCHAR2(1);
23824 
23825 --
23826 BEGIN
23827 --
23828 IF g_log_enabled THEN
23829       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_68';
23830 END IF;
23831 --
23832 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23833 
23834       trace
23835          (p_msg      => 'BEGIN of AcctLineType_68'
23836          ,p_level    => C_LEVEL_PROCEDURE
23837          ,p_module   => l_log_module);
23838 
23839 END IF;
23840 --
23841 l_component_type             := 'AMB_JLT';
23842 l_component_code             := 'AP_CASH_CLEAR_MAT_CLEAR';
23843 l_component_type_code        := 'S';
23844 l_component_appl_id          :=  200;
23845 l_amb_context_code           := 'DEFAULT';
23846 l_entity_code                := 'AP_PAYMENTS';
23847 l_event_class_code           := 'RECONCILED PAYMENTS';
23848 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
23849 l_line_definition_owner_code := 'S';
23850 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
23851 --
23852 l_balance_type_code          := 'A';
23853 l_segment                     := NULL;
23854 l_ccid                        := NULL;
23855 l_adr_transaction_coa_id      := NULL;
23856 l_adr_accounting_coa_id       := NULL;
23857 l_adr_flexfield_segment_code  := NULL;
23858 l_adr_flex_value_set_id       := NULL;
23859 l_adr_value_type_code         := NULL;
23860 l_adr_value_combination_id    := NULL;
23861 l_adr_value_segment_code      := NULL;
23862 
23863 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
23864 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
23865 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
23866 l_budgetary_control_flag     := 'N';
23867 
23868 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
23869 l_bflow_applied_to_amt       := NULL; -- 5132302
23870 l_entered_amt_idx            := NULL;          -- 4262811
23871 l_accted_amt_idx             := NULL;          -- 4262811
23872 l_acc_rev_flag               := NULL;          -- 4262811
23873 l_accrual_line_num           := NULL;          -- 4262811
23874 l_tmp_amt                    := NULL;          -- 4262811
23875 --
23876  
23877 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
23878     l_balance_type_code <> 'B' THEN
23879 IF (NVL(p_source_97,'
23880 ') =  'ALWAYS_ALWAYS' OR 
23881 NVL(p_source_97,'
23882 ') =  'ALWAYS_CLEAR' OR 
23883 NVL(p_source_97,'
23884 ') =  'ALWAYS_ISSUE') AND 
23885 NVL(p_source_98,'
23886 ') =  'CASH' AND 
23887 p_source_114 IS NOT NULL 
23888  THEN 
23889 
23890    --
23891    XLA_AE_LINES_PKG.SetNewLine;
23892 
23893    p_balance_type_code          := l_balance_type_code;
23894    -- set the flag so later we will know whether the gain loss line needs to be created
23895    
23896    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
23897      p_actual_flag :='A';
23898    END IF;
23899 
23900    --
23901    -- bulk performance
23902    --
23903    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
23904                                       p_header_num   => 0); -- 4262811
23905    --
23906    -- set accounting line options
23907    --
23908    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
23909            p_natural_side_code          => 'D'
23910          , p_gain_or_loss_flag          => 'N'
23911          , p_gl_transfer_mode_code      => 'S'
23912          , p_acct_entry_type_code       => 'A'
23913          , p_switch_side_flag           => 'Y'
23914          , p_merge_duplicate_code       => 'A'
23915          );
23916    --
23917    l_acc_rev_natural_side_code := 'C';  -- 4262811
23918    -- 
23919    --
23920    -- set accounting line type info
23921    --
23922    xla_ae_lines_pkg.SetAcctLineType
23923       (p_component_type             => l_component_type
23924       ,p_event_type_code            => l_event_type_code
23925       ,p_line_definition_owner_code => l_line_definition_owner_code
23926       ,p_line_definition_code       => l_line_definition_code
23927       ,p_accounting_line_code       => l_component_code
23928       ,p_accounting_line_type_code  => l_component_type_code
23929       ,p_accounting_line_appl_id    => l_component_appl_id
23930       ,p_amb_context_code           => l_amb_context_code
23931       ,p_entity_code                => l_entity_code
23932       ,p_event_class_code           => l_event_class_code);
23933    --
23934    -- set accounting class
23935    --
23936    xla_ae_lines_pkg.SetAcctClass(
23937            p_accounting_class_code  => 'CASH_CLEARING'
23938          , p_ae_header_id           => l_ae_header_id
23939          );
23940 
23941    --
23942    -- set rounding class
23943    --
23944    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
23945                       'CASH_CLEARING';
23946 
23947    --
23948    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
23949    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
23950    --
23951    -- bulk performance
23952    --
23953    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
23954 
23958    -- 4955764
23955    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
23956       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
23957 
23959    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23960       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
23961 
23962    -- 4458381 Public Sector Enh
23963    
23964    --
23965    -- set accounting attributes for the line type
23966    --
23967    l_entered_amt_idx := 10;
23968    l_accted_amt_idx  := 12;
23969    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
23970    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
23971    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
23972    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
23973    l_rec_acct_attrs.array_num_value(2)  := p_source_99;
23974    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
23975    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
23976    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
23977    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
23978    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
23979    l_rec_acct_attrs.array_char_value(5)  := p_source_101;
23980    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
23981    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_120);
23982    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
23983    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
23984    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
23985    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
23986    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
23987    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
23988    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
23989    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
23990    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
23991    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
23992    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
23993    l_rec_acct_attrs.array_num_value(12)  := p_source_121;
23994    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
23995    l_rec_acct_attrs.array_char_value(13)  := p_source_80;
23996    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
23997    l_rec_acct_attrs.array_char_value(14)  := p_source_83;
23998    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
23999    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_112);
24000    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
24001    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
24002    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
24003    l_rec_acct_attrs.array_num_value(17)  := p_source_86;
24004    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
24005    l_rec_acct_attrs.array_num_value(18)  := p_source_86;
24006    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
24007    l_rec_acct_attrs.array_num_value(19)  := p_source_88;
24008 
24009    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24010    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24011 
24012    ---------------------------------------------------------------------------------------------------------------
24013    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24014    ---------------------------------------------------------------------------------------------------------------
24015    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24016 
24017    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24018    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24019 
24020    IF xla_accounting_cache_pkg.GetValueChar
24021          (p_source_code         => 'LEDGER_CATEGORY_CODE'
24022          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24023    AND l_bflow_method_code = 'PRIOR_ENTRY'
24024 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24025    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24026          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24027        )
24028    THEN
24029          xla_ae_lines_pkg.BflowUpgEntry
24030            (p_business_method_code    => l_bflow_method_code
24031            ,p_business_class_code     => l_bflow_class_code
24032            ,p_balance_type            => l_balance_type_code);
24033    ELSE
24034       NULL;
24035 XLA_AE_LINES_PKG.business_flow_validation(
24036                                 p_business_method_code     => l_bflow_method_code
24037                                ,p_business_class_code      => l_bflow_class_code
24038                                ,p_inherit_description_flag => l_inherit_desc_flag);
24039    END IF;
24040 
24041    --
24042    -- call analytical criteria
24043    --
24044    -- Inherited Analytical Criteria for business flow method of Prior Entry.
24045    --
24046    -- call description
24047    --
24048    -- No description or it is inherited.
24049    --
24050    -- call ADRs
24051    -- Bug 4922099
24052    --
24053    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24057    THEN
24054         (NVL(l_actual_upg_option, 'N') = 'O') OR
24055         (NVL(l_enc_upg_option, 'N') = 'O')
24056       )
24058    NULL;
24059    --
24060    --
24061    
24062    --
24063    --
24064    END IF;
24065    --
24066    -- Bug 4922099
24067    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24068           (NVL(l_enc_upg_option, 'N') = 'O')
24069         ) AND
24070         (l_bflow_method_code = 'PRIOR_ENTRY')
24071       )
24072    THEN
24073       IF
24074       --
24075       1 = 1
24076       --
24077       THEN
24078       xla_accounting_err_pkg.build_message
24079                                     (p_appli_s_name            => 'XLA'
24080                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24081                                     ,p_token_1                 => 'LINE_NUMBER'
24082                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
24083                                     ,p_token_2                 => 'LINE_TYPE_NAME'
24084                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
24085                                                                              l_component_type
24086                                                                             ,l_component_code
24087                                                                             ,l_component_type_code
24088                                                                             ,l_component_appl_id
24089                                                                             ,l_amb_context_code
24090                                                                             ,l_entity_code
24091                                                                             ,l_event_class_code
24092                                                                            )
24093                                     ,p_token_3                 => 'OWNER'
24094                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
24095                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
24096                                                                           ,p_lookup_code    => l_component_type_code
24097                                                                          )
24098                                     ,p_token_4                 => 'PRODUCT_NAME'
24099                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
24100                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
24101                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
24102                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
24103                                     ,p_ae_header_id            =>  NULL
24104                                        );
24105 
24106         IF (C_LEVEL_ERROR>= g_log_level) THEN
24107                  trace
24108                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24109                       ,p_level    => C_LEVEL_ERROR
24110                       ,p_module   => l_log_module);
24111         END IF;
24112       END IF;
24113    END IF;
24114    --
24115    --
24116    ------------------------------------------------------------------------------------------------
24117    -- 4219869 Business Flow
24118    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
24119    -- Prior Entry.  Currently, the following code is always generated.
24120    ------------------------------------------------------------------------------------------------
24121    -- No ValidateCurrentLine for business flow method of Prior Entry
24122 
24123    ------------------------------------------------------------------------------------
24124    -- 4219869 Business Flow
24125    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
24126    ------------------------------------------------------------------------------------
24127    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24128 
24129    ----------------------------------------------------------------------------------
24130    -- 4219869 Business Flow
24131    -- Update journal entry status -- Need to generate this within IF <condition>
24132    ----------------------------------------------------------------------------------
24133    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24134          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
24135          ,p_balance_type_code => l_balance_type_code
24136          );
24137 
24138    -------------------------------------------------------------------------------------------
24139    -- 4262811 - Generate the Accrual Reversal lines
24140    -------------------------------------------------------------------------------------------
24141    BEGIN
24142       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
24143                               (g_array_event(p_event_id).array_value_num('header_index'));
24144       IF l_acc_rev_flag IS NULL THEN
24145          l_acc_rev_flag := 'N';
24146       END IF;
24147    EXCEPTION
24148       WHEN OTHERS THEN
24149          l_acc_rev_flag := 'N';
24150    END;
24151    --
24152    IF (l_acc_rev_flag = 'Y') THEN
24153 
24157        ------------------------------------------------------------------------------------------
24154        -- 4645092  ------------------------------------------------------------------------------
24155        -- To allow MPA report to determine if it should generate report process
24156        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
24158 
24159        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
24160        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
24161    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
24162    -- call ADRs
24163    -- Bug 4922099
24164    --
24165    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24166         (NVL(l_actual_upg_option, 'N') = 'O') OR
24167         (NVL(l_enc_upg_option, 'N') = 'O')
24168       )
24169    THEN
24170    NULL;
24171    --
24172    --
24173    
24174    --
24175    --
24176    END IF;
24177 
24178        --
24179        -- Update the line information that should be overwritten
24180        --
24181        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
24182                                          p_header_num   => 1);
24183        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
24184 
24185        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
24186 
24187        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
24188           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
24189        END IF;
24190 
24191       --
24192       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
24193       --
24194       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
24195           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
24196       ELSE
24197           ---------------------------------------------------------------------------------------------------
24198           -- 4262811a Switch Sign
24199           ---------------------------------------------------------------------------------------------------
24200           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
24201           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24202                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24203           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24204                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24205           -- 5132302
24206           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
24207                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24208 
24209       END IF;
24210 
24211       -- 4955764
24212       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24213       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
24214 
24215 
24216       XLA_AE_LINES_PKG.ValidateCurrentLine;
24217       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24218 
24219       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24220                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
24221                ,p_balance_type_code => l_balance_type_code);
24222 
24223    END IF;
24224 
24225    -----------------------------------------------------------------------------------------
24226    -- 4262811 Multiperiod Accounting
24227    -----------------------------------------------------------------------------------------
24228      -- No MPA option is assigned.
24229 
24230 
24231 END IF;
24232 END IF;
24233 --
24234 
24235 --
24236 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24237    trace
24238       (p_msg      => 'END of AcctLineType_68'
24239       ,p_level    => C_LEVEL_PROCEDURE
24240       ,p_module   => l_log_module);
24241 END IF;
24242 --
24243 EXCEPTION
24244   WHEN xla_exceptions_pkg.application_exception THEN
24245       RAISE;
24246   WHEN OTHERS THEN
24247        xla_exceptions_pkg.raise_message
24248            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_68');
24249 END AcctLineType_68;
24250 --
24251 
24252 ---------------------------------------
24253 --
24254 -- PRIVATE FUNCTION
24255 --         AcctLineType_69
24256 --
24257 ---------------------------------------
24258 PROCEDURE AcctLineType_69 (
24259   p_application_id        IN NUMBER
24260  ,p_event_id              IN NUMBER
24261  ,p_calculate_acctd_flag  IN VARCHAR2
24262  ,p_calculate_g_l_flag    IN VARCHAR2
24263  ,p_actual_flag           IN OUT VARCHAR2
24264  ,p_balance_type_code     OUT VARCHAR2
24265  ,p_gain_or_loss_ref      OUT VARCHAR2
24266  
24267 --Payment Currency Code
24268  , p_source_13            IN VARCHAR2
24269 --Bank Cash Clearing Account
24270  , p_source_35            IN NUMBER
24271 --Automatic Offsets Flag
24272  , p_source_47            IN VARCHAR2
24273  , p_source_47_meaning    IN VARCHAR2
24274 --Accounting Reversal Indicator
24275  , p_source_53            IN VARCHAR2
24279  , p_source_80            IN VARCHAR2
24276 --Distribution Link Type
24277  , p_source_55            IN VARCHAR2
24278 --Override Accounted Amount Indicator
24280  , p_source_80_meaning    IN VARCHAR2
24281 --Third Party Type
24282  , p_source_83            IN VARCHAR2
24283 --Invoice Distribution Tax Line Identifier
24284  , p_source_86            IN NUMBER
24285 --Invoice Distribution Tax Distribution Identifier from Tax
24286  , p_source_87            IN NUMBER
24287 --Invoice Distribution Summary Tax Line Identifier
24288  , p_source_88            IN NUMBER
24289 --Business Flow Accounts Payable Application Identifier
24290  , p_source_91            IN NUMBER
24291 --Business Flow Invoice Distribution Type
24292  , p_source_92            IN VARCHAR2
24293 --Business Flow Invoice Entity Code
24294  , p_source_93            IN VARCHAR2
24295 --Business Flow Invoice Distribution Identifier
24296  , p_source_94            IN NUMBER
24297 --Business Flow Invoice Identifier
24298  , p_source_95            IN NUMBER
24299 --When to Account for Payment Option
24300  , p_source_97            IN VARCHAR2
24301 --Payment Distribution Type
24302  , p_source_98            IN VARCHAR2
24303  , p_source_98_meaning    IN VARCHAR2
24304 --Payment Distribution Amount
24305  , p_source_99            IN NUMBER
24306 --Payment Distribution Identifier
24307  , p_source_104            IN NUMBER
24308 --Payment Supplier Identifier
24309  , p_source_110            IN NUMBER
24310 --Payment Supplier Site Identifier
24311  , p_source_111            IN NUMBER
24312 --Payment Distribution Reversed Identifier
24313  , p_source_112            IN NUMBER
24314 --Pooled Bank Account Option
24315  , p_source_113            IN VARCHAR2
24316  , p_source_113_meaning    IN VARCHAR2
24317 --Payment Maturity Date
24318  , p_source_114            IN DATE
24319 --Payment Distribution (Payment Rate) Ledger Amount
24320  , p_source_115            IN NUMBER
24321 --Payment Exchange Date
24322  , p_source_117            IN DATE
24323 --Payment Exchange Rate
24324  , p_source_118            IN NUMBER
24325 --Payment Exchange Rate Type
24326  , p_source_119            IN VARCHAR2
24327 --Payment Type
24328  , p_source_122            IN VARCHAR2
24329  , p_source_122_meaning    IN VARCHAR2
24330 --Payment Processing Type
24331  , p_source_123            IN VARCHAR2
24332 --Invoice Distribution Amount of the Payment Distribution
24333  , p_source_124            IN NUMBER
24334 )
24335 IS
24336 
24337 l_component_type              VARCHAR2(80);
24338 l_component_code              VARCHAR2(30);
24339 l_component_type_code         VARCHAR2(1);
24340 l_component_appl_id           INTEGER;
24341 l_amb_context_code            VARCHAR2(30);
24342 l_entity_code                 VARCHAR2(30);
24343 l_event_class_code            VARCHAR2(30);
24344 l_ae_header_id                NUMBER;
24345 l_event_type_code             VARCHAR2(30);
24346 l_line_definition_code        VARCHAR2(30);
24347 l_line_definition_owner_code  VARCHAR2(1);
24348 --
24349 -- adr variables
24350 l_segment                     VARCHAR2(30);
24351 l_ccid                        NUMBER;
24352 l_adr_transaction_coa_id      NUMBER;
24353 l_adr_accounting_coa_id       NUMBER;
24354 l_adr_flexfield_segment_code  VARCHAR2(30);
24355 l_adr_flex_value_set_id       NUMBER;
24356 l_adr_value_type_code         VARCHAR2(30);
24357 l_adr_value_combination_id    NUMBER;
24358 l_adr_value_segment_code      VARCHAR2(30);
24359 
24360 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
24361 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
24362 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
24363 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
24364 
24365 -- 4262811 Variables ------------------------------------------------------------------------------------------
24366 l_entered_amt_idx             NUMBER;
24367 l_accted_amt_idx              NUMBER;
24368 l_acc_rev_flag                VARCHAR2(1);
24369 l_accrual_line_num            NUMBER;
24370 l_tmp_amt                     NUMBER;
24371 l_acc_rev_natural_side_code   VARCHAR2(1);
24372 
24373 l_num_entries                 NUMBER;
24374 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
24375 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
24376 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
24377 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
24378 l_recog_line_1                NUMBER;
24379 l_recog_line_2                NUMBER;
24380 
24381 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
24382 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
24383 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
24384 
24385 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
24386 
24387 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
24388 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
24389 
24390 ---------------------------------------------------------------------------------------------------------------
24391 
24392 
24393 --
24394 -- bulk performance
24395 --
24396 l_balance_type_code           VARCHAR2(1);
24397 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
24398 l_log_module                  VARCHAR2(240);
24399 
24400 --
24401 -- Upgrade strategy
24402 --
24406 --
24403 l_actual_upg_option           VARCHAR2(1);
24404 l_enc_upg_option           VARCHAR2(1);
24405 
24407 BEGIN
24408 --
24409 IF g_log_enabled THEN
24410       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_69';
24411 END IF;
24412 --
24413 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24414 
24415       trace
24416          (p_msg      => 'BEGIN of AcctLineType_69'
24417          ,p_level    => C_LEVEL_PROCEDURE
24418          ,p_module   => l_log_module);
24419 
24420 END IF;
24421 --
24422 l_component_type             := 'AMB_JLT';
24423 l_component_code             := 'AP_CASH_CLEAR_PMT';
24424 l_component_type_code        := 'S';
24425 l_component_appl_id          :=  200;
24426 l_amb_context_code           := 'DEFAULT';
24427 l_entity_code                := 'AP_PAYMENTS';
24428 l_event_class_code           := 'PAYMENTS';
24429 l_event_type_code            := 'PAYMENTS_ALL';
24430 l_line_definition_owner_code := 'S';
24431 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
24432 --
24433 l_balance_type_code          := 'A';
24434 l_segment                     := NULL;
24435 l_ccid                        := NULL;
24436 l_adr_transaction_coa_id      := NULL;
24437 l_adr_accounting_coa_id       := NULL;
24438 l_adr_flexfield_segment_code  := NULL;
24439 l_adr_flex_value_set_id       := NULL;
24440 l_adr_value_type_code         := NULL;
24441 l_adr_value_combination_id    := NULL;
24442 l_adr_value_segment_code      := NULL;
24443 
24444 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
24445 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
24446 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
24447 l_budgetary_control_flag     := 'N';
24448 
24449 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
24450 l_bflow_applied_to_amt       := NULL; -- 5132302
24451 l_entered_amt_idx            := NULL;          -- 4262811
24452 l_accted_amt_idx             := NULL;          -- 4262811
24453 l_acc_rev_flag               := NULL;          -- 4262811
24454 l_accrual_line_num           := NULL;          -- 4262811
24455 l_tmp_amt                    := NULL;          -- 4262811
24456 --
24457  
24458 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
24459     l_balance_type_code <> 'B' THEN
24460 IF NVL(p_source_97,'
24461 ') =  'ALWAYS_ALWAYS' AND 
24462 (NVL(p_source_47,'
24463 ') <>  'Y' OR 
24464 NVL(p_source_47,'
24465 ') =  'Y' AND 
24466 NVL(p_source_113,'
24467 ') <>  'Y') AND 
24468 p_source_114 IS NULL AND 
24469 NVL(p_source_98,'
24470 ') =  'CASH' AND 
24471 NVL(p_source_122,'
24472 ') <>  'R' AND 
24473 NVL(p_source_123,'
24474 ') <>  'PAYMENTCARD'
24475  THEN 
24476 
24477    --
24478    XLA_AE_LINES_PKG.SetNewLine;
24479 
24480    p_balance_type_code          := l_balance_type_code;
24481    -- set the flag so later we will know whether the gain loss line needs to be created
24482    
24483    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
24484      p_actual_flag :='A';
24485    END IF;
24486 
24487    --
24488    -- bulk performance
24489    --
24490    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
24491                                       p_header_num   => 0); -- 4262811
24492    --
24493    -- set accounting line options
24494    --
24495    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
24496            p_natural_side_code          => 'C'
24497          , p_gain_or_loss_flag          => 'N'
24498          , p_gl_transfer_mode_code      => 'S'
24499          , p_acct_entry_type_code       => 'A'
24500          , p_switch_side_flag           => 'Y'
24501          , p_merge_duplicate_code       => 'A'
24502          );
24503    --
24504    l_acc_rev_natural_side_code := 'D';  -- 4262811
24505    -- 
24506    --
24507    -- set accounting line type info
24508    --
24509    xla_ae_lines_pkg.SetAcctLineType
24510       (p_component_type             => l_component_type
24511       ,p_event_type_code            => l_event_type_code
24512       ,p_line_definition_owner_code => l_line_definition_owner_code
24513       ,p_line_definition_code       => l_line_definition_code
24514       ,p_accounting_line_code       => l_component_code
24515       ,p_accounting_line_type_code  => l_component_type_code
24516       ,p_accounting_line_appl_id    => l_component_appl_id
24517       ,p_amb_context_code           => l_amb_context_code
24518       ,p_entity_code                => l_entity_code
24519       ,p_event_class_code           => l_event_class_code);
24520    --
24521    -- set accounting class
24522    --
24523    xla_ae_lines_pkg.SetAcctClass(
24524            p_accounting_class_code  => 'CASH_CLEARING'
24525          , p_ae_header_id           => l_ae_header_id
24526          );
24527 
24528    --
24529    -- set rounding class
24530    --
24531    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
24532                       'CASH_CLEARING';
24533 
24534    --
24535    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
24536    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
24537    --
24538    -- bulk performance
24539    --
24543       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
24540    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
24541 
24542    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
24544 
24545    -- 4955764
24546    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24547       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
24548 
24549    -- 4458381 Public Sector Enh
24550    
24551    --
24552    -- set accounting attributes for the line type
24553    --
24554    l_entered_amt_idx := 10;
24555    l_accted_amt_idx  := 15;
24556    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
24557    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
24558    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
24559    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
24560    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
24561    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
24562    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
24563    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
24564    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
24565    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
24566    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
24567    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
24568    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
24569    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
24570    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
24571    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
24572    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
24573    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
24574    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
24575    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
24576    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
24577    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
24578    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
24579    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
24580    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
24581    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
24582    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
24583    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
24584    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
24585    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
24586    l_rec_acct_attrs.array_num_value(15)  := p_source_115;
24587    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
24588    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
24589    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
24590    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
24591    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
24592    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
24593    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
24594    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
24595    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
24596    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
24597    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
24598    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
24599    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
24600    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
24601    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
24602    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
24603    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
24604    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
24605 
24606    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24607    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24608 
24609    ---------------------------------------------------------------------------------------------------------------
24610    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24611    ---------------------------------------------------------------------------------------------------------------
24612    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24613 
24614    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24615    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24616 
24617    IF xla_accounting_cache_pkg.GetValueChar
24618          (p_source_code         => 'LEDGER_CATEGORY_CODE'
24619          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24620    AND l_bflow_method_code = 'PRIOR_ENTRY'
24621 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24622    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24623          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24624        )
24625    THEN
24626          xla_ae_lines_pkg.BflowUpgEntry
24627            (p_business_method_code    => l_bflow_method_code
24628            ,p_business_class_code     => l_bflow_class_code
24632 -- No business flow processing for business flow method of NONE.
24629            ,p_balance_type            => l_balance_type_code);
24630    ELSE
24631       NULL;
24633    END IF;
24634 
24635    --
24636    -- call analytical criteria
24637    --
24638    
24639    --
24640    -- call description
24641    --
24642    -- No description or it is inherited.
24643    --
24644    -- call ADRs
24645    -- Bug 4922099
24646    --
24647    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24648         (NVL(l_actual_upg_option, 'N') = 'O') OR
24649         (NVL(l_enc_upg_option, 'N') = 'O')
24650       )
24651    THEN
24652    NULL;
24653    --
24654    --
24655    
24656   l_ccid := AcctDerRule_36(
24657            p_application_id           => p_application_id
24658          , p_ae_header_id             => l_ae_header_id 
24659 , p_source_35 => p_source_35
24660          , x_transaction_coa_id       => l_adr_transaction_coa_id
24661          , x_accounting_coa_id        => l_adr_accounting_coa_id
24662          , x_value_type_code          => l_adr_value_type_code
24663          , p_side                     => 'NA'
24664    );
24665 
24666    xla_ae_lines_pkg.set_ccid(
24667     p_code_combination_id          => l_ccid
24668   , p_value_type_code              => l_adr_value_type_code
24669   , p_transaction_coa_id           => l_adr_transaction_coa_id
24670   , p_accounting_coa_id            => l_adr_accounting_coa_id
24671   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
24672   , p_adr_type_code                => 'S'
24673   , p_component_type               => l_component_type
24674   , p_component_code               => l_component_code
24675   , p_component_type_code          => l_component_type_code
24676   , p_component_appl_id            => l_component_appl_id
24677   , p_amb_context_code             => l_amb_context_code
24678   , p_side                         => 'NA'
24679   );
24680 
24681 
24682    --
24683    --
24684    END IF;
24685    --
24686    -- Bug 4922099
24687    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24688           (NVL(l_enc_upg_option, 'N') = 'O')
24689         ) AND
24690         (l_bflow_method_code = 'PRIOR_ENTRY')
24691       )
24692    THEN
24693       IF
24694       --
24695       1 = 2
24696       --
24697       THEN
24698       xla_accounting_err_pkg.build_message
24699                                     (p_appli_s_name            => 'XLA'
24700                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24701                                     ,p_token_1                 => 'LINE_NUMBER'
24702                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
24703                                     ,p_token_2                 => 'LINE_TYPE_NAME'
24704                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
24705                                                                              l_component_type
24706                                                                             ,l_component_code
24707                                                                             ,l_component_type_code
24708                                                                             ,l_component_appl_id
24709                                                                             ,l_amb_context_code
24710                                                                             ,l_entity_code
24711                                                                             ,l_event_class_code
24712                                                                            )
24713                                     ,p_token_3                 => 'OWNER'
24714                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
24715                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
24716                                                                           ,p_lookup_code    => l_component_type_code
24717                                                                          )
24718                                     ,p_token_4                 => 'PRODUCT_NAME'
24719                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
24720                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
24721                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
24722                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
24723                                     ,p_ae_header_id            =>  NULL
24724                                        );
24725 
24726         IF (C_LEVEL_ERROR>= g_log_level) THEN
24727                  trace
24728                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24729                       ,p_level    => C_LEVEL_ERROR
24730                       ,p_module   => l_log_module);
24731         END IF;
24732       END IF;
24733    END IF;
24734    --
24735    --
24736    ------------------------------------------------------------------------------------------------
24737    -- 4219869 Business Flow
24738    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
24739    -- Prior Entry.  Currently, the following code is always generated.
24743    ------------------------------------------------------------------------------------
24740    ------------------------------------------------------------------------------------------------
24741    XLA_AE_LINES_PKG.ValidateCurrentLine;
24742 
24744    -- 4219869 Business Flow
24745    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
24746    ------------------------------------------------------------------------------------
24747    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24748 
24749    ----------------------------------------------------------------------------------
24750    -- 4219869 Business Flow
24751    -- Update journal entry status -- Need to generate this within IF <condition>
24752    ----------------------------------------------------------------------------------
24753    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24754          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
24755          ,p_balance_type_code => l_balance_type_code
24756          );
24757 
24758    -------------------------------------------------------------------------------------------
24759    -- 4262811 - Generate the Accrual Reversal lines
24760    -------------------------------------------------------------------------------------------
24761    BEGIN
24762       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
24763                               (g_array_event(p_event_id).array_value_num('header_index'));
24764       IF l_acc_rev_flag IS NULL THEN
24765          l_acc_rev_flag := 'N';
24766       END IF;
24767    EXCEPTION
24768       WHEN OTHERS THEN
24769          l_acc_rev_flag := 'N';
24770    END;
24771    --
24772    IF (l_acc_rev_flag = 'Y') THEN
24773 
24774        -- 4645092  ------------------------------------------------------------------------------
24775        -- To allow MPA report to determine if it should generate report process
24776        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
24777        ------------------------------------------------------------------------------------------
24778 
24779        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
24780        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
24781    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
24782    -- call ADRs
24783    -- Bug 4922099
24784    --
24785    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24786         (NVL(l_actual_upg_option, 'N') = 'O') OR
24787         (NVL(l_enc_upg_option, 'N') = 'O')
24788       )
24789    THEN
24790    NULL;
24791    --
24792    --
24793    
24794   l_ccid := AcctDerRule_36(
24795            p_application_id           => p_application_id
24796          , p_ae_header_id             => l_ae_header_id 
24797 , p_source_35 => p_source_35
24798          , x_transaction_coa_id       => l_adr_transaction_coa_id
24799          , x_accounting_coa_id        => l_adr_accounting_coa_id
24800          , x_value_type_code          => l_adr_value_type_code
24801          , p_side                     => 'NA'
24802    );
24803 
24804    xla_ae_lines_pkg.set_ccid(
24805     p_code_combination_id          => l_ccid
24806   , p_value_type_code              => l_adr_value_type_code
24807   , p_transaction_coa_id           => l_adr_transaction_coa_id
24808   , p_accounting_coa_id            => l_adr_accounting_coa_id
24809   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
24810   , p_adr_type_code                => 'S'
24811   , p_component_type               => l_component_type
24812   , p_component_code               => l_component_code
24813   , p_component_type_code          => l_component_type_code
24814   , p_component_appl_id            => l_component_appl_id
24815   , p_amb_context_code             => l_amb_context_code
24816   , p_side                         => 'NA'
24817   );
24818 
24819 
24820    --
24821    --
24822    END IF;
24823 
24824        --
24825        -- Update the line information that should be overwritten
24826        --
24827        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
24828                                          p_header_num   => 1);
24829        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
24830 
24831        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
24832 
24833        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
24834           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
24835        END IF;
24836 
24837       --
24838       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
24839       --
24840       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
24841           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
24842       ELSE
24843           ---------------------------------------------------------------------------------------------------
24844           -- 4262811a Switch Sign
24845           ---------------------------------------------------------------------------------------------------
24846           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
24847           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24848                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24849           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24853                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24850                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24851           -- 5132302
24852           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
24854 
24855       END IF;
24856 
24857       -- 4955764
24858       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24859       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
24860 
24861 
24862       XLA_AE_LINES_PKG.ValidateCurrentLine;
24863       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24864 
24865       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24866                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
24867                ,p_balance_type_code => l_balance_type_code);
24868 
24869    END IF;
24870 
24871    -----------------------------------------------------------------------------------------
24872    -- 4262811 Multiperiod Accounting
24873    -----------------------------------------------------------------------------------------
24874      -- No MPA option is assigned.
24875 
24876 
24877 END IF;
24878 END IF;
24879 --
24880 
24881 --
24882 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24883    trace
24884       (p_msg      => 'END of AcctLineType_69'
24885       ,p_level    => C_LEVEL_PROCEDURE
24886       ,p_module   => l_log_module);
24887 END IF;
24888 --
24889 EXCEPTION
24890   WHEN xla_exceptions_pkg.application_exception THEN
24891       RAISE;
24892   WHEN OTHERS THEN
24893        xla_exceptions_pkg.raise_message
24894            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_69');
24895 END AcctLineType_69;
24896 --
24897 
24898 ---------------------------------------
24899 --
24900 -- PRIVATE FUNCTION
24901 --         AcctLineType_70
24902 --
24903 ---------------------------------------
24904 PROCEDURE AcctLineType_70 (
24905   p_application_id        IN NUMBER
24906  ,p_event_id              IN NUMBER
24907  ,p_calculate_acctd_flag  IN VARCHAR2
24908  ,p_calculate_g_l_flag    IN VARCHAR2
24909  ,p_actual_flag           IN OUT VARCHAR2
24910  ,p_balance_type_code     OUT VARCHAR2
24911  ,p_gain_or_loss_ref      OUT VARCHAR2
24912  
24913 --Payment Currency Code
24914  , p_source_13            IN VARCHAR2
24915 --Automatic Offsets Value
24916  , p_source_15            IN VARCHAR2
24917  , p_source_15_meaning    IN VARCHAR2
24918 --Bank Cash Clearing Account
24919  , p_source_35            IN NUMBER
24920 --Accounting Reversal Indicator
24921  , p_source_53            IN VARCHAR2
24922 --Distribution Link Type
24923  , p_source_55            IN VARCHAR2
24924 --Override Accounted Amount Indicator
24925  , p_source_80            IN VARCHAR2
24926  , p_source_80_meaning    IN VARCHAR2
24927 --Third Party Type
24928  , p_source_83            IN VARCHAR2
24929 --Invoice Distribution Tax Line Identifier
24930  , p_source_86            IN NUMBER
24931 --Invoice Distribution Tax Distribution Identifier from Tax
24932  , p_source_87            IN NUMBER
24933 --Invoice Distribution Summary Tax Line Identifier
24934  , p_source_88            IN NUMBER
24935 --Business Flow Accounts Payable Application Identifier
24936  , p_source_91            IN NUMBER
24937 --Business Flow Invoice Distribution Type
24938  , p_source_92            IN VARCHAR2
24939 --Business Flow Invoice Entity Code
24940  , p_source_93            IN VARCHAR2
24941 --Business Flow Invoice Distribution Identifier
24942  , p_source_94            IN NUMBER
24943 --Business Flow Invoice Identifier
24944  , p_source_95            IN NUMBER
24945 --When to Account for Payment Option
24946  , p_source_97            IN VARCHAR2
24947 --Payment Distribution Type
24948  , p_source_98            IN VARCHAR2
24949  , p_source_98_meaning    IN VARCHAR2
24950 --Payment Distribution Amount
24951  , p_source_99            IN NUMBER
24952 --Payment Distribution Identifier
24953  , p_source_104            IN NUMBER
24954 --Payment Supplier Identifier
24955  , p_source_110            IN NUMBER
24956 --Payment Supplier Site Identifier
24957  , p_source_111            IN NUMBER
24958 --Payment Distribution Reversed Identifier
24959  , p_source_112            IN NUMBER
24960 --Pooled Bank Account Option
24961  , p_source_113            IN VARCHAR2
24962  , p_source_113_meaning    IN VARCHAR2
24963 --Payment Maturity Date
24964  , p_source_114            IN DATE
24965 --Payment Distribution (Payment Rate) Ledger Amount
24966  , p_source_115            IN NUMBER
24967 --Payment Exchange Date
24968  , p_source_117            IN DATE
24969 --Payment Exchange Rate
24970  , p_source_118            IN NUMBER
24971 --Payment Exchange Rate Type
24972  , p_source_119            IN VARCHAR2
24973 --Payment Type
24974  , p_source_122            IN VARCHAR2
24975  , p_source_122_meaning    IN VARCHAR2
24976 --Payment Processing Type
24977  , p_source_123            IN VARCHAR2
24978 --Invoice Distribution Amount of the Payment Distribution
24979  , p_source_124            IN NUMBER
24980 )
24981 IS
24982 
24983 l_component_type              VARCHAR2(80);
24984 l_component_code              VARCHAR2(30);
24985 l_component_type_code         VARCHAR2(1);
24986 l_component_appl_id           INTEGER;
24987 l_amb_context_code            VARCHAR2(30);
24988 l_entity_code                 VARCHAR2(30);
24992 l_line_definition_code        VARCHAR2(30);
24989 l_event_class_code            VARCHAR2(30);
24990 l_ae_header_id                NUMBER;
24991 l_event_type_code             VARCHAR2(30);
24993 l_line_definition_owner_code  VARCHAR2(1);
24994 --
24995 -- adr variables
24996 l_segment                     VARCHAR2(30);
24997 l_ccid                        NUMBER;
24998 l_adr_transaction_coa_id      NUMBER;
24999 l_adr_accounting_coa_id       NUMBER;
25000 l_adr_flexfield_segment_code  VARCHAR2(30);
25001 l_adr_flex_value_set_id       NUMBER;
25002 l_adr_value_type_code         VARCHAR2(30);
25003 l_adr_value_combination_id    NUMBER;
25004 l_adr_value_segment_code      VARCHAR2(30);
25005 
25006 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
25007 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
25008 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
25009 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
25010 
25011 -- 4262811 Variables ------------------------------------------------------------------------------------------
25012 l_entered_amt_idx             NUMBER;
25013 l_accted_amt_idx              NUMBER;
25014 l_acc_rev_flag                VARCHAR2(1);
25015 l_accrual_line_num            NUMBER;
25016 l_tmp_amt                     NUMBER;
25017 l_acc_rev_natural_side_code   VARCHAR2(1);
25018 
25019 l_num_entries                 NUMBER;
25020 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
25021 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
25022 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
25023 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
25024 l_recog_line_1                NUMBER;
25025 l_recog_line_2                NUMBER;
25026 
25027 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
25028 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
25029 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
25030 
25031 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
25032 
25033 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
25034 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
25035 
25036 ---------------------------------------------------------------------------------------------------------------
25037 
25038 
25039 --
25040 -- bulk performance
25041 --
25042 l_balance_type_code           VARCHAR2(1);
25043 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
25044 l_log_module                  VARCHAR2(240);
25045 
25046 --
25047 -- Upgrade strategy
25048 --
25049 l_actual_upg_option           VARCHAR2(1);
25050 l_enc_upg_option           VARCHAR2(1);
25051 
25052 --
25053 BEGIN
25054 --
25055 IF g_log_enabled THEN
25056       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_70';
25057 END IF;
25058 --
25059 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25060 
25061       trace
25062          (p_msg      => 'BEGIN of AcctLineType_70'
25063          ,p_level    => C_LEVEL_PROCEDURE
25064          ,p_module   => l_log_module);
25065 
25066 END IF;
25067 --
25068 l_component_type             := 'AMB_JLT';
25069 l_component_code             := 'AP_CASH_CLEAR_PMT_AOS_AS';
25070 l_component_type_code        := 'S';
25071 l_component_appl_id          :=  200;
25072 l_amb_context_code           := 'DEFAULT';
25073 l_entity_code                := 'AP_PAYMENTS';
25074 l_event_class_code           := 'PAYMENTS';
25075 l_event_type_code            := 'PAYMENTS_ALL';
25076 l_line_definition_owner_code := 'S';
25077 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
25078 --
25079 l_balance_type_code          := 'A';
25080 l_segment                     := NULL;
25081 l_ccid                        := NULL;
25082 l_adr_transaction_coa_id      := NULL;
25083 l_adr_accounting_coa_id       := NULL;
25084 l_adr_flexfield_segment_code  := NULL;
25085 l_adr_flex_value_set_id       := NULL;
25086 l_adr_value_type_code         := NULL;
25087 l_adr_value_combination_id    := NULL;
25088 l_adr_value_segment_code      := NULL;
25089 
25090 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
25091 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
25092 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
25093 l_budgetary_control_flag     := 'N';
25094 
25095 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
25096 l_bflow_applied_to_amt       := NULL; -- 5132302
25097 l_entered_amt_idx            := NULL;          -- 4262811
25098 l_accted_amt_idx             := NULL;          -- 4262811
25099 l_acc_rev_flag               := NULL;          -- 4262811
25100 l_accrual_line_num           := NULL;          -- 4262811
25101 l_tmp_amt                    := NULL;          -- 4262811
25102 --
25103  
25104 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
25105     l_balance_type_code <> 'B' THEN
25106 IF NVL(p_source_97,'
25107 ') =  'ALWAYS_ALWAYS' AND 
25108 (NVL(p_source_113,'
25109 ') =  'Y' AND 
25110 NVL(p_source_15,'
25111 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
25112 p_source_114 IS NULL AND 
25113 NVL(p_source_98,'
25114 ') =  'CASH' AND 
25115 NVL(p_source_122,'
25116 ') <>  'R' AND 
25117 NVL(p_source_123,'
25121    --
25118 ') <>  'PAYMENTCARD'
25119  THEN 
25120 
25122    XLA_AE_LINES_PKG.SetNewLine;
25123 
25124    p_balance_type_code          := l_balance_type_code;
25125    -- set the flag so later we will know whether the gain loss line needs to be created
25126    
25127    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
25128      p_actual_flag :='A';
25129    END IF;
25130 
25131    --
25132    -- bulk performance
25133    --
25134    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
25135                                       p_header_num   => 0); -- 4262811
25136    --
25137    -- set accounting line options
25138    --
25139    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
25140            p_natural_side_code          => 'C'
25141          , p_gain_or_loss_flag          => 'N'
25142          , p_gl_transfer_mode_code      => 'S'
25143          , p_acct_entry_type_code       => 'A'
25144          , p_switch_side_flag           => 'Y'
25145          , p_merge_duplicate_code       => 'A'
25146          );
25147    --
25148    l_acc_rev_natural_side_code := 'D';  -- 4262811
25149    -- 
25150    --
25151    -- set accounting line type info
25152    --
25153    xla_ae_lines_pkg.SetAcctLineType
25154       (p_component_type             => l_component_type
25155       ,p_event_type_code            => l_event_type_code
25156       ,p_line_definition_owner_code => l_line_definition_owner_code
25157       ,p_line_definition_code       => l_line_definition_code
25158       ,p_accounting_line_code       => l_component_code
25159       ,p_accounting_line_type_code  => l_component_type_code
25160       ,p_accounting_line_appl_id    => l_component_appl_id
25161       ,p_amb_context_code           => l_amb_context_code
25162       ,p_entity_code                => l_entity_code
25163       ,p_event_class_code           => l_event_class_code);
25164    --
25165    -- set accounting class
25166    --
25167    xla_ae_lines_pkg.SetAcctClass(
25168            p_accounting_class_code  => 'CASH_CLEARING'
25169          , p_ae_header_id           => l_ae_header_id
25170          );
25171 
25172    --
25173    -- set rounding class
25174    --
25175    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
25176                       'CASH_CLEARING';
25177 
25178    --
25179    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
25180    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
25181    --
25182    -- bulk performance
25183    --
25184    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
25185 
25186    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
25187       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
25188 
25189    -- 4955764
25190    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25191       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
25192 
25193    -- 4458381 Public Sector Enh
25194    
25195    --
25196    -- set accounting attributes for the line type
25197    --
25198    l_entered_amt_idx := 10;
25199    l_accted_amt_idx  := 15;
25200    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
25201    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
25202    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
25203    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
25204    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
25205    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
25206    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
25207    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
25208    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
25209    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
25210    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
25211    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
25212    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
25213    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
25214    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
25215    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
25216    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
25217    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
25218    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
25219    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
25220    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
25221    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
25222    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
25223    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
25224    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
25225    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
25226    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
25227    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
25228    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
25229    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
25230    l_rec_acct_attrs.array_num_value(15)  := p_source_115;
25231    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
25232    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
25236    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
25233    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
25234    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
25235    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
25237    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
25238    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
25239    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
25240    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
25241    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
25242    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
25243    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
25244    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
25245    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
25246    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
25247    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
25248    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
25249 
25250    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
25251    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
25252 
25253    ---------------------------------------------------------------------------------------------------------------
25254    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
25255    ---------------------------------------------------------------------------------------------------------------
25256    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
25257 
25258    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25259    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25260 
25261    IF xla_accounting_cache_pkg.GetValueChar
25262          (p_source_code         => 'LEDGER_CATEGORY_CODE'
25263          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
25264    AND l_bflow_method_code = 'PRIOR_ENTRY'
25265 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
25266    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
25267          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
25268        )
25269    THEN
25270          xla_ae_lines_pkg.BflowUpgEntry
25271            (p_business_method_code    => l_bflow_method_code
25272            ,p_business_class_code     => l_bflow_class_code
25273            ,p_balance_type            => l_balance_type_code);
25274    ELSE
25275       NULL;
25276 XLA_AE_LINES_PKG.business_flow_validation(
25277                                 p_business_method_code     => l_bflow_method_code
25278                                ,p_business_class_code      => l_bflow_class_code
25279                                ,p_inherit_description_flag => l_inherit_desc_flag);
25280    END IF;
25281 
25282    --
25283    -- call analytical criteria
25284    --
25285    
25286    --
25287    -- call description
25288    --
25289    -- No description or it is inherited.
25290    --
25291    -- call ADRs
25292    -- Bug 4922099
25293    --
25294    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25295         (NVL(l_actual_upg_option, 'N') = 'O') OR
25296         (NVL(l_enc_upg_option, 'N') = 'O')
25297       )
25298    THEN
25299    NULL;
25300    --
25301    --
25302    
25303    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
25304      p_code_combination_id      => TO_NUMBER(C_NUM)
25305    , p_value_type_code          => NULL
25306    , p_transaction_coa_id       => null
25307    , p_accounting_coa_id        => null
25308    , p_adr_code                 => NULL
25309    , p_adr_type_code            => NULL
25310    , p_component_type           => l_component_type
25311    , p_component_code           => l_component_code
25312    , p_component_type_code      => l_component_type_code
25313    , p_component_appl_id        => l_component_appl_id
25314    , p_amb_context_code         => l_amb_context_code
25315    , p_side                     => NULL
25316    );
25317 
25318    
25319   -- initialise segments
25320   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25321   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25322   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25323   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25324   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25325   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25326   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25327   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25328   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25329   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25330   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25331   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25332   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25333   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25337   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25334   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25335   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25336   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25338   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25339   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25340   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25341   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25342   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25343   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25344   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25345   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25346   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25347   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25348   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25349   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25350   --
25351 
25352    --
25353 
25354 
25355    l_segment := AcctDerRule_16(
25356            p_application_id           => p_application_id
25357          , p_ae_header_id             => l_ae_header_id 
25358 , p_source_35 => p_source_35
25359          , x_transaction_coa_id       => l_adr_transaction_coa_id
25360          , x_accounting_coa_id        => l_adr_accounting_coa_id
25361          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
25362          , x_flex_value_set_id        => l_adr_flex_value_set_id
25363          , x_value_type_code          => l_adr_value_type_code
25364          , x_value_combination_id     => l_adr_value_combination_id
25365          , x_value_segment_code       => l_adr_value_segment_code
25366          , p_side                     => 'NA'
25367          , p_override_seg_flag        => 'Y'
25368    );
25369 
25370    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
25371 
25372       xla_ae_lines_pkg.set_segment(
25373           p_to_segment_code         => 'GL_ACCOUNT'
25374         , p_segment_value           => l_segment
25375         , p_from_segment_code       => l_adr_value_segment_code
25376         , p_from_combination_id     => l_adr_value_combination_id
25377         , p_value_type_code         => l_adr_value_type_code
25378         , p_transaction_coa_id      => l_adr_transaction_coa_id
25379         , p_accounting_coa_id       => l_adr_accounting_coa_id
25380         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
25381         , p_flex_value_set_id       => l_adr_flex_value_set_id
25382         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
25383         , p_adr_type_code           => 'S'
25384         , p_component_type          => l_component_type
25385         , p_component_code          => l_component_code
25386         , p_component_type_code     => l_component_type_code
25387         , p_component_appl_id       => l_component_appl_id
25388         , p_amb_context_code        => l_amb_context_code
25389         , p_entity_code             => 'AP_PAYMENTS'
25390         , p_event_class_code        => 'PAYMENTS'
25391         , p_side                    => 'NA'
25392         );
25393 
25394   END IF;
25395 
25396    --
25397    --
25398    END IF;
25399    --
25400    -- Bug 4922099
25401    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
25402           (NVL(l_enc_upg_option, 'N') = 'O')
25403         ) AND
25404         (l_bflow_method_code = 'PRIOR_ENTRY')
25405       )
25406    THEN
25407       IF
25408       --
25409       1 = 2
25410       --
25411       THEN
25412       xla_accounting_err_pkg.build_message
25413                                     (p_appli_s_name            => 'XLA'
25414                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25415                                     ,p_token_1                 => 'LINE_NUMBER'
25416                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
25417                                     ,p_token_2                 => 'LINE_TYPE_NAME'
25418                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
25419                                                                              l_component_type
25420                                                                             ,l_component_code
25421                                                                             ,l_component_type_code
25422                                                                             ,l_component_appl_id
25423                                                                             ,l_amb_context_code
25424                                                                             ,l_entity_code
25425                                                                             ,l_event_class_code
25426                                                                            )
25427                                     ,p_token_3                 => 'OWNER'
25428                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
25432                                     ,p_token_4                 => 'PRODUCT_NAME'
25429                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
25430                                                                           ,p_lookup_code    => l_component_type_code
25431                                                                          )
25433                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
25434                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
25435                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
25436                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
25437                                     ,p_ae_header_id            =>  NULL
25438                                        );
25439 
25440         IF (C_LEVEL_ERROR>= g_log_level) THEN
25441                  trace
25442                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25443                       ,p_level    => C_LEVEL_ERROR
25444                       ,p_module   => l_log_module);
25445         END IF;
25446       END IF;
25447    END IF;
25448    --
25449    --
25450    ------------------------------------------------------------------------------------------------
25451    -- 4219869 Business Flow
25452    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
25453    -- Prior Entry.  Currently, the following code is always generated.
25454    ------------------------------------------------------------------------------------------------
25455    XLA_AE_LINES_PKG.ValidateCurrentLine;
25456 
25457    ------------------------------------------------------------------------------------
25458    -- 4219869 Business Flow
25459    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
25460    ------------------------------------------------------------------------------------
25461    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25462 
25463    ----------------------------------------------------------------------------------
25464    -- 4219869 Business Flow
25465    -- Update journal entry status -- Need to generate this within IF <condition>
25466    ----------------------------------------------------------------------------------
25467    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25468          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
25469          ,p_balance_type_code => l_balance_type_code
25470          );
25471 
25472    -------------------------------------------------------------------------------------------
25473    -- 4262811 - Generate the Accrual Reversal lines
25474    -------------------------------------------------------------------------------------------
25475    BEGIN
25476       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
25477                               (g_array_event(p_event_id).array_value_num('header_index'));
25478       IF l_acc_rev_flag IS NULL THEN
25479          l_acc_rev_flag := 'N';
25480       END IF;
25481    EXCEPTION
25482       WHEN OTHERS THEN
25483          l_acc_rev_flag := 'N';
25484    END;
25485    --
25486    IF (l_acc_rev_flag = 'Y') THEN
25487 
25488        -- 4645092  ------------------------------------------------------------------------------
25489        -- To allow MPA report to determine if it should generate report process
25490        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
25491        ------------------------------------------------------------------------------------------
25492 
25493        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
25494        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
25495    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
25496    -- call ADRs
25497    -- Bug 4922099
25498    --
25499    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25500         (NVL(l_actual_upg_option, 'N') = 'O') OR
25501         (NVL(l_enc_upg_option, 'N') = 'O')
25502       )
25503    THEN
25504    NULL;
25505    --
25506    --
25507    
25508    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
25509      p_code_combination_id      => TO_NUMBER(C_NUM)
25510    , p_value_type_code          => NULL
25511    , p_transaction_coa_id       => null
25512    , p_accounting_coa_id        => null
25513    , p_adr_code                 => NULL
25514    , p_adr_type_code            => NULL
25515    , p_component_type           => l_component_type
25516    , p_component_code           => l_component_code
25517    , p_component_type_code      => l_component_type_code
25518    , p_component_appl_id        => l_component_appl_id
25519    , p_amb_context_code         => l_amb_context_code
25520    , p_side                     => NULL
25521    );
25522 
25523    
25524   -- initialise segments
25525   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25526   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25527   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25528   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25529   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25533   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25530   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25531   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25532   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
25534   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25535   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25536   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25537   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25538   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25539   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25540   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25541   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25542   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25543   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25544   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25545   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25546   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25547   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25548   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25549   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25550   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25551   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25552   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25553   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25554   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
25555   --
25556 
25557    --
25558 
25559 
25560    l_segment := AcctDerRule_16(
25561            p_application_id           => p_application_id
25562          , p_ae_header_id             => l_ae_header_id 
25563 , p_source_35 => p_source_35
25564          , x_transaction_coa_id       => l_adr_transaction_coa_id
25565          , x_accounting_coa_id        => l_adr_accounting_coa_id
25566          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
25567          , x_flex_value_set_id        => l_adr_flex_value_set_id
25568          , x_value_type_code          => l_adr_value_type_code
25569          , x_value_combination_id     => l_adr_value_combination_id
25570          , x_value_segment_code       => l_adr_value_segment_code
25571          , p_side                     => 'NA'
25572          , p_override_seg_flag        => 'Y'
25573    );
25574 
25575    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
25576 
25577       xla_ae_lines_pkg.set_segment(
25578           p_to_segment_code         => 'GL_ACCOUNT'
25579         , p_segment_value           => l_segment
25580         , p_from_segment_code       => l_adr_value_segment_code
25581         , p_from_combination_id     => l_adr_value_combination_id
25582         , p_value_type_code         => l_adr_value_type_code
25583         , p_transaction_coa_id      => l_adr_transaction_coa_id
25584         , p_accounting_coa_id       => l_adr_accounting_coa_id
25585         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
25586         , p_flex_value_set_id       => l_adr_flex_value_set_id
25587         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
25588         , p_adr_type_code           => 'S'
25589         , p_component_type          => l_component_type
25590         , p_component_code          => l_component_code
25591         , p_component_type_code     => l_component_type_code
25592         , p_component_appl_id       => l_component_appl_id
25593         , p_amb_context_code        => l_amb_context_code
25594         , p_entity_code             => 'AP_PAYMENTS'
25595         , p_event_class_code        => 'PAYMENTS'
25596         , p_side                    => 'NA'
25597         );
25598 
25599   END IF;
25600 
25601    --
25602    --
25603    END IF;
25604 
25605        --
25606        -- Update the line information that should be overwritten
25607        --
25608        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25609                                          p_header_num   => 1);
25610        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
25611 
25612        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25613 
25614        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
25615           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25616        END IF;
25617 
25618       --
25619       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25620       --
25621       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25622           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
25623       ELSE
25627           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
25624           ---------------------------------------------------------------------------------------------------
25625           -- 4262811a Switch Sign
25626           ---------------------------------------------------------------------------------------------------
25628           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25629                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25630           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25631                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25632           -- 5132302
25633           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25634                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25635 
25636       END IF;
25637 
25638       -- 4955764
25639       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25640       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25641 
25642 
25643       XLA_AE_LINES_PKG.ValidateCurrentLine;
25644       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25645 
25646       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25647                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
25648                ,p_balance_type_code => l_balance_type_code);
25649 
25650    END IF;
25651 
25652    -----------------------------------------------------------------------------------------
25653    -- 4262811 Multiperiod Accounting
25654    -----------------------------------------------------------------------------------------
25655      -- No MPA option is assigned.
25656 
25657 
25658 END IF;
25659 END IF;
25660 --
25661 
25662 --
25663 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25664    trace
25665       (p_msg      => 'END of AcctLineType_70'
25666       ,p_level    => C_LEVEL_PROCEDURE
25667       ,p_module   => l_log_module);
25668 END IF;
25669 --
25670 EXCEPTION
25671   WHEN xla_exceptions_pkg.application_exception THEN
25672       RAISE;
25673   WHEN OTHERS THEN
25674        xla_exceptions_pkg.raise_message
25675            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_70');
25676 END AcctLineType_70;
25677 --
25678 
25679 ---------------------------------------
25680 --
25681 -- PRIVATE FUNCTION
25682 --         AcctLineType_71
25683 --
25684 ---------------------------------------
25685 PROCEDURE AcctLineType_71 (
25686   p_application_id        IN NUMBER
25687  ,p_event_id              IN NUMBER
25688  ,p_calculate_acctd_flag  IN VARCHAR2
25689  ,p_calculate_g_l_flag    IN VARCHAR2
25690  ,p_actual_flag           IN OUT VARCHAR2
25691  ,p_balance_type_code     OUT VARCHAR2
25692  ,p_gain_or_loss_ref      OUT VARCHAR2
25693  
25694 --Payment Currency Code
25695  , p_source_13            IN VARCHAR2
25696 --Automatic Offsets Value
25697  , p_source_15            IN VARCHAR2
25698  , p_source_15_meaning    IN VARCHAR2
25699 --Bank Cash Clearing Account
25700  , p_source_35            IN NUMBER
25701 --Accounting Reversal Indicator
25702  , p_source_53            IN VARCHAR2
25703 --Distribution Link Type
25704  , p_source_55            IN VARCHAR2
25705 --Override Accounted Amount Indicator
25706  , p_source_80            IN VARCHAR2
25707  , p_source_80_meaning    IN VARCHAR2
25708 --Third Party Type
25709  , p_source_83            IN VARCHAR2
25710 --Invoice Distribution Tax Line Identifier
25711  , p_source_86            IN NUMBER
25712 --Invoice Distribution Tax Distribution Identifier from Tax
25713  , p_source_87            IN NUMBER
25714 --Invoice Distribution Summary Tax Line Identifier
25715  , p_source_88            IN NUMBER
25716 --Business Flow Accounts Payable Application Identifier
25717  , p_source_91            IN NUMBER
25718 --Business Flow Invoice Distribution Type
25719  , p_source_92            IN VARCHAR2
25720 --Business Flow Invoice Entity Code
25721  , p_source_93            IN VARCHAR2
25722 --Business Flow Invoice Distribution Identifier
25723  , p_source_94            IN NUMBER
25724 --Business Flow Invoice Identifier
25725  , p_source_95            IN NUMBER
25726 --When to Account for Payment Option
25727  , p_source_97            IN VARCHAR2
25728 --Payment Distribution Type
25729  , p_source_98            IN VARCHAR2
25730  , p_source_98_meaning    IN VARCHAR2
25731 --Payment Distribution Amount
25732  , p_source_99            IN NUMBER
25733 --Payment Distribution Identifier
25734  , p_source_104            IN NUMBER
25735 --Payment Supplier Identifier
25736  , p_source_110            IN NUMBER
25737 --Payment Supplier Site Identifier
25738  , p_source_111            IN NUMBER
25739 --Payment Distribution Reversed Identifier
25740  , p_source_112            IN NUMBER
25741 --Pooled Bank Account Option
25742  , p_source_113            IN VARCHAR2
25743  , p_source_113_meaning    IN VARCHAR2
25744 --Payment Maturity Date
25745  , p_source_114            IN DATE
25746 --Payment Distribution (Payment Rate) Ledger Amount
25747  , p_source_115            IN NUMBER
25748 --Payment Exchange Date
25749  , p_source_117            IN DATE
25750 --Payment Exchange Rate
25751  , p_source_118            IN NUMBER
25755  , p_source_122            IN VARCHAR2
25752 --Payment Exchange Rate Type
25753  , p_source_119            IN VARCHAR2
25754 --Payment Type
25756  , p_source_122_meaning    IN VARCHAR2
25757 --Payment Processing Type
25758  , p_source_123            IN VARCHAR2
25759 --Invoice Distribution Amount of the Payment Distribution
25760  , p_source_124            IN NUMBER
25761 )
25762 IS
25763 
25764 l_component_type              VARCHAR2(80);
25765 l_component_code              VARCHAR2(30);
25766 l_component_type_code         VARCHAR2(1);
25767 l_component_appl_id           INTEGER;
25768 l_amb_context_code            VARCHAR2(30);
25769 l_entity_code                 VARCHAR2(30);
25770 l_event_class_code            VARCHAR2(30);
25771 l_ae_header_id                NUMBER;
25772 l_event_type_code             VARCHAR2(30);
25773 l_line_definition_code        VARCHAR2(30);
25774 l_line_definition_owner_code  VARCHAR2(1);
25775 --
25776 -- adr variables
25777 l_segment                     VARCHAR2(30);
25778 l_ccid                        NUMBER;
25779 l_adr_transaction_coa_id      NUMBER;
25780 l_adr_accounting_coa_id       NUMBER;
25781 l_adr_flexfield_segment_code  VARCHAR2(30);
25782 l_adr_flex_value_set_id       NUMBER;
25783 l_adr_value_type_code         VARCHAR2(30);
25784 l_adr_value_combination_id    NUMBER;
25785 l_adr_value_segment_code      VARCHAR2(30);
25786 
25787 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
25788 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
25789 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
25790 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
25791 
25792 -- 4262811 Variables ------------------------------------------------------------------------------------------
25793 l_entered_amt_idx             NUMBER;
25794 l_accted_amt_idx              NUMBER;
25795 l_acc_rev_flag                VARCHAR2(1);
25796 l_accrual_line_num            NUMBER;
25797 l_tmp_amt                     NUMBER;
25798 l_acc_rev_natural_side_code   VARCHAR2(1);
25799 
25800 l_num_entries                 NUMBER;
25801 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
25802 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
25803 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
25804 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
25805 l_recog_line_1                NUMBER;
25806 l_recog_line_2                NUMBER;
25807 
25808 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
25809 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
25810 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
25811 
25812 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
25813 
25814 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
25815 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
25816 
25817 ---------------------------------------------------------------------------------------------------------------
25818 
25819 
25820 --
25821 -- bulk performance
25822 --
25823 l_balance_type_code           VARCHAR2(1);
25824 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
25825 l_log_module                  VARCHAR2(240);
25826 
25827 --
25828 -- Upgrade strategy
25829 --
25830 l_actual_upg_option           VARCHAR2(1);
25831 l_enc_upg_option           VARCHAR2(1);
25832 
25833 --
25834 BEGIN
25835 --
25836 IF g_log_enabled THEN
25837       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_71';
25838 END IF;
25839 --
25840 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25841 
25842       trace
25843          (p_msg      => 'BEGIN of AcctLineType_71'
25844          ,p_level    => C_LEVEL_PROCEDURE
25845          ,p_module   => l_log_module);
25846 
25847 END IF;
25848 --
25849 l_component_type             := 'AMB_JLT';
25850 l_component_code             := 'AP_CASH_CLEAR_PMT_AOS_BS';
25851 l_component_type_code        := 'S';
25852 l_component_appl_id          :=  200;
25853 l_amb_context_code           := 'DEFAULT';
25854 l_entity_code                := 'AP_PAYMENTS';
25855 l_event_class_code           := 'PAYMENTS';
25856 l_event_type_code            := 'PAYMENTS_ALL';
25857 l_line_definition_owner_code := 'S';
25858 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
25859 --
25860 l_balance_type_code          := 'A';
25861 l_segment                     := NULL;
25862 l_ccid                        := NULL;
25863 l_adr_transaction_coa_id      := NULL;
25864 l_adr_accounting_coa_id       := NULL;
25865 l_adr_flexfield_segment_code  := NULL;
25866 l_adr_flex_value_set_id       := NULL;
25867 l_adr_value_type_code         := NULL;
25868 l_adr_value_combination_id    := NULL;
25869 l_adr_value_segment_code      := NULL;
25870 
25871 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
25872 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
25873 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
25874 l_budgetary_control_flag     := 'N';
25875 
25876 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
25877 l_bflow_applied_to_amt       := NULL; -- 5132302
25878 l_entered_amt_idx            := NULL;          -- 4262811
25879 l_accted_amt_idx             := NULL;          -- 4262811
25880 l_acc_rev_flag               := NULL;          -- 4262811
25884  
25881 l_accrual_line_num           := NULL;          -- 4262811
25882 l_tmp_amt                    := NULL;          -- 4262811
25883 --
25885 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
25886     l_balance_type_code <> 'B' THEN
25887 IF NVL(p_source_97,'
25888 ') =  'ALWAYS_ALWAYS' AND 
25889 (NVL(p_source_113,'
25890 ') =  'Y' AND 
25891 NVL(p_source_15,'
25892 ') =  'BALANCING_SEGMENT') AND 
25893 p_source_114 IS NULL AND 
25894 NVL(p_source_98,'
25895 ') =  'CASH' AND 
25896 NVL(p_source_122,'
25897 ') <>  'R' AND 
25898 NVL(p_source_123,'
25899 ') <>  'PAYMENTCARD'
25900  THEN 
25901 
25902    --
25903    XLA_AE_LINES_PKG.SetNewLine;
25904 
25905    p_balance_type_code          := l_balance_type_code;
25906    -- set the flag so later we will know whether the gain loss line needs to be created
25907    
25908    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
25909      p_actual_flag :='A';
25910    END IF;
25911 
25912    --
25913    -- bulk performance
25914    --
25915    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
25916                                       p_header_num   => 0); -- 4262811
25917    --
25918    -- set accounting line options
25919    --
25920    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
25921            p_natural_side_code          => 'C'
25922          , p_gain_or_loss_flag          => 'N'
25923          , p_gl_transfer_mode_code      => 'S'
25924          , p_acct_entry_type_code       => 'A'
25925          , p_switch_side_flag           => 'Y'
25926          , p_merge_duplicate_code       => 'A'
25927          );
25928    --
25929    l_acc_rev_natural_side_code := 'D';  -- 4262811
25930    -- 
25931    --
25932    -- set accounting line type info
25933    --
25934    xla_ae_lines_pkg.SetAcctLineType
25935       (p_component_type             => l_component_type
25936       ,p_event_type_code            => l_event_type_code
25937       ,p_line_definition_owner_code => l_line_definition_owner_code
25938       ,p_line_definition_code       => l_line_definition_code
25939       ,p_accounting_line_code       => l_component_code
25940       ,p_accounting_line_type_code  => l_component_type_code
25941       ,p_accounting_line_appl_id    => l_component_appl_id
25942       ,p_amb_context_code           => l_amb_context_code
25943       ,p_entity_code                => l_entity_code
25944       ,p_event_class_code           => l_event_class_code);
25945    --
25946    -- set accounting class
25947    --
25948    xla_ae_lines_pkg.SetAcctClass(
25949            p_accounting_class_code  => 'CASH_CLEARING'
25950          , p_ae_header_id           => l_ae_header_id
25951          );
25952 
25953    --
25954    -- set rounding class
25955    --
25956    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
25957                       'CASH_CLEARING';
25958 
25959    --
25960    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
25961    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
25962    --
25963    -- bulk performance
25964    --
25965    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
25966 
25967    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
25968       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
25969 
25970    -- 4955764
25971    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25972       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
25973 
25974    -- 4458381 Public Sector Enh
25975    
25976    --
25977    -- set accounting attributes for the line type
25978    --
25979    l_entered_amt_idx := 10;
25980    l_accted_amt_idx  := 15;
25981    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
25982    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
25983    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
25984    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
25985    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
25986    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
25987    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
25988    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
25989    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
25990    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
25991    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
25992    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
25993    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
25994    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
25995    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
25996    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
25997    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
25998    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
25999    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
26000    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
26001    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
26005    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
26002    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
26003    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
26004    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
26006    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
26007    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
26008    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
26009    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
26010    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
26011    l_rec_acct_attrs.array_num_value(15)  := p_source_115;
26012    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
26013    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
26014    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
26015    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
26016    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
26017    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
26018    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
26019    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
26020    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
26021    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
26022    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
26023    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
26024    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
26025    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
26026    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
26027    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
26028    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
26029    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
26030 
26031    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
26032    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
26033 
26034    ---------------------------------------------------------------------------------------------------------------
26035    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
26036    ---------------------------------------------------------------------------------------------------------------
26037    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
26038 
26039    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26040    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26041 
26042    IF xla_accounting_cache_pkg.GetValueChar
26043          (p_source_code         => 'LEDGER_CATEGORY_CODE'
26044          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
26045    AND l_bflow_method_code = 'PRIOR_ENTRY'
26046 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
26047    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
26048          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
26049        )
26050    THEN
26051          xla_ae_lines_pkg.BflowUpgEntry
26052            (p_business_method_code    => l_bflow_method_code
26053            ,p_business_class_code     => l_bflow_class_code
26054            ,p_balance_type            => l_balance_type_code);
26055    ELSE
26056       NULL;
26057 XLA_AE_LINES_PKG.business_flow_validation(
26058                                 p_business_method_code     => l_bflow_method_code
26059                                ,p_business_class_code      => l_bflow_class_code
26060                                ,p_inherit_description_flag => l_inherit_desc_flag);
26061    END IF;
26062 
26063    --
26064    -- call analytical criteria
26065    --
26066    
26067    --
26068    -- call description
26069    --
26070    -- No description or it is inherited.
26071    --
26072    -- call ADRs
26073    -- Bug 4922099
26074    --
26075    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26076         (NVL(l_actual_upg_option, 'N') = 'O') OR
26077         (NVL(l_enc_upg_option, 'N') = 'O')
26078       )
26079    THEN
26080    NULL;
26081    --
26082    --
26083    
26084   l_ccid := AcctDerRule_36(
26085            p_application_id           => p_application_id
26086          , p_ae_header_id             => l_ae_header_id 
26087 , p_source_35 => p_source_35
26088          , x_transaction_coa_id       => l_adr_transaction_coa_id
26089          , x_accounting_coa_id        => l_adr_accounting_coa_id
26090          , x_value_type_code          => l_adr_value_type_code
26091          , p_side                     => 'NA'
26092    );
26093 
26094    xla_ae_lines_pkg.set_ccid(
26095     p_code_combination_id          => l_ccid
26096   , p_value_type_code              => l_adr_value_type_code
26097   , p_transaction_coa_id           => l_adr_transaction_coa_id
26098   , p_accounting_coa_id            => l_adr_accounting_coa_id
26099   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
26100   , p_adr_type_code                => 'S'
26101   , p_component_type               => l_component_type
26102   , p_component_code               => l_component_code
26103   , p_component_type_code          => l_component_type_code
26104   , p_component_appl_id            => l_component_appl_id
26105   , p_amb_context_code             => l_amb_context_code
26106   , p_side                         => 'NA'
26107   );
26108 
26109 
26113    , p_from_segment_code       => NULL
26110    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
26111      p_to_segment_code         => 'GL_BALANCING'
26112    , p_segment_value           => C_CHAR
26114    , p_from_combination_id     => NULL
26115    , p_value_type_code         => NULL
26116    , p_transaction_coa_id      => null
26117    , p_accounting_coa_id       => null
26118    , p_flexfield_segment_code  => NULL
26119    , p_flex_value_set_id       => NULL
26120    , p_adr_code                => NULL
26121    , p_adr_type_code           => NULL
26122    , p_component_type          => l_component_type
26123    , p_component_code          => l_component_code
26124    , p_component_type_code     => l_component_type_code
26125    , p_component_appl_id       => l_component_appl_id
26126    , p_amb_context_code        => l_amb_context_code
26127    , p_entity_code             => 'AP_PAYMENTS'
26128    , p_event_class_code        => 'PAYMENTS'
26129    , p_side                    => 'NA'
26130    );
26131    --
26132 
26133 
26134    --
26135    --
26136    END IF;
26137    --
26138    -- Bug 4922099
26139    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
26140           (NVL(l_enc_upg_option, 'N') = 'O')
26141         ) AND
26142         (l_bflow_method_code = 'PRIOR_ENTRY')
26143       )
26144    THEN
26145       IF
26146       --
26147       1 = 2
26148       --
26149       THEN
26150       xla_accounting_err_pkg.build_message
26151                                     (p_appli_s_name            => 'XLA'
26152                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26153                                     ,p_token_1                 => 'LINE_NUMBER'
26154                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
26155                                     ,p_token_2                 => 'LINE_TYPE_NAME'
26156                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
26157                                                                              l_component_type
26158                                                                             ,l_component_code
26159                                                                             ,l_component_type_code
26160                                                                             ,l_component_appl_id
26161                                                                             ,l_amb_context_code
26162                                                                             ,l_entity_code
26163                                                                             ,l_event_class_code
26164                                                                            )
26165                                     ,p_token_3                 => 'OWNER'
26166                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
26167                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
26168                                                                           ,p_lookup_code    => l_component_type_code
26169                                                                          )
26170                                     ,p_token_4                 => 'PRODUCT_NAME'
26171                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
26172                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
26173                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
26174                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
26175                                     ,p_ae_header_id            =>  NULL
26176                                        );
26177 
26178         IF (C_LEVEL_ERROR>= g_log_level) THEN
26179                  trace
26180                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26181                       ,p_level    => C_LEVEL_ERROR
26182                       ,p_module   => l_log_module);
26183         END IF;
26184       END IF;
26185    END IF;
26186    --
26187    --
26188    ------------------------------------------------------------------------------------------------
26189    -- 4219869 Business Flow
26190    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
26191    -- Prior Entry.  Currently, the following code is always generated.
26192    ------------------------------------------------------------------------------------------------
26193    XLA_AE_LINES_PKG.ValidateCurrentLine;
26194 
26195    ------------------------------------------------------------------------------------
26196    -- 4219869 Business Flow
26197    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
26198    ------------------------------------------------------------------------------------
26199    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26200 
26201    ----------------------------------------------------------------------------------
26202    -- 4219869 Business Flow
26203    -- Update journal entry status -- Need to generate this within IF <condition>
26204    ----------------------------------------------------------------------------------
26205    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26206          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
26210    -------------------------------------------------------------------------------------------
26207          ,p_balance_type_code => l_balance_type_code
26208          );
26209 
26211    -- 4262811 - Generate the Accrual Reversal lines
26212    -------------------------------------------------------------------------------------------
26213    BEGIN
26214       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
26215                               (g_array_event(p_event_id).array_value_num('header_index'));
26216       IF l_acc_rev_flag IS NULL THEN
26217          l_acc_rev_flag := 'N';
26218       END IF;
26219    EXCEPTION
26220       WHEN OTHERS THEN
26221          l_acc_rev_flag := 'N';
26222    END;
26223    --
26224    IF (l_acc_rev_flag = 'Y') THEN
26225 
26226        -- 4645092  ------------------------------------------------------------------------------
26227        -- To allow MPA report to determine if it should generate report process
26228        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
26229        ------------------------------------------------------------------------------------------
26230 
26231        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
26232        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
26233    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
26234    -- call ADRs
26235    -- Bug 4922099
26236    --
26237    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26238         (NVL(l_actual_upg_option, 'N') = 'O') OR
26239         (NVL(l_enc_upg_option, 'N') = 'O')
26240       )
26241    THEN
26242    NULL;
26243    --
26244    --
26245    
26246   l_ccid := AcctDerRule_36(
26247            p_application_id           => p_application_id
26248          , p_ae_header_id             => l_ae_header_id 
26249 , p_source_35 => p_source_35
26250          , x_transaction_coa_id       => l_adr_transaction_coa_id
26251          , x_accounting_coa_id        => l_adr_accounting_coa_id
26252          , x_value_type_code          => l_adr_value_type_code
26253          , p_side                     => 'NA'
26254    );
26255 
26256    xla_ae_lines_pkg.set_ccid(
26257     p_code_combination_id          => l_ccid
26258   , p_value_type_code              => l_adr_value_type_code
26259   , p_transaction_coa_id           => l_adr_transaction_coa_id
26260   , p_accounting_coa_id            => l_adr_accounting_coa_id
26261   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
26262   , p_adr_type_code                => 'S'
26263   , p_component_type               => l_component_type
26264   , p_component_code               => l_component_code
26265   , p_component_type_code          => l_component_type_code
26266   , p_component_appl_id            => l_component_appl_id
26267   , p_amb_context_code             => l_amb_context_code
26268   , p_side                         => 'NA'
26269   );
26270 
26271 
26272    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
26273      p_to_segment_code         => 'GL_BALANCING'
26274    , p_segment_value           => C_CHAR
26275    , p_from_segment_code       => NULL
26276    , p_from_combination_id     => NULL
26277    , p_value_type_code         => NULL
26278    , p_transaction_coa_id      => null
26279    , p_accounting_coa_id       => null
26280    , p_flexfield_segment_code  => NULL
26281    , p_flex_value_set_id       => NULL
26282    , p_adr_code                => NULL
26283    , p_adr_type_code           => NULL
26284    , p_component_type          => l_component_type
26285    , p_component_code          => l_component_code
26286    , p_component_type_code     => l_component_type_code
26287    , p_component_appl_id       => l_component_appl_id
26288    , p_amb_context_code        => l_amb_context_code
26289    , p_entity_code             => 'AP_PAYMENTS'
26290    , p_event_class_code        => 'PAYMENTS'
26291    , p_side                    => 'NA'
26292    );
26293    --
26294 
26295 
26296    --
26297    --
26298    END IF;
26299 
26300        --
26301        -- Update the line information that should be overwritten
26302        --
26303        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
26304                                          p_header_num   => 1);
26305        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
26306 
26307        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
26308 
26309        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
26310           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
26311        END IF;
26312 
26313       --
26314       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
26315       --
26316       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
26317           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
26318       ELSE
26319           ---------------------------------------------------------------------------------------------------
26320           -- 4262811a Switch Sign
26321           ---------------------------------------------------------------------------------------------------
26322           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
26326                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26323           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26324                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26325           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26327           -- 5132302
26328           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
26329                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26330 
26331       END IF;
26332 
26333       -- 4955764
26334       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26335       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
26336 
26337 
26338       XLA_AE_LINES_PKG.ValidateCurrentLine;
26339       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26340 
26341       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26342                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
26343                ,p_balance_type_code => l_balance_type_code);
26344 
26345    END IF;
26346 
26347    -----------------------------------------------------------------------------------------
26348    -- 4262811 Multiperiod Accounting
26349    -----------------------------------------------------------------------------------------
26350      -- No MPA option is assigned.
26351 
26352 
26353 END IF;
26354 END IF;
26355 --
26356 
26357 --
26358 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26359    trace
26360       (p_msg      => 'END of AcctLineType_71'
26361       ,p_level    => C_LEVEL_PROCEDURE
26362       ,p_module   => l_log_module);
26363 END IF;
26364 --
26365 EXCEPTION
26366   WHEN xla_exceptions_pkg.application_exception THEN
26367       RAISE;
26368   WHEN OTHERS THEN
26369        xla_exceptions_pkg.raise_message
26370            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_71');
26371 END AcctLineType_71;
26372 --
26373 
26374 ---------------------------------------
26375 --
26376 -- PRIVATE FUNCTION
26377 --         AcctLineType_72
26378 --
26379 ---------------------------------------
26380 PROCEDURE AcctLineType_72 (
26381   p_application_id        IN NUMBER
26382  ,p_event_id              IN NUMBER
26383  ,p_calculate_acctd_flag  IN VARCHAR2
26384  ,p_calculate_g_l_flag    IN VARCHAR2
26385  ,p_actual_flag           IN OUT VARCHAR2
26386  ,p_balance_type_code     OUT VARCHAR2
26387  ,p_gain_or_loss_ref      OUT VARCHAR2
26388  
26389 --Payment Currency Code
26390  , p_source_13            IN VARCHAR2
26391 --Automatic Offsets Value
26392  , p_source_15            IN VARCHAR2
26393  , p_source_15_meaning    IN VARCHAR2
26394 --Bank Cash Clearing Account
26395  , p_source_35            IN NUMBER
26396 --Accounting Reversal Indicator
26397  , p_source_53            IN VARCHAR2
26398 --Distribution Link Type
26399  , p_source_55            IN VARCHAR2
26400 --Override Accounted Amount Indicator
26401  , p_source_80            IN VARCHAR2
26402  , p_source_80_meaning    IN VARCHAR2
26403 --Third Party Type
26404  , p_source_83            IN VARCHAR2
26405 --Invoice Distribution Tax Line Identifier
26406  , p_source_86            IN NUMBER
26407 --Invoice Distribution Tax Distribution Identifier from Tax
26408  , p_source_87            IN NUMBER
26409 --Invoice Distribution Summary Tax Line Identifier
26410  , p_source_88            IN NUMBER
26411 --Business Flow Accounts Payable Application Identifier
26412  , p_source_91            IN NUMBER
26413 --Business Flow Invoice Distribution Type
26414  , p_source_92            IN VARCHAR2
26415 --Business Flow Invoice Entity Code
26416  , p_source_93            IN VARCHAR2
26417 --Business Flow Invoice Distribution Identifier
26418  , p_source_94            IN NUMBER
26419 --Business Flow Invoice Identifier
26420  , p_source_95            IN NUMBER
26421 --When to Account for Payment Option
26422  , p_source_97            IN VARCHAR2
26423 --Payment Distribution Type
26424  , p_source_98            IN VARCHAR2
26425  , p_source_98_meaning    IN VARCHAR2
26426 --Payment Distribution Amount
26427  , p_source_99            IN NUMBER
26428 --Payment Distribution Identifier
26429  , p_source_104            IN NUMBER
26430 --Payment Supplier Identifier
26431  , p_source_110            IN NUMBER
26432 --Payment Supplier Site Identifier
26433  , p_source_111            IN NUMBER
26434 --Payment Distribution Reversed Identifier
26435  , p_source_112            IN NUMBER
26436 --Pooled Bank Account Option
26437  , p_source_113            IN VARCHAR2
26438  , p_source_113_meaning    IN VARCHAR2
26439 --Payment Maturity Date
26440  , p_source_114            IN DATE
26441 --Payment Distribution (Invoice Rate) Ledger Amount
26442  , p_source_116            IN NUMBER
26443 --Payment Exchange Date
26444  , p_source_117            IN DATE
26445 --Payment Exchange Rate
26446  , p_source_118            IN NUMBER
26447 --Payment Exchange Rate Type
26448  , p_source_119            IN VARCHAR2
26449 --Payment Type
26450  , p_source_122            IN VARCHAR2
26451  , p_source_122_meaning    IN VARCHAR2
26452 --Payment Processing Type
26456 )
26453  , p_source_123            IN VARCHAR2
26454 --Invoice Distribution Amount of the Payment Distribution
26455  , p_source_124            IN NUMBER
26457 IS
26458 
26459 l_component_type              VARCHAR2(80);
26460 l_component_code              VARCHAR2(30);
26461 l_component_type_code         VARCHAR2(1);
26462 l_component_appl_id           INTEGER;
26463 l_amb_context_code            VARCHAR2(30);
26464 l_entity_code                 VARCHAR2(30);
26465 l_event_class_code            VARCHAR2(30);
26466 l_ae_header_id                NUMBER;
26467 l_event_type_code             VARCHAR2(30);
26468 l_line_definition_code        VARCHAR2(30);
26469 l_line_definition_owner_code  VARCHAR2(1);
26470 --
26471 -- adr variables
26472 l_segment                     VARCHAR2(30);
26473 l_ccid                        NUMBER;
26474 l_adr_transaction_coa_id      NUMBER;
26475 l_adr_accounting_coa_id       NUMBER;
26476 l_adr_flexfield_segment_code  VARCHAR2(30);
26477 l_adr_flex_value_set_id       NUMBER;
26478 l_adr_value_type_code         VARCHAR2(30);
26479 l_adr_value_combination_id    NUMBER;
26480 l_adr_value_segment_code      VARCHAR2(30);
26481 
26482 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
26483 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
26484 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
26485 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
26486 
26487 -- 4262811 Variables ------------------------------------------------------------------------------------------
26488 l_entered_amt_idx             NUMBER;
26489 l_accted_amt_idx              NUMBER;
26490 l_acc_rev_flag                VARCHAR2(1);
26491 l_accrual_line_num            NUMBER;
26492 l_tmp_amt                     NUMBER;
26493 l_acc_rev_natural_side_code   VARCHAR2(1);
26494 
26495 l_num_entries                 NUMBER;
26496 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
26497 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
26498 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
26499 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
26500 l_recog_line_1                NUMBER;
26501 l_recog_line_2                NUMBER;
26502 
26503 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
26504 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
26505 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
26506 
26507 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26508 
26509 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
26510 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
26511 
26512 ---------------------------------------------------------------------------------------------------------------
26513 
26514 
26515 --
26516 -- bulk performance
26517 --
26518 l_balance_type_code           VARCHAR2(1);
26519 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
26520 l_log_module                  VARCHAR2(240);
26521 
26522 --
26523 -- Upgrade strategy
26524 --
26525 l_actual_upg_option           VARCHAR2(1);
26526 l_enc_upg_option           VARCHAR2(1);
26527 
26528 --
26529 BEGIN
26530 --
26531 IF g_log_enabled THEN
26532       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_72';
26533 END IF;
26534 --
26535 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26536 
26537       trace
26538          (p_msg      => 'BEGIN of AcctLineType_72'
26539          ,p_level    => C_LEVEL_PROCEDURE
26540          ,p_module   => l_log_module);
26541 
26542 END IF;
26543 --
26544 l_component_type             := 'AMB_JLT';
26545 l_component_code             := 'AP_CASH_CLEAR_PMT_AS_INVXRATE';
26546 l_component_type_code        := 'S';
26547 l_component_appl_id          :=  200;
26548 l_amb_context_code           := 'DEFAULT';
26549 l_entity_code                := 'AP_PAYMENTS';
26550 l_event_class_code           := 'PAYMENTS';
26551 l_event_type_code            := 'PAYMENTS_ALL';
26552 l_line_definition_owner_code := 'S';
26553 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
26554 --
26555 l_balance_type_code          := 'A';
26556 l_segment                     := NULL;
26557 l_ccid                        := NULL;
26558 l_adr_transaction_coa_id      := NULL;
26559 l_adr_accounting_coa_id       := NULL;
26560 l_adr_flexfield_segment_code  := NULL;
26561 l_adr_flex_value_set_id       := NULL;
26562 l_adr_value_type_code         := NULL;
26563 l_adr_value_combination_id    := NULL;
26564 l_adr_value_segment_code      := NULL;
26565 
26566 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
26567 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
26568 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
26569 l_budgetary_control_flag     := 'N';
26570 
26571 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
26572 l_bflow_applied_to_amt       := NULL; -- 5132302
26573 l_entered_amt_idx            := NULL;          -- 4262811
26574 l_accted_amt_idx             := NULL;          -- 4262811
26575 l_acc_rev_flag               := NULL;          -- 4262811
26576 l_accrual_line_num           := NULL;          -- 4262811
26577 l_tmp_amt                    := NULL;          -- 4262811
26578 --
26579  
26580 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26584 (NVL(p_source_113,'
26581     l_balance_type_code <> 'B' THEN
26582 IF NVL(p_source_97,'
26583 ') =  'ALWAYS_CLEAR' AND 
26585 ') =  'Y' AND 
26586 NVL(p_source_15,'
26587 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
26588 p_source_114 IS NULL AND 
26589 NVL(p_source_98,'
26590 ') =  'CASH' AND 
26591 NVL(p_source_122,'
26592 ') <>  'R' AND 
26593 NVL(p_source_123,'
26594 ') <>  'PAYMENTCARD'
26595  THEN 
26596 
26597    --
26598    XLA_AE_LINES_PKG.SetNewLine;
26599 
26600    p_balance_type_code          := l_balance_type_code;
26601    -- set the flag so later we will know whether the gain loss line needs to be created
26602    
26603    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26604      p_actual_flag :='A';
26605    END IF;
26606 
26607    --
26608    -- bulk performance
26609    --
26610    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26611                                       p_header_num   => 0); -- 4262811
26612    --
26613    -- set accounting line options
26614    --
26615    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26616            p_natural_side_code          => 'C'
26617          , p_gain_or_loss_flag          => 'N'
26618          , p_gl_transfer_mode_code      => 'S'
26619          , p_acct_entry_type_code       => 'A'
26620          , p_switch_side_flag           => 'Y'
26621          , p_merge_duplicate_code       => 'A'
26622          );
26623    --
26624    l_acc_rev_natural_side_code := 'D';  -- 4262811
26625    -- 
26626    --
26627    -- set accounting line type info
26628    --
26629    xla_ae_lines_pkg.SetAcctLineType
26630       (p_component_type             => l_component_type
26631       ,p_event_type_code            => l_event_type_code
26632       ,p_line_definition_owner_code => l_line_definition_owner_code
26633       ,p_line_definition_code       => l_line_definition_code
26634       ,p_accounting_line_code       => l_component_code
26635       ,p_accounting_line_type_code  => l_component_type_code
26636       ,p_accounting_line_appl_id    => l_component_appl_id
26637       ,p_amb_context_code           => l_amb_context_code
26638       ,p_entity_code                => l_entity_code
26639       ,p_event_class_code           => l_event_class_code);
26640    --
26641    -- set accounting class
26642    --
26643    xla_ae_lines_pkg.SetAcctClass(
26644            p_accounting_class_code  => 'CASH_CLEARING'
26645          , p_ae_header_id           => l_ae_header_id
26646          );
26647 
26648    --
26649    -- set rounding class
26650    --
26651    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
26652                       'CASH_CLEARING';
26653 
26654    --
26655    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
26656    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
26657    --
26658    -- bulk performance
26659    --
26660    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
26661 
26662    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
26663       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
26664 
26665    -- 4955764
26666    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26667       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
26668 
26669    -- 4458381 Public Sector Enh
26670    
26671    --
26672    -- set accounting attributes for the line type
26673    --
26674    l_entered_amt_idx := 10;
26675    l_accted_amt_idx  := 15;
26676    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
26677    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
26678    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
26679    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
26680    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
26681    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
26682    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
26683    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
26684    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
26685    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
26686    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
26687    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
26688    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
26689    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
26690    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
26691    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
26692    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
26693    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
26694    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
26695    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
26696    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
26697    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
26698    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
26699    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
26700    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
26701    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
26705    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
26702    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
26703    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
26704    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
26706    l_rec_acct_attrs.array_num_value(15)  := p_source_116;
26707    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
26708    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
26709    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
26710    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
26711    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
26712    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
26713    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
26714    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
26715    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
26716    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
26717    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
26718    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
26719    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
26720    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
26721    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
26722    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
26723    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
26724    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
26725 
26726    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
26727    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
26728 
26729    ---------------------------------------------------------------------------------------------------------------
26730    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
26731    ---------------------------------------------------------------------------------------------------------------
26732    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
26733 
26734    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26735    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26736 
26737    IF xla_accounting_cache_pkg.GetValueChar
26738          (p_source_code         => 'LEDGER_CATEGORY_CODE'
26739          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
26740    AND l_bflow_method_code = 'PRIOR_ENTRY'
26741 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
26742    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
26743          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
26744        )
26745    THEN
26746          xla_ae_lines_pkg.BflowUpgEntry
26747            (p_business_method_code    => l_bflow_method_code
26748            ,p_business_class_code     => l_bflow_class_code
26749            ,p_balance_type            => l_balance_type_code);
26750    ELSE
26751       NULL;
26752 XLA_AE_LINES_PKG.business_flow_validation(
26753                                 p_business_method_code     => l_bflow_method_code
26754                                ,p_business_class_code      => l_bflow_class_code
26755                                ,p_inherit_description_flag => l_inherit_desc_flag);
26756    END IF;
26757 
26758    --
26759    -- call analytical criteria
26760    --
26761    
26762    --
26763    -- call description
26764    --
26765    -- No description or it is inherited.
26766    --
26767    -- call ADRs
26768    -- Bug 4922099
26769    --
26770    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26771         (NVL(l_actual_upg_option, 'N') = 'O') OR
26772         (NVL(l_enc_upg_option, 'N') = 'O')
26773       )
26774    THEN
26775    NULL;
26776    --
26777    --
26778    
26779    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
26780      p_code_combination_id      => TO_NUMBER(C_NUM)
26781    , p_value_type_code          => NULL
26782    , p_transaction_coa_id       => null
26783    , p_accounting_coa_id        => null
26784    , p_adr_code                 => NULL
26785    , p_adr_type_code            => NULL
26786    , p_component_type           => l_component_type
26787    , p_component_code           => l_component_code
26788    , p_component_type_code      => l_component_type_code
26789    , p_component_appl_id        => l_component_appl_id
26790    , p_amb_context_code         => l_amb_context_code
26791    , p_side                     => NULL
26792    );
26793 
26794    
26795   -- initialise segments
26796   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26797   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26798   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26799   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26800   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26801   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26802   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26803   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26804   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
26808   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26805   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26806   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26807   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26809   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26810   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26811   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26812   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26813   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26814   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26815   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26816   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26817   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26818   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26819   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26820   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26821   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26822   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26823   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26824   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26825   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
26826   --
26827 
26828    --
26829 
26830 
26831    l_segment := AcctDerRule_16(
26832            p_application_id           => p_application_id
26833          , p_ae_header_id             => l_ae_header_id 
26834 , p_source_35 => p_source_35
26835          , x_transaction_coa_id       => l_adr_transaction_coa_id
26836          , x_accounting_coa_id        => l_adr_accounting_coa_id
26837          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
26838          , x_flex_value_set_id        => l_adr_flex_value_set_id
26839          , x_value_type_code          => l_adr_value_type_code
26840          , x_value_combination_id     => l_adr_value_combination_id
26841          , x_value_segment_code       => l_adr_value_segment_code
26842          , p_side                     => 'NA'
26843          , p_override_seg_flag        => 'Y'
26844    );
26845 
26846    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
26847 
26848       xla_ae_lines_pkg.set_segment(
26849           p_to_segment_code         => 'GL_ACCOUNT'
26850         , p_segment_value           => l_segment
26851         , p_from_segment_code       => l_adr_value_segment_code
26852         , p_from_combination_id     => l_adr_value_combination_id
26853         , p_value_type_code         => l_adr_value_type_code
26854         , p_transaction_coa_id      => l_adr_transaction_coa_id
26855         , p_accounting_coa_id       => l_adr_accounting_coa_id
26856         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
26857         , p_flex_value_set_id       => l_adr_flex_value_set_id
26858         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
26859         , p_adr_type_code           => 'S'
26860         , p_component_type          => l_component_type
26861         , p_component_code          => l_component_code
26862         , p_component_type_code     => l_component_type_code
26863         , p_component_appl_id       => l_component_appl_id
26864         , p_amb_context_code        => l_amb_context_code
26865         , p_entity_code             => 'AP_PAYMENTS'
26866         , p_event_class_code        => 'PAYMENTS'
26867         , p_side                    => 'NA'
26868         );
26869 
26870   END IF;
26871 
26872    --
26873    --
26874    END IF;
26875    --
26876    -- Bug 4922099
26877    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
26878           (NVL(l_enc_upg_option, 'N') = 'O')
26879         ) AND
26880         (l_bflow_method_code = 'PRIOR_ENTRY')
26881       )
26882    THEN
26883       IF
26884       --
26885       1 = 2
26886       --
26887       THEN
26888       xla_accounting_err_pkg.build_message
26889                                     (p_appli_s_name            => 'XLA'
26890                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26891                                     ,p_token_1                 => 'LINE_NUMBER'
26892                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
26893                                     ,p_token_2                 => 'LINE_TYPE_NAME'
26894                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
26895                                                                              l_component_type
26896                                                                             ,l_component_code
26897                                                                             ,l_component_type_code
26898                                                                             ,l_component_appl_id
26899                                                                             ,l_amb_context_code
26900                                                                             ,l_entity_code
26904                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
26901                                                                             ,l_event_class_code
26902                                                                            )
26903                                     ,p_token_3                 => 'OWNER'
26905                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
26906                                                                           ,p_lookup_code    => l_component_type_code
26907                                                                          )
26908                                     ,p_token_4                 => 'PRODUCT_NAME'
26909                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
26910                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
26911                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
26912                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
26913                                     ,p_ae_header_id            =>  NULL
26914                                        );
26915 
26916         IF (C_LEVEL_ERROR>= g_log_level) THEN
26917                  trace
26918                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26919                       ,p_level    => C_LEVEL_ERROR
26920                       ,p_module   => l_log_module);
26921         END IF;
26922       END IF;
26923    END IF;
26924    --
26925    --
26926    ------------------------------------------------------------------------------------------------
26927    -- 4219869 Business Flow
26928    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
26929    -- Prior Entry.  Currently, the following code is always generated.
26930    ------------------------------------------------------------------------------------------------
26931    XLA_AE_LINES_PKG.ValidateCurrentLine;
26932 
26933    ------------------------------------------------------------------------------------
26934    -- 4219869 Business Flow
26935    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
26936    ------------------------------------------------------------------------------------
26937    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26938 
26939    ----------------------------------------------------------------------------------
26940    -- 4219869 Business Flow
26941    -- Update journal entry status -- Need to generate this within IF <condition>
26942    ----------------------------------------------------------------------------------
26943    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26944          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
26945          ,p_balance_type_code => l_balance_type_code
26946          );
26947 
26948    -------------------------------------------------------------------------------------------
26949    -- 4262811 - Generate the Accrual Reversal lines
26950    -------------------------------------------------------------------------------------------
26951    BEGIN
26952       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
26953                               (g_array_event(p_event_id).array_value_num('header_index'));
26954       IF l_acc_rev_flag IS NULL THEN
26955          l_acc_rev_flag := 'N';
26956       END IF;
26957    EXCEPTION
26958       WHEN OTHERS THEN
26959          l_acc_rev_flag := 'N';
26960    END;
26961    --
26962    IF (l_acc_rev_flag = 'Y') THEN
26963 
26964        -- 4645092  ------------------------------------------------------------------------------
26965        -- To allow MPA report to determine if it should generate report process
26966        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
26967        ------------------------------------------------------------------------------------------
26968 
26969        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
26970        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
26971    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
26972    -- call ADRs
26973    -- Bug 4922099
26974    --
26975    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26976         (NVL(l_actual_upg_option, 'N') = 'O') OR
26977         (NVL(l_enc_upg_option, 'N') = 'O')
26978       )
26979    THEN
26980    NULL;
26981    --
26982    --
26983    
26984    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
26985      p_code_combination_id      => TO_NUMBER(C_NUM)
26986    , p_value_type_code          => NULL
26987    , p_transaction_coa_id       => null
26988    , p_accounting_coa_id        => null
26989    , p_adr_code                 => NULL
26990    , p_adr_type_code            => NULL
26991    , p_component_type           => l_component_type
26992    , p_component_code           => l_component_code
26993    , p_component_type_code      => l_component_type_code
26994    , p_component_appl_id        => l_component_appl_id
26995    , p_amb_context_code         => l_amb_context_code
26996    , p_side                     => NULL
26997    );
26998 
26999    
27000   -- initialise segments
27001   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27005   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27002   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27003   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27004   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27006   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27007   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27008   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27009   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
27010   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27011   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27012   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27013   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27014   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27015   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27016   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27017   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27018   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27019   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27020   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27021   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27022   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27023   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27024   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27025   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27026   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27027   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27028   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27029   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27030   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
27031   --
27032 
27033    --
27034 
27035 
27036    l_segment := AcctDerRule_16(
27037            p_application_id           => p_application_id
27038          , p_ae_header_id             => l_ae_header_id 
27039 , p_source_35 => p_source_35
27040          , x_transaction_coa_id       => l_adr_transaction_coa_id
27041          , x_accounting_coa_id        => l_adr_accounting_coa_id
27042          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
27043          , x_flex_value_set_id        => l_adr_flex_value_set_id
27044          , x_value_type_code          => l_adr_value_type_code
27045          , x_value_combination_id     => l_adr_value_combination_id
27046          , x_value_segment_code       => l_adr_value_segment_code
27047          , p_side                     => 'NA'
27048          , p_override_seg_flag        => 'Y'
27049    );
27050 
27051    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
27052 
27053       xla_ae_lines_pkg.set_segment(
27054           p_to_segment_code         => 'GL_ACCOUNT'
27055         , p_segment_value           => l_segment
27056         , p_from_segment_code       => l_adr_value_segment_code
27057         , p_from_combination_id     => l_adr_value_combination_id
27058         , p_value_type_code         => l_adr_value_type_code
27059         , p_transaction_coa_id      => l_adr_transaction_coa_id
27060         , p_accounting_coa_id       => l_adr_accounting_coa_id
27061         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
27062         , p_flex_value_set_id       => l_adr_flex_value_set_id
27063         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
27064         , p_adr_type_code           => 'S'
27065         , p_component_type          => l_component_type
27066         , p_component_code          => l_component_code
27067         , p_component_type_code     => l_component_type_code
27068         , p_component_appl_id       => l_component_appl_id
27069         , p_amb_context_code        => l_amb_context_code
27070         , p_entity_code             => 'AP_PAYMENTS'
27071         , p_event_class_code        => 'PAYMENTS'
27072         , p_side                    => 'NA'
27073         );
27074 
27075   END IF;
27076 
27077    --
27078    --
27079    END IF;
27080 
27081        --
27082        -- Update the line information that should be overwritten
27083        --
27084        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27085                                          p_header_num   => 1);
27086        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
27087 
27088        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27089 
27090        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
27091           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27092        END IF;
27093 
27094       --
27098           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
27095       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27096       --
27097       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27099       ELSE
27100           ---------------------------------------------------------------------------------------------------
27101           -- 4262811a Switch Sign
27102           ---------------------------------------------------------------------------------------------------
27103           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
27104           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27105                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27106           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27107                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27108           -- 5132302
27109           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27110                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27111 
27112       END IF;
27113 
27114       -- 4955764
27115       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27116       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27117 
27118 
27119       XLA_AE_LINES_PKG.ValidateCurrentLine;
27120       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27121 
27122       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27123                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27124                ,p_balance_type_code => l_balance_type_code);
27125 
27126    END IF;
27127 
27128    -----------------------------------------------------------------------------------------
27129    -- 4262811 Multiperiod Accounting
27130    -----------------------------------------------------------------------------------------
27131      -- No MPA option is assigned.
27132 
27133 
27134 END IF;
27135 END IF;
27136 --
27137 
27138 --
27139 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27140    trace
27141       (p_msg      => 'END of AcctLineType_72'
27142       ,p_level    => C_LEVEL_PROCEDURE
27143       ,p_module   => l_log_module);
27144 END IF;
27145 --
27146 EXCEPTION
27147   WHEN xla_exceptions_pkg.application_exception THEN
27148       RAISE;
27149   WHEN OTHERS THEN
27150        xla_exceptions_pkg.raise_message
27151            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_72');
27152 END AcctLineType_72;
27153 --
27154 
27155 ---------------------------------------
27156 --
27157 -- PRIVATE FUNCTION
27158 --         AcctLineType_73
27159 --
27160 ---------------------------------------
27161 PROCEDURE AcctLineType_73 (
27162   p_application_id        IN NUMBER
27163  ,p_event_id              IN NUMBER
27164  ,p_calculate_acctd_flag  IN VARCHAR2
27165  ,p_calculate_g_l_flag    IN VARCHAR2
27166  ,p_actual_flag           IN OUT VARCHAR2
27167  ,p_balance_type_code     OUT VARCHAR2
27168  ,p_gain_or_loss_ref      OUT VARCHAR2
27169  
27170 --Payment Currency Code
27171  , p_source_13            IN VARCHAR2
27172 --Automatic Offsets Value
27173  , p_source_15            IN VARCHAR2
27174  , p_source_15_meaning    IN VARCHAR2
27175 --Bank Cash Clearing Account
27176  , p_source_35            IN NUMBER
27177 --Accounting Reversal Indicator
27178  , p_source_53            IN VARCHAR2
27179 --Distribution Link Type
27180  , p_source_55            IN VARCHAR2
27181 --Override Accounted Amount Indicator
27182  , p_source_80            IN VARCHAR2
27183  , p_source_80_meaning    IN VARCHAR2
27184 --Third Party Type
27185  , p_source_83            IN VARCHAR2
27186 --Invoice Distribution Tax Line Identifier
27187  , p_source_86            IN NUMBER
27188 --Invoice Distribution Tax Distribution Identifier from Tax
27189  , p_source_87            IN NUMBER
27190 --Invoice Distribution Summary Tax Line Identifier
27191  , p_source_88            IN NUMBER
27192 --Business Flow Accounts Payable Application Identifier
27193  , p_source_91            IN NUMBER
27194 --Business Flow Invoice Distribution Type
27195  , p_source_92            IN VARCHAR2
27196 --Business Flow Invoice Entity Code
27197  , p_source_93            IN VARCHAR2
27198 --Business Flow Invoice Distribution Identifier
27199  , p_source_94            IN NUMBER
27200 --Business Flow Invoice Identifier
27201  , p_source_95            IN NUMBER
27202 --When to Account for Payment Option
27203  , p_source_97            IN VARCHAR2
27204 --Payment Distribution Type
27205  , p_source_98            IN VARCHAR2
27206  , p_source_98_meaning    IN VARCHAR2
27207 --Payment Distribution Amount
27208  , p_source_99            IN NUMBER
27209 --Payment Distribution Identifier
27210  , p_source_104            IN NUMBER
27211 --Payment Supplier Identifier
27212  , p_source_110            IN NUMBER
27213 --Payment Supplier Site Identifier
27214  , p_source_111            IN NUMBER
27215 --Payment Distribution Reversed Identifier
27216  , p_source_112            IN NUMBER
27217 --Pooled Bank Account Option
27221  , p_source_114            IN DATE
27218  , p_source_113            IN VARCHAR2
27219  , p_source_113_meaning    IN VARCHAR2
27220 --Payment Maturity Date
27222 --Payment Distribution (Invoice Rate) Ledger Amount
27223  , p_source_116            IN NUMBER
27224 --Payment Exchange Date
27225  , p_source_117            IN DATE
27226 --Payment Exchange Rate
27227  , p_source_118            IN NUMBER
27228 --Payment Exchange Rate Type
27229  , p_source_119            IN VARCHAR2
27230 --Payment Type
27231  , p_source_122            IN VARCHAR2
27232  , p_source_122_meaning    IN VARCHAR2
27233 --Payment Processing Type
27234  , p_source_123            IN VARCHAR2
27235 --Invoice Distribution Amount of the Payment Distribution
27236  , p_source_124            IN NUMBER
27237 )
27238 IS
27239 
27240 l_component_type              VARCHAR2(80);
27241 l_component_code              VARCHAR2(30);
27242 l_component_type_code         VARCHAR2(1);
27243 l_component_appl_id           INTEGER;
27244 l_amb_context_code            VARCHAR2(30);
27245 l_entity_code                 VARCHAR2(30);
27246 l_event_class_code            VARCHAR2(30);
27247 l_ae_header_id                NUMBER;
27248 l_event_type_code             VARCHAR2(30);
27249 l_line_definition_code        VARCHAR2(30);
27250 l_line_definition_owner_code  VARCHAR2(1);
27251 --
27252 -- adr variables
27253 l_segment                     VARCHAR2(30);
27254 l_ccid                        NUMBER;
27255 l_adr_transaction_coa_id      NUMBER;
27256 l_adr_accounting_coa_id       NUMBER;
27257 l_adr_flexfield_segment_code  VARCHAR2(30);
27258 l_adr_flex_value_set_id       NUMBER;
27259 l_adr_value_type_code         VARCHAR2(30);
27260 l_adr_value_combination_id    NUMBER;
27261 l_adr_value_segment_code      VARCHAR2(30);
27262 
27263 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
27264 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
27265 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
27266 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
27267 
27268 -- 4262811 Variables ------------------------------------------------------------------------------------------
27269 l_entered_amt_idx             NUMBER;
27270 l_accted_amt_idx              NUMBER;
27271 l_acc_rev_flag                VARCHAR2(1);
27272 l_accrual_line_num            NUMBER;
27273 l_tmp_amt                     NUMBER;
27274 l_acc_rev_natural_side_code   VARCHAR2(1);
27275 
27276 l_num_entries                 NUMBER;
27277 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
27278 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
27279 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
27280 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
27281 l_recog_line_1                NUMBER;
27282 l_recog_line_2                NUMBER;
27283 
27284 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
27285 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
27286 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
27287 
27288 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
27289 
27290 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
27291 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
27292 
27293 ---------------------------------------------------------------------------------------------------------------
27294 
27295 
27296 --
27297 -- bulk performance
27298 --
27299 l_balance_type_code           VARCHAR2(1);
27300 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
27301 l_log_module                  VARCHAR2(240);
27302 
27303 --
27304 -- Upgrade strategy
27305 --
27306 l_actual_upg_option           VARCHAR2(1);
27307 l_enc_upg_option           VARCHAR2(1);
27308 
27309 --
27310 BEGIN
27311 --
27312 IF g_log_enabled THEN
27313       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_73';
27314 END IF;
27315 --
27316 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27317 
27318       trace
27319          (p_msg      => 'BEGIN of AcctLineType_73'
27320          ,p_level    => C_LEVEL_PROCEDURE
27321          ,p_module   => l_log_module);
27322 
27323 END IF;
27324 --
27325 l_component_type             := 'AMB_JLT';
27326 l_component_code             := 'AP_CASH_CLEAR_PMT_BS_INVXRATE';
27327 l_component_type_code        := 'S';
27328 l_component_appl_id          :=  200;
27329 l_amb_context_code           := 'DEFAULT';
27330 l_entity_code                := 'AP_PAYMENTS';
27331 l_event_class_code           := 'PAYMENTS';
27332 l_event_type_code            := 'PAYMENTS_ALL';
27333 l_line_definition_owner_code := 'S';
27334 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
27335 --
27336 l_balance_type_code          := 'A';
27337 l_segment                     := NULL;
27338 l_ccid                        := NULL;
27339 l_adr_transaction_coa_id      := NULL;
27340 l_adr_accounting_coa_id       := NULL;
27341 l_adr_flexfield_segment_code  := NULL;
27342 l_adr_flex_value_set_id       := NULL;
27343 l_adr_value_type_code         := NULL;
27344 l_adr_value_combination_id    := NULL;
27345 l_adr_value_segment_code      := NULL;
27346 
27347 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
27348 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
27352 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
27349 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
27350 l_budgetary_control_flag     := 'N';
27351 
27353 l_bflow_applied_to_amt       := NULL; -- 5132302
27354 l_entered_amt_idx            := NULL;          -- 4262811
27355 l_accted_amt_idx             := NULL;          -- 4262811
27356 l_acc_rev_flag               := NULL;          -- 4262811
27357 l_accrual_line_num           := NULL;          -- 4262811
27358 l_tmp_amt                    := NULL;          -- 4262811
27359 --
27360  
27361 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
27362     l_balance_type_code <> 'B' THEN
27363 IF NVL(p_source_97,'
27364 ') =  'ALWAYS_CLEAR' AND 
27365 (NVL(p_source_113,'
27366 ') =  'Y' AND 
27367 NVL(p_source_15,'
27368 ') =  'BALANCING_SEGMENT') AND 
27369 p_source_114 IS NULL AND 
27370 NVL(p_source_98,'
27371 ') =  'CASH' AND 
27372 NVL(p_source_122,'
27373 ') <>  'R' AND 
27374 NVL(p_source_123,'
27375 ') <>  'PAYMENTCARD'
27376  THEN 
27377 
27378    --
27379    XLA_AE_LINES_PKG.SetNewLine;
27380 
27381    p_balance_type_code          := l_balance_type_code;
27382    -- set the flag so later we will know whether the gain loss line needs to be created
27383    
27384    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
27385      p_actual_flag :='A';
27386    END IF;
27387 
27388    --
27389    -- bulk performance
27390    --
27391    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
27392                                       p_header_num   => 0); -- 4262811
27393    --
27394    -- set accounting line options
27395    --
27396    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
27397            p_natural_side_code          => 'C'
27398          , p_gain_or_loss_flag          => 'N'
27399          , p_gl_transfer_mode_code      => 'S'
27400          , p_acct_entry_type_code       => 'A'
27401          , p_switch_side_flag           => 'Y'
27402          , p_merge_duplicate_code       => 'A'
27403          );
27404    --
27405    l_acc_rev_natural_side_code := 'D';  -- 4262811
27406    -- 
27407    --
27408    -- set accounting line type info
27409    --
27410    xla_ae_lines_pkg.SetAcctLineType
27411       (p_component_type             => l_component_type
27412       ,p_event_type_code            => l_event_type_code
27413       ,p_line_definition_owner_code => l_line_definition_owner_code
27414       ,p_line_definition_code       => l_line_definition_code
27415       ,p_accounting_line_code       => l_component_code
27416       ,p_accounting_line_type_code  => l_component_type_code
27417       ,p_accounting_line_appl_id    => l_component_appl_id
27418       ,p_amb_context_code           => l_amb_context_code
27419       ,p_entity_code                => l_entity_code
27420       ,p_event_class_code           => l_event_class_code);
27421    --
27422    -- set accounting class
27423    --
27424    xla_ae_lines_pkg.SetAcctClass(
27425            p_accounting_class_code  => 'CASH_CLEARING'
27426          , p_ae_header_id           => l_ae_header_id
27427          );
27428 
27429    --
27430    -- set rounding class
27431    --
27432    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
27433                       'CASH_CLEARING';
27434 
27435    --
27436    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
27437    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
27438    --
27439    -- bulk performance
27440    --
27441    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
27442 
27443    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
27444       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
27445 
27446    -- 4955764
27447    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27448       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
27449 
27450    -- 4458381 Public Sector Enh
27451    
27452    --
27453    -- set accounting attributes for the line type
27454    --
27455    l_entered_amt_idx := 10;
27456    l_accted_amt_idx  := 15;
27457    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
27458    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
27459    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
27460    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
27461    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
27462    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
27463    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
27464    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
27465    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
27466    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
27467    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
27468    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
27469    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
27470    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
27471    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
27472    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
27476    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
27473    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
27474    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
27475    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
27477    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
27478    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
27479    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
27480    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
27481    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
27482    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
27483    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
27484    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
27485    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
27486    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
27487    l_rec_acct_attrs.array_num_value(15)  := p_source_116;
27488    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
27489    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
27490    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
27491    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
27492    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
27493    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
27494    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
27495    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
27496    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
27497    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
27498    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
27499    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
27500    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
27501    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
27502    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
27503    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
27504    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
27505    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
27506 
27507    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
27508    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
27509 
27510    ---------------------------------------------------------------------------------------------------------------
27511    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
27512    ---------------------------------------------------------------------------------------------------------------
27513    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
27514 
27515    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27516    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27517 
27518    IF xla_accounting_cache_pkg.GetValueChar
27519          (p_source_code         => 'LEDGER_CATEGORY_CODE'
27520          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
27521    AND l_bflow_method_code = 'PRIOR_ENTRY'
27522 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
27523    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
27524          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
27525        )
27526    THEN
27527          xla_ae_lines_pkg.BflowUpgEntry
27528            (p_business_method_code    => l_bflow_method_code
27529            ,p_business_class_code     => l_bflow_class_code
27530            ,p_balance_type            => l_balance_type_code);
27531    ELSE
27532       NULL;
27533 XLA_AE_LINES_PKG.business_flow_validation(
27534                                 p_business_method_code     => l_bflow_method_code
27535                                ,p_business_class_code      => l_bflow_class_code
27536                                ,p_inherit_description_flag => l_inherit_desc_flag);
27537    END IF;
27538 
27539    --
27540    -- call analytical criteria
27541    --
27542    
27543    --
27544    -- call description
27545    --
27546    -- No description or it is inherited.
27547    --
27548    -- call ADRs
27549    -- Bug 4922099
27550    --
27551    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27552         (NVL(l_actual_upg_option, 'N') = 'O') OR
27553         (NVL(l_enc_upg_option, 'N') = 'O')
27554       )
27555    THEN
27556    NULL;
27557    --
27558    --
27559    
27560   l_ccid := AcctDerRule_36(
27561            p_application_id           => p_application_id
27562          , p_ae_header_id             => l_ae_header_id 
27563 , p_source_35 => p_source_35
27564          , x_transaction_coa_id       => l_adr_transaction_coa_id
27565          , x_accounting_coa_id        => l_adr_accounting_coa_id
27566          , x_value_type_code          => l_adr_value_type_code
27567          , p_side                     => 'NA'
27568    );
27569 
27570    xla_ae_lines_pkg.set_ccid(
27571     p_code_combination_id          => l_ccid
27572   , p_value_type_code              => l_adr_value_type_code
27573   , p_transaction_coa_id           => l_adr_transaction_coa_id
27574   , p_accounting_coa_id            => l_adr_accounting_coa_id
27575   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
27576   , p_adr_type_code                => 'S'
27580   , p_component_appl_id            => l_component_appl_id
27577   , p_component_type               => l_component_type
27578   , p_component_code               => l_component_code
27579   , p_component_type_code          => l_component_type_code
27581   , p_amb_context_code             => l_amb_context_code
27582   , p_side                         => 'NA'
27583   );
27584 
27585 
27586    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
27587      p_to_segment_code         => 'GL_BALANCING'
27588    , p_segment_value           => C_CHAR
27589    , p_from_segment_code       => NULL
27590    , p_from_combination_id     => NULL
27591    , p_value_type_code         => NULL
27592    , p_transaction_coa_id      => null
27593    , p_accounting_coa_id       => null
27594    , p_flexfield_segment_code  => NULL
27595    , p_flex_value_set_id       => NULL
27596    , p_adr_code                => NULL
27597    , p_adr_type_code           => NULL
27598    , p_component_type          => l_component_type
27599    , p_component_code          => l_component_code
27600    , p_component_type_code     => l_component_type_code
27601    , p_component_appl_id       => l_component_appl_id
27602    , p_amb_context_code        => l_amb_context_code
27603    , p_entity_code             => 'AP_PAYMENTS'
27604    , p_event_class_code        => 'PAYMENTS'
27605    , p_side                    => 'NA'
27606    );
27607    --
27608 
27609 
27610    --
27611    --
27612    END IF;
27613    --
27614    -- Bug 4922099
27615    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
27616           (NVL(l_enc_upg_option, 'N') = 'O')
27617         ) AND
27618         (l_bflow_method_code = 'PRIOR_ENTRY')
27619       )
27620    THEN
27621       IF
27622       --
27623       1 = 2
27624       --
27625       THEN
27626       xla_accounting_err_pkg.build_message
27627                                     (p_appli_s_name            => 'XLA'
27628                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27629                                     ,p_token_1                 => 'LINE_NUMBER'
27630                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
27631                                     ,p_token_2                 => 'LINE_TYPE_NAME'
27632                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
27633                                                                              l_component_type
27634                                                                             ,l_component_code
27635                                                                             ,l_component_type_code
27636                                                                             ,l_component_appl_id
27637                                                                             ,l_amb_context_code
27638                                                                             ,l_entity_code
27639                                                                             ,l_event_class_code
27640                                                                            )
27641                                     ,p_token_3                 => 'OWNER'
27642                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
27643                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
27644                                                                           ,p_lookup_code    => l_component_type_code
27645                                                                          )
27646                                     ,p_token_4                 => 'PRODUCT_NAME'
27647                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
27648                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
27649                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
27650                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
27651                                     ,p_ae_header_id            =>  NULL
27652                                        );
27653 
27654         IF (C_LEVEL_ERROR>= g_log_level) THEN
27655                  trace
27656                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27657                       ,p_level    => C_LEVEL_ERROR
27658                       ,p_module   => l_log_module);
27659         END IF;
27660       END IF;
27661    END IF;
27662    --
27663    --
27664    ------------------------------------------------------------------------------------------------
27665    -- 4219869 Business Flow
27666    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
27667    -- Prior Entry.  Currently, the following code is always generated.
27668    ------------------------------------------------------------------------------------------------
27669    XLA_AE_LINES_PKG.ValidateCurrentLine;
27670 
27671    ------------------------------------------------------------------------------------
27672    -- 4219869 Business Flow
27673    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
27674    ------------------------------------------------------------------------------------
27675    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27676 
27677    ----------------------------------------------------------------------------------
27681    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27678    -- 4219869 Business Flow
27679    -- Update journal entry status -- Need to generate this within IF <condition>
27680    ----------------------------------------------------------------------------------
27682          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
27683          ,p_balance_type_code => l_balance_type_code
27684          );
27685 
27686    -------------------------------------------------------------------------------------------
27687    -- 4262811 - Generate the Accrual Reversal lines
27688    -------------------------------------------------------------------------------------------
27689    BEGIN
27690       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
27691                               (g_array_event(p_event_id).array_value_num('header_index'));
27692       IF l_acc_rev_flag IS NULL THEN
27693          l_acc_rev_flag := 'N';
27694       END IF;
27695    EXCEPTION
27696       WHEN OTHERS THEN
27697          l_acc_rev_flag := 'N';
27698    END;
27699    --
27700    IF (l_acc_rev_flag = 'Y') THEN
27701 
27702        -- 4645092  ------------------------------------------------------------------------------
27703        -- To allow MPA report to determine if it should generate report process
27704        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
27705        ------------------------------------------------------------------------------------------
27706 
27707        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
27708        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
27709    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
27710    -- call ADRs
27711    -- Bug 4922099
27712    --
27713    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27714         (NVL(l_actual_upg_option, 'N') = 'O') OR
27715         (NVL(l_enc_upg_option, 'N') = 'O')
27716       )
27717    THEN
27718    NULL;
27719    --
27720    --
27721    
27722   l_ccid := AcctDerRule_36(
27723            p_application_id           => p_application_id
27724          , p_ae_header_id             => l_ae_header_id 
27725 , p_source_35 => p_source_35
27726          , x_transaction_coa_id       => l_adr_transaction_coa_id
27727          , x_accounting_coa_id        => l_adr_accounting_coa_id
27728          , x_value_type_code          => l_adr_value_type_code
27729          , p_side                     => 'NA'
27730    );
27731 
27732    xla_ae_lines_pkg.set_ccid(
27733     p_code_combination_id          => l_ccid
27734   , p_value_type_code              => l_adr_value_type_code
27735   , p_transaction_coa_id           => l_adr_transaction_coa_id
27736   , p_accounting_coa_id            => l_adr_accounting_coa_id
27737   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
27738   , p_adr_type_code                => 'S'
27739   , p_component_type               => l_component_type
27740   , p_component_code               => l_component_code
27741   , p_component_type_code          => l_component_type_code
27742   , p_component_appl_id            => l_component_appl_id
27743   , p_amb_context_code             => l_amb_context_code
27744   , p_side                         => 'NA'
27745   );
27746 
27747 
27748    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
27749      p_to_segment_code         => 'GL_BALANCING'
27750    , p_segment_value           => C_CHAR
27751    , p_from_segment_code       => NULL
27752    , p_from_combination_id     => NULL
27753    , p_value_type_code         => NULL
27754    , p_transaction_coa_id      => null
27755    , p_accounting_coa_id       => null
27756    , p_flexfield_segment_code  => NULL
27757    , p_flex_value_set_id       => NULL
27758    , p_adr_code                => NULL
27759    , p_adr_type_code           => NULL
27760    , p_component_type          => l_component_type
27761    , p_component_code          => l_component_code
27762    , p_component_type_code     => l_component_type_code
27763    , p_component_appl_id       => l_component_appl_id
27764    , p_amb_context_code        => l_amb_context_code
27765    , p_entity_code             => 'AP_PAYMENTS'
27766    , p_event_class_code        => 'PAYMENTS'
27767    , p_side                    => 'NA'
27768    );
27769    --
27770 
27771 
27772    --
27773    --
27774    END IF;
27775 
27776        --
27777        -- Update the line information that should be overwritten
27778        --
27779        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27780                                          p_header_num   => 1);
27781        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
27782 
27783        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27784 
27785        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
27786           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27787        END IF;
27788 
27789       --
27790       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27791       --
27792       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27793           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
27794       ELSE
27798           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
27795           ---------------------------------------------------------------------------------------------------
27796           -- 4262811a Switch Sign
27797           ---------------------------------------------------------------------------------------------------
27799           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27800                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27801           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27802                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27803           -- 5132302
27804           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27805                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27806 
27807       END IF;
27808 
27809       -- 4955764
27810       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27811       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27812 
27813 
27814       XLA_AE_LINES_PKG.ValidateCurrentLine;
27815       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27816 
27817       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27818                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27819                ,p_balance_type_code => l_balance_type_code);
27820 
27821    END IF;
27822 
27823    -----------------------------------------------------------------------------------------
27824    -- 4262811 Multiperiod Accounting
27825    -----------------------------------------------------------------------------------------
27826      -- No MPA option is assigned.
27827 
27828 
27829 END IF;
27830 END IF;
27831 --
27832 
27833 --
27834 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27835    trace
27836       (p_msg      => 'END of AcctLineType_73'
27837       ,p_level    => C_LEVEL_PROCEDURE
27838       ,p_module   => l_log_module);
27839 END IF;
27840 --
27841 EXCEPTION
27842   WHEN xla_exceptions_pkg.application_exception THEN
27843       RAISE;
27844   WHEN OTHERS THEN
27845        xla_exceptions_pkg.raise_message
27846            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_73');
27847 END AcctLineType_73;
27848 --
27849 
27850 ---------------------------------------
27851 --
27852 -- PRIVATE FUNCTION
27853 --         AcctLineType_74
27854 --
27855 ---------------------------------------
27856 PROCEDURE AcctLineType_74 (
27857   p_application_id        IN NUMBER
27858  ,p_event_id              IN NUMBER
27859  ,p_calculate_acctd_flag  IN VARCHAR2
27860  ,p_calculate_g_l_flag    IN VARCHAR2
27861  ,p_actual_flag           IN OUT VARCHAR2
27862  ,p_balance_type_code     OUT VARCHAR2
27863  ,p_gain_or_loss_ref      OUT VARCHAR2
27864  
27865 --Payment Currency Code
27866  , p_source_13            IN VARCHAR2
27867 --Bank Cash Clearing Account
27868  , p_source_35            IN NUMBER
27869 --Automatic Offsets Flag
27870  , p_source_47            IN VARCHAR2
27871  , p_source_47_meaning    IN VARCHAR2
27872 --Accounting Reversal Indicator
27873  , p_source_53            IN VARCHAR2
27874 --Distribution Link Type
27875  , p_source_55            IN VARCHAR2
27876 --Override Accounted Amount Indicator
27877  , p_source_80            IN VARCHAR2
27878  , p_source_80_meaning    IN VARCHAR2
27879 --Third Party Type
27880  , p_source_83            IN VARCHAR2
27881 --Invoice Distribution Tax Line Identifier
27882  , p_source_86            IN NUMBER
27883 --Invoice Distribution Tax Distribution Identifier from Tax
27884  , p_source_87            IN NUMBER
27885 --Invoice Distribution Summary Tax Line Identifier
27886  , p_source_88            IN NUMBER
27887 --Business Flow Accounts Payable Application Identifier
27888  , p_source_91            IN NUMBER
27889 --Business Flow Invoice Distribution Type
27890  , p_source_92            IN VARCHAR2
27891 --Business Flow Invoice Entity Code
27892  , p_source_93            IN VARCHAR2
27893 --Business Flow Invoice Distribution Identifier
27894  , p_source_94            IN NUMBER
27895 --Business Flow Invoice Identifier
27896  , p_source_95            IN NUMBER
27897 --When to Account for Payment Option
27898  , p_source_97            IN VARCHAR2
27899 --Payment Distribution Type
27900  , p_source_98            IN VARCHAR2
27901  , p_source_98_meaning    IN VARCHAR2
27902 --Payment Distribution Amount
27903  , p_source_99            IN NUMBER
27904 --Payment Distribution Identifier
27905  , p_source_104            IN NUMBER
27906 --Payment Supplier Identifier
27907  , p_source_110            IN NUMBER
27908 --Payment Supplier Site Identifier
27909  , p_source_111            IN NUMBER
27910 --Payment Distribution Reversed Identifier
27911  , p_source_112            IN NUMBER
27912 --Pooled Bank Account Option
27913  , p_source_113            IN VARCHAR2
27914  , p_source_113_meaning    IN VARCHAR2
27915 --Payment Maturity Date
27916  , p_source_114            IN DATE
27917 --Payment Distribution (Invoice Rate) Ledger Amount
27918  , p_source_116            IN NUMBER
27919 --Payment Exchange Date
27923 --Payment Exchange Rate Type
27920  , p_source_117            IN DATE
27921 --Payment Exchange Rate
27922  , p_source_118            IN NUMBER
27924  , p_source_119            IN VARCHAR2
27925 --Payment Type
27926  , p_source_122            IN VARCHAR2
27927  , p_source_122_meaning    IN VARCHAR2
27928 --Payment Processing Type
27929  , p_source_123            IN VARCHAR2
27930 --Invoice Distribution Amount of the Payment Distribution
27931  , p_source_124            IN NUMBER
27932 )
27933 IS
27934 
27935 l_component_type              VARCHAR2(80);
27936 l_component_code              VARCHAR2(30);
27937 l_component_type_code         VARCHAR2(1);
27938 l_component_appl_id           INTEGER;
27939 l_amb_context_code            VARCHAR2(30);
27940 l_entity_code                 VARCHAR2(30);
27941 l_event_class_code            VARCHAR2(30);
27942 l_ae_header_id                NUMBER;
27943 l_event_type_code             VARCHAR2(30);
27944 l_line_definition_code        VARCHAR2(30);
27945 l_line_definition_owner_code  VARCHAR2(1);
27946 --
27947 -- adr variables
27948 l_segment                     VARCHAR2(30);
27949 l_ccid                        NUMBER;
27950 l_adr_transaction_coa_id      NUMBER;
27951 l_adr_accounting_coa_id       NUMBER;
27952 l_adr_flexfield_segment_code  VARCHAR2(30);
27953 l_adr_flex_value_set_id       NUMBER;
27954 l_adr_value_type_code         VARCHAR2(30);
27955 l_adr_value_combination_id    NUMBER;
27956 l_adr_value_segment_code      VARCHAR2(30);
27957 
27958 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
27959 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
27960 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
27961 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
27962 
27963 -- 4262811 Variables ------------------------------------------------------------------------------------------
27964 l_entered_amt_idx             NUMBER;
27965 l_accted_amt_idx              NUMBER;
27966 l_acc_rev_flag                VARCHAR2(1);
27967 l_accrual_line_num            NUMBER;
27968 l_tmp_amt                     NUMBER;
27969 l_acc_rev_natural_side_code   VARCHAR2(1);
27970 
27971 l_num_entries                 NUMBER;
27972 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
27973 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
27974 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
27975 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
27976 l_recog_line_1                NUMBER;
27977 l_recog_line_2                NUMBER;
27978 
27979 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
27980 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
27981 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
27982 
27983 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
27984 
27985 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
27986 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
27987 
27988 ---------------------------------------------------------------------------------------------------------------
27989 
27990 
27991 --
27992 -- bulk performance
27993 --
27994 l_balance_type_code           VARCHAR2(1);
27995 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
27996 l_log_module                  VARCHAR2(240);
27997 
27998 --
27999 -- Upgrade strategy
28000 --
28001 l_actual_upg_option           VARCHAR2(1);
28002 l_enc_upg_option           VARCHAR2(1);
28003 
28004 --
28005 BEGIN
28006 --
28007 IF g_log_enabled THEN
28008       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_74';
28009 END IF;
28010 --
28011 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28012 
28013       trace
28014          (p_msg      => 'BEGIN of AcctLineType_74'
28015          ,p_level    => C_LEVEL_PROCEDURE
28016          ,p_module   => l_log_module);
28017 
28018 END IF;
28019 --
28020 l_component_type             := 'AMB_JLT';
28021 l_component_code             := 'AP_CASH_CLEAR_PMT_INVXRATE';
28022 l_component_type_code        := 'S';
28023 l_component_appl_id          :=  200;
28024 l_amb_context_code           := 'DEFAULT';
28025 l_entity_code                := 'AP_PAYMENTS';
28026 l_event_class_code           := 'PAYMENTS';
28027 l_event_type_code            := 'PAYMENTS_ALL';
28028 l_line_definition_owner_code := 'S';
28029 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
28030 --
28031 l_balance_type_code          := 'A';
28032 l_segment                     := NULL;
28033 l_ccid                        := NULL;
28034 l_adr_transaction_coa_id      := NULL;
28035 l_adr_accounting_coa_id       := NULL;
28036 l_adr_flexfield_segment_code  := NULL;
28037 l_adr_flex_value_set_id       := NULL;
28038 l_adr_value_type_code         := NULL;
28039 l_adr_value_combination_id    := NULL;
28040 l_adr_value_segment_code      := NULL;
28041 
28042 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
28043 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
28044 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
28045 l_budgetary_control_flag     := 'N';
28046 
28047 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
28048 l_bflow_applied_to_amt       := NULL; -- 5132302
28049 l_entered_amt_idx            := NULL;          -- 4262811
28053 l_tmp_amt                    := NULL;          -- 4262811
28050 l_accted_amt_idx             := NULL;          -- 4262811
28051 l_acc_rev_flag               := NULL;          -- 4262811
28052 l_accrual_line_num           := NULL;          -- 4262811
28054 --
28055  
28056 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
28057     l_balance_type_code <> 'B' THEN
28058 IF NVL(p_source_97,'
28059 ') =  'ALWAYS_CLEAR' AND 
28060 (NVL(p_source_47,'
28061 ') <>  'Y' OR 
28062 NVL(p_source_47,'
28063 ') =  'Y' AND 
28064 NVL(p_source_113,'
28065 ') <>  'Y') AND 
28066 p_source_114 IS NULL AND 
28067 NVL(p_source_98,'
28068 ') =  'CASH' AND 
28069 NVL(p_source_122,'
28070 ') <>  'R' AND 
28071 NVL(p_source_123,'
28072 ') <>  'PAYMENTCARD'
28073  THEN 
28074 
28075    --
28076    XLA_AE_LINES_PKG.SetNewLine;
28077 
28078    p_balance_type_code          := l_balance_type_code;
28079    -- set the flag so later we will know whether the gain loss line needs to be created
28080    
28081    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
28082      p_actual_flag :='A';
28083    END IF;
28084 
28085    --
28086    -- bulk performance
28087    --
28088    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
28089                                       p_header_num   => 0); -- 4262811
28090    --
28091    -- set accounting line options
28092    --
28093    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
28094            p_natural_side_code          => 'C'
28095          , p_gain_or_loss_flag          => 'N'
28096          , p_gl_transfer_mode_code      => 'S'
28097          , p_acct_entry_type_code       => 'A'
28098          , p_switch_side_flag           => 'Y'
28099          , p_merge_duplicate_code       => 'A'
28100          );
28101    --
28102    l_acc_rev_natural_side_code := 'D';  -- 4262811
28103    -- 
28104    --
28105    -- set accounting line type info
28106    --
28107    xla_ae_lines_pkg.SetAcctLineType
28108       (p_component_type             => l_component_type
28109       ,p_event_type_code            => l_event_type_code
28110       ,p_line_definition_owner_code => l_line_definition_owner_code
28111       ,p_line_definition_code       => l_line_definition_code
28112       ,p_accounting_line_code       => l_component_code
28113       ,p_accounting_line_type_code  => l_component_type_code
28114       ,p_accounting_line_appl_id    => l_component_appl_id
28115       ,p_amb_context_code           => l_amb_context_code
28116       ,p_entity_code                => l_entity_code
28117       ,p_event_class_code           => l_event_class_code);
28118    --
28119    -- set accounting class
28120    --
28121    xla_ae_lines_pkg.SetAcctClass(
28122            p_accounting_class_code  => 'CASH_CLEARING'
28123          , p_ae_header_id           => l_ae_header_id
28124          );
28125 
28126    --
28127    -- set rounding class
28128    --
28129    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
28130                       'CASH_CLEARING';
28131 
28132    --
28133    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
28134    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
28135    --
28136    -- bulk performance
28137    --
28138    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
28139 
28140    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
28141       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
28142 
28143    -- 4955764
28144    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28145       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
28146 
28147    -- 4458381 Public Sector Enh
28148    
28149    --
28150    -- set accounting attributes for the line type
28151    --
28152    l_entered_amt_idx := 10;
28153    l_accted_amt_idx  := 15;
28154    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
28155    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
28156    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
28157    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
28158    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
28159    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
28160    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
28161    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
28162    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
28163    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
28164    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
28165    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
28166    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
28167    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
28168    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
28169    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
28170    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
28171    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
28172    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
28173    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
28177    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
28174    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
28175    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
28176    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
28178    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
28179    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
28180    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
28181    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
28182    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
28183    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
28184    l_rec_acct_attrs.array_num_value(15)  := p_source_116;
28185    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
28186    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
28187    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
28188    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
28189    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
28190    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
28191    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
28192    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
28193    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
28194    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
28195    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
28196    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
28197    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
28198    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
28199    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
28200    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
28201    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
28202    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
28203 
28204    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
28205    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
28206 
28207    ---------------------------------------------------------------------------------------------------------------
28208    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
28209    ---------------------------------------------------------------------------------------------------------------
28210    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
28211 
28212    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28213    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28214 
28215    IF xla_accounting_cache_pkg.GetValueChar
28216          (p_source_code         => 'LEDGER_CATEGORY_CODE'
28217          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
28218    AND l_bflow_method_code = 'PRIOR_ENTRY'
28219 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
28220    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
28221          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
28222        )
28223    THEN
28224          xla_ae_lines_pkg.BflowUpgEntry
28225            (p_business_method_code    => l_bflow_method_code
28226            ,p_business_class_code     => l_bflow_class_code
28227            ,p_balance_type            => l_balance_type_code);
28228    ELSE
28229       NULL;
28230 -- No business flow processing for business flow method of NONE.
28231    END IF;
28232 
28233    --
28234    -- call analytical criteria
28235    --
28236    
28237    --
28238    -- call description
28239    --
28240    -- No description or it is inherited.
28241    --
28242    -- call ADRs
28243    -- Bug 4922099
28244    --
28245    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28246         (NVL(l_actual_upg_option, 'N') = 'O') OR
28247         (NVL(l_enc_upg_option, 'N') = 'O')
28248       )
28249    THEN
28250    NULL;
28251    --
28252    --
28253    
28254   l_ccid := AcctDerRule_36(
28255            p_application_id           => p_application_id
28256          , p_ae_header_id             => l_ae_header_id 
28257 , p_source_35 => p_source_35
28258          , x_transaction_coa_id       => l_adr_transaction_coa_id
28259          , x_accounting_coa_id        => l_adr_accounting_coa_id
28260          , x_value_type_code          => l_adr_value_type_code
28261          , p_side                     => 'NA'
28262    );
28263 
28264    xla_ae_lines_pkg.set_ccid(
28265     p_code_combination_id          => l_ccid
28266   , p_value_type_code              => l_adr_value_type_code
28267   , p_transaction_coa_id           => l_adr_transaction_coa_id
28268   , p_accounting_coa_id            => l_adr_accounting_coa_id
28269   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
28270   , p_adr_type_code                => 'S'
28271   , p_component_type               => l_component_type
28272   , p_component_code               => l_component_code
28273   , p_component_type_code          => l_component_type_code
28274   , p_component_appl_id            => l_component_appl_id
28275   , p_amb_context_code             => l_amb_context_code
28276   , p_side                         => 'NA'
28277   );
28278 
28279 
28280    --
28281    --
28282    END IF;
28283    --
28287         ) AND
28284    -- Bug 4922099
28285    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
28286           (NVL(l_enc_upg_option, 'N') = 'O')
28288         (l_bflow_method_code = 'PRIOR_ENTRY')
28289       )
28290    THEN
28291       IF
28292       --
28293       1 = 2
28294       --
28295       THEN
28296       xla_accounting_err_pkg.build_message
28297                                     (p_appli_s_name            => 'XLA'
28298                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28299                                     ,p_token_1                 => 'LINE_NUMBER'
28300                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
28301                                     ,p_token_2                 => 'LINE_TYPE_NAME'
28302                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
28303                                                                              l_component_type
28304                                                                             ,l_component_code
28305                                                                             ,l_component_type_code
28306                                                                             ,l_component_appl_id
28307                                                                             ,l_amb_context_code
28308                                                                             ,l_entity_code
28309                                                                             ,l_event_class_code
28310                                                                            )
28311                                     ,p_token_3                 => 'OWNER'
28312                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
28313                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
28314                                                                           ,p_lookup_code    => l_component_type_code
28315                                                                          )
28316                                     ,p_token_4                 => 'PRODUCT_NAME'
28317                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
28318                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
28319                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
28320                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
28321                                     ,p_ae_header_id            =>  NULL
28322                                        );
28323 
28324         IF (C_LEVEL_ERROR>= g_log_level) THEN
28325                  trace
28326                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28327                       ,p_level    => C_LEVEL_ERROR
28328                       ,p_module   => l_log_module);
28329         END IF;
28330       END IF;
28331    END IF;
28332    --
28333    --
28334    ------------------------------------------------------------------------------------------------
28335    -- 4219869 Business Flow
28336    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
28337    -- Prior Entry.  Currently, the following code is always generated.
28338    ------------------------------------------------------------------------------------------------
28339    XLA_AE_LINES_PKG.ValidateCurrentLine;
28340 
28341    ------------------------------------------------------------------------------------
28342    -- 4219869 Business Flow
28343    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
28344    ------------------------------------------------------------------------------------
28345    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28346 
28347    ----------------------------------------------------------------------------------
28348    -- 4219869 Business Flow
28349    -- Update journal entry status -- Need to generate this within IF <condition>
28350    ----------------------------------------------------------------------------------
28351    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28352          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
28353          ,p_balance_type_code => l_balance_type_code
28354          );
28355 
28356    -------------------------------------------------------------------------------------------
28357    -- 4262811 - Generate the Accrual Reversal lines
28358    -------------------------------------------------------------------------------------------
28359    BEGIN
28360       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
28361                               (g_array_event(p_event_id).array_value_num('header_index'));
28362       IF l_acc_rev_flag IS NULL THEN
28363          l_acc_rev_flag := 'N';
28364       END IF;
28365    EXCEPTION
28366       WHEN OTHERS THEN
28367          l_acc_rev_flag := 'N';
28368    END;
28369    --
28370    IF (l_acc_rev_flag = 'Y') THEN
28371 
28372        -- 4645092  ------------------------------------------------------------------------------
28373        -- To allow MPA report to determine if it should generate report process
28374        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
28375        ------------------------------------------------------------------------------------------
28376 
28377        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
28378        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
28382    --
28379    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
28380    -- call ADRs
28381    -- Bug 4922099
28383    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28384         (NVL(l_actual_upg_option, 'N') = 'O') OR
28385         (NVL(l_enc_upg_option, 'N') = 'O')
28386       )
28387    THEN
28388    NULL;
28389    --
28390    --
28391    
28392   l_ccid := AcctDerRule_36(
28393            p_application_id           => p_application_id
28394          , p_ae_header_id             => l_ae_header_id 
28395 , p_source_35 => p_source_35
28396          , x_transaction_coa_id       => l_adr_transaction_coa_id
28397          , x_accounting_coa_id        => l_adr_accounting_coa_id
28398          , x_value_type_code          => l_adr_value_type_code
28399          , p_side                     => 'NA'
28400    );
28401 
28402    xla_ae_lines_pkg.set_ccid(
28403     p_code_combination_id          => l_ccid
28404   , p_value_type_code              => l_adr_value_type_code
28405   , p_transaction_coa_id           => l_adr_transaction_coa_id
28406   , p_accounting_coa_id            => l_adr_accounting_coa_id
28407   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
28408   , p_adr_type_code                => 'S'
28409   , p_component_type               => l_component_type
28410   , p_component_code               => l_component_code
28411   , p_component_type_code          => l_component_type_code
28412   , p_component_appl_id            => l_component_appl_id
28413   , p_amb_context_code             => l_amb_context_code
28414   , p_side                         => 'NA'
28415   );
28416 
28417 
28418    --
28419    --
28420    END IF;
28421 
28422        --
28423        -- Update the line information that should be overwritten
28424        --
28425        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
28426                                          p_header_num   => 1);
28427        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
28428 
28429        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
28430 
28431        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
28432           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
28433        END IF;
28434 
28435       --
28436       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
28437       --
28438       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
28439           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
28440       ELSE
28441           ---------------------------------------------------------------------------------------------------
28442           -- 4262811a Switch Sign
28443           ---------------------------------------------------------------------------------------------------
28444           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
28445           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28446                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28447           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28448                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28449           -- 5132302
28450           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
28451                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28452 
28453       END IF;
28454 
28455       -- 4955764
28456       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28457       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
28458 
28459 
28460       XLA_AE_LINES_PKG.ValidateCurrentLine;
28461       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28462 
28463       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28464                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
28465                ,p_balance_type_code => l_balance_type_code);
28466 
28467    END IF;
28468 
28469    -----------------------------------------------------------------------------------------
28470    -- 4262811 Multiperiod Accounting
28471    -----------------------------------------------------------------------------------------
28472      -- No MPA option is assigned.
28473 
28474 
28475 END IF;
28476 END IF;
28477 --
28478 
28479 --
28480 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28481    trace
28482       (p_msg      => 'END of AcctLineType_74'
28483       ,p_level    => C_LEVEL_PROCEDURE
28484       ,p_module   => l_log_module);
28485 END IF;
28486 --
28487 EXCEPTION
28488   WHEN xla_exceptions_pkg.application_exception THEN
28489       RAISE;
28490   WHEN OTHERS THEN
28491        xla_exceptions_pkg.raise_message
28492            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_74');
28493 END AcctLineType_74;
28494 --
28495 
28496 ---------------------------------------
28497 --
28498 -- PRIVATE FUNCTION
28499 --         AcctLineType_75
28500 --
28504  ,p_event_id              IN NUMBER
28501 ---------------------------------------
28502 PROCEDURE AcctLineType_75 (
28503   p_application_id        IN NUMBER
28505  ,p_calculate_acctd_flag  IN VARCHAR2
28506  ,p_calculate_g_l_flag    IN VARCHAR2
28507  ,p_actual_flag           IN OUT VARCHAR2
28508  ,p_balance_type_code     OUT VARCHAR2
28509  ,p_gain_or_loss_ref      OUT VARCHAR2
28510  
28511 --Payment Currency Code
28512  , p_source_13            IN VARCHAR2
28513 --Bank Cash Clearing Account
28514  , p_source_35            IN NUMBER
28515 --Automatic Offsets Flag
28516  , p_source_47            IN VARCHAR2
28517  , p_source_47_meaning    IN VARCHAR2
28518 --Accounting Reversal Indicator
28519  , p_source_53            IN VARCHAR2
28520 --Distribution Link Type
28521  , p_source_55            IN VARCHAR2
28522 --Override Accounted Amount Indicator
28523  , p_source_80            IN VARCHAR2
28524  , p_source_80_meaning    IN VARCHAR2
28525 --Third Party Type
28526  , p_source_83            IN VARCHAR2
28527 --Business Flow Accounts Payable Application Identifier
28528  , p_source_91            IN NUMBER
28529 --When to Account for Payment Option
28530  , p_source_97            IN VARCHAR2
28531 --Payment Distribution Type
28532  , p_source_98            IN VARCHAR2
28533  , p_source_98_meaning    IN VARCHAR2
28534 --Payment Distribution Amount
28535  , p_source_99            IN NUMBER
28536 --Business Flow Payment Distribution Type
28537  , p_source_100            IN VARCHAR2
28538 --Business Flow Payment Entity Code
28539  , p_source_101            IN VARCHAR2
28540 --Business Flow Payment Distribution Identifier
28541  , p_source_102            IN NUMBER
28542 --Business Flow Payment Identifier
28543  , p_source_103            IN NUMBER
28544 --Payment Distribution Identifier
28545  , p_source_104            IN NUMBER
28546 --Payment Supplier Identifier
28547  , p_source_110            IN NUMBER
28548 --Payment Supplier Site Identifier
28549  , p_source_111            IN NUMBER
28550 --Payment Distribution Reversed Identifier
28551  , p_source_112            IN NUMBER
28552 --Pooled Bank Account Option
28553  , p_source_113            IN VARCHAR2
28554  , p_source_113_meaning    IN VARCHAR2
28555 --Payment Maturity Date
28556  , p_source_114            IN DATE
28557 --Payment Exchange Date
28558  , p_source_117            IN DATE
28559 --Payment Exchange Rate
28560  , p_source_118            IN NUMBER
28561 --Payment Exchange Rate Type
28562  , p_source_119            IN VARCHAR2
28563 --Payment Distribution (Matured Rate) Ledger Amount
28564  , p_source_121            IN NUMBER
28565 )
28566 IS
28567 
28568 l_component_type              VARCHAR2(80);
28569 l_component_code              VARCHAR2(30);
28570 l_component_type_code         VARCHAR2(1);
28571 l_component_appl_id           INTEGER;
28572 l_amb_context_code            VARCHAR2(30);
28573 l_entity_code                 VARCHAR2(30);
28574 l_event_class_code            VARCHAR2(30);
28575 l_ae_header_id                NUMBER;
28576 l_event_type_code             VARCHAR2(30);
28577 l_line_definition_code        VARCHAR2(30);
28578 l_line_definition_owner_code  VARCHAR2(1);
28579 --
28580 -- adr variables
28581 l_segment                     VARCHAR2(30);
28582 l_ccid                        NUMBER;
28583 l_adr_transaction_coa_id      NUMBER;
28584 l_adr_accounting_coa_id       NUMBER;
28585 l_adr_flexfield_segment_code  VARCHAR2(30);
28586 l_adr_flex_value_set_id       NUMBER;
28587 l_adr_value_type_code         VARCHAR2(30);
28588 l_adr_value_combination_id    NUMBER;
28589 l_adr_value_segment_code      VARCHAR2(30);
28590 
28591 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
28592 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
28593 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
28594 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
28595 
28596 -- 4262811 Variables ------------------------------------------------------------------------------------------
28597 l_entered_amt_idx             NUMBER;
28598 l_accted_amt_idx              NUMBER;
28599 l_acc_rev_flag                VARCHAR2(1);
28600 l_accrual_line_num            NUMBER;
28601 l_tmp_amt                     NUMBER;
28602 l_acc_rev_natural_side_code   VARCHAR2(1);
28603 
28604 l_num_entries                 NUMBER;
28605 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
28606 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
28607 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
28608 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
28609 l_recog_line_1                NUMBER;
28610 l_recog_line_2                NUMBER;
28611 
28612 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
28613 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
28614 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
28615 
28616 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
28617 
28618 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
28619 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
28620 
28621 ---------------------------------------------------------------------------------------------------------------
28622 
28623 
28624 --
28628 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
28625 -- bulk performance
28626 --
28627 l_balance_type_code           VARCHAR2(1);
28629 l_log_module                  VARCHAR2(240);
28630 
28631 --
28632 -- Upgrade strategy
28633 --
28634 l_actual_upg_option           VARCHAR2(1);
28635 l_enc_upg_option           VARCHAR2(1);
28636 
28637 --
28638 BEGIN
28639 --
28640 IF g_log_enabled THEN
28641       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_75';
28642 END IF;
28643 --
28644 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28645 
28646       trace
28647          (p_msg      => 'BEGIN of AcctLineType_75'
28648          ,p_level    => C_LEVEL_PROCEDURE
28649          ,p_module   => l_log_module);
28650 
28651 END IF;
28652 --
28653 l_component_type             := 'AMB_JLT';
28654 l_component_code             := 'AP_CASH_CLEAR_PMT_MAT';
28655 l_component_type_code        := 'S';
28656 l_component_appl_id          :=  200;
28657 l_amb_context_code           := 'DEFAULT';
28658 l_entity_code                := 'AP_PAYMENTS';
28659 l_event_class_code           := 'FUTURE DATED PAYMENTS';
28660 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
28661 l_line_definition_owner_code := 'S';
28662 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
28663 --
28664 l_balance_type_code          := 'A';
28665 l_segment                     := NULL;
28666 l_ccid                        := NULL;
28667 l_adr_transaction_coa_id      := NULL;
28668 l_adr_accounting_coa_id       := NULL;
28669 l_adr_flexfield_segment_code  := NULL;
28670 l_adr_flex_value_set_id       := NULL;
28671 l_adr_value_type_code         := NULL;
28672 l_adr_value_combination_id    := NULL;
28673 l_adr_value_segment_code      := NULL;
28674 
28675 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
28676 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
28677 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
28678 l_budgetary_control_flag     := 'N';
28679 
28680 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
28681 l_bflow_applied_to_amt       := NULL; -- 5132302
28682 l_entered_amt_idx            := NULL;          -- 4262811
28683 l_accted_amt_idx             := NULL;          -- 4262811
28684 l_acc_rev_flag               := NULL;          -- 4262811
28685 l_accrual_line_num           := NULL;          -- 4262811
28686 l_tmp_amt                    := NULL;          -- 4262811
28687 --
28688  
28689 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
28690     l_balance_type_code <> 'B' THEN
28691 IF (NVL(p_source_97,'
28692 ') =  'ALWAYS_ALWAYS' OR 
28693 NVL(p_source_97,'
28694 ') =  'ALWAYS_ISSUE') AND 
28695 (NVL(p_source_47,'
28696 ') <>  'Y' OR 
28697 NVL(p_source_47,'
28698 ') =  'Y' AND 
28699 NVL(p_source_113,'
28700 ') <>  'Y') AND 
28701 p_source_114 IS NOT NULL AND 
28702 NVL(p_source_98,'
28703 ') =  'CASH'
28704  THEN 
28705 
28706    --
28707    XLA_AE_LINES_PKG.SetNewLine;
28708 
28709    p_balance_type_code          := l_balance_type_code;
28710    -- set the flag so later we will know whether the gain loss line needs to be created
28711    
28712    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
28713      p_actual_flag :='A';
28714    END IF;
28715 
28716    --
28717    -- bulk performance
28718    --
28719    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
28720                                       p_header_num   => 0); -- 4262811
28721    --
28722    -- set accounting line options
28723    --
28724    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
28725            p_natural_side_code          => 'C'
28726          , p_gain_or_loss_flag          => 'N'
28727          , p_gl_transfer_mode_code      => 'S'
28728          , p_acct_entry_type_code       => 'A'
28729          , p_switch_side_flag           => 'Y'
28730          , p_merge_duplicate_code       => 'A'
28731          );
28732    --
28733    l_acc_rev_natural_side_code := 'D';  -- 4262811
28734    -- 
28735    --
28736    -- set accounting line type info
28737    --
28738    xla_ae_lines_pkg.SetAcctLineType
28739       (p_component_type             => l_component_type
28740       ,p_event_type_code            => l_event_type_code
28741       ,p_line_definition_owner_code => l_line_definition_owner_code
28742       ,p_line_definition_code       => l_line_definition_code
28743       ,p_accounting_line_code       => l_component_code
28744       ,p_accounting_line_type_code  => l_component_type_code
28745       ,p_accounting_line_appl_id    => l_component_appl_id
28746       ,p_amb_context_code           => l_amb_context_code
28747       ,p_entity_code                => l_entity_code
28748       ,p_event_class_code           => l_event_class_code);
28749    --
28750    -- set accounting class
28751    --
28752    xla_ae_lines_pkg.SetAcctClass(
28753            p_accounting_class_code  => 'CASH_CLEARING'
28754          , p_ae_header_id           => l_ae_header_id
28755          );
28756 
28757    --
28758    -- set rounding class
28759    --
28760    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
28761                       'CASH_CLEARING';
28762 
28763    --
28767    -- bulk performance
28764    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
28765    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
28766    --
28768    --
28769    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
28770 
28771    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
28772       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
28773 
28774    -- 4955764
28775    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28776       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
28777 
28778    -- 4458381 Public Sector Enh
28779    
28780    --
28781    -- set accounting attributes for the line type
28782    --
28783    l_entered_amt_idx := 9;
28784    l_accted_amt_idx  := 14;
28785    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
28786    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
28787    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
28788    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
28789    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
28790    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
28791    l_rec_acct_attrs.array_char_value(3)  := p_source_100;
28792    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
28793    l_rec_acct_attrs.array_char_value(4)  := p_source_101;
28794    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
28795    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_102);
28796    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
28797    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_103);
28798    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
28799    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
28800    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
28801    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
28802    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
28803    l_rec_acct_attrs.array_num_value(9)  := p_source_99;
28804    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
28805    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
28806    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
28807    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
28808    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
28809    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
28810    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
28811    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
28812    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
28813    l_rec_acct_attrs.array_num_value(14)  := p_source_121;
28814    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
28815    l_rec_acct_attrs.array_char_value(15)  := p_source_80;
28816    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
28817    l_rec_acct_attrs.array_num_value(16)  := p_source_110;
28818    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
28819    l_rec_acct_attrs.array_num_value(17)  := p_source_111;
28820    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
28821    l_rec_acct_attrs.array_char_value(18)  := p_source_83;
28822    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
28823    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_112);
28824    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
28825    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
28826 
28827    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
28828    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
28829 
28830    ---------------------------------------------------------------------------------------------------------------
28831    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
28832    ---------------------------------------------------------------------------------------------------------------
28833    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
28834 
28835    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28836    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28837 
28838    IF xla_accounting_cache_pkg.GetValueChar
28839          (p_source_code         => 'LEDGER_CATEGORY_CODE'
28840          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
28841    AND l_bflow_method_code = 'PRIOR_ENTRY'
28842 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
28843    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
28844          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
28845        )
28846    THEN
28847          xla_ae_lines_pkg.BflowUpgEntry
28848            (p_business_method_code    => l_bflow_method_code
28849            ,p_business_class_code     => l_bflow_class_code
28850            ,p_balance_type            => l_balance_type_code);
28851    ELSE
28852       NULL;
28853 -- No business flow processing for business flow method of NONE.
28854    END IF;
28855 
28856    --
28857    -- call analytical criteria
28858    --
28859    
28860    --
28861    -- call description
28865    -- call ADRs
28862    --
28863    -- No description or it is inherited.
28864    --
28866    -- Bug 4922099
28867    --
28868    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28869         (NVL(l_actual_upg_option, 'N') = 'O') OR
28870         (NVL(l_enc_upg_option, 'N') = 'O')
28871       )
28872    THEN
28873    NULL;
28874    --
28875    --
28876    
28877   l_ccid := AcctDerRule_36(
28878            p_application_id           => p_application_id
28879          , p_ae_header_id             => l_ae_header_id 
28880 , p_source_35 => p_source_35
28881          , x_transaction_coa_id       => l_adr_transaction_coa_id
28882          , x_accounting_coa_id        => l_adr_accounting_coa_id
28883          , x_value_type_code          => l_adr_value_type_code
28884          , p_side                     => 'NA'
28885    );
28886 
28887    xla_ae_lines_pkg.set_ccid(
28888     p_code_combination_id          => l_ccid
28889   , p_value_type_code              => l_adr_value_type_code
28890   , p_transaction_coa_id           => l_adr_transaction_coa_id
28891   , p_accounting_coa_id            => l_adr_accounting_coa_id
28892   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
28893   , p_adr_type_code                => 'S'
28894   , p_component_type               => l_component_type
28895   , p_component_code               => l_component_code
28896   , p_component_type_code          => l_component_type_code
28897   , p_component_appl_id            => l_component_appl_id
28898   , p_amb_context_code             => l_amb_context_code
28899   , p_side                         => 'NA'
28900   );
28901 
28902 
28903    --
28904    --
28905    END IF;
28906    --
28907    -- Bug 4922099
28908    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
28909           (NVL(l_enc_upg_option, 'N') = 'O')
28910         ) AND
28911         (l_bflow_method_code = 'PRIOR_ENTRY')
28912       )
28913    THEN
28914       IF
28915       --
28916       1 = 2
28917       --
28918       THEN
28919       xla_accounting_err_pkg.build_message
28920                                     (p_appli_s_name            => 'XLA'
28921                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28922                                     ,p_token_1                 => 'LINE_NUMBER'
28923                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
28924                                     ,p_token_2                 => 'LINE_TYPE_NAME'
28925                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
28926                                                                              l_component_type
28927                                                                             ,l_component_code
28928                                                                             ,l_component_type_code
28929                                                                             ,l_component_appl_id
28930                                                                             ,l_amb_context_code
28931                                                                             ,l_entity_code
28932                                                                             ,l_event_class_code
28933                                                                            )
28934                                     ,p_token_3                 => 'OWNER'
28935                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
28936                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
28937                                                                           ,p_lookup_code    => l_component_type_code
28938                                                                          )
28939                                     ,p_token_4                 => 'PRODUCT_NAME'
28940                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
28941                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
28942                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
28943                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
28944                                     ,p_ae_header_id            =>  NULL
28945                                        );
28946 
28947         IF (C_LEVEL_ERROR>= g_log_level) THEN
28948                  trace
28949                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28950                       ,p_level    => C_LEVEL_ERROR
28951                       ,p_module   => l_log_module);
28952         END IF;
28953       END IF;
28954    END IF;
28955    --
28956    --
28957    ------------------------------------------------------------------------------------------------
28958    -- 4219869 Business Flow
28959    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
28960    -- Prior Entry.  Currently, the following code is always generated.
28961    ------------------------------------------------------------------------------------------------
28962    XLA_AE_LINES_PKG.ValidateCurrentLine;
28963 
28964    ------------------------------------------------------------------------------------
28965    -- 4219869 Business Flow
28966    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
28970    ----------------------------------------------------------------------------------
28967    ------------------------------------------------------------------------------------
28968    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28969 
28971    -- 4219869 Business Flow
28972    -- Update journal entry status -- Need to generate this within IF <condition>
28973    ----------------------------------------------------------------------------------
28974    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28975          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
28976          ,p_balance_type_code => l_balance_type_code
28977          );
28978 
28979    -------------------------------------------------------------------------------------------
28980    -- 4262811 - Generate the Accrual Reversal lines
28981    -------------------------------------------------------------------------------------------
28982    BEGIN
28983       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
28984                               (g_array_event(p_event_id).array_value_num('header_index'));
28985       IF l_acc_rev_flag IS NULL THEN
28986          l_acc_rev_flag := 'N';
28987       END IF;
28988    EXCEPTION
28989       WHEN OTHERS THEN
28990          l_acc_rev_flag := 'N';
28991    END;
28992    --
28993    IF (l_acc_rev_flag = 'Y') THEN
28994 
28995        -- 4645092  ------------------------------------------------------------------------------
28996        -- To allow MPA report to determine if it should generate report process
28997        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
28998        ------------------------------------------------------------------------------------------
28999 
29000        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
29001        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
29002    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
29003    -- call ADRs
29004    -- Bug 4922099
29005    --
29006    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29007         (NVL(l_actual_upg_option, 'N') = 'O') OR
29008         (NVL(l_enc_upg_option, 'N') = 'O')
29009       )
29010    THEN
29011    NULL;
29012    --
29013    --
29014    
29015   l_ccid := AcctDerRule_36(
29016            p_application_id           => p_application_id
29017          , p_ae_header_id             => l_ae_header_id 
29018 , p_source_35 => p_source_35
29019          , x_transaction_coa_id       => l_adr_transaction_coa_id
29020          , x_accounting_coa_id        => l_adr_accounting_coa_id
29021          , x_value_type_code          => l_adr_value_type_code
29022          , p_side                     => 'NA'
29023    );
29024 
29025    xla_ae_lines_pkg.set_ccid(
29026     p_code_combination_id          => l_ccid
29027   , p_value_type_code              => l_adr_value_type_code
29028   , p_transaction_coa_id           => l_adr_transaction_coa_id
29029   , p_accounting_coa_id            => l_adr_accounting_coa_id
29030   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
29031   , p_adr_type_code                => 'S'
29032   , p_component_type               => l_component_type
29033   , p_component_code               => l_component_code
29034   , p_component_type_code          => l_component_type_code
29035   , p_component_appl_id            => l_component_appl_id
29036   , p_amb_context_code             => l_amb_context_code
29037   , p_side                         => 'NA'
29038   );
29039 
29040 
29041    --
29042    --
29043    END IF;
29044 
29045        --
29046        -- Update the line information that should be overwritten
29047        --
29048        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
29049                                          p_header_num   => 1);
29050        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
29051 
29052        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
29053 
29054        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
29055           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
29056        END IF;
29057 
29058       --
29059       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
29060       --
29061       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
29062           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
29063       ELSE
29064           ---------------------------------------------------------------------------------------------------
29065           -- 4262811a Switch Sign
29066           ---------------------------------------------------------------------------------------------------
29067           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
29068           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29069                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29070           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29071                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29072           -- 5132302
29073           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
29077 
29074                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29075 
29076       END IF;
29078       -- 4955764
29079       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29080       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
29081 
29082 
29083       XLA_AE_LINES_PKG.ValidateCurrentLine;
29084       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29085 
29086       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29087                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
29088                ,p_balance_type_code => l_balance_type_code);
29089 
29090    END IF;
29091 
29092    -----------------------------------------------------------------------------------------
29093    -- 4262811 Multiperiod Accounting
29094    -----------------------------------------------------------------------------------------
29095      -- No MPA option is assigned.
29096 
29097 
29098 END IF;
29099 END IF;
29100 --
29101 
29102 --
29103 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29104    trace
29105       (p_msg      => 'END of AcctLineType_75'
29106       ,p_level    => C_LEVEL_PROCEDURE
29107       ,p_module   => l_log_module);
29108 END IF;
29109 --
29110 EXCEPTION
29111   WHEN xla_exceptions_pkg.application_exception THEN
29112       RAISE;
29113   WHEN OTHERS THEN
29114        xla_exceptions_pkg.raise_message
29115            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_75');
29116 END AcctLineType_75;
29117 --
29118 
29119 ---------------------------------------
29120 --
29121 -- PRIVATE FUNCTION
29122 --         AcctLineType_76
29123 --
29124 ---------------------------------------
29125 PROCEDURE AcctLineType_76 (
29126   p_application_id        IN NUMBER
29127  ,p_event_id              IN NUMBER
29128  ,p_calculate_acctd_flag  IN VARCHAR2
29129  ,p_calculate_g_l_flag    IN VARCHAR2
29130  ,p_actual_flag           IN OUT VARCHAR2
29131  ,p_balance_type_code     OUT VARCHAR2
29132  ,p_gain_or_loss_ref      OUT VARCHAR2
29133  
29134 --Payment Currency Code
29135  , p_source_13            IN VARCHAR2
29136 --Automatic Offsets Value
29137  , p_source_15            IN VARCHAR2
29138  , p_source_15_meaning    IN VARCHAR2
29139 --Bank Cash Clearing Account
29140  , p_source_35            IN NUMBER
29141 --Accounting Reversal Indicator
29142  , p_source_53            IN VARCHAR2
29143 --Distribution Link Type
29144  , p_source_55            IN VARCHAR2
29145 --Override Accounted Amount Indicator
29146  , p_source_80            IN VARCHAR2
29147  , p_source_80_meaning    IN VARCHAR2
29148 --Third Party Type
29149  , p_source_83            IN VARCHAR2
29150 --Business Flow Accounts Payable Application Identifier
29151  , p_source_91            IN NUMBER
29152 --When to Account for Payment Option
29153  , p_source_97            IN VARCHAR2
29154 --Payment Distribution Type
29155  , p_source_98            IN VARCHAR2
29156  , p_source_98_meaning    IN VARCHAR2
29157 --Payment Distribution Amount
29158  , p_source_99            IN NUMBER
29159 --Business Flow Payment Distribution Type
29160  , p_source_100            IN VARCHAR2
29161 --Business Flow Payment Entity Code
29162  , p_source_101            IN VARCHAR2
29163 --Business Flow Payment Distribution Identifier
29164  , p_source_102            IN NUMBER
29165 --Business Flow Payment Identifier
29166  , p_source_103            IN NUMBER
29167 --Payment Distribution Identifier
29168  , p_source_104            IN NUMBER
29169 --Payment Supplier Identifier
29170  , p_source_110            IN NUMBER
29171 --Payment Supplier Site Identifier
29172  , p_source_111            IN NUMBER
29173 --Payment Distribution Reversed Identifier
29174  , p_source_112            IN NUMBER
29175 --Pooled Bank Account Option
29176  , p_source_113            IN VARCHAR2
29177  , p_source_113_meaning    IN VARCHAR2
29178 --Payment Maturity Date
29179  , p_source_114            IN DATE
29180 --Payment Exchange Date
29181  , p_source_117            IN DATE
29182 --Payment Exchange Rate
29183  , p_source_118            IN NUMBER
29184 --Payment Exchange Rate Type
29185  , p_source_119            IN VARCHAR2
29186 --Payment Distribution (Matured Rate) Ledger Amount
29187  , p_source_121            IN NUMBER
29188 )
29189 IS
29190 
29191 l_component_type              VARCHAR2(80);
29192 l_component_code              VARCHAR2(30);
29193 l_component_type_code         VARCHAR2(1);
29194 l_component_appl_id           INTEGER;
29195 l_amb_context_code            VARCHAR2(30);
29196 l_entity_code                 VARCHAR2(30);
29197 l_event_class_code            VARCHAR2(30);
29198 l_ae_header_id                NUMBER;
29199 l_event_type_code             VARCHAR2(30);
29200 l_line_definition_code        VARCHAR2(30);
29201 l_line_definition_owner_code  VARCHAR2(1);
29202 --
29203 -- adr variables
29204 l_segment                     VARCHAR2(30);
29205 l_ccid                        NUMBER;
29206 l_adr_transaction_coa_id      NUMBER;
29207 l_adr_accounting_coa_id       NUMBER;
29208 l_adr_flexfield_segment_code  VARCHAR2(30);
29209 l_adr_flex_value_set_id       NUMBER;
29210 l_adr_value_type_code         VARCHAR2(30);
29211 l_adr_value_combination_id    NUMBER;
29215 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
29212 l_adr_value_segment_code      VARCHAR2(30);
29213 
29214 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
29216 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
29217 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
29218 
29219 -- 4262811 Variables ------------------------------------------------------------------------------------------
29220 l_entered_amt_idx             NUMBER;
29221 l_accted_amt_idx              NUMBER;
29222 l_acc_rev_flag                VARCHAR2(1);
29223 l_accrual_line_num            NUMBER;
29224 l_tmp_amt                     NUMBER;
29225 l_acc_rev_natural_side_code   VARCHAR2(1);
29226 
29227 l_num_entries                 NUMBER;
29228 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
29229 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
29230 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
29231 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
29232 l_recog_line_1                NUMBER;
29233 l_recog_line_2                NUMBER;
29234 
29235 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
29236 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
29237 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
29238 
29239 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
29240 
29241 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
29242 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
29243 
29244 ---------------------------------------------------------------------------------------------------------------
29245 
29246 
29247 --
29248 -- bulk performance
29249 --
29250 l_balance_type_code           VARCHAR2(1);
29251 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
29252 l_log_module                  VARCHAR2(240);
29253 
29254 --
29255 -- Upgrade strategy
29256 --
29257 l_actual_upg_option           VARCHAR2(1);
29258 l_enc_upg_option           VARCHAR2(1);
29259 
29260 --
29261 BEGIN
29262 --
29263 IF g_log_enabled THEN
29264       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_76';
29265 END IF;
29266 --
29267 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29268 
29269       trace
29270          (p_msg      => 'BEGIN of AcctLineType_76'
29271          ,p_level    => C_LEVEL_PROCEDURE
29272          ,p_module   => l_log_module);
29273 
29274 END IF;
29275 --
29276 l_component_type             := 'AMB_JLT';
29277 l_component_code             := 'AP_CASH_CLEAR_PMT_MAT_AOS_AS';
29278 l_component_type_code        := 'S';
29279 l_component_appl_id          :=  200;
29280 l_amb_context_code           := 'DEFAULT';
29281 l_entity_code                := 'AP_PAYMENTS';
29282 l_event_class_code           := 'FUTURE DATED PAYMENTS';
29283 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
29284 l_line_definition_owner_code := 'S';
29285 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
29286 --
29287 l_balance_type_code          := 'A';
29288 l_segment                     := NULL;
29289 l_ccid                        := NULL;
29290 l_adr_transaction_coa_id      := NULL;
29291 l_adr_accounting_coa_id       := NULL;
29292 l_adr_flexfield_segment_code  := NULL;
29293 l_adr_flex_value_set_id       := NULL;
29294 l_adr_value_type_code         := NULL;
29295 l_adr_value_combination_id    := NULL;
29296 l_adr_value_segment_code      := NULL;
29297 
29298 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
29299 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
29300 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
29301 l_budgetary_control_flag     := 'N';
29302 
29303 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
29304 l_bflow_applied_to_amt       := NULL; -- 5132302
29305 l_entered_amt_idx            := NULL;          -- 4262811
29306 l_accted_amt_idx             := NULL;          -- 4262811
29307 l_acc_rev_flag               := NULL;          -- 4262811
29308 l_accrual_line_num           := NULL;          -- 4262811
29309 l_tmp_amt                    := NULL;          -- 4262811
29310 --
29311  
29312 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
29313     l_balance_type_code <> 'B' THEN
29314 IF (NVL(p_source_97,'
29315 ') =  'ALWAYS_ALWAYS' OR 
29316 NVL(p_source_97,'
29317 ') =  'ALWAYS_ISSUE') AND 
29318 (NVL(p_source_113,'
29319 ') =  'Y' AND 
29320 NVL(p_source_15,'
29321 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
29322 p_source_114 IS NOT NULL AND 
29323 NVL(p_source_98,'
29324 ') =  'CASH'
29325  THEN 
29326 
29327    --
29328    XLA_AE_LINES_PKG.SetNewLine;
29329 
29330    p_balance_type_code          := l_balance_type_code;
29331    -- set the flag so later we will know whether the gain loss line needs to be created
29332    
29333    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
29334      p_actual_flag :='A';
29335    END IF;
29336 
29337    --
29338    -- bulk performance
29339    --
29340    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
29341                                       p_header_num   => 0); -- 4262811
29345    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
29342    --
29343    -- set accounting line options
29344    --
29346            p_natural_side_code          => 'C'
29347          , p_gain_or_loss_flag          => 'N'
29348          , p_gl_transfer_mode_code      => 'S'
29349          , p_acct_entry_type_code       => 'A'
29350          , p_switch_side_flag           => 'Y'
29351          , p_merge_duplicate_code       => 'A'
29352          );
29353    --
29354    l_acc_rev_natural_side_code := 'D';  -- 4262811
29355    -- 
29356    --
29357    -- set accounting line type info
29358    --
29359    xla_ae_lines_pkg.SetAcctLineType
29360       (p_component_type             => l_component_type
29361       ,p_event_type_code            => l_event_type_code
29362       ,p_line_definition_owner_code => l_line_definition_owner_code
29363       ,p_line_definition_code       => l_line_definition_code
29364       ,p_accounting_line_code       => l_component_code
29365       ,p_accounting_line_type_code  => l_component_type_code
29366       ,p_accounting_line_appl_id    => l_component_appl_id
29367       ,p_amb_context_code           => l_amb_context_code
29368       ,p_entity_code                => l_entity_code
29369       ,p_event_class_code           => l_event_class_code);
29370    --
29371    -- set accounting class
29372    --
29373    xla_ae_lines_pkg.SetAcctClass(
29374            p_accounting_class_code  => 'CASH_CLEARING'
29375          , p_ae_header_id           => l_ae_header_id
29376          );
29377 
29378    --
29379    -- set rounding class
29380    --
29381    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
29382                       'CASH_CLEARING';
29383 
29384    --
29385    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
29386    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
29387    --
29388    -- bulk performance
29389    --
29390    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
29391 
29392    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
29393       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
29394 
29395    -- 4955764
29396    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29397       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
29398 
29399    -- 4458381 Public Sector Enh
29400    
29401    --
29402    -- set accounting attributes for the line type
29403    --
29404    l_entered_amt_idx := 9;
29405    l_accted_amt_idx  := 14;
29406    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
29407    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
29408    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
29409    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
29410    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
29411    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
29412    l_rec_acct_attrs.array_char_value(3)  := p_source_100;
29413    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
29414    l_rec_acct_attrs.array_char_value(4)  := p_source_101;
29415    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
29416    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_102);
29417    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
29418    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_103);
29419    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
29420    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
29421    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
29422    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
29423    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
29424    l_rec_acct_attrs.array_num_value(9)  := p_source_99;
29425    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
29426    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
29427    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
29428    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
29429    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
29430    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
29431    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
29432    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
29433    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
29434    l_rec_acct_attrs.array_num_value(14)  := p_source_121;
29435    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
29436    l_rec_acct_attrs.array_char_value(15)  := p_source_80;
29437    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
29438    l_rec_acct_attrs.array_num_value(16)  := p_source_110;
29439    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
29440    l_rec_acct_attrs.array_num_value(17)  := p_source_111;
29441    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
29442    l_rec_acct_attrs.array_char_value(18)  := p_source_83;
29443    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
29444    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_112);
29445    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
29446    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
29450 
29447 
29448    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
29449    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
29451    ---------------------------------------------------------------------------------------------------------------
29452    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
29453    ---------------------------------------------------------------------------------------------------------------
29454    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
29455 
29456    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29457    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29458 
29459    IF xla_accounting_cache_pkg.GetValueChar
29460          (p_source_code         => 'LEDGER_CATEGORY_CODE'
29461          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
29462    AND l_bflow_method_code = 'PRIOR_ENTRY'
29463 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
29464    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
29465          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
29466        )
29467    THEN
29468          xla_ae_lines_pkg.BflowUpgEntry
29469            (p_business_method_code    => l_bflow_method_code
29470            ,p_business_class_code     => l_bflow_class_code
29471            ,p_balance_type            => l_balance_type_code);
29472    ELSE
29473       NULL;
29474 XLA_AE_LINES_PKG.business_flow_validation(
29475                                 p_business_method_code     => l_bflow_method_code
29476                                ,p_business_class_code      => l_bflow_class_code
29477                                ,p_inherit_description_flag => l_inherit_desc_flag);
29478    END IF;
29479 
29480    --
29481    -- call analytical criteria
29482    --
29483    
29484    --
29485    -- call description
29486    --
29487    -- No description or it is inherited.
29488    --
29489    -- call ADRs
29490    -- Bug 4922099
29491    --
29492    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29493         (NVL(l_actual_upg_option, 'N') = 'O') OR
29494         (NVL(l_enc_upg_option, 'N') = 'O')
29495       )
29496    THEN
29497    NULL;
29498    --
29499    --
29500    
29501    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
29502      p_code_combination_id      => TO_NUMBER(C_NUM)
29503    , p_value_type_code          => NULL
29504    , p_transaction_coa_id       => null
29505    , p_accounting_coa_id        => null
29506    , p_adr_code                 => NULL
29507    , p_adr_type_code            => NULL
29508    , p_component_type           => l_component_type
29509    , p_component_code           => l_component_code
29510    , p_component_type_code      => l_component_type_code
29511    , p_component_appl_id        => l_component_appl_id
29512    , p_amb_context_code         => l_amb_context_code
29513    , p_side                     => NULL
29514    );
29515 
29516    
29517   -- initialise segments
29518   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29519   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29520   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29521   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29522   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29523   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29524   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29525   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29526   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29527   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29528   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29529   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29530   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29531   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29532   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29533   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29534   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29535   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29536   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29537   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29538   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29539   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29540   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29541   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29542   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29543   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29544   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29548   --
29545   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29546   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29547   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29549 
29550    --
29551 
29552 
29553    l_segment := AcctDerRule_16(
29554            p_application_id           => p_application_id
29555          , p_ae_header_id             => l_ae_header_id 
29556 , p_source_35 => p_source_35
29557          , x_transaction_coa_id       => l_adr_transaction_coa_id
29558          , x_accounting_coa_id        => l_adr_accounting_coa_id
29559          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
29560          , x_flex_value_set_id        => l_adr_flex_value_set_id
29561          , x_value_type_code          => l_adr_value_type_code
29562          , x_value_combination_id     => l_adr_value_combination_id
29563          , x_value_segment_code       => l_adr_value_segment_code
29564          , p_side                     => 'NA'
29565          , p_override_seg_flag        => 'Y'
29566    );
29567 
29568    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
29569 
29570       xla_ae_lines_pkg.set_segment(
29571           p_to_segment_code         => 'GL_ACCOUNT'
29572         , p_segment_value           => l_segment
29573         , p_from_segment_code       => l_adr_value_segment_code
29574         , p_from_combination_id     => l_adr_value_combination_id
29575         , p_value_type_code         => l_adr_value_type_code
29576         , p_transaction_coa_id      => l_adr_transaction_coa_id
29577         , p_accounting_coa_id       => l_adr_accounting_coa_id
29578         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
29579         , p_flex_value_set_id       => l_adr_flex_value_set_id
29580         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
29581         , p_adr_type_code           => 'S'
29582         , p_component_type          => l_component_type
29583         , p_component_code          => l_component_code
29584         , p_component_type_code     => l_component_type_code
29585         , p_component_appl_id       => l_component_appl_id
29586         , p_amb_context_code        => l_amb_context_code
29587         , p_entity_code             => 'AP_PAYMENTS'
29588         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
29589         , p_side                    => 'NA'
29590         );
29591 
29592   END IF;
29593 
29594    --
29595    --
29596    END IF;
29597    --
29598    -- Bug 4922099
29599    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
29600           (NVL(l_enc_upg_option, 'N') = 'O')
29601         ) AND
29602         (l_bflow_method_code = 'PRIOR_ENTRY')
29603       )
29604    THEN
29605       IF
29606       --
29607       1 = 2
29608       --
29609       THEN
29610       xla_accounting_err_pkg.build_message
29611                                     (p_appli_s_name            => 'XLA'
29612                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29613                                     ,p_token_1                 => 'LINE_NUMBER'
29614                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
29615                                     ,p_token_2                 => 'LINE_TYPE_NAME'
29616                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
29617                                                                              l_component_type
29618                                                                             ,l_component_code
29619                                                                             ,l_component_type_code
29620                                                                             ,l_component_appl_id
29621                                                                             ,l_amb_context_code
29622                                                                             ,l_entity_code
29623                                                                             ,l_event_class_code
29624                                                                            )
29625                                     ,p_token_3                 => 'OWNER'
29626                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
29627                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
29628                                                                           ,p_lookup_code    => l_component_type_code
29629                                                                          )
29630                                     ,p_token_4                 => 'PRODUCT_NAME'
29631                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
29632                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
29633                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
29634                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
29635                                     ,p_ae_header_id            =>  NULL
29636                                        );
29637 
29638         IF (C_LEVEL_ERROR>= g_log_level) THEN
29639                  trace
29640                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29641                       ,p_level    => C_LEVEL_ERROR
29645    END IF;
29642                       ,p_module   => l_log_module);
29643         END IF;
29644       END IF;
29646    --
29647    --
29648    ------------------------------------------------------------------------------------------------
29649    -- 4219869 Business Flow
29650    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
29651    -- Prior Entry.  Currently, the following code is always generated.
29652    ------------------------------------------------------------------------------------------------
29653    XLA_AE_LINES_PKG.ValidateCurrentLine;
29654 
29655    ------------------------------------------------------------------------------------
29656    -- 4219869 Business Flow
29657    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
29658    ------------------------------------------------------------------------------------
29659    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29660 
29661    ----------------------------------------------------------------------------------
29662    -- 4219869 Business Flow
29663    -- Update journal entry status -- Need to generate this within IF <condition>
29664    ----------------------------------------------------------------------------------
29665    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29666          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
29667          ,p_balance_type_code => l_balance_type_code
29668          );
29669 
29670    -------------------------------------------------------------------------------------------
29671    -- 4262811 - Generate the Accrual Reversal lines
29672    -------------------------------------------------------------------------------------------
29673    BEGIN
29674       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
29675                               (g_array_event(p_event_id).array_value_num('header_index'));
29676       IF l_acc_rev_flag IS NULL THEN
29677          l_acc_rev_flag := 'N';
29678       END IF;
29679    EXCEPTION
29680       WHEN OTHERS THEN
29681          l_acc_rev_flag := 'N';
29682    END;
29683    --
29684    IF (l_acc_rev_flag = 'Y') THEN
29685 
29686        -- 4645092  ------------------------------------------------------------------------------
29687        -- To allow MPA report to determine if it should generate report process
29688        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
29689        ------------------------------------------------------------------------------------------
29690 
29691        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
29692        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
29693    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
29694    -- call ADRs
29695    -- Bug 4922099
29696    --
29697    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29698         (NVL(l_actual_upg_option, 'N') = 'O') OR
29699         (NVL(l_enc_upg_option, 'N') = 'O')
29700       )
29701    THEN
29702    NULL;
29703    --
29704    --
29705    
29706    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
29707      p_code_combination_id      => TO_NUMBER(C_NUM)
29708    , p_value_type_code          => NULL
29709    , p_transaction_coa_id       => null
29710    , p_accounting_coa_id        => null
29711    , p_adr_code                 => NULL
29712    , p_adr_type_code            => NULL
29713    , p_component_type           => l_component_type
29714    , p_component_code           => l_component_code
29715    , p_component_type_code      => l_component_type_code
29716    , p_component_appl_id        => l_component_appl_id
29717    , p_amb_context_code         => l_amb_context_code
29718    , p_side                     => NULL
29719    );
29720 
29721    
29722   -- initialise segments
29723   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29724   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29725   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29726   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29727   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29728   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29729   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29730   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29731   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
29732   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29733   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29734   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29735   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29736   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29737   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29738   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29739   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29740   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29741   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29742   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29746   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29743   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29744   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29745   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29747   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29748   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29749   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29750   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29751   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29752   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
29753   --
29754 
29755    --
29756 
29757 
29758    l_segment := AcctDerRule_16(
29759            p_application_id           => p_application_id
29760          , p_ae_header_id             => l_ae_header_id 
29761 , p_source_35 => p_source_35
29762          , x_transaction_coa_id       => l_adr_transaction_coa_id
29763          , x_accounting_coa_id        => l_adr_accounting_coa_id
29764          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
29765          , x_flex_value_set_id        => l_adr_flex_value_set_id
29766          , x_value_type_code          => l_adr_value_type_code
29767          , x_value_combination_id     => l_adr_value_combination_id
29768          , x_value_segment_code       => l_adr_value_segment_code
29769          , p_side                     => 'NA'
29770          , p_override_seg_flag        => 'Y'
29771    );
29772 
29773    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
29774 
29775       xla_ae_lines_pkg.set_segment(
29776           p_to_segment_code         => 'GL_ACCOUNT'
29777         , p_segment_value           => l_segment
29778         , p_from_segment_code       => l_adr_value_segment_code
29779         , p_from_combination_id     => l_adr_value_combination_id
29780         , p_value_type_code         => l_adr_value_type_code
29781         , p_transaction_coa_id      => l_adr_transaction_coa_id
29782         , p_accounting_coa_id       => l_adr_accounting_coa_id
29783         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
29784         , p_flex_value_set_id       => l_adr_flex_value_set_id
29785         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
29786         , p_adr_type_code           => 'S'
29787         , p_component_type          => l_component_type
29788         , p_component_code          => l_component_code
29789         , p_component_type_code     => l_component_type_code
29790         , p_component_appl_id       => l_component_appl_id
29791         , p_amb_context_code        => l_amb_context_code
29792         , p_entity_code             => 'AP_PAYMENTS'
29793         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
29794         , p_side                    => 'NA'
29795         );
29796 
29797   END IF;
29798 
29799    --
29800    --
29801    END IF;
29802 
29803        --
29804        -- Update the line information that should be overwritten
29805        --
29806        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
29807                                          p_header_num   => 1);
29808        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
29809 
29810        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
29811 
29812        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
29813           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
29814        END IF;
29815 
29816       --
29817       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
29818       --
29819       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
29820           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
29821       ELSE
29822           ---------------------------------------------------------------------------------------------------
29823           -- 4262811a Switch Sign
29824           ---------------------------------------------------------------------------------------------------
29825           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
29826           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29827                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29828           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29829                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29830           -- 5132302
29831           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
29832                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29833 
29834       END IF;
29835 
29836       -- 4955764
29837       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29838       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
29839 
29840 
29841       XLA_AE_LINES_PKG.ValidateCurrentLine;
29845                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
29842       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29843 
29844       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29846                ,p_balance_type_code => l_balance_type_code);
29847 
29848    END IF;
29849 
29850    -----------------------------------------------------------------------------------------
29851    -- 4262811 Multiperiod Accounting
29852    -----------------------------------------------------------------------------------------
29853      -- No MPA option is assigned.
29854 
29855 
29856 END IF;
29857 END IF;
29858 --
29859 
29860 --
29861 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29862    trace
29863       (p_msg      => 'END of AcctLineType_76'
29864       ,p_level    => C_LEVEL_PROCEDURE
29865       ,p_module   => l_log_module);
29866 END IF;
29867 --
29868 EXCEPTION
29869   WHEN xla_exceptions_pkg.application_exception THEN
29870       RAISE;
29871   WHEN OTHERS THEN
29872        xla_exceptions_pkg.raise_message
29873            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_76');
29874 END AcctLineType_76;
29875 --
29876 
29877 ---------------------------------------
29878 --
29879 -- PRIVATE FUNCTION
29880 --         AcctLineType_77
29881 --
29882 ---------------------------------------
29883 PROCEDURE AcctLineType_77 (
29884   p_application_id        IN NUMBER
29885  ,p_event_id              IN NUMBER
29886  ,p_calculate_acctd_flag  IN VARCHAR2
29887  ,p_calculate_g_l_flag    IN VARCHAR2
29888  ,p_actual_flag           IN OUT VARCHAR2
29889  ,p_balance_type_code     OUT VARCHAR2
29890  ,p_gain_or_loss_ref      OUT VARCHAR2
29891  
29892 --Payment Currency Code
29893  , p_source_13            IN VARCHAR2
29894 --Automatic Offsets Value
29895  , p_source_15            IN VARCHAR2
29896  , p_source_15_meaning    IN VARCHAR2
29897 --Bank Cash Clearing Account
29898  , p_source_35            IN NUMBER
29899 --Accounting Reversal Indicator
29900  , p_source_53            IN VARCHAR2
29901 --Distribution Link Type
29902  , p_source_55            IN VARCHAR2
29903 --Override Accounted Amount Indicator
29904  , p_source_80            IN VARCHAR2
29905  , p_source_80_meaning    IN VARCHAR2
29906 --Third Party Type
29907  , p_source_83            IN VARCHAR2
29908 --Business Flow Accounts Payable Application Identifier
29909  , p_source_91            IN NUMBER
29910 --When to Account for Payment Option
29911  , p_source_97            IN VARCHAR2
29912 --Payment Distribution Type
29913  , p_source_98            IN VARCHAR2
29914  , p_source_98_meaning    IN VARCHAR2
29915 --Payment Distribution Amount
29916  , p_source_99            IN NUMBER
29917 --Business Flow Payment Distribution Type
29918  , p_source_100            IN VARCHAR2
29919 --Business Flow Payment Entity Code
29920  , p_source_101            IN VARCHAR2
29921 --Business Flow Payment Distribution Identifier
29922  , p_source_102            IN NUMBER
29923 --Business Flow Payment Identifier
29924  , p_source_103            IN NUMBER
29925 --Payment Distribution Identifier
29926  , p_source_104            IN NUMBER
29927 --Payment Supplier Identifier
29928  , p_source_110            IN NUMBER
29929 --Payment Supplier Site Identifier
29930  , p_source_111            IN NUMBER
29931 --Payment Distribution Reversed Identifier
29932  , p_source_112            IN NUMBER
29933 --Pooled Bank Account Option
29934  , p_source_113            IN VARCHAR2
29935  , p_source_113_meaning    IN VARCHAR2
29936 --Payment Maturity Date
29937  , p_source_114            IN DATE
29938 --Payment Exchange Date
29939  , p_source_117            IN DATE
29940 --Payment Exchange Rate
29941  , p_source_118            IN NUMBER
29942 --Payment Exchange Rate Type
29943  , p_source_119            IN VARCHAR2
29944 --Payment Distribution (Matured Rate) Ledger Amount
29945  , p_source_121            IN NUMBER
29946 )
29947 IS
29948 
29949 l_component_type              VARCHAR2(80);
29950 l_component_code              VARCHAR2(30);
29951 l_component_type_code         VARCHAR2(1);
29952 l_component_appl_id           INTEGER;
29953 l_amb_context_code            VARCHAR2(30);
29954 l_entity_code                 VARCHAR2(30);
29955 l_event_class_code            VARCHAR2(30);
29956 l_ae_header_id                NUMBER;
29957 l_event_type_code             VARCHAR2(30);
29958 l_line_definition_code        VARCHAR2(30);
29959 l_line_definition_owner_code  VARCHAR2(1);
29960 --
29961 -- adr variables
29962 l_segment                     VARCHAR2(30);
29963 l_ccid                        NUMBER;
29964 l_adr_transaction_coa_id      NUMBER;
29965 l_adr_accounting_coa_id       NUMBER;
29966 l_adr_flexfield_segment_code  VARCHAR2(30);
29967 l_adr_flex_value_set_id       NUMBER;
29968 l_adr_value_type_code         VARCHAR2(30);
29969 l_adr_value_combination_id    NUMBER;
29970 l_adr_value_segment_code      VARCHAR2(30);
29971 
29972 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
29973 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
29974 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
29975 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
29976 
29977 -- 4262811 Variables ------------------------------------------------------------------------------------------
29981 l_accrual_line_num            NUMBER;
29978 l_entered_amt_idx             NUMBER;
29979 l_accted_amt_idx              NUMBER;
29980 l_acc_rev_flag                VARCHAR2(1);
29982 l_tmp_amt                     NUMBER;
29983 l_acc_rev_natural_side_code   VARCHAR2(1);
29984 
29985 l_num_entries                 NUMBER;
29986 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
29987 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
29988 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
29989 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
29990 l_recog_line_1                NUMBER;
29991 l_recog_line_2                NUMBER;
29992 
29993 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
29994 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
29995 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
29996 
29997 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
29998 
29999 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
30000 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
30001 
30002 ---------------------------------------------------------------------------------------------------------------
30003 
30004 
30005 --
30006 -- bulk performance
30007 --
30008 l_balance_type_code           VARCHAR2(1);
30009 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
30010 l_log_module                  VARCHAR2(240);
30011 
30012 --
30013 -- Upgrade strategy
30014 --
30015 l_actual_upg_option           VARCHAR2(1);
30016 l_enc_upg_option           VARCHAR2(1);
30017 
30018 --
30019 BEGIN
30020 --
30021 IF g_log_enabled THEN
30022       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_77';
30023 END IF;
30024 --
30025 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30026 
30027       trace
30028          (p_msg      => 'BEGIN of AcctLineType_77'
30029          ,p_level    => C_LEVEL_PROCEDURE
30030          ,p_module   => l_log_module);
30031 
30032 END IF;
30033 --
30034 l_component_type             := 'AMB_JLT';
30035 l_component_code             := 'AP_CASH_CLEAR_PMT_MAT_AOS_BS';
30036 l_component_type_code        := 'S';
30037 l_component_appl_id          :=  200;
30038 l_amb_context_code           := 'DEFAULT';
30039 l_entity_code                := 'AP_PAYMENTS';
30040 l_event_class_code           := 'FUTURE DATED PAYMENTS';
30041 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
30042 l_line_definition_owner_code := 'S';
30043 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
30044 --
30045 l_balance_type_code          := 'A';
30046 l_segment                     := NULL;
30047 l_ccid                        := NULL;
30048 l_adr_transaction_coa_id      := NULL;
30049 l_adr_accounting_coa_id       := NULL;
30050 l_adr_flexfield_segment_code  := NULL;
30051 l_adr_flex_value_set_id       := NULL;
30052 l_adr_value_type_code         := NULL;
30053 l_adr_value_combination_id    := NULL;
30054 l_adr_value_segment_code      := NULL;
30055 
30056 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
30057 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
30058 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
30059 l_budgetary_control_flag     := 'N';
30060 
30061 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
30062 l_bflow_applied_to_amt       := NULL; -- 5132302
30063 l_entered_amt_idx            := NULL;          -- 4262811
30064 l_accted_amt_idx             := NULL;          -- 4262811
30065 l_acc_rev_flag               := NULL;          -- 4262811
30066 l_accrual_line_num           := NULL;          -- 4262811
30067 l_tmp_amt                    := NULL;          -- 4262811
30068 --
30069  
30070 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
30071     l_balance_type_code <> 'B' THEN
30072 IF (NVL(p_source_97,'
30073 ') =  'ALWAYS_ALWAYS' OR 
30074 NVL(p_source_97,'
30075 ') =  'ALWAYS_CLEAR' OR 
30076 NVL(p_source_97,'
30077 ') =  'ALWAYS_ISSUE') AND 
30078 (NVL(p_source_113,'
30079 ') =  'Y' AND 
30080 NVL(p_source_15,'
30081 ') =  'BALANCING_SEGMENT') AND 
30082 p_source_114 IS NOT NULL AND 
30083 NVL(p_source_98,'
30084 ') =  'CASH'
30085  THEN 
30086 
30087    --
30088    XLA_AE_LINES_PKG.SetNewLine;
30089 
30090    p_balance_type_code          := l_balance_type_code;
30091    -- set the flag so later we will know whether the gain loss line needs to be created
30092    
30093    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
30094      p_actual_flag :='A';
30095    END IF;
30096 
30097    --
30098    -- bulk performance
30099    --
30100    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
30101                                       p_header_num   => 0); -- 4262811
30102    --
30103    -- set accounting line options
30104    --
30105    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
30106            p_natural_side_code          => 'C'
30107          , p_gain_or_loss_flag          => 'N'
30108          , p_gl_transfer_mode_code      => 'S'
30109          , p_acct_entry_type_code       => 'A'
30110          , p_switch_side_flag           => 'Y'
30114    l_acc_rev_natural_side_code := 'D';  -- 4262811
30111          , p_merge_duplicate_code       => 'A'
30112          );
30113    --
30115    -- 
30116    --
30117    -- set accounting line type info
30118    --
30119    xla_ae_lines_pkg.SetAcctLineType
30120       (p_component_type             => l_component_type
30121       ,p_event_type_code            => l_event_type_code
30122       ,p_line_definition_owner_code => l_line_definition_owner_code
30123       ,p_line_definition_code       => l_line_definition_code
30124       ,p_accounting_line_code       => l_component_code
30125       ,p_accounting_line_type_code  => l_component_type_code
30126       ,p_accounting_line_appl_id    => l_component_appl_id
30127       ,p_amb_context_code           => l_amb_context_code
30128       ,p_entity_code                => l_entity_code
30129       ,p_event_class_code           => l_event_class_code);
30130    --
30131    -- set accounting class
30132    --
30133    xla_ae_lines_pkg.SetAcctClass(
30134            p_accounting_class_code  => 'CASH_CLEARING'
30135          , p_ae_header_id           => l_ae_header_id
30136          );
30137 
30138    --
30139    -- set rounding class
30140    --
30141    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
30142                       'CASH_CLEARING';
30143 
30144    --
30145    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
30146    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
30147    --
30148    -- bulk performance
30149    --
30150    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
30151 
30152    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
30153       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
30154 
30155    -- 4955764
30156    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30157       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
30158 
30159    -- 4458381 Public Sector Enh
30160    
30161    --
30162    -- set accounting attributes for the line type
30163    --
30164    l_entered_amt_idx := 9;
30165    l_accted_amt_idx  := 14;
30166    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
30167    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
30168    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
30169    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
30170    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
30171    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
30172    l_rec_acct_attrs.array_char_value(3)  := p_source_100;
30173    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
30174    l_rec_acct_attrs.array_char_value(4)  := p_source_101;
30175    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
30176    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_102);
30177    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
30178    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_103);
30179    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
30180    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
30181    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
30182    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
30183    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
30184    l_rec_acct_attrs.array_num_value(9)  := p_source_99;
30185    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
30186    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
30187    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
30188    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
30189    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
30190    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
30191    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
30192    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
30193    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
30194    l_rec_acct_attrs.array_num_value(14)  := p_source_121;
30195    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
30196    l_rec_acct_attrs.array_char_value(15)  := p_source_80;
30197    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
30198    l_rec_acct_attrs.array_num_value(16)  := p_source_110;
30199    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
30200    l_rec_acct_attrs.array_num_value(17)  := p_source_111;
30201    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
30202    l_rec_acct_attrs.array_char_value(18)  := p_source_83;
30203    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
30204    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_112);
30205    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
30206    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
30207 
30208    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
30209    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
30210 
30211    ---------------------------------------------------------------------------------------------------------------
30212    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
30216    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30213    ---------------------------------------------------------------------------------------------------------------
30214    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
30215 
30217    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30218 
30219    IF xla_accounting_cache_pkg.GetValueChar
30220          (p_source_code         => 'LEDGER_CATEGORY_CODE'
30221          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
30222    AND l_bflow_method_code = 'PRIOR_ENTRY'
30223 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
30224    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
30225          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
30226        )
30227    THEN
30228          xla_ae_lines_pkg.BflowUpgEntry
30229            (p_business_method_code    => l_bflow_method_code
30230            ,p_business_class_code     => l_bflow_class_code
30231            ,p_balance_type            => l_balance_type_code);
30232    ELSE
30233       NULL;
30234 XLA_AE_LINES_PKG.business_flow_validation(
30235                                 p_business_method_code     => l_bflow_method_code
30236                                ,p_business_class_code      => l_bflow_class_code
30237                                ,p_inherit_description_flag => l_inherit_desc_flag);
30238    END IF;
30239 
30240    --
30241    -- call analytical criteria
30242    --
30243    
30244    --
30245    -- call description
30246    --
30247    -- No description or it is inherited.
30248    --
30249    -- call ADRs
30250    -- Bug 4922099
30251    --
30252    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30253         (NVL(l_actual_upg_option, 'N') = 'O') OR
30254         (NVL(l_enc_upg_option, 'N') = 'O')
30255       )
30256    THEN
30257    NULL;
30258    --
30259    --
30260    
30261   l_ccid := AcctDerRule_36(
30262            p_application_id           => p_application_id
30263          , p_ae_header_id             => l_ae_header_id 
30264 , p_source_35 => p_source_35
30265          , x_transaction_coa_id       => l_adr_transaction_coa_id
30266          , x_accounting_coa_id        => l_adr_accounting_coa_id
30267          , x_value_type_code          => l_adr_value_type_code
30268          , p_side                     => 'NA'
30269    );
30270 
30271    xla_ae_lines_pkg.set_ccid(
30272     p_code_combination_id          => l_ccid
30273   , p_value_type_code              => l_adr_value_type_code
30274   , p_transaction_coa_id           => l_adr_transaction_coa_id
30275   , p_accounting_coa_id            => l_adr_accounting_coa_id
30276   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
30277   , p_adr_type_code                => 'S'
30278   , p_component_type               => l_component_type
30279   , p_component_code               => l_component_code
30280   , p_component_type_code          => l_component_type_code
30281   , p_component_appl_id            => l_component_appl_id
30282   , p_amb_context_code             => l_amb_context_code
30283   , p_side                         => 'NA'
30284   );
30285 
30286 
30287    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
30288      p_to_segment_code         => 'GL_BALANCING'
30289    , p_segment_value           => C_CHAR
30290    , p_from_segment_code       => NULL
30291    , p_from_combination_id     => NULL
30292    , p_value_type_code         => NULL
30293    , p_transaction_coa_id      => null
30294    , p_accounting_coa_id       => null
30295    , p_flexfield_segment_code  => NULL
30296    , p_flex_value_set_id       => NULL
30297    , p_adr_code                => NULL
30298    , p_adr_type_code           => NULL
30299    , p_component_type          => l_component_type
30300    , p_component_code          => l_component_code
30301    , p_component_type_code     => l_component_type_code
30302    , p_component_appl_id       => l_component_appl_id
30303    , p_amb_context_code        => l_amb_context_code
30304    , p_entity_code             => 'AP_PAYMENTS'
30305    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
30306    , p_side                    => 'NA'
30307    );
30308    --
30309 
30310 
30311    --
30312    --
30313    END IF;
30314    --
30315    -- Bug 4922099
30316    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
30317           (NVL(l_enc_upg_option, 'N') = 'O')
30318         ) AND
30319         (l_bflow_method_code = 'PRIOR_ENTRY')
30320       )
30321    THEN
30322       IF
30323       --
30324       1 = 2
30325       --
30326       THEN
30327       xla_accounting_err_pkg.build_message
30328                                     (p_appli_s_name            => 'XLA'
30329                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30330                                     ,p_token_1                 => 'LINE_NUMBER'
30331                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
30332                                     ,p_token_2                 => 'LINE_TYPE_NAME'
30333                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
30334                                                                              l_component_type
30338                                                                             ,l_amb_context_code
30335                                                                             ,l_component_code
30336                                                                             ,l_component_type_code
30337                                                                             ,l_component_appl_id
30339                                                                             ,l_entity_code
30340                                                                             ,l_event_class_code
30341                                                                            )
30342                                     ,p_token_3                 => 'OWNER'
30343                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
30344                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
30345                                                                           ,p_lookup_code    => l_component_type_code
30346                                                                          )
30347                                     ,p_token_4                 => 'PRODUCT_NAME'
30348                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
30349                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
30350                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
30351                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
30352                                     ,p_ae_header_id            =>  NULL
30353                                        );
30354 
30355         IF (C_LEVEL_ERROR>= g_log_level) THEN
30356                  trace
30357                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30358                       ,p_level    => C_LEVEL_ERROR
30359                       ,p_module   => l_log_module);
30360         END IF;
30361       END IF;
30362    END IF;
30363    --
30364    --
30365    ------------------------------------------------------------------------------------------------
30366    -- 4219869 Business Flow
30367    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
30368    -- Prior Entry.  Currently, the following code is always generated.
30369    ------------------------------------------------------------------------------------------------
30370    XLA_AE_LINES_PKG.ValidateCurrentLine;
30371 
30372    ------------------------------------------------------------------------------------
30373    -- 4219869 Business Flow
30374    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
30375    ------------------------------------------------------------------------------------
30376    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30377 
30378    ----------------------------------------------------------------------------------
30379    -- 4219869 Business Flow
30380    -- Update journal entry status -- Need to generate this within IF <condition>
30381    ----------------------------------------------------------------------------------
30382    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30383          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
30384          ,p_balance_type_code => l_balance_type_code
30385          );
30386 
30387    -------------------------------------------------------------------------------------------
30388    -- 4262811 - Generate the Accrual Reversal lines
30389    -------------------------------------------------------------------------------------------
30390    BEGIN
30391       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
30392                               (g_array_event(p_event_id).array_value_num('header_index'));
30393       IF l_acc_rev_flag IS NULL THEN
30394          l_acc_rev_flag := 'N';
30395       END IF;
30396    EXCEPTION
30397       WHEN OTHERS THEN
30398          l_acc_rev_flag := 'N';
30399    END;
30400    --
30401    IF (l_acc_rev_flag = 'Y') THEN
30402 
30403        -- 4645092  ------------------------------------------------------------------------------
30404        -- To allow MPA report to determine if it should generate report process
30405        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
30406        ------------------------------------------------------------------------------------------
30407 
30408        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
30409        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
30410    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
30411    -- call ADRs
30412    -- Bug 4922099
30413    --
30414    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30415         (NVL(l_actual_upg_option, 'N') = 'O') OR
30416         (NVL(l_enc_upg_option, 'N') = 'O')
30417       )
30418    THEN
30419    NULL;
30420    --
30421    --
30422    
30423   l_ccid := AcctDerRule_36(
30424            p_application_id           => p_application_id
30425          , p_ae_header_id             => l_ae_header_id 
30426 , p_source_35 => p_source_35
30427          , x_transaction_coa_id       => l_adr_transaction_coa_id
30428          , x_accounting_coa_id        => l_adr_accounting_coa_id
30429          , x_value_type_code          => l_adr_value_type_code
30430          , p_side                     => 'NA'
30431    );
30432 
30433    xla_ae_lines_pkg.set_ccid(
30434     p_code_combination_id          => l_ccid
30438   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
30435   , p_value_type_code              => l_adr_value_type_code
30436   , p_transaction_coa_id           => l_adr_transaction_coa_id
30437   , p_accounting_coa_id            => l_adr_accounting_coa_id
30439   , p_adr_type_code                => 'S'
30440   , p_component_type               => l_component_type
30441   , p_component_code               => l_component_code
30442   , p_component_type_code          => l_component_type_code
30443   , p_component_appl_id            => l_component_appl_id
30444   , p_amb_context_code             => l_amb_context_code
30445   , p_side                         => 'NA'
30446   );
30447 
30448 
30449    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
30450      p_to_segment_code         => 'GL_BALANCING'
30451    , p_segment_value           => C_CHAR
30452    , p_from_segment_code       => NULL
30453    , p_from_combination_id     => NULL
30454    , p_value_type_code         => NULL
30455    , p_transaction_coa_id      => null
30456    , p_accounting_coa_id       => null
30457    , p_flexfield_segment_code  => NULL
30458    , p_flex_value_set_id       => NULL
30459    , p_adr_code                => NULL
30460    , p_adr_type_code           => NULL
30461    , p_component_type          => l_component_type
30462    , p_component_code          => l_component_code
30463    , p_component_type_code     => l_component_type_code
30464    , p_component_appl_id       => l_component_appl_id
30465    , p_amb_context_code        => l_amb_context_code
30466    , p_entity_code             => 'AP_PAYMENTS'
30467    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
30468    , p_side                    => 'NA'
30469    );
30470    --
30471 
30472 
30473    --
30474    --
30475    END IF;
30476 
30477        --
30478        -- Update the line information that should be overwritten
30479        --
30480        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
30481                                          p_header_num   => 1);
30482        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
30483 
30484        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
30485 
30486        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
30487           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
30488        END IF;
30489 
30490       --
30491       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
30492       --
30493       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
30494           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
30495       ELSE
30496           ---------------------------------------------------------------------------------------------------
30497           -- 4262811a Switch Sign
30498           ---------------------------------------------------------------------------------------------------
30499           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
30500           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30501                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30502           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30503                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30504           -- 5132302
30505           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
30506                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30507 
30508       END IF;
30509 
30510       -- 4955764
30511       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30512       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
30513 
30514 
30515       XLA_AE_LINES_PKG.ValidateCurrentLine;
30516       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30517 
30518       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30519                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
30520                ,p_balance_type_code => l_balance_type_code);
30521 
30522    END IF;
30523 
30524    -----------------------------------------------------------------------------------------
30525    -- 4262811 Multiperiod Accounting
30526    -----------------------------------------------------------------------------------------
30527      -- No MPA option is assigned.
30528 
30529 
30530 END IF;
30531 END IF;
30532 --
30533 
30534 --
30535 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30536    trace
30537       (p_msg      => 'END of AcctLineType_77'
30538       ,p_level    => C_LEVEL_PROCEDURE
30539       ,p_module   => l_log_module);
30540 END IF;
30541 --
30542 EXCEPTION
30543   WHEN xla_exceptions_pkg.application_exception THEN
30544       RAISE;
30545   WHEN OTHERS THEN
30546        xla_exceptions_pkg.raise_message
30547            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_77');
30548 END AcctLineType_77;
30549 --
30550 
30554 --         AcctLineType_78
30551 ---------------------------------------
30552 --
30553 -- PRIVATE FUNCTION
30555 --
30556 ---------------------------------------
30557 PROCEDURE AcctLineType_78 (
30558   p_application_id        IN NUMBER
30559  ,p_event_id              IN NUMBER
30560  ,p_calculate_acctd_flag  IN VARCHAR2
30561  ,p_calculate_g_l_flag    IN VARCHAR2
30562  ,p_actual_flag           IN OUT VARCHAR2
30563  ,p_balance_type_code     OUT VARCHAR2
30564  ,p_gain_or_loss_ref      OUT VARCHAR2
30565  
30566 --Payment Currency Code
30567  , p_source_13            IN VARCHAR2
30568 --Bank Cash Clearing Account
30569  , p_source_35            IN NUMBER
30570 --Automatic Offsets Flag
30571  , p_source_47            IN VARCHAR2
30572  , p_source_47_meaning    IN VARCHAR2
30573 --Accounting Reversal Indicator
30574  , p_source_53            IN VARCHAR2
30575 --Distribution Link Type
30576  , p_source_55            IN VARCHAR2
30577 --Override Accounted Amount Indicator
30578  , p_source_80            IN VARCHAR2
30579  , p_source_80_meaning    IN VARCHAR2
30580 --Third Party Type
30581  , p_source_83            IN VARCHAR2
30582 --Business Flow Accounts Payable Application Identifier
30583  , p_source_91            IN NUMBER
30584 --When to Account for Payment Option
30585  , p_source_97            IN VARCHAR2
30586 --Payment Distribution Type
30587  , p_source_98            IN VARCHAR2
30588  , p_source_98_meaning    IN VARCHAR2
30589 --Payment Distribution Amount
30590  , p_source_99            IN NUMBER
30591 --Business Flow Payment Distribution Type
30592  , p_source_100            IN VARCHAR2
30593 --Business Flow Payment Entity Code
30594  , p_source_101            IN VARCHAR2
30595 --Business Flow Payment Distribution Identifier
30596  , p_source_102            IN NUMBER
30597 --Business Flow Payment Identifier
30598  , p_source_103            IN NUMBER
30599 --Payment Distribution Identifier
30600  , p_source_104            IN NUMBER
30601 --Payment Supplier Identifier
30602  , p_source_110            IN NUMBER
30603 --Payment Supplier Site Identifier
30604  , p_source_111            IN NUMBER
30605 --Payment Distribution Reversed Identifier
30606  , p_source_112            IN NUMBER
30607 --Pooled Bank Account Option
30608  , p_source_113            IN VARCHAR2
30609  , p_source_113_meaning    IN VARCHAR2
30610 --Payment Maturity Date
30611  , p_source_114            IN DATE
30612 --Payment Distribution (Invoice Rate) Ledger Amount
30613  , p_source_116            IN NUMBER
30614 --Payment Exchange Date
30615  , p_source_117            IN DATE
30616 --Payment Exchange Rate
30617  , p_source_118            IN NUMBER
30618 --Payment Exchange Rate Type
30619  , p_source_119            IN VARCHAR2
30620 )
30621 IS
30622 
30623 l_component_type              VARCHAR2(80);
30624 l_component_code              VARCHAR2(30);
30625 l_component_type_code         VARCHAR2(1);
30626 l_component_appl_id           INTEGER;
30627 l_amb_context_code            VARCHAR2(30);
30628 l_entity_code                 VARCHAR2(30);
30629 l_event_class_code            VARCHAR2(30);
30630 l_ae_header_id                NUMBER;
30631 l_event_type_code             VARCHAR2(30);
30632 l_line_definition_code        VARCHAR2(30);
30633 l_line_definition_owner_code  VARCHAR2(1);
30634 --
30635 -- adr variables
30636 l_segment                     VARCHAR2(30);
30637 l_ccid                        NUMBER;
30638 l_adr_transaction_coa_id      NUMBER;
30639 l_adr_accounting_coa_id       NUMBER;
30640 l_adr_flexfield_segment_code  VARCHAR2(30);
30641 l_adr_flex_value_set_id       NUMBER;
30642 l_adr_value_type_code         VARCHAR2(30);
30643 l_adr_value_combination_id    NUMBER;
30644 l_adr_value_segment_code      VARCHAR2(30);
30645 
30646 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
30647 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
30648 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
30649 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
30650 
30651 -- 4262811 Variables ------------------------------------------------------------------------------------------
30652 l_entered_amt_idx             NUMBER;
30653 l_accted_amt_idx              NUMBER;
30654 l_acc_rev_flag                VARCHAR2(1);
30655 l_accrual_line_num            NUMBER;
30656 l_tmp_amt                     NUMBER;
30657 l_acc_rev_natural_side_code   VARCHAR2(1);
30658 
30659 l_num_entries                 NUMBER;
30660 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
30661 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
30662 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
30663 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
30664 l_recog_line_1                NUMBER;
30665 l_recog_line_2                NUMBER;
30666 
30667 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
30668 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
30669 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
30670 
30671 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
30672 
30673 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
30674 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
30675 
30679 --
30676 ---------------------------------------------------------------------------------------------------------------
30677 
30678 
30680 -- bulk performance
30681 --
30682 l_balance_type_code           VARCHAR2(1);
30683 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
30684 l_log_module                  VARCHAR2(240);
30685 
30686 --
30687 -- Upgrade strategy
30688 --
30689 l_actual_upg_option           VARCHAR2(1);
30690 l_enc_upg_option           VARCHAR2(1);
30691 
30692 --
30693 BEGIN
30694 --
30695 IF g_log_enabled THEN
30696       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_78';
30697 END IF;
30698 --
30699 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30700 
30701       trace
30702          (p_msg      => 'BEGIN of AcctLineType_78'
30703          ,p_level    => C_LEVEL_PROCEDURE
30704          ,p_module   => l_log_module);
30705 
30706 END IF;
30707 --
30708 l_component_type             := 'AMB_JLT';
30709 l_component_code             := 'AP_CASH_CLEAR_PMT_MAT_INVXRATE';
30710 l_component_type_code        := 'S';
30711 l_component_appl_id          :=  200;
30712 l_amb_context_code           := 'DEFAULT';
30713 l_entity_code                := 'AP_PAYMENTS';
30714 l_event_class_code           := 'FUTURE DATED PAYMENTS';
30715 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
30716 l_line_definition_owner_code := 'S';
30717 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
30718 --
30719 l_balance_type_code          := 'A';
30720 l_segment                     := NULL;
30721 l_ccid                        := NULL;
30722 l_adr_transaction_coa_id      := NULL;
30723 l_adr_accounting_coa_id       := NULL;
30724 l_adr_flexfield_segment_code  := NULL;
30725 l_adr_flex_value_set_id       := NULL;
30726 l_adr_value_type_code         := NULL;
30727 l_adr_value_combination_id    := NULL;
30728 l_adr_value_segment_code      := NULL;
30729 
30730 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
30731 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
30732 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
30733 l_budgetary_control_flag     := 'N';
30734 
30735 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
30736 l_bflow_applied_to_amt       := NULL; -- 5132302
30737 l_entered_amt_idx            := NULL;          -- 4262811
30738 l_accted_amt_idx             := NULL;          -- 4262811
30739 l_acc_rev_flag               := NULL;          -- 4262811
30740 l_accrual_line_num           := NULL;          -- 4262811
30741 l_tmp_amt                    := NULL;          -- 4262811
30742 --
30743  
30744 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
30745     l_balance_type_code <> 'B' THEN
30746 IF NVL(p_source_97,'
30747 ') =  'ALWAYS_CLEAR' AND 
30748 (NVL(p_source_47,'
30749 ') <>  'Y' OR 
30750 NVL(p_source_47,'
30751 ') =  'Y' AND 
30752 NVL(p_source_113,'
30753 ') <>  'Y') AND 
30754 p_source_114 IS NOT NULL AND 
30755 NVL(p_source_98,'
30756 ') =  'CASH'
30757  THEN 
30758 
30759    --
30760    XLA_AE_LINES_PKG.SetNewLine;
30761 
30762    p_balance_type_code          := l_balance_type_code;
30763    -- set the flag so later we will know whether the gain loss line needs to be created
30764    
30765    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
30766      p_actual_flag :='A';
30767    END IF;
30768 
30769    --
30770    -- bulk performance
30771    --
30772    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
30773                                       p_header_num   => 0); -- 4262811
30774    --
30775    -- set accounting line options
30776    --
30777    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
30778            p_natural_side_code          => 'C'
30779          , p_gain_or_loss_flag          => 'N'
30780          , p_gl_transfer_mode_code      => 'S'
30781          , p_acct_entry_type_code       => 'A'
30782          , p_switch_side_flag           => 'Y'
30783          , p_merge_duplicate_code       => 'A'
30784          );
30785    --
30786    l_acc_rev_natural_side_code := 'D';  -- 4262811
30787    -- 
30788    --
30789    -- set accounting line type info
30790    --
30791    xla_ae_lines_pkg.SetAcctLineType
30792       (p_component_type             => l_component_type
30793       ,p_event_type_code            => l_event_type_code
30794       ,p_line_definition_owner_code => l_line_definition_owner_code
30795       ,p_line_definition_code       => l_line_definition_code
30796       ,p_accounting_line_code       => l_component_code
30797       ,p_accounting_line_type_code  => l_component_type_code
30798       ,p_accounting_line_appl_id    => l_component_appl_id
30799       ,p_amb_context_code           => l_amb_context_code
30800       ,p_entity_code                => l_entity_code
30801       ,p_event_class_code           => l_event_class_code);
30802    --
30803    -- set accounting class
30804    --
30805    xla_ae_lines_pkg.SetAcctClass(
30806            p_accounting_class_code  => 'CASH_CLEARING'
30807          , p_ae_header_id           => l_ae_header_id
30808          );
30809 
30810    --
30811    -- set rounding class
30812    --
30813    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
30814                       'CASH_CLEARING';
30815 
30819    --
30816    --
30817    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
30818    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
30820    -- bulk performance
30821    --
30822    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
30823 
30824    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
30825       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
30826 
30827    -- 4955764
30828    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30829       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
30830 
30831    -- 4458381 Public Sector Enh
30832    
30833    --
30834    -- set accounting attributes for the line type
30835    --
30836    l_entered_amt_idx := 9;
30837    l_accted_amt_idx  := 14;
30838    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
30839    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
30840    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
30841    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
30842    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
30843    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
30844    l_rec_acct_attrs.array_char_value(3)  := p_source_100;
30845    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
30846    l_rec_acct_attrs.array_char_value(4)  := p_source_101;
30847    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
30848    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_102);
30849    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
30850    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_103);
30851    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
30852    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
30853    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
30854    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
30855    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
30856    l_rec_acct_attrs.array_num_value(9)  := p_source_99;
30857    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
30858    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
30859    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
30860    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
30861    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
30862    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
30863    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
30864    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
30865    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
30866    l_rec_acct_attrs.array_num_value(14)  := p_source_116;
30867    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
30868    l_rec_acct_attrs.array_char_value(15)  := p_source_80;
30869    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
30870    l_rec_acct_attrs.array_num_value(16)  := p_source_110;
30871    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
30872    l_rec_acct_attrs.array_num_value(17)  := p_source_111;
30873    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
30874    l_rec_acct_attrs.array_char_value(18)  := p_source_83;
30875    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
30876    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_112);
30877    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
30878    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
30879 
30880    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
30881    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
30882 
30883    ---------------------------------------------------------------------------------------------------------------
30884    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
30885    ---------------------------------------------------------------------------------------------------------------
30886    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
30887 
30888    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30889    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30890 
30891    IF xla_accounting_cache_pkg.GetValueChar
30892          (p_source_code         => 'LEDGER_CATEGORY_CODE'
30893          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
30894    AND l_bflow_method_code = 'PRIOR_ENTRY'
30895 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
30896    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
30897          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
30898        )
30899    THEN
30900          xla_ae_lines_pkg.BflowUpgEntry
30901            (p_business_method_code    => l_bflow_method_code
30902            ,p_business_class_code     => l_bflow_class_code
30903            ,p_balance_type            => l_balance_type_code);
30904    ELSE
30905       NULL;
30906 -- No business flow processing for business flow method of NONE.
30907    END IF;
30908 
30909    --
30910    -- call analytical criteria
30911    --
30912    
30913    --
30914    -- call description
30915    --
30919    -- Bug 4922099
30916    -- No description or it is inherited.
30917    --
30918    -- call ADRs
30920    --
30921    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30922         (NVL(l_actual_upg_option, 'N') = 'O') OR
30923         (NVL(l_enc_upg_option, 'N') = 'O')
30924       )
30925    THEN
30926    NULL;
30927    --
30928    --
30929    
30930   l_ccid := AcctDerRule_36(
30931            p_application_id           => p_application_id
30932          , p_ae_header_id             => l_ae_header_id 
30933 , p_source_35 => p_source_35
30934          , x_transaction_coa_id       => l_adr_transaction_coa_id
30935          , x_accounting_coa_id        => l_adr_accounting_coa_id
30936          , x_value_type_code          => l_adr_value_type_code
30937          , p_side                     => 'NA'
30938    );
30939 
30940    xla_ae_lines_pkg.set_ccid(
30941     p_code_combination_id          => l_ccid
30942   , p_value_type_code              => l_adr_value_type_code
30943   , p_transaction_coa_id           => l_adr_transaction_coa_id
30944   , p_accounting_coa_id            => l_adr_accounting_coa_id
30945   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
30946   , p_adr_type_code                => 'S'
30947   , p_component_type               => l_component_type
30948   , p_component_code               => l_component_code
30949   , p_component_type_code          => l_component_type_code
30950   , p_component_appl_id            => l_component_appl_id
30951   , p_amb_context_code             => l_amb_context_code
30952   , p_side                         => 'NA'
30953   );
30954 
30955 
30956    --
30957    --
30958    END IF;
30959    --
30960    -- Bug 4922099
30961    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
30962           (NVL(l_enc_upg_option, 'N') = 'O')
30963         ) AND
30964         (l_bflow_method_code = 'PRIOR_ENTRY')
30965       )
30966    THEN
30967       IF
30968       --
30969       1 = 2
30970       --
30971       THEN
30972       xla_accounting_err_pkg.build_message
30973                                     (p_appli_s_name            => 'XLA'
30974                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30975                                     ,p_token_1                 => 'LINE_NUMBER'
30976                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
30977                                     ,p_token_2                 => 'LINE_TYPE_NAME'
30978                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
30979                                                                              l_component_type
30980                                                                             ,l_component_code
30981                                                                             ,l_component_type_code
30982                                                                             ,l_component_appl_id
30983                                                                             ,l_amb_context_code
30984                                                                             ,l_entity_code
30985                                                                             ,l_event_class_code
30986                                                                            )
30987                                     ,p_token_3                 => 'OWNER'
30988                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
30989                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
30990                                                                           ,p_lookup_code    => l_component_type_code
30991                                                                          )
30992                                     ,p_token_4                 => 'PRODUCT_NAME'
30993                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
30994                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
30995                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
30996                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
30997                                     ,p_ae_header_id            =>  NULL
30998                                        );
30999 
31000         IF (C_LEVEL_ERROR>= g_log_level) THEN
31001                  trace
31002                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31003                       ,p_level    => C_LEVEL_ERROR
31004                       ,p_module   => l_log_module);
31005         END IF;
31006       END IF;
31007    END IF;
31008    --
31009    --
31010    ------------------------------------------------------------------------------------------------
31011    -- 4219869 Business Flow
31012    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
31013    -- Prior Entry.  Currently, the following code is always generated.
31014    ------------------------------------------------------------------------------------------------
31015    XLA_AE_LINES_PKG.ValidateCurrentLine;
31016 
31017    ------------------------------------------------------------------------------------
31018    -- 4219869 Business Flow
31019    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
31023    ----------------------------------------------------------------------------------
31020    ------------------------------------------------------------------------------------
31021    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31022 
31024    -- 4219869 Business Flow
31025    -- Update journal entry status -- Need to generate this within IF <condition>
31026    ----------------------------------------------------------------------------------
31027    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31028          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
31029          ,p_balance_type_code => l_balance_type_code
31030          );
31031 
31032    -------------------------------------------------------------------------------------------
31033    -- 4262811 - Generate the Accrual Reversal lines
31034    -------------------------------------------------------------------------------------------
31035    BEGIN
31036       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
31037                               (g_array_event(p_event_id).array_value_num('header_index'));
31038       IF l_acc_rev_flag IS NULL THEN
31039          l_acc_rev_flag := 'N';
31040       END IF;
31041    EXCEPTION
31042       WHEN OTHERS THEN
31043          l_acc_rev_flag := 'N';
31044    END;
31045    --
31046    IF (l_acc_rev_flag = 'Y') THEN
31047 
31048        -- 4645092  ------------------------------------------------------------------------------
31049        -- To allow MPA report to determine if it should generate report process
31050        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
31051        ------------------------------------------------------------------------------------------
31052 
31053        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
31054        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
31055    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
31056    -- call ADRs
31057    -- Bug 4922099
31058    --
31059    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31060         (NVL(l_actual_upg_option, 'N') = 'O') OR
31061         (NVL(l_enc_upg_option, 'N') = 'O')
31062       )
31063    THEN
31064    NULL;
31065    --
31066    --
31067    
31068   l_ccid := AcctDerRule_36(
31069            p_application_id           => p_application_id
31070          , p_ae_header_id             => l_ae_header_id 
31071 , p_source_35 => p_source_35
31072          , x_transaction_coa_id       => l_adr_transaction_coa_id
31073          , x_accounting_coa_id        => l_adr_accounting_coa_id
31074          , x_value_type_code          => l_adr_value_type_code
31075          , p_side                     => 'NA'
31076    );
31077 
31078    xla_ae_lines_pkg.set_ccid(
31079     p_code_combination_id          => l_ccid
31080   , p_value_type_code              => l_adr_value_type_code
31081   , p_transaction_coa_id           => l_adr_transaction_coa_id
31082   , p_accounting_coa_id            => l_adr_accounting_coa_id
31083   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
31084   , p_adr_type_code                => 'S'
31085   , p_component_type               => l_component_type
31086   , p_component_code               => l_component_code
31087   , p_component_type_code          => l_component_type_code
31088   , p_component_appl_id            => l_component_appl_id
31089   , p_amb_context_code             => l_amb_context_code
31090   , p_side                         => 'NA'
31091   );
31092 
31093 
31094    --
31095    --
31096    END IF;
31097 
31098        --
31099        -- Update the line information that should be overwritten
31100        --
31101        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
31102                                          p_header_num   => 1);
31103        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
31104 
31105        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
31106 
31107        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
31108           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
31109        END IF;
31110 
31111       --
31112       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
31113       --
31114       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
31115           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
31116       ELSE
31117           ---------------------------------------------------------------------------------------------------
31118           -- 4262811a Switch Sign
31119           ---------------------------------------------------------------------------------------------------
31120           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
31121           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31122                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31123           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31124                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31125           -- 5132302
31126           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
31130 
31127                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31128 
31129       END IF;
31131       -- 4955764
31132       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31133       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
31134 
31135 
31136       XLA_AE_LINES_PKG.ValidateCurrentLine;
31137       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31138 
31139       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31140                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
31141                ,p_balance_type_code => l_balance_type_code);
31142 
31143    END IF;
31144 
31145    -----------------------------------------------------------------------------------------
31146    -- 4262811 Multiperiod Accounting
31147    -----------------------------------------------------------------------------------------
31148      -- No MPA option is assigned.
31149 
31150 
31151 END IF;
31152 END IF;
31153 --
31154 
31155 --
31156 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31157    trace
31158       (p_msg      => 'END of AcctLineType_78'
31159       ,p_level    => C_LEVEL_PROCEDURE
31160       ,p_module   => l_log_module);
31161 END IF;
31162 --
31163 EXCEPTION
31164   WHEN xla_exceptions_pkg.application_exception THEN
31165       RAISE;
31166   WHEN OTHERS THEN
31167        xla_exceptions_pkg.raise_message
31168            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_78');
31169 END AcctLineType_78;
31170 --
31171 
31172 ---------------------------------------
31173 --
31174 -- PRIVATE FUNCTION
31175 --         AcctLineType_79
31176 --
31177 ---------------------------------------
31178 PROCEDURE AcctLineType_79 (
31179   p_application_id        IN NUMBER
31180  ,p_event_id              IN NUMBER
31181  ,p_calculate_acctd_flag  IN VARCHAR2
31182  ,p_calculate_g_l_flag    IN VARCHAR2
31183  ,p_actual_flag           IN OUT VARCHAR2
31184  ,p_balance_type_code     OUT VARCHAR2
31185  ,p_gain_or_loss_ref      OUT VARCHAR2
31186  
31187 --Payment Currency Code
31188  , p_source_13            IN VARCHAR2
31189 --Bank Cash Clearing Account
31190  , p_source_35            IN NUMBER
31191 --Automatic Offsets Flag
31192  , p_source_47            IN VARCHAR2
31193  , p_source_47_meaning    IN VARCHAR2
31194 --Accounting Reversal Indicator
31195  , p_source_53            IN VARCHAR2
31196 --Distribution Link Type
31197  , p_source_55            IN VARCHAR2
31198 --Override Accounted Amount Indicator
31199  , p_source_80            IN VARCHAR2
31200  , p_source_80_meaning    IN VARCHAR2
31201 --Third Party Type
31202  , p_source_83            IN VARCHAR2
31203 --Invoice Distribution Tax Line Identifier
31204  , p_source_86            IN NUMBER
31205 --Invoice Distribution Tax Distribution Identifier from Tax
31206  , p_source_87            IN NUMBER
31207 --Invoice Distribution Summary Tax Line Identifier
31208  , p_source_88            IN NUMBER
31209 --Business Flow Accounts Payable Application Identifier
31210  , p_source_91            IN NUMBER
31211 --Business Flow Invoice Distribution Type
31212  , p_source_92            IN VARCHAR2
31213 --Business Flow Invoice Entity Code
31214  , p_source_93            IN VARCHAR2
31215 --Business Flow Invoice Distribution Identifier
31216  , p_source_94            IN NUMBER
31217 --Business Flow Invoice Identifier
31218  , p_source_95            IN NUMBER
31219 --When to Account for Payment Option
31220  , p_source_97            IN VARCHAR2
31221 --Payment Distribution Type
31222  , p_source_98            IN VARCHAR2
31223  , p_source_98_meaning    IN VARCHAR2
31224 --Payment Distribution Amount
31225  , p_source_99            IN NUMBER
31226 --Payment Distribution Identifier
31227  , p_source_104            IN NUMBER
31228 --Payment Supplier Identifier
31229  , p_source_110            IN NUMBER
31230 --Payment Supplier Site Identifier
31231  , p_source_111            IN NUMBER
31232 --Payment Distribution Reversed Identifier
31233  , p_source_112            IN NUMBER
31234 --Pooled Bank Account Option
31235  , p_source_113            IN VARCHAR2
31236  , p_source_113_meaning    IN VARCHAR2
31237 --Payment Maturity Date
31238  , p_source_114            IN DATE
31239 --Payment Distribution (Payment Rate) Ledger Amount
31240  , p_source_115            IN NUMBER
31241 --Payment Exchange Date
31242  , p_source_117            IN DATE
31243 --Payment Exchange Rate
31244  , p_source_118            IN NUMBER
31245 --Payment Exchange Rate Type
31246  , p_source_119            IN VARCHAR2
31247 --Payment Type
31248  , p_source_122            IN VARCHAR2
31249  , p_source_122_meaning    IN VARCHAR2
31250 )
31251 IS
31252 
31253 l_component_type              VARCHAR2(80);
31254 l_component_code              VARCHAR2(30);
31255 l_component_type_code         VARCHAR2(1);
31256 l_component_appl_id           INTEGER;
31257 l_amb_context_code            VARCHAR2(30);
31258 l_entity_code                 VARCHAR2(30);
31259 l_event_class_code            VARCHAR2(30);
31260 l_ae_header_id                NUMBER;
31261 l_event_type_code             VARCHAR2(30);
31262 l_line_definition_code        VARCHAR2(30);
31263 l_line_definition_owner_code  VARCHAR2(1);
31267 l_ccid                        NUMBER;
31264 --
31265 -- adr variables
31266 l_segment                     VARCHAR2(30);
31268 l_adr_transaction_coa_id      NUMBER;
31269 l_adr_accounting_coa_id       NUMBER;
31270 l_adr_flexfield_segment_code  VARCHAR2(30);
31271 l_adr_flex_value_set_id       NUMBER;
31272 l_adr_value_type_code         VARCHAR2(30);
31273 l_adr_value_combination_id    NUMBER;
31274 l_adr_value_segment_code      VARCHAR2(30);
31275 
31276 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
31277 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
31278 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
31279 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
31280 
31281 -- 4262811 Variables ------------------------------------------------------------------------------------------
31282 l_entered_amt_idx             NUMBER;
31283 l_accted_amt_idx              NUMBER;
31284 l_acc_rev_flag                VARCHAR2(1);
31285 l_accrual_line_num            NUMBER;
31286 l_tmp_amt                     NUMBER;
31287 l_acc_rev_natural_side_code   VARCHAR2(1);
31288 
31289 l_num_entries                 NUMBER;
31290 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
31291 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
31292 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
31293 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
31294 l_recog_line_1                NUMBER;
31295 l_recog_line_2                NUMBER;
31296 
31297 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
31298 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
31299 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
31300 
31301 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
31302 
31303 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
31304 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
31305 
31306 ---------------------------------------------------------------------------------------------------------------
31307 
31308 
31309 --
31310 -- bulk performance
31311 --
31312 l_balance_type_code           VARCHAR2(1);
31313 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
31314 l_log_module                  VARCHAR2(240);
31315 
31316 --
31317 -- Upgrade strategy
31318 --
31319 l_actual_upg_option           VARCHAR2(1);
31320 l_enc_upg_option           VARCHAR2(1);
31321 
31322 --
31323 BEGIN
31324 --
31325 IF g_log_enabled THEN
31326       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_79';
31327 END IF;
31328 --
31329 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31330 
31331       trace
31332          (p_msg      => 'BEGIN of AcctLineType_79'
31333          ,p_level    => C_LEVEL_PROCEDURE
31334          ,p_module   => l_log_module);
31335 
31336 END IF;
31337 --
31338 l_component_type             := 'AMB_JLT';
31339 l_component_code             := 'AP_CASH_CLEAR_REF';
31340 l_component_type_code        := 'S';
31341 l_component_appl_id          :=  200;
31342 l_amb_context_code           := 'DEFAULT';
31343 l_entity_code                := 'AP_PAYMENTS';
31344 l_event_class_code           := 'REFUNDS';
31345 l_event_type_code            := 'REFUNDS_ALL';
31346 l_line_definition_owner_code := 'S';
31347 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
31348 --
31349 l_balance_type_code          := 'A';
31350 l_segment                     := NULL;
31351 l_ccid                        := NULL;
31352 l_adr_transaction_coa_id      := NULL;
31353 l_adr_accounting_coa_id       := NULL;
31354 l_adr_flexfield_segment_code  := NULL;
31355 l_adr_flex_value_set_id       := NULL;
31356 l_adr_value_type_code         := NULL;
31357 l_adr_value_combination_id    := NULL;
31358 l_adr_value_segment_code      := NULL;
31359 
31360 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
31361 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
31362 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
31363 l_budgetary_control_flag     := 'N';
31364 
31365 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
31366 l_bflow_applied_to_amt       := NULL; -- 5132302
31367 l_entered_amt_idx            := NULL;          -- 4262811
31368 l_accted_amt_idx             := NULL;          -- 4262811
31369 l_acc_rev_flag               := NULL;          -- 4262811
31370 l_accrual_line_num           := NULL;          -- 4262811
31371 l_tmp_amt                    := NULL;          -- 4262811
31372 --
31373  
31374 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
31375     l_balance_type_code <> 'B' THEN
31376 IF NVL(p_source_97,'
31377 ') =  'ALWAYS_ALWAYS' AND 
31378 (NVL(p_source_47,'
31379 ') <>  'Y' OR 
31380 NVL(p_source_47,'
31381 ') =  'Y' AND 
31382 NVL(p_source_113,'
31383 ') <>  'Y') AND 
31384 p_source_114 IS NULL AND 
31385 NVL(p_source_98,'
31386 ') =  'CASH' AND 
31387 NVL(p_source_122,'
31388 ') =  'R'
31389  THEN 
31390 
31391    --
31392    XLA_AE_LINES_PKG.SetNewLine;
31393 
31394    p_balance_type_code          := l_balance_type_code;
31398      p_actual_flag :='A';
31395    -- set the flag so later we will know whether the gain loss line needs to be created
31396    
31397    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
31399    END IF;
31400 
31401    --
31402    -- bulk performance
31403    --
31404    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
31405                                       p_header_num   => 0); -- 4262811
31406    --
31407    -- set accounting line options
31408    --
31409    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
31410            p_natural_side_code          => 'C'
31411          , p_gain_or_loss_flag          => 'N'
31412          , p_gl_transfer_mode_code      => 'S'
31413          , p_acct_entry_type_code       => 'A'
31414          , p_switch_side_flag           => 'Y'
31415          , p_merge_duplicate_code       => 'A'
31416          );
31417    --
31418    l_acc_rev_natural_side_code := 'D';  -- 4262811
31419    -- 
31420    --
31421    -- set accounting line type info
31422    --
31423    xla_ae_lines_pkg.SetAcctLineType
31424       (p_component_type             => l_component_type
31425       ,p_event_type_code            => l_event_type_code
31426       ,p_line_definition_owner_code => l_line_definition_owner_code
31427       ,p_line_definition_code       => l_line_definition_code
31428       ,p_accounting_line_code       => l_component_code
31429       ,p_accounting_line_type_code  => l_component_type_code
31430       ,p_accounting_line_appl_id    => l_component_appl_id
31431       ,p_amb_context_code           => l_amb_context_code
31432       ,p_entity_code                => l_entity_code
31433       ,p_event_class_code           => l_event_class_code);
31434    --
31435    -- set accounting class
31436    --
31437    xla_ae_lines_pkg.SetAcctClass(
31438            p_accounting_class_code  => 'CASH_CLEARING'
31439          , p_ae_header_id           => l_ae_header_id
31440          );
31441 
31442    --
31443    -- set rounding class
31444    --
31445    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
31446                       'CASH_CLEARING';
31447 
31448    --
31449    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31450    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31451    --
31452    -- bulk performance
31453    --
31454    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31455 
31456    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31457       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31458 
31459    -- 4955764
31460    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31461       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31462 
31463    -- 4458381 Public Sector Enh
31464    
31465    --
31466    -- set accounting attributes for the line type
31467    --
31468    l_entered_amt_idx := 9;
31469    l_accted_amt_idx  := 14;
31470    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
31471    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
31472    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
31473    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
31474    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
31475    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
31476    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
31477    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
31478    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
31479    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
31480    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
31481    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
31482    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
31483    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
31484    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
31485    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
31486    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
31487    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
31488    l_rec_acct_attrs.array_num_value(9)  := p_source_99;
31489    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
31490    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
31491    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
31492    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
31493    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
31494    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
31495    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
31496    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
31497    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
31498    l_rec_acct_attrs.array_num_value(14)  := p_source_115;
31499    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
31500    l_rec_acct_attrs.array_char_value(15)  := p_source_80;
31501    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
31502    l_rec_acct_attrs.array_num_value(16)  := p_source_110;
31503    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
31504    l_rec_acct_attrs.array_num_value(17)  := p_source_111;
31508    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_112);
31505    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
31506    l_rec_acct_attrs.array_char_value(18)  := p_source_83;
31507    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
31509    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
31510    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
31511    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
31512    l_rec_acct_attrs.array_num_value(21)  := p_source_86;
31513    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
31514    l_rec_acct_attrs.array_num_value(22)  := p_source_87;
31515    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
31516    l_rec_acct_attrs.array_num_value(23)  := p_source_88;
31517 
31518    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
31519    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
31520 
31521    ---------------------------------------------------------------------------------------------------------------
31522    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
31523    ---------------------------------------------------------------------------------------------------------------
31524    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
31525 
31526    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31527    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31528 
31529    IF xla_accounting_cache_pkg.GetValueChar
31530          (p_source_code         => 'LEDGER_CATEGORY_CODE'
31531          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
31532    AND l_bflow_method_code = 'PRIOR_ENTRY'
31533 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
31534    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
31535          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
31536        )
31537    THEN
31538          xla_ae_lines_pkg.BflowUpgEntry
31539            (p_business_method_code    => l_bflow_method_code
31540            ,p_business_class_code     => l_bflow_class_code
31541            ,p_balance_type            => l_balance_type_code);
31542    ELSE
31543       NULL;
31544 -- No business flow processing for business flow method of NONE.
31545    END IF;
31546 
31547    --
31548    -- call analytical criteria
31549    --
31550    
31551    --
31552    -- call description
31553    --
31554    -- No description or it is inherited.
31555    --
31556    -- call ADRs
31557    -- Bug 4922099
31558    --
31559    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31560         (NVL(l_actual_upg_option, 'N') = 'O') OR
31561         (NVL(l_enc_upg_option, 'N') = 'O')
31562       )
31563    THEN
31564    NULL;
31565    --
31566    --
31567    
31568   l_ccid := AcctDerRule_36(
31569            p_application_id           => p_application_id
31570          , p_ae_header_id             => l_ae_header_id 
31571 , p_source_35 => p_source_35
31572          , x_transaction_coa_id       => l_adr_transaction_coa_id
31573          , x_accounting_coa_id        => l_adr_accounting_coa_id
31574          , x_value_type_code          => l_adr_value_type_code
31575          , p_side                     => 'NA'
31576    );
31577 
31578    xla_ae_lines_pkg.set_ccid(
31579     p_code_combination_id          => l_ccid
31580   , p_value_type_code              => l_adr_value_type_code
31581   , p_transaction_coa_id           => l_adr_transaction_coa_id
31582   , p_accounting_coa_id            => l_adr_accounting_coa_id
31583   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
31584   , p_adr_type_code                => 'S'
31585   , p_component_type               => l_component_type
31586   , p_component_code               => l_component_code
31587   , p_component_type_code          => l_component_type_code
31588   , p_component_appl_id            => l_component_appl_id
31589   , p_amb_context_code             => l_amb_context_code
31590   , p_side                         => 'NA'
31591   );
31592 
31593 
31594    --
31595    --
31596    END IF;
31597    --
31598    -- Bug 4922099
31599    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
31600           (NVL(l_enc_upg_option, 'N') = 'O')
31601         ) AND
31602         (l_bflow_method_code = 'PRIOR_ENTRY')
31603       )
31604    THEN
31605       IF
31606       --
31607       1 = 2
31608       --
31609       THEN
31610       xla_accounting_err_pkg.build_message
31611                                     (p_appli_s_name            => 'XLA'
31612                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31613                                     ,p_token_1                 => 'LINE_NUMBER'
31614                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
31615                                     ,p_token_2                 => 'LINE_TYPE_NAME'
31616                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
31617                                                                              l_component_type
31618                                                                             ,l_component_code
31619                                                                             ,l_component_type_code
31623                                                                             ,l_event_class_code
31620                                                                             ,l_component_appl_id
31621                                                                             ,l_amb_context_code
31622                                                                             ,l_entity_code
31624                                                                            )
31625                                     ,p_token_3                 => 'OWNER'
31626                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
31627                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
31628                                                                           ,p_lookup_code    => l_component_type_code
31629                                                                          )
31630                                     ,p_token_4                 => 'PRODUCT_NAME'
31631                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
31632                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
31633                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
31634                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
31635                                     ,p_ae_header_id            =>  NULL
31636                                        );
31637 
31638         IF (C_LEVEL_ERROR>= g_log_level) THEN
31639                  trace
31640                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31641                       ,p_level    => C_LEVEL_ERROR
31642                       ,p_module   => l_log_module);
31643         END IF;
31644       END IF;
31645    END IF;
31646    --
31647    --
31648    ------------------------------------------------------------------------------------------------
31649    -- 4219869 Business Flow
31650    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
31651    -- Prior Entry.  Currently, the following code is always generated.
31652    ------------------------------------------------------------------------------------------------
31653    XLA_AE_LINES_PKG.ValidateCurrentLine;
31654 
31655    ------------------------------------------------------------------------------------
31656    -- 4219869 Business Flow
31657    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
31658    ------------------------------------------------------------------------------------
31659    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31660 
31661    ----------------------------------------------------------------------------------
31662    -- 4219869 Business Flow
31663    -- Update journal entry status -- Need to generate this within IF <condition>
31664    ----------------------------------------------------------------------------------
31665    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31666          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
31667          ,p_balance_type_code => l_balance_type_code
31668          );
31669 
31670    -------------------------------------------------------------------------------------------
31671    -- 4262811 - Generate the Accrual Reversal lines
31672    -------------------------------------------------------------------------------------------
31673    BEGIN
31674       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
31675                               (g_array_event(p_event_id).array_value_num('header_index'));
31676       IF l_acc_rev_flag IS NULL THEN
31677          l_acc_rev_flag := 'N';
31678       END IF;
31679    EXCEPTION
31680       WHEN OTHERS THEN
31681          l_acc_rev_flag := 'N';
31682    END;
31683    --
31684    IF (l_acc_rev_flag = 'Y') THEN
31685 
31686        -- 4645092  ------------------------------------------------------------------------------
31687        -- To allow MPA report to determine if it should generate report process
31688        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
31689        ------------------------------------------------------------------------------------------
31690 
31691        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
31692        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
31693    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
31694    -- call ADRs
31695    -- Bug 4922099
31696    --
31697    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31698         (NVL(l_actual_upg_option, 'N') = 'O') OR
31699         (NVL(l_enc_upg_option, 'N') = 'O')
31700       )
31701    THEN
31702    NULL;
31703    --
31704    --
31705    
31706   l_ccid := AcctDerRule_36(
31707            p_application_id           => p_application_id
31708          , p_ae_header_id             => l_ae_header_id 
31709 , p_source_35 => p_source_35
31710          , x_transaction_coa_id       => l_adr_transaction_coa_id
31711          , x_accounting_coa_id        => l_adr_accounting_coa_id
31712          , x_value_type_code          => l_adr_value_type_code
31713          , p_side                     => 'NA'
31714    );
31715 
31716    xla_ae_lines_pkg.set_ccid(
31717     p_code_combination_id          => l_ccid
31718   , p_value_type_code              => l_adr_value_type_code
31719   , p_transaction_coa_id           => l_adr_transaction_coa_id
31723   , p_component_type               => l_component_type
31720   , p_accounting_coa_id            => l_adr_accounting_coa_id
31721   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
31722   , p_adr_type_code                => 'S'
31724   , p_component_code               => l_component_code
31725   , p_component_type_code          => l_component_type_code
31726   , p_component_appl_id            => l_component_appl_id
31727   , p_amb_context_code             => l_amb_context_code
31728   , p_side                         => 'NA'
31729   );
31730 
31731 
31732    --
31733    --
31734    END IF;
31735 
31736        --
31737        -- Update the line information that should be overwritten
31738        --
31739        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
31740                                          p_header_num   => 1);
31741        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
31742 
31743        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
31744 
31745        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
31746           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
31747        END IF;
31748 
31749       --
31750       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
31751       --
31752       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
31753           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
31754       ELSE
31755           ---------------------------------------------------------------------------------------------------
31756           -- 4262811a Switch Sign
31757           ---------------------------------------------------------------------------------------------------
31758           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
31759           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31760                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31761           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31762                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31763           -- 5132302
31764           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
31765                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31766 
31767       END IF;
31768 
31769       -- 4955764
31770       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31771       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
31772 
31773 
31774       XLA_AE_LINES_PKG.ValidateCurrentLine;
31775       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31776 
31777       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31778                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
31779                ,p_balance_type_code => l_balance_type_code);
31780 
31781    END IF;
31782 
31783    -----------------------------------------------------------------------------------------
31784    -- 4262811 Multiperiod Accounting
31785    -----------------------------------------------------------------------------------------
31786      -- No MPA option is assigned.
31787 
31788 
31789 END IF;
31790 END IF;
31791 --
31792 
31793 --
31794 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31795    trace
31796       (p_msg      => 'END of AcctLineType_79'
31797       ,p_level    => C_LEVEL_PROCEDURE
31798       ,p_module   => l_log_module);
31799 END IF;
31800 --
31801 EXCEPTION
31802   WHEN xla_exceptions_pkg.application_exception THEN
31803       RAISE;
31804   WHEN OTHERS THEN
31805        xla_exceptions_pkg.raise_message
31806            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_79');
31807 END AcctLineType_79;
31808 --
31809 
31810 ---------------------------------------
31811 --
31812 -- PRIVATE FUNCTION
31813 --         AcctLineType_80
31814 --
31815 ---------------------------------------
31816 PROCEDURE AcctLineType_80 (
31817   p_application_id        IN NUMBER
31818  ,p_event_id              IN NUMBER
31819  ,p_calculate_acctd_flag  IN VARCHAR2
31820  ,p_calculate_g_l_flag    IN VARCHAR2
31821  ,p_actual_flag           IN OUT VARCHAR2
31822  ,p_balance_type_code     OUT VARCHAR2
31823  ,p_gain_or_loss_ref      OUT VARCHAR2
31824  
31825 --Payment Currency Code
31826  , p_source_13            IN VARCHAR2
31827 --Automatic Offsets Value
31828  , p_source_15            IN VARCHAR2
31829  , p_source_15_meaning    IN VARCHAR2
31830 --Bank Cash Clearing Account
31831  , p_source_35            IN NUMBER
31832 --Accounting Reversal Indicator
31833  , p_source_53            IN VARCHAR2
31834 --Distribution Link Type
31835  , p_source_55            IN VARCHAR2
31836 --Override Accounted Amount Indicator
31837  , p_source_80            IN VARCHAR2
31838  , p_source_80_meaning    IN VARCHAR2
31839 --Third Party Type
31840  , p_source_83            IN VARCHAR2
31841 --Invoice Distribution Tax Line Identifier
31842  , p_source_86            IN NUMBER
31846  , p_source_88            IN NUMBER
31843 --Invoice Distribution Tax Distribution Identifier from Tax
31844  , p_source_87            IN NUMBER
31845 --Invoice Distribution Summary Tax Line Identifier
31847 --Business Flow Accounts Payable Application Identifier
31848  , p_source_91            IN NUMBER
31849 --Business Flow Invoice Distribution Type
31850  , p_source_92            IN VARCHAR2
31851 --Business Flow Invoice Entity Code
31852  , p_source_93            IN VARCHAR2
31853 --Business Flow Invoice Distribution Identifier
31854  , p_source_94            IN NUMBER
31855 --Business Flow Invoice Identifier
31856  , p_source_95            IN NUMBER
31857 --When to Account for Payment Option
31858  , p_source_97            IN VARCHAR2
31859 --Payment Distribution Type
31860  , p_source_98            IN VARCHAR2
31861  , p_source_98_meaning    IN VARCHAR2
31862 --Payment Distribution Amount
31863  , p_source_99            IN NUMBER
31864 --Payment Distribution Identifier
31865  , p_source_104            IN NUMBER
31866 --Payment Supplier Identifier
31867  , p_source_110            IN NUMBER
31868 --Payment Supplier Site Identifier
31869  , p_source_111            IN NUMBER
31870 --Payment Distribution Reversed Identifier
31871  , p_source_112            IN NUMBER
31872 --Pooled Bank Account Option
31873  , p_source_113            IN VARCHAR2
31874  , p_source_113_meaning    IN VARCHAR2
31875 --Payment Maturity Date
31876  , p_source_114            IN DATE
31877 --Payment Distribution (Payment Rate) Ledger Amount
31878  , p_source_115            IN NUMBER
31879 --Payment Exchange Date
31880  , p_source_117            IN DATE
31881 --Payment Exchange Rate
31882  , p_source_118            IN NUMBER
31883 --Payment Exchange Rate Type
31884  , p_source_119            IN VARCHAR2
31885 --Payment Type
31886  , p_source_122            IN VARCHAR2
31887  , p_source_122_meaning    IN VARCHAR2
31888 )
31889 IS
31890 
31891 l_component_type              VARCHAR2(80);
31892 l_component_code              VARCHAR2(30);
31893 l_component_type_code         VARCHAR2(1);
31894 l_component_appl_id           INTEGER;
31895 l_amb_context_code            VARCHAR2(30);
31896 l_entity_code                 VARCHAR2(30);
31897 l_event_class_code            VARCHAR2(30);
31898 l_ae_header_id                NUMBER;
31899 l_event_type_code             VARCHAR2(30);
31900 l_line_definition_code        VARCHAR2(30);
31901 l_line_definition_owner_code  VARCHAR2(1);
31902 --
31903 -- adr variables
31904 l_segment                     VARCHAR2(30);
31905 l_ccid                        NUMBER;
31906 l_adr_transaction_coa_id      NUMBER;
31907 l_adr_accounting_coa_id       NUMBER;
31908 l_adr_flexfield_segment_code  VARCHAR2(30);
31909 l_adr_flex_value_set_id       NUMBER;
31910 l_adr_value_type_code         VARCHAR2(30);
31911 l_adr_value_combination_id    NUMBER;
31912 l_adr_value_segment_code      VARCHAR2(30);
31913 
31914 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
31915 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
31916 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
31917 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
31918 
31919 -- 4262811 Variables ------------------------------------------------------------------------------------------
31920 l_entered_amt_idx             NUMBER;
31921 l_accted_amt_idx              NUMBER;
31922 l_acc_rev_flag                VARCHAR2(1);
31923 l_accrual_line_num            NUMBER;
31924 l_tmp_amt                     NUMBER;
31925 l_acc_rev_natural_side_code   VARCHAR2(1);
31926 
31927 l_num_entries                 NUMBER;
31928 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
31929 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
31930 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
31931 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
31932 l_recog_line_1                NUMBER;
31933 l_recog_line_2                NUMBER;
31934 
31935 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
31936 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
31937 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
31938 
31939 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
31940 
31941 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
31942 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
31943 
31944 ---------------------------------------------------------------------------------------------------------------
31945 
31946 
31947 --
31948 -- bulk performance
31949 --
31950 l_balance_type_code           VARCHAR2(1);
31951 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
31952 l_log_module                  VARCHAR2(240);
31953 
31954 --
31955 -- Upgrade strategy
31956 --
31957 l_actual_upg_option           VARCHAR2(1);
31958 l_enc_upg_option           VARCHAR2(1);
31959 
31960 --
31961 BEGIN
31962 --
31963 IF g_log_enabled THEN
31964       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_80';
31965 END IF;
31966 --
31967 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31968 
31969       trace
31970          (p_msg      => 'BEGIN of AcctLineType_80'
31974 END IF;
31971          ,p_level    => C_LEVEL_PROCEDURE
31972          ,p_module   => l_log_module);
31973 
31975 --
31976 l_component_type             := 'AMB_JLT';
31977 l_component_code             := 'AP_CASH_CLEAR_REF_AOS_AS';
31978 l_component_type_code        := 'S';
31979 l_component_appl_id          :=  200;
31980 l_amb_context_code           := 'DEFAULT';
31981 l_entity_code                := 'AP_PAYMENTS';
31982 l_event_class_code           := 'REFUNDS';
31983 l_event_type_code            := 'REFUNDS_ALL';
31984 l_line_definition_owner_code := 'S';
31985 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
31986 --
31987 l_balance_type_code          := 'A';
31988 l_segment                     := NULL;
31989 l_ccid                        := NULL;
31990 l_adr_transaction_coa_id      := NULL;
31991 l_adr_accounting_coa_id       := NULL;
31992 l_adr_flexfield_segment_code  := NULL;
31993 l_adr_flex_value_set_id       := NULL;
31994 l_adr_value_type_code         := NULL;
31995 l_adr_value_combination_id    := NULL;
31996 l_adr_value_segment_code      := NULL;
31997 
31998 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
31999 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
32000 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
32001 l_budgetary_control_flag     := 'N';
32002 
32003 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
32004 l_bflow_applied_to_amt       := NULL; -- 5132302
32005 l_entered_amt_idx            := NULL;          -- 4262811
32006 l_accted_amt_idx             := NULL;          -- 4262811
32007 l_acc_rev_flag               := NULL;          -- 4262811
32008 l_accrual_line_num           := NULL;          -- 4262811
32009 l_tmp_amt                    := NULL;          -- 4262811
32010 --
32011  
32012 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
32013     l_balance_type_code <> 'B' THEN
32014 IF NVL(p_source_97,'
32015 ') =  'ALWAYS_ALWAYS' AND 
32016 (NVL(p_source_113,'
32017 ') =  'Y' AND 
32018 NVL(p_source_15,'
32019 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
32020 p_source_114 IS NULL AND 
32021 NVL(p_source_98,'
32022 ') =  'CASH' AND 
32023 NVL(p_source_122,'
32024 ') =  'R'
32025  THEN 
32026 
32027    --
32028    XLA_AE_LINES_PKG.SetNewLine;
32029 
32030    p_balance_type_code          := l_balance_type_code;
32031    -- set the flag so later we will know whether the gain loss line needs to be created
32032    
32033    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
32034      p_actual_flag :='A';
32035    END IF;
32036 
32037    --
32038    -- bulk performance
32039    --
32040    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
32041                                       p_header_num   => 0); -- 4262811
32042    --
32043    -- set accounting line options
32044    --
32045    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
32046            p_natural_side_code          => 'C'
32047          , p_gain_or_loss_flag          => 'N'
32048          , p_gl_transfer_mode_code      => 'S'
32049          , p_acct_entry_type_code       => 'A'
32050          , p_switch_side_flag           => 'Y'
32051          , p_merge_duplicate_code       => 'A'
32052          );
32053    --
32054    l_acc_rev_natural_side_code := 'D';  -- 4262811
32055    -- 
32056    --
32057    -- set accounting line type info
32058    --
32059    xla_ae_lines_pkg.SetAcctLineType
32060       (p_component_type             => l_component_type
32061       ,p_event_type_code            => l_event_type_code
32062       ,p_line_definition_owner_code => l_line_definition_owner_code
32063       ,p_line_definition_code       => l_line_definition_code
32064       ,p_accounting_line_code       => l_component_code
32065       ,p_accounting_line_type_code  => l_component_type_code
32066       ,p_accounting_line_appl_id    => l_component_appl_id
32067       ,p_amb_context_code           => l_amb_context_code
32068       ,p_entity_code                => l_entity_code
32069       ,p_event_class_code           => l_event_class_code);
32070    --
32071    -- set accounting class
32072    --
32073    xla_ae_lines_pkg.SetAcctClass(
32074            p_accounting_class_code  => 'CASH_CLEARING'
32075          , p_ae_header_id           => l_ae_header_id
32076          );
32077 
32078    --
32079    -- set rounding class
32080    --
32081    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
32082                       'CASH_CLEARING';
32083 
32084    --
32085    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
32086    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
32087    --
32088    -- bulk performance
32089    --
32090    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
32091 
32092    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
32093       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
32094 
32095    -- 4955764
32096    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32097       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
32098 
32102    -- set accounting attributes for the line type
32099    -- 4458381 Public Sector Enh
32100    
32101    --
32103    --
32104    l_entered_amt_idx := 9;
32105    l_accted_amt_idx  := 14;
32106    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
32107    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
32108    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
32109    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
32110    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
32111    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
32112    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
32113    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
32114    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
32115    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
32116    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
32117    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
32118    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
32119    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
32120    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
32121    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
32122    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
32123    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
32124    l_rec_acct_attrs.array_num_value(9)  := p_source_99;
32125    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
32126    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
32127    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
32128    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
32129    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
32130    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
32131    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
32132    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
32133    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
32134    l_rec_acct_attrs.array_num_value(14)  := p_source_115;
32135    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
32136    l_rec_acct_attrs.array_char_value(15)  := p_source_80;
32137    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
32138    l_rec_acct_attrs.array_num_value(16)  := p_source_110;
32139    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
32140    l_rec_acct_attrs.array_num_value(17)  := p_source_111;
32141    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
32142    l_rec_acct_attrs.array_char_value(18)  := p_source_83;
32143    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
32144    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_112);
32145    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
32146    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
32147    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
32148    l_rec_acct_attrs.array_num_value(21)  := p_source_86;
32149    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
32150    l_rec_acct_attrs.array_num_value(22)  := p_source_87;
32151    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
32152    l_rec_acct_attrs.array_num_value(23)  := p_source_88;
32153 
32154    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
32155    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
32156 
32157    ---------------------------------------------------------------------------------------------------------------
32158    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
32159    ---------------------------------------------------------------------------------------------------------------
32160    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
32161 
32162    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32163    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32164 
32165    IF xla_accounting_cache_pkg.GetValueChar
32166          (p_source_code         => 'LEDGER_CATEGORY_CODE'
32167          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
32168    AND l_bflow_method_code = 'PRIOR_ENTRY'
32169 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
32170    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
32171          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
32172        )
32173    THEN
32174          xla_ae_lines_pkg.BflowUpgEntry
32175            (p_business_method_code    => l_bflow_method_code
32176            ,p_business_class_code     => l_bflow_class_code
32177            ,p_balance_type            => l_balance_type_code);
32178    ELSE
32179       NULL;
32180 XLA_AE_LINES_PKG.business_flow_validation(
32181                                 p_business_method_code     => l_bflow_method_code
32182                                ,p_business_class_code      => l_bflow_class_code
32183                                ,p_inherit_description_flag => l_inherit_desc_flag);
32184    END IF;
32185 
32186    --
32187    -- call analytical criteria
32188    --
32189    
32190    --
32191    -- call description
32192    --
32193    -- No description or it is inherited.
32194    --
32195    -- call ADRs
32196    -- Bug 4922099
32197    --
32201       )
32198    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32199         (NVL(l_actual_upg_option, 'N') = 'O') OR
32200         (NVL(l_enc_upg_option, 'N') = 'O')
32202    THEN
32203    NULL;
32204    --
32205    --
32206    
32207    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
32208      p_code_combination_id      => TO_NUMBER(C_NUM)
32209    , p_value_type_code          => NULL
32210    , p_transaction_coa_id       => null
32211    , p_accounting_coa_id        => null
32212    , p_adr_code                 => NULL
32213    , p_adr_type_code            => NULL
32214    , p_component_type           => l_component_type
32215    , p_component_code           => l_component_code
32216    , p_component_type_code      => l_component_type_code
32217    , p_component_appl_id        => l_component_appl_id
32218    , p_amb_context_code         => l_amb_context_code
32219    , p_side                     => NULL
32220    );
32221 
32222    
32223   -- initialise segments
32224   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32225   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32226   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32227   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32228   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32229   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32230   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32231   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32232   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32233   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32234   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32235   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32236   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32237   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32238   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32239   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32240   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32241   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32242   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32243   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32244   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32245   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32246   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32247   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32248   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32249   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32250   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32251   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32252   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32253   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32254   --
32255 
32256    --
32257 
32258 
32259    l_segment := AcctDerRule_16(
32260            p_application_id           => p_application_id
32261          , p_ae_header_id             => l_ae_header_id 
32262 , p_source_35 => p_source_35
32263          , x_transaction_coa_id       => l_adr_transaction_coa_id
32264          , x_accounting_coa_id        => l_adr_accounting_coa_id
32265          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
32266          , x_flex_value_set_id        => l_adr_flex_value_set_id
32267          , x_value_type_code          => l_adr_value_type_code
32268          , x_value_combination_id     => l_adr_value_combination_id
32269          , x_value_segment_code       => l_adr_value_segment_code
32270          , p_side                     => 'NA'
32271          , p_override_seg_flag        => 'Y'
32272    );
32273 
32274    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
32275 
32276       xla_ae_lines_pkg.set_segment(
32277           p_to_segment_code         => 'GL_ACCOUNT'
32278         , p_segment_value           => l_segment
32279         , p_from_segment_code       => l_adr_value_segment_code
32280         , p_from_combination_id     => l_adr_value_combination_id
32281         , p_value_type_code         => l_adr_value_type_code
32282         , p_transaction_coa_id      => l_adr_transaction_coa_id
32283         , p_accounting_coa_id       => l_adr_accounting_coa_id
32284         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
32285         , p_flex_value_set_id       => l_adr_flex_value_set_id
32286         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
32287         , p_adr_type_code           => 'S'
32288         , p_component_type          => l_component_type
32289         , p_component_code          => l_component_code
32290         , p_component_type_code     => l_component_type_code
32294         , p_event_class_code        => 'REFUNDS'
32291         , p_component_appl_id       => l_component_appl_id
32292         , p_amb_context_code        => l_amb_context_code
32293         , p_entity_code             => 'AP_PAYMENTS'
32295         , p_side                    => 'NA'
32296         );
32297 
32298   END IF;
32299 
32300    --
32301    --
32302    END IF;
32303    --
32304    -- Bug 4922099
32305    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
32306           (NVL(l_enc_upg_option, 'N') = 'O')
32307         ) AND
32308         (l_bflow_method_code = 'PRIOR_ENTRY')
32309       )
32310    THEN
32311       IF
32312       --
32313       1 = 2
32314       --
32315       THEN
32316       xla_accounting_err_pkg.build_message
32317                                     (p_appli_s_name            => 'XLA'
32318                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32319                                     ,p_token_1                 => 'LINE_NUMBER'
32320                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
32321                                     ,p_token_2                 => 'LINE_TYPE_NAME'
32322                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
32323                                                                              l_component_type
32324                                                                             ,l_component_code
32325                                                                             ,l_component_type_code
32326                                                                             ,l_component_appl_id
32327                                                                             ,l_amb_context_code
32328                                                                             ,l_entity_code
32329                                                                             ,l_event_class_code
32330                                                                            )
32331                                     ,p_token_3                 => 'OWNER'
32332                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
32333                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
32334                                                                           ,p_lookup_code    => l_component_type_code
32335                                                                          )
32336                                     ,p_token_4                 => 'PRODUCT_NAME'
32337                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
32338                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
32339                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
32340                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
32341                                     ,p_ae_header_id            =>  NULL
32342                                        );
32343 
32344         IF (C_LEVEL_ERROR>= g_log_level) THEN
32345                  trace
32346                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32347                       ,p_level    => C_LEVEL_ERROR
32348                       ,p_module   => l_log_module);
32349         END IF;
32350       END IF;
32351    END IF;
32352    --
32353    --
32354    ------------------------------------------------------------------------------------------------
32355    -- 4219869 Business Flow
32356    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
32357    -- Prior Entry.  Currently, the following code is always generated.
32358    ------------------------------------------------------------------------------------------------
32359    XLA_AE_LINES_PKG.ValidateCurrentLine;
32360 
32361    ------------------------------------------------------------------------------------
32362    -- 4219869 Business Flow
32363    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
32364    ------------------------------------------------------------------------------------
32365    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32366 
32367    ----------------------------------------------------------------------------------
32368    -- 4219869 Business Flow
32369    -- Update journal entry status -- Need to generate this within IF <condition>
32370    ----------------------------------------------------------------------------------
32371    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32372          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32373          ,p_balance_type_code => l_balance_type_code
32374          );
32375 
32376    -------------------------------------------------------------------------------------------
32377    -- 4262811 - Generate the Accrual Reversal lines
32378    -------------------------------------------------------------------------------------------
32379    BEGIN
32380       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
32381                               (g_array_event(p_event_id).array_value_num('header_index'));
32382       IF l_acc_rev_flag IS NULL THEN
32383          l_acc_rev_flag := 'N';
32384       END IF;
32385    EXCEPTION
32386       WHEN OTHERS THEN
32387          l_acc_rev_flag := 'N';
32388    END;
32389    --
32390    IF (l_acc_rev_flag = 'Y') THEN
32391 
32395        ------------------------------------------------------------------------------------------
32392        -- 4645092  ------------------------------------------------------------------------------
32393        -- To allow MPA report to determine if it should generate report process
32394        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
32396 
32397        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
32398        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
32399    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
32400    -- call ADRs
32401    -- Bug 4922099
32402    --
32403    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32404         (NVL(l_actual_upg_option, 'N') = 'O') OR
32405         (NVL(l_enc_upg_option, 'N') = 'O')
32406       )
32407    THEN
32408    NULL;
32409    --
32410    --
32411    
32412    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
32413      p_code_combination_id      => TO_NUMBER(C_NUM)
32414    , p_value_type_code          => NULL
32415    , p_transaction_coa_id       => null
32416    , p_accounting_coa_id        => null
32417    , p_adr_code                 => NULL
32418    , p_adr_type_code            => NULL
32419    , p_component_type           => l_component_type
32420    , p_component_code           => l_component_code
32421    , p_component_type_code      => l_component_type_code
32422    , p_component_appl_id        => l_component_appl_id
32423    , p_amb_context_code         => l_amb_context_code
32424    , p_side                     => NULL
32425    );
32426 
32427    
32428   -- initialise segments
32429   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32430   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32431   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32432   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32433   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32434   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32435   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32436   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32437   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
32438   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32439   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32440   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32441   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32442   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32443   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32444   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32445   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32446   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32447   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32448   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32449   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32450   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32451   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32452   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32453   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32454   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32455   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32456   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32457   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32458   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
32459   --
32460 
32461    --
32462 
32463 
32464    l_segment := AcctDerRule_16(
32465            p_application_id           => p_application_id
32466          , p_ae_header_id             => l_ae_header_id 
32467 , p_source_35 => p_source_35
32468          , x_transaction_coa_id       => l_adr_transaction_coa_id
32469          , x_accounting_coa_id        => l_adr_accounting_coa_id
32470          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
32471          , x_flex_value_set_id        => l_adr_flex_value_set_id
32472          , x_value_type_code          => l_adr_value_type_code
32473          , x_value_combination_id     => l_adr_value_combination_id
32474          , x_value_segment_code       => l_adr_value_segment_code
32475          , p_side                     => 'NA'
32476          , p_override_seg_flag        => 'Y'
32477    );
32478 
32479    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
32480 
32481       xla_ae_lines_pkg.set_segment(
32482           p_to_segment_code         => 'GL_ACCOUNT'
32483         , p_segment_value           => l_segment
32484         , p_from_segment_code       => l_adr_value_segment_code
32485         , p_from_combination_id     => l_adr_value_combination_id
32486         , p_value_type_code         => l_adr_value_type_code
32490         , p_flex_value_set_id       => l_adr_flex_value_set_id
32487         , p_transaction_coa_id      => l_adr_transaction_coa_id
32488         , p_accounting_coa_id       => l_adr_accounting_coa_id
32489         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
32491         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
32492         , p_adr_type_code           => 'S'
32493         , p_component_type          => l_component_type
32494         , p_component_code          => l_component_code
32495         , p_component_type_code     => l_component_type_code
32496         , p_component_appl_id       => l_component_appl_id
32497         , p_amb_context_code        => l_amb_context_code
32498         , p_entity_code             => 'AP_PAYMENTS'
32499         , p_event_class_code        => 'REFUNDS'
32500         , p_side                    => 'NA'
32501         );
32502 
32503   END IF;
32504 
32505    --
32506    --
32507    END IF;
32508 
32509        --
32510        -- Update the line information that should be overwritten
32511        --
32512        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
32513                                          p_header_num   => 1);
32514        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
32515 
32516        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32517 
32518        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
32519           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32520        END IF;
32521 
32522       --
32523       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32524       --
32525       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
32526           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
32527       ELSE
32528           ---------------------------------------------------------------------------------------------------
32529           -- 4262811a Switch Sign
32530           ---------------------------------------------------------------------------------------------------
32531           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
32532           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32533                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32534           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32535                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32536           -- 5132302
32537           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
32538                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32539 
32540       END IF;
32541 
32542       -- 4955764
32543       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32544       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
32545 
32546 
32547       XLA_AE_LINES_PKG.ValidateCurrentLine;
32548       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32549 
32550       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32551                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
32552                ,p_balance_type_code => l_balance_type_code);
32553 
32554    END IF;
32555 
32556    -----------------------------------------------------------------------------------------
32557    -- 4262811 Multiperiod Accounting
32558    -----------------------------------------------------------------------------------------
32559      -- No MPA option is assigned.
32560 
32561 
32562 END IF;
32563 END IF;
32564 --
32565 
32566 --
32567 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32568    trace
32569       (p_msg      => 'END of AcctLineType_80'
32570       ,p_level    => C_LEVEL_PROCEDURE
32571       ,p_module   => l_log_module);
32572 END IF;
32573 --
32574 EXCEPTION
32575   WHEN xla_exceptions_pkg.application_exception THEN
32576       RAISE;
32577   WHEN OTHERS THEN
32578        xla_exceptions_pkg.raise_message
32579            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_80');
32580 END AcctLineType_80;
32581 --
32582 
32583 ---------------------------------------
32584 --
32585 -- PRIVATE FUNCTION
32586 --         AcctLineType_81
32587 --
32588 ---------------------------------------
32589 PROCEDURE AcctLineType_81 (
32590   p_application_id        IN NUMBER
32591  ,p_event_id              IN NUMBER
32592  ,p_calculate_acctd_flag  IN VARCHAR2
32593  ,p_calculate_g_l_flag    IN VARCHAR2
32594  ,p_actual_flag           IN OUT VARCHAR2
32595  ,p_balance_type_code     OUT VARCHAR2
32596  ,p_gain_or_loss_ref      OUT VARCHAR2
32597  
32598 --Payment Currency Code
32599  , p_source_13            IN VARCHAR2
32600 --Automatic Offsets Value
32601  , p_source_15            IN VARCHAR2
32602  , p_source_15_meaning    IN VARCHAR2
32603 --Bank Cash Clearing Account
32604  , p_source_35            IN NUMBER
32605 --Accounting Reversal Indicator
32606  , p_source_53            IN VARCHAR2
32610  , p_source_80            IN VARCHAR2
32607 --Distribution Link Type
32608  , p_source_55            IN VARCHAR2
32609 --Override Accounted Amount Indicator
32611  , p_source_80_meaning    IN VARCHAR2
32612 --Third Party Type
32613  , p_source_83            IN VARCHAR2
32614 --Invoice Distribution Tax Line Identifier
32615  , p_source_86            IN NUMBER
32616 --Invoice Distribution Tax Distribution Identifier from Tax
32617  , p_source_87            IN NUMBER
32618 --Invoice Distribution Summary Tax Line Identifier
32619  , p_source_88            IN NUMBER
32620 --Business Flow Accounts Payable Application Identifier
32621  , p_source_91            IN NUMBER
32622 --Business Flow Invoice Distribution Type
32623  , p_source_92            IN VARCHAR2
32624 --Business Flow Invoice Entity Code
32625  , p_source_93            IN VARCHAR2
32626 --Business Flow Invoice Distribution Identifier
32627  , p_source_94            IN NUMBER
32628 --Business Flow Invoice Identifier
32629  , p_source_95            IN NUMBER
32630 --When to Account for Payment Option
32631  , p_source_97            IN VARCHAR2
32632 --Payment Distribution Type
32633  , p_source_98            IN VARCHAR2
32634  , p_source_98_meaning    IN VARCHAR2
32635 --Payment Distribution Amount
32636  , p_source_99            IN NUMBER
32637 --Payment Distribution Identifier
32638  , p_source_104            IN NUMBER
32639 --Payment Supplier Identifier
32640  , p_source_110            IN NUMBER
32641 --Payment Supplier Site Identifier
32642  , p_source_111            IN NUMBER
32643 --Payment Distribution Reversed Identifier
32644  , p_source_112            IN NUMBER
32645 --Pooled Bank Account Option
32646  , p_source_113            IN VARCHAR2
32647  , p_source_113_meaning    IN VARCHAR2
32648 --Payment Maturity Date
32649  , p_source_114            IN DATE
32650 --Payment Distribution (Payment Rate) Ledger Amount
32651  , p_source_115            IN NUMBER
32652 --Payment Exchange Date
32653  , p_source_117            IN DATE
32654 --Payment Exchange Rate
32655  , p_source_118            IN NUMBER
32656 --Payment Exchange Rate Type
32657  , p_source_119            IN VARCHAR2
32658 --Payment Type
32659  , p_source_122            IN VARCHAR2
32660  , p_source_122_meaning    IN VARCHAR2
32661 )
32662 IS
32663 
32664 l_component_type              VARCHAR2(80);
32665 l_component_code              VARCHAR2(30);
32666 l_component_type_code         VARCHAR2(1);
32667 l_component_appl_id           INTEGER;
32668 l_amb_context_code            VARCHAR2(30);
32669 l_entity_code                 VARCHAR2(30);
32670 l_event_class_code            VARCHAR2(30);
32671 l_ae_header_id                NUMBER;
32672 l_event_type_code             VARCHAR2(30);
32673 l_line_definition_code        VARCHAR2(30);
32674 l_line_definition_owner_code  VARCHAR2(1);
32675 --
32676 -- adr variables
32677 l_segment                     VARCHAR2(30);
32678 l_ccid                        NUMBER;
32679 l_adr_transaction_coa_id      NUMBER;
32680 l_adr_accounting_coa_id       NUMBER;
32681 l_adr_flexfield_segment_code  VARCHAR2(30);
32682 l_adr_flex_value_set_id       NUMBER;
32683 l_adr_value_type_code         VARCHAR2(30);
32684 l_adr_value_combination_id    NUMBER;
32685 l_adr_value_segment_code      VARCHAR2(30);
32686 
32687 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
32688 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
32689 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
32690 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
32691 
32692 -- 4262811 Variables ------------------------------------------------------------------------------------------
32693 l_entered_amt_idx             NUMBER;
32694 l_accted_amt_idx              NUMBER;
32695 l_acc_rev_flag                VARCHAR2(1);
32696 l_accrual_line_num            NUMBER;
32697 l_tmp_amt                     NUMBER;
32698 l_acc_rev_natural_side_code   VARCHAR2(1);
32699 
32700 l_num_entries                 NUMBER;
32701 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
32702 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
32703 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
32704 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
32705 l_recog_line_1                NUMBER;
32706 l_recog_line_2                NUMBER;
32707 
32708 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
32709 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
32710 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
32711 
32712 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
32713 
32714 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
32715 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
32716 
32717 ---------------------------------------------------------------------------------------------------------------
32718 
32719 
32720 --
32721 -- bulk performance
32722 --
32723 l_balance_type_code           VARCHAR2(1);
32724 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
32725 l_log_module                  VARCHAR2(240);
32726 
32727 --
32728 -- Upgrade strategy
32729 --
32733 --
32730 l_actual_upg_option           VARCHAR2(1);
32731 l_enc_upg_option           VARCHAR2(1);
32732 
32734 BEGIN
32735 --
32736 IF g_log_enabled THEN
32737       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_81';
32738 END IF;
32739 --
32740 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32741 
32742       trace
32743          (p_msg      => 'BEGIN of AcctLineType_81'
32744          ,p_level    => C_LEVEL_PROCEDURE
32745          ,p_module   => l_log_module);
32746 
32747 END IF;
32748 --
32749 l_component_type             := 'AMB_JLT';
32750 l_component_code             := 'AP_CASH_CLEAR_REF_AOS_BS';
32751 l_component_type_code        := 'S';
32752 l_component_appl_id          :=  200;
32753 l_amb_context_code           := 'DEFAULT';
32754 l_entity_code                := 'AP_PAYMENTS';
32755 l_event_class_code           := 'REFUNDS';
32756 l_event_type_code            := 'REFUNDS_ALL';
32757 l_line_definition_owner_code := 'S';
32758 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
32759 --
32760 l_balance_type_code          := 'A';
32761 l_segment                     := NULL;
32762 l_ccid                        := NULL;
32763 l_adr_transaction_coa_id      := NULL;
32764 l_adr_accounting_coa_id       := NULL;
32765 l_adr_flexfield_segment_code  := NULL;
32766 l_adr_flex_value_set_id       := NULL;
32767 l_adr_value_type_code         := NULL;
32768 l_adr_value_combination_id    := NULL;
32769 l_adr_value_segment_code      := NULL;
32770 
32771 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
32772 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
32773 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
32774 l_budgetary_control_flag     := 'N';
32775 
32776 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
32777 l_bflow_applied_to_amt       := NULL; -- 5132302
32778 l_entered_amt_idx            := NULL;          -- 4262811
32779 l_accted_amt_idx             := NULL;          -- 4262811
32780 l_acc_rev_flag               := NULL;          -- 4262811
32781 l_accrual_line_num           := NULL;          -- 4262811
32782 l_tmp_amt                    := NULL;          -- 4262811
32783 --
32784  
32785 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
32786     l_balance_type_code <> 'B' THEN
32787 IF NVL(p_source_97,'
32788 ') =  'ALWAYS_ALWAYS' AND 
32789 (NVL(p_source_113,'
32790 ') =  'Y' AND 
32791 NVL(p_source_15,'
32792 ') =  'BALANCING_SEGMENT') AND 
32793 p_source_114 IS NULL AND 
32794 NVL(p_source_98,'
32795 ') =  'CASH' AND 
32796 NVL(p_source_122,'
32797 ') =  'R'
32798  THEN 
32799 
32800    --
32801    XLA_AE_LINES_PKG.SetNewLine;
32802 
32803    p_balance_type_code          := l_balance_type_code;
32804    -- set the flag so later we will know whether the gain loss line needs to be created
32805    
32806    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
32807      p_actual_flag :='A';
32808    END IF;
32809 
32810    --
32811    -- bulk performance
32812    --
32813    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
32814                                       p_header_num   => 0); -- 4262811
32815    --
32816    -- set accounting line options
32817    --
32818    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
32819            p_natural_side_code          => 'C'
32820          , p_gain_or_loss_flag          => 'N'
32821          , p_gl_transfer_mode_code      => 'S'
32822          , p_acct_entry_type_code       => 'A'
32823          , p_switch_side_flag           => 'Y'
32824          , p_merge_duplicate_code       => 'A'
32825          );
32826    --
32827    l_acc_rev_natural_side_code := 'D';  -- 4262811
32828    -- 
32829    --
32830    -- set accounting line type info
32831    --
32832    xla_ae_lines_pkg.SetAcctLineType
32833       (p_component_type             => l_component_type
32834       ,p_event_type_code            => l_event_type_code
32835       ,p_line_definition_owner_code => l_line_definition_owner_code
32836       ,p_line_definition_code       => l_line_definition_code
32837       ,p_accounting_line_code       => l_component_code
32838       ,p_accounting_line_type_code  => l_component_type_code
32839       ,p_accounting_line_appl_id    => l_component_appl_id
32840       ,p_amb_context_code           => l_amb_context_code
32841       ,p_entity_code                => l_entity_code
32842       ,p_event_class_code           => l_event_class_code);
32843    --
32844    -- set accounting class
32845    --
32846    xla_ae_lines_pkg.SetAcctClass(
32847            p_accounting_class_code  => 'CASH_CLEARING'
32848          , p_ae_header_id           => l_ae_header_id
32849          );
32850 
32851    --
32852    -- set rounding class
32853    --
32854    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
32855                       'CASH_CLEARING';
32856 
32857    --
32858    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
32859    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
32860    --
32861    -- bulk performance
32862    --
32863    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
32864 
32865    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
32869    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32866       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
32867 
32868    -- 4955764
32870       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
32871 
32872    -- 4458381 Public Sector Enh
32873    
32874    --
32875    -- set accounting attributes for the line type
32876    --
32877    l_entered_amt_idx := 9;
32878    l_accted_amt_idx  := 14;
32879    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
32880    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
32881    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
32882    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
32883    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
32884    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
32885    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
32886    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
32887    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
32888    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
32889    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
32890    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
32891    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
32892    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
32893    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
32894    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
32895    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
32896    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
32897    l_rec_acct_attrs.array_num_value(9)  := p_source_99;
32898    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
32899    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
32900    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
32901    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
32902    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
32903    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
32904    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
32905    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
32906    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
32907    l_rec_acct_attrs.array_num_value(14)  := p_source_115;
32908    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
32909    l_rec_acct_attrs.array_char_value(15)  := p_source_80;
32910    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
32911    l_rec_acct_attrs.array_num_value(16)  := p_source_110;
32912    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
32913    l_rec_acct_attrs.array_num_value(17)  := p_source_111;
32914    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
32915    l_rec_acct_attrs.array_char_value(18)  := p_source_83;
32916    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
32917    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_112);
32918    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
32919    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
32920    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
32921    l_rec_acct_attrs.array_num_value(21)  := p_source_86;
32922    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
32923    l_rec_acct_attrs.array_num_value(22)  := p_source_87;
32924    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
32925    l_rec_acct_attrs.array_num_value(23)  := p_source_88;
32926 
32927    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
32928    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
32929 
32930    ---------------------------------------------------------------------------------------------------------------
32931    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
32932    ---------------------------------------------------------------------------------------------------------------
32933    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
32934 
32935    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32936    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32937 
32938    IF xla_accounting_cache_pkg.GetValueChar
32939          (p_source_code         => 'LEDGER_CATEGORY_CODE'
32940          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
32941    AND l_bflow_method_code = 'PRIOR_ENTRY'
32942 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
32943    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
32944          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
32945        )
32946    THEN
32947          xla_ae_lines_pkg.BflowUpgEntry
32948            (p_business_method_code    => l_bflow_method_code
32949            ,p_business_class_code     => l_bflow_class_code
32950            ,p_balance_type            => l_balance_type_code);
32951    ELSE
32952       NULL;
32953 XLA_AE_LINES_PKG.business_flow_validation(
32954                                 p_business_method_code     => l_bflow_method_code
32955                                ,p_business_class_code      => l_bflow_class_code
32956                                ,p_inherit_description_flag => l_inherit_desc_flag);
32960    -- call analytical criteria
32957    END IF;
32958 
32959    --
32961    --
32962    
32963    --
32964    -- call description
32965    --
32966    -- No description or it is inherited.
32967    --
32968    -- call ADRs
32969    -- Bug 4922099
32970    --
32971    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32972         (NVL(l_actual_upg_option, 'N') = 'O') OR
32973         (NVL(l_enc_upg_option, 'N') = 'O')
32974       )
32975    THEN
32976    NULL;
32977    --
32978    --
32979    
32980   l_ccid := AcctDerRule_36(
32981            p_application_id           => p_application_id
32982          , p_ae_header_id             => l_ae_header_id 
32983 , p_source_35 => p_source_35
32984          , x_transaction_coa_id       => l_adr_transaction_coa_id
32985          , x_accounting_coa_id        => l_adr_accounting_coa_id
32986          , x_value_type_code          => l_adr_value_type_code
32987          , p_side                     => 'NA'
32988    );
32989 
32990    xla_ae_lines_pkg.set_ccid(
32991     p_code_combination_id          => l_ccid
32992   , p_value_type_code              => l_adr_value_type_code
32993   , p_transaction_coa_id           => l_adr_transaction_coa_id
32994   , p_accounting_coa_id            => l_adr_accounting_coa_id
32995   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
32996   , p_adr_type_code                => 'S'
32997   , p_component_type               => l_component_type
32998   , p_component_code               => l_component_code
32999   , p_component_type_code          => l_component_type_code
33000   , p_component_appl_id            => l_component_appl_id
33001   , p_amb_context_code             => l_amb_context_code
33002   , p_side                         => 'NA'
33003   );
33004 
33005 
33006    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
33007      p_to_segment_code         => 'GL_BALANCING'
33008    , p_segment_value           => C_CHAR
33009    , p_from_segment_code       => NULL
33010    , p_from_combination_id     => NULL
33011    , p_value_type_code         => NULL
33012    , p_transaction_coa_id      => null
33013    , p_accounting_coa_id       => null
33014    , p_flexfield_segment_code  => NULL
33015    , p_flex_value_set_id       => NULL
33016    , p_adr_code                => NULL
33017    , p_adr_type_code           => NULL
33018    , p_component_type          => l_component_type
33019    , p_component_code          => l_component_code
33020    , p_component_type_code     => l_component_type_code
33021    , p_component_appl_id       => l_component_appl_id
33022    , p_amb_context_code        => l_amb_context_code
33023    , p_entity_code             => 'AP_PAYMENTS'
33024    , p_event_class_code        => 'REFUNDS'
33025    , p_side                    => 'NA'
33026    );
33027    --
33028 
33029 
33030    --
33031    --
33032    END IF;
33033    --
33034    -- Bug 4922099
33035    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
33036           (NVL(l_enc_upg_option, 'N') = 'O')
33037         ) AND
33038         (l_bflow_method_code = 'PRIOR_ENTRY')
33039       )
33040    THEN
33041       IF
33042       --
33043       1 = 2
33044       --
33045       THEN
33046       xla_accounting_err_pkg.build_message
33047                                     (p_appli_s_name            => 'XLA'
33048                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33049                                     ,p_token_1                 => 'LINE_NUMBER'
33050                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
33051                                     ,p_token_2                 => 'LINE_TYPE_NAME'
33052                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
33053                                                                              l_component_type
33054                                                                             ,l_component_code
33055                                                                             ,l_component_type_code
33056                                                                             ,l_component_appl_id
33057                                                                             ,l_amb_context_code
33058                                                                             ,l_entity_code
33059                                                                             ,l_event_class_code
33060                                                                            )
33061                                     ,p_token_3                 => 'OWNER'
33062                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
33063                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
33064                                                                           ,p_lookup_code    => l_component_type_code
33065                                                                          )
33066                                     ,p_token_4                 => 'PRODUCT_NAME'
33067                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
33068                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
33069                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
33070                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
33071                                     ,p_ae_header_id            =>  NULL
33075                  trace
33072                                        );
33073 
33074         IF (C_LEVEL_ERROR>= g_log_level) THEN
33076                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33077                       ,p_level    => C_LEVEL_ERROR
33078                       ,p_module   => l_log_module);
33079         END IF;
33080       END IF;
33081    END IF;
33082    --
33083    --
33084    ------------------------------------------------------------------------------------------------
33085    -- 4219869 Business Flow
33086    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
33087    -- Prior Entry.  Currently, the following code is always generated.
33088    ------------------------------------------------------------------------------------------------
33089    XLA_AE_LINES_PKG.ValidateCurrentLine;
33090 
33091    ------------------------------------------------------------------------------------
33092    -- 4219869 Business Flow
33093    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
33094    ------------------------------------------------------------------------------------
33095    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33096 
33097    ----------------------------------------------------------------------------------
33098    -- 4219869 Business Flow
33099    -- Update journal entry status -- Need to generate this within IF <condition>
33100    ----------------------------------------------------------------------------------
33101    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33102          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
33103          ,p_balance_type_code => l_balance_type_code
33104          );
33105 
33106    -------------------------------------------------------------------------------------------
33107    -- 4262811 - Generate the Accrual Reversal lines
33108    -------------------------------------------------------------------------------------------
33109    BEGIN
33110       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
33111                               (g_array_event(p_event_id).array_value_num('header_index'));
33112       IF l_acc_rev_flag IS NULL THEN
33113          l_acc_rev_flag := 'N';
33114       END IF;
33115    EXCEPTION
33116       WHEN OTHERS THEN
33117          l_acc_rev_flag := 'N';
33118    END;
33119    --
33120    IF (l_acc_rev_flag = 'Y') THEN
33121 
33122        -- 4645092  ------------------------------------------------------------------------------
33123        -- To allow MPA report to determine if it should generate report process
33124        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
33125        ------------------------------------------------------------------------------------------
33126 
33127        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
33128        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
33129    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
33130    -- call ADRs
33131    -- Bug 4922099
33132    --
33133    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33134         (NVL(l_actual_upg_option, 'N') = 'O') OR
33135         (NVL(l_enc_upg_option, 'N') = 'O')
33136       )
33137    THEN
33138    NULL;
33139    --
33140    --
33141    
33142   l_ccid := AcctDerRule_36(
33143            p_application_id           => p_application_id
33144          , p_ae_header_id             => l_ae_header_id 
33145 , p_source_35 => p_source_35
33146          , x_transaction_coa_id       => l_adr_transaction_coa_id
33147          , x_accounting_coa_id        => l_adr_accounting_coa_id
33148          , x_value_type_code          => l_adr_value_type_code
33149          , p_side                     => 'NA'
33150    );
33151 
33152    xla_ae_lines_pkg.set_ccid(
33153     p_code_combination_id          => l_ccid
33154   , p_value_type_code              => l_adr_value_type_code
33155   , p_transaction_coa_id           => l_adr_transaction_coa_id
33156   , p_accounting_coa_id            => l_adr_accounting_coa_id
33157   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
33158   , p_adr_type_code                => 'S'
33159   , p_component_type               => l_component_type
33160   , p_component_code               => l_component_code
33161   , p_component_type_code          => l_component_type_code
33162   , p_component_appl_id            => l_component_appl_id
33163   , p_amb_context_code             => l_amb_context_code
33164   , p_side                         => 'NA'
33165   );
33166 
33167 
33168    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
33169      p_to_segment_code         => 'GL_BALANCING'
33170    , p_segment_value           => C_CHAR
33171    , p_from_segment_code       => NULL
33172    , p_from_combination_id     => NULL
33173    , p_value_type_code         => NULL
33174    , p_transaction_coa_id      => null
33175    , p_accounting_coa_id       => null
33176    , p_flexfield_segment_code  => NULL
33177    , p_flex_value_set_id       => NULL
33178    , p_adr_code                => NULL
33179    , p_adr_type_code           => NULL
33180    , p_component_type          => l_component_type
33181    , p_component_code          => l_component_code
33182    , p_component_type_code     => l_component_type_code
33183    , p_component_appl_id       => l_component_appl_id
33184    , p_amb_context_code        => l_amb_context_code
33185    , p_entity_code             => 'AP_PAYMENTS'
33189    --
33186    , p_event_class_code        => 'REFUNDS'
33187    , p_side                    => 'NA'
33188    );
33190 
33191 
33192    --
33193    --
33194    END IF;
33195 
33196        --
33197        -- Update the line information that should be overwritten
33198        --
33199        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
33200                                          p_header_num   => 1);
33201        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
33202 
33203        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
33204 
33205        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
33206           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
33207        END IF;
33208 
33209       --
33210       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
33211       --
33212       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
33213           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
33214       ELSE
33215           ---------------------------------------------------------------------------------------------------
33216           -- 4262811a Switch Sign
33217           ---------------------------------------------------------------------------------------------------
33218           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
33219           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33220                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33221           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33222                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33223           -- 5132302
33224           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
33225                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33226 
33227       END IF;
33228 
33229       -- 4955764
33230       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33231       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
33232 
33233 
33234       XLA_AE_LINES_PKG.ValidateCurrentLine;
33235       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33236 
33237       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33238                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
33239                ,p_balance_type_code => l_balance_type_code);
33240 
33241    END IF;
33242 
33243    -----------------------------------------------------------------------------------------
33244    -- 4262811 Multiperiod Accounting
33245    -----------------------------------------------------------------------------------------
33246      -- No MPA option is assigned.
33247 
33248 
33249 END IF;
33250 END IF;
33251 --
33252 
33253 --
33254 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33255    trace
33256       (p_msg      => 'END of AcctLineType_81'
33257       ,p_level    => C_LEVEL_PROCEDURE
33258       ,p_module   => l_log_module);
33259 END IF;
33260 --
33261 EXCEPTION
33262   WHEN xla_exceptions_pkg.application_exception THEN
33263       RAISE;
33264   WHEN OTHERS THEN
33265        xla_exceptions_pkg.raise_message
33266            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_81');
33267 END AcctLineType_81;
33268 --
33269 
33270 ---------------------------------------
33271 --
33272 -- PRIVATE FUNCTION
33273 --         AcctLineType_82
33274 --
33275 ---------------------------------------
33276 PROCEDURE AcctLineType_82 (
33277   p_application_id        IN NUMBER
33278  ,p_event_id              IN NUMBER
33279  ,p_calculate_acctd_flag  IN VARCHAR2
33280  ,p_calculate_g_l_flag    IN VARCHAR2
33281  ,p_actual_flag           IN OUT VARCHAR2
33282  ,p_balance_type_code     OUT VARCHAR2
33283  ,p_gain_or_loss_ref      OUT VARCHAR2
33284  
33285 --Payment Currency Code
33286  , p_source_13            IN VARCHAR2
33287 --Automatic Offsets Value
33288  , p_source_15            IN VARCHAR2
33289  , p_source_15_meaning    IN VARCHAR2
33290 --Bank Cash Clearing Account
33291  , p_source_35            IN NUMBER
33292 --Accounting Reversal Indicator
33293  , p_source_53            IN VARCHAR2
33294 --Distribution Link Type
33295  , p_source_55            IN VARCHAR2
33296 --Override Accounted Amount Indicator
33297  , p_source_80            IN VARCHAR2
33298  , p_source_80_meaning    IN VARCHAR2
33299 --Third Party Type
33300  , p_source_83            IN VARCHAR2
33301 --Invoice Distribution Tax Line Identifier
33302  , p_source_86            IN NUMBER
33303 --Invoice Distribution Tax Distribution Identifier from Tax
33304  , p_source_87            IN NUMBER
33305 --Invoice Distribution Summary Tax Line Identifier
33306  , p_source_88            IN NUMBER
33307 --Business Flow Accounts Payable Application Identifier
33308  , p_source_91            IN NUMBER
33309 --Business Flow Invoice Distribution Type
33313 --Business Flow Invoice Distribution Identifier
33310  , p_source_92            IN VARCHAR2
33311 --Business Flow Invoice Entity Code
33312  , p_source_93            IN VARCHAR2
33314  , p_source_94            IN NUMBER
33315 --Business Flow Invoice Identifier
33316  , p_source_95            IN NUMBER
33317 --When to Account for Payment Option
33318  , p_source_97            IN VARCHAR2
33319 --Payment Distribution Type
33320  , p_source_98            IN VARCHAR2
33321  , p_source_98_meaning    IN VARCHAR2
33322 --Payment Distribution Amount
33323  , p_source_99            IN NUMBER
33324 --Payment Distribution Identifier
33325  , p_source_104            IN NUMBER
33326 --Payment Supplier Identifier
33327  , p_source_110            IN NUMBER
33328 --Payment Supplier Site Identifier
33329  , p_source_111            IN NUMBER
33330 --Payment Distribution Reversed Identifier
33331  , p_source_112            IN NUMBER
33332 --Pooled Bank Account Option
33333  , p_source_113            IN VARCHAR2
33334  , p_source_113_meaning    IN VARCHAR2
33335 --Payment Maturity Date
33336  , p_source_114            IN DATE
33337 --Payment Distribution (Invoice Rate) Ledger Amount
33338  , p_source_116            IN NUMBER
33339 --Payment Exchange Date
33340  , p_source_117            IN DATE
33341 --Payment Exchange Rate
33342  , p_source_118            IN NUMBER
33343 --Payment Exchange Rate Type
33344  , p_source_119            IN VARCHAR2
33345 --Payment Type
33346  , p_source_122            IN VARCHAR2
33347  , p_source_122_meaning    IN VARCHAR2
33348 )
33349 IS
33350 
33351 l_component_type              VARCHAR2(80);
33352 l_component_code              VARCHAR2(30);
33353 l_component_type_code         VARCHAR2(1);
33354 l_component_appl_id           INTEGER;
33355 l_amb_context_code            VARCHAR2(30);
33356 l_entity_code                 VARCHAR2(30);
33357 l_event_class_code            VARCHAR2(30);
33358 l_ae_header_id                NUMBER;
33359 l_event_type_code             VARCHAR2(30);
33360 l_line_definition_code        VARCHAR2(30);
33361 l_line_definition_owner_code  VARCHAR2(1);
33362 --
33363 -- adr variables
33364 l_segment                     VARCHAR2(30);
33365 l_ccid                        NUMBER;
33366 l_adr_transaction_coa_id      NUMBER;
33367 l_adr_accounting_coa_id       NUMBER;
33368 l_adr_flexfield_segment_code  VARCHAR2(30);
33369 l_adr_flex_value_set_id       NUMBER;
33370 l_adr_value_type_code         VARCHAR2(30);
33371 l_adr_value_combination_id    NUMBER;
33372 l_adr_value_segment_code      VARCHAR2(30);
33373 
33374 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
33375 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
33376 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
33377 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
33378 
33379 -- 4262811 Variables ------------------------------------------------------------------------------------------
33380 l_entered_amt_idx             NUMBER;
33381 l_accted_amt_idx              NUMBER;
33382 l_acc_rev_flag                VARCHAR2(1);
33383 l_accrual_line_num            NUMBER;
33384 l_tmp_amt                     NUMBER;
33385 l_acc_rev_natural_side_code   VARCHAR2(1);
33386 
33387 l_num_entries                 NUMBER;
33388 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
33389 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
33390 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
33391 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
33392 l_recog_line_1                NUMBER;
33393 l_recog_line_2                NUMBER;
33394 
33395 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
33396 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
33397 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
33398 
33399 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
33400 
33401 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
33402 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
33403 
33404 ---------------------------------------------------------------------------------------------------------------
33405 
33406 
33407 --
33408 -- bulk performance
33409 --
33410 l_balance_type_code           VARCHAR2(1);
33411 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
33412 l_log_module                  VARCHAR2(240);
33413 
33414 --
33415 -- Upgrade strategy
33416 --
33417 l_actual_upg_option           VARCHAR2(1);
33418 l_enc_upg_option           VARCHAR2(1);
33419 
33420 --
33421 BEGIN
33422 --
33423 IF g_log_enabled THEN
33424       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_82';
33425 END IF;
33426 --
33427 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33428 
33429       trace
33430          (p_msg      => 'BEGIN of AcctLineType_82'
33431          ,p_level    => C_LEVEL_PROCEDURE
33432          ,p_module   => l_log_module);
33433 
33434 END IF;
33435 --
33436 l_component_type             := 'AMB_JLT';
33437 l_component_code             := 'AP_CASH_CLEAR_REF_AS_INVXRATE';
33438 l_component_type_code        := 'S';
33439 l_component_appl_id          :=  200;
33443 l_event_type_code            := 'REFUNDS_ALL';
33440 l_amb_context_code           := 'DEFAULT';
33441 l_entity_code                := 'AP_PAYMENTS';
33442 l_event_class_code           := 'REFUNDS';
33444 l_line_definition_owner_code := 'S';
33445 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
33446 --
33447 l_balance_type_code          := 'A';
33448 l_segment                     := NULL;
33449 l_ccid                        := NULL;
33450 l_adr_transaction_coa_id      := NULL;
33451 l_adr_accounting_coa_id       := NULL;
33452 l_adr_flexfield_segment_code  := NULL;
33453 l_adr_flex_value_set_id       := NULL;
33454 l_adr_value_type_code         := NULL;
33455 l_adr_value_combination_id    := NULL;
33456 l_adr_value_segment_code      := NULL;
33457 
33458 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
33459 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
33460 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
33461 l_budgetary_control_flag     := 'N';
33462 
33463 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
33464 l_bflow_applied_to_amt       := NULL; -- 5132302
33465 l_entered_amt_idx            := NULL;          -- 4262811
33466 l_accted_amt_idx             := NULL;          -- 4262811
33467 l_acc_rev_flag               := NULL;          -- 4262811
33468 l_accrual_line_num           := NULL;          -- 4262811
33469 l_tmp_amt                    := NULL;          -- 4262811
33470 --
33471  
33472 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
33473     l_balance_type_code <> 'B' THEN
33474 IF NVL(p_source_97,'
33475 ') =  'ALWAYS_CLEAR' AND 
33476 (NVL(p_source_113,'
33477 ') =  'Y' AND 
33478 NVL(p_source_15,'
33479 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
33480 p_source_114 IS NULL AND 
33481 NVL(p_source_98,'
33482 ') =  'CASH' AND 
33483 NVL(p_source_122,'
33484 ') =  'R'
33485  THEN 
33486 
33487    --
33488    XLA_AE_LINES_PKG.SetNewLine;
33489 
33490    p_balance_type_code          := l_balance_type_code;
33491    -- set the flag so later we will know whether the gain loss line needs to be created
33492    
33493    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
33494      p_actual_flag :='A';
33495    END IF;
33496 
33497    --
33498    -- bulk performance
33499    --
33500    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
33501                                       p_header_num   => 0); -- 4262811
33502    --
33503    -- set accounting line options
33504    --
33505    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
33506            p_natural_side_code          => 'C'
33507          , p_gain_or_loss_flag          => 'N'
33508          , p_gl_transfer_mode_code      => 'S'
33509          , p_acct_entry_type_code       => 'A'
33510          , p_switch_side_flag           => 'Y'
33511          , p_merge_duplicate_code       => 'A'
33512          );
33513    --
33514    l_acc_rev_natural_side_code := 'D';  -- 4262811
33515    -- 
33516    --
33517    -- set accounting line type info
33518    --
33519    xla_ae_lines_pkg.SetAcctLineType
33520       (p_component_type             => l_component_type
33521       ,p_event_type_code            => l_event_type_code
33522       ,p_line_definition_owner_code => l_line_definition_owner_code
33523       ,p_line_definition_code       => l_line_definition_code
33524       ,p_accounting_line_code       => l_component_code
33525       ,p_accounting_line_type_code  => l_component_type_code
33526       ,p_accounting_line_appl_id    => l_component_appl_id
33527       ,p_amb_context_code           => l_amb_context_code
33528       ,p_entity_code                => l_entity_code
33529       ,p_event_class_code           => l_event_class_code);
33530    --
33531    -- set accounting class
33532    --
33533    xla_ae_lines_pkg.SetAcctClass(
33534            p_accounting_class_code  => 'CASH_CLEARING'
33535          , p_ae_header_id           => l_ae_header_id
33536          );
33537 
33538    --
33539    -- set rounding class
33540    --
33541    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33542                       'CASH_CLEARING';
33543 
33544    --
33545    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33546    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33547    --
33548    -- bulk performance
33549    --
33550    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33551 
33552    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33553       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33554 
33555    -- 4955764
33556    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33557       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33558 
33559    -- 4458381 Public Sector Enh
33560    
33561    --
33562    -- set accounting attributes for the line type
33563    --
33564    l_entered_amt_idx := 9;
33565    l_accted_amt_idx  := 14;
33566    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
33567    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33568    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
33569    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
33573    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
33570    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
33571    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
33572    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
33574    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
33575    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
33576    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
33577    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
33578    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
33579    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
33580    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
33581    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
33582    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
33583    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
33584    l_rec_acct_attrs.array_num_value(9)  := p_source_99;
33585    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
33586    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
33587    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
33588    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
33589    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
33590    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
33591    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
33592    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
33593    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
33594    l_rec_acct_attrs.array_num_value(14)  := p_source_116;
33595    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
33596    l_rec_acct_attrs.array_char_value(15)  := p_source_80;
33597    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
33598    l_rec_acct_attrs.array_num_value(16)  := p_source_110;
33599    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
33600    l_rec_acct_attrs.array_num_value(17)  := p_source_111;
33601    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
33602    l_rec_acct_attrs.array_char_value(18)  := p_source_83;
33603    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
33604    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_112);
33605    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
33606    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
33607    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
33608    l_rec_acct_attrs.array_num_value(21)  := p_source_86;
33609    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
33610    l_rec_acct_attrs.array_num_value(22)  := p_source_87;
33611    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
33612    l_rec_acct_attrs.array_num_value(23)  := p_source_88;
33613 
33614    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
33615    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
33616 
33617    ---------------------------------------------------------------------------------------------------------------
33618    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
33619    ---------------------------------------------------------------------------------------------------------------
33620    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
33621 
33622    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33623    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33624 
33625    IF xla_accounting_cache_pkg.GetValueChar
33626          (p_source_code         => 'LEDGER_CATEGORY_CODE'
33627          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
33628    AND l_bflow_method_code = 'PRIOR_ENTRY'
33629 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
33630    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
33631          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
33632        )
33633    THEN
33634          xla_ae_lines_pkg.BflowUpgEntry
33635            (p_business_method_code    => l_bflow_method_code
33636            ,p_business_class_code     => l_bflow_class_code
33637            ,p_balance_type            => l_balance_type_code);
33638    ELSE
33639       NULL;
33640 XLA_AE_LINES_PKG.business_flow_validation(
33641                                 p_business_method_code     => l_bflow_method_code
33642                                ,p_business_class_code      => l_bflow_class_code
33643                                ,p_inherit_description_flag => l_inherit_desc_flag);
33644    END IF;
33645 
33646    --
33647    -- call analytical criteria
33648    --
33649    
33650    --
33651    -- call description
33652    --
33653    -- No description or it is inherited.
33654    --
33655    -- call ADRs
33656    -- Bug 4922099
33657    --
33658    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33659         (NVL(l_actual_upg_option, 'N') = 'O') OR
33660         (NVL(l_enc_upg_option, 'N') = 'O')
33661       )
33662    THEN
33663    NULL;
33664    --
33665    --
33666    
33667    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
33668      p_code_combination_id      => TO_NUMBER(C_NUM)
33669    , p_value_type_code          => NULL
33673    , p_adr_type_code            => NULL
33670    , p_transaction_coa_id       => null
33671    , p_accounting_coa_id        => null
33672    , p_adr_code                 => NULL
33674    , p_component_type           => l_component_type
33675    , p_component_code           => l_component_code
33676    , p_component_type_code      => l_component_type_code
33677    , p_component_appl_id        => l_component_appl_id
33678    , p_amb_context_code         => l_amb_context_code
33679    , p_side                     => NULL
33680    );
33681 
33682    
33683   -- initialise segments
33684   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33685   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33686   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33687   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33688   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33689   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33690   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33691   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33692   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33693   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33694   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33695   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33696   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33697   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33698   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33699   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33700   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33701   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33702   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33703   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33704   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33705   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33706   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33707   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33708   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33709   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33710   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33711   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33712   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33713   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33714   --
33715 
33716    --
33717 
33718 
33719    l_segment := AcctDerRule_16(
33720            p_application_id           => p_application_id
33721          , p_ae_header_id             => l_ae_header_id 
33722 , p_source_35 => p_source_35
33723          , x_transaction_coa_id       => l_adr_transaction_coa_id
33724          , x_accounting_coa_id        => l_adr_accounting_coa_id
33725          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
33726          , x_flex_value_set_id        => l_adr_flex_value_set_id
33727          , x_value_type_code          => l_adr_value_type_code
33728          , x_value_combination_id     => l_adr_value_combination_id
33729          , x_value_segment_code       => l_adr_value_segment_code
33730          , p_side                     => 'NA'
33731          , p_override_seg_flag        => 'Y'
33732    );
33733 
33734    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
33735 
33736       xla_ae_lines_pkg.set_segment(
33737           p_to_segment_code         => 'GL_ACCOUNT'
33738         , p_segment_value           => l_segment
33739         , p_from_segment_code       => l_adr_value_segment_code
33740         , p_from_combination_id     => l_adr_value_combination_id
33741         , p_value_type_code         => l_adr_value_type_code
33742         , p_transaction_coa_id      => l_adr_transaction_coa_id
33743         , p_accounting_coa_id       => l_adr_accounting_coa_id
33744         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
33745         , p_flex_value_set_id       => l_adr_flex_value_set_id
33746         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
33747         , p_adr_type_code           => 'S'
33748         , p_component_type          => l_component_type
33749         , p_component_code          => l_component_code
33750         , p_component_type_code     => l_component_type_code
33751         , p_component_appl_id       => l_component_appl_id
33752         , p_amb_context_code        => l_amb_context_code
33753         , p_entity_code             => 'AP_PAYMENTS'
33754         , p_event_class_code        => 'REFUNDS'
33755         , p_side                    => 'NA'
33756         );
33757 
33758   END IF;
33759 
33760    --
33761    --
33762    END IF;
33763    --
33764    -- Bug 4922099
33765    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
33766           (NVL(l_enc_upg_option, 'N') = 'O')
33767         ) AND
33771       IF
33768         (l_bflow_method_code = 'PRIOR_ENTRY')
33769       )
33770    THEN
33772       --
33773       1 = 2
33774       --
33775       THEN
33776       xla_accounting_err_pkg.build_message
33777                                     (p_appli_s_name            => 'XLA'
33778                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33779                                     ,p_token_1                 => 'LINE_NUMBER'
33780                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
33781                                     ,p_token_2                 => 'LINE_TYPE_NAME'
33782                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
33783                                                                              l_component_type
33784                                                                             ,l_component_code
33785                                                                             ,l_component_type_code
33786                                                                             ,l_component_appl_id
33787                                                                             ,l_amb_context_code
33788                                                                             ,l_entity_code
33789                                                                             ,l_event_class_code
33790                                                                            )
33791                                     ,p_token_3                 => 'OWNER'
33792                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
33793                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
33794                                                                           ,p_lookup_code    => l_component_type_code
33795                                                                          )
33796                                     ,p_token_4                 => 'PRODUCT_NAME'
33797                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
33798                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
33799                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
33800                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
33801                                     ,p_ae_header_id            =>  NULL
33802                                        );
33803 
33804         IF (C_LEVEL_ERROR>= g_log_level) THEN
33805                  trace
33806                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33807                       ,p_level    => C_LEVEL_ERROR
33808                       ,p_module   => l_log_module);
33809         END IF;
33810       END IF;
33811    END IF;
33812    --
33813    --
33814    ------------------------------------------------------------------------------------------------
33815    -- 4219869 Business Flow
33816    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
33817    -- Prior Entry.  Currently, the following code is always generated.
33818    ------------------------------------------------------------------------------------------------
33819    XLA_AE_LINES_PKG.ValidateCurrentLine;
33820 
33821    ------------------------------------------------------------------------------------
33822    -- 4219869 Business Flow
33823    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
33824    ------------------------------------------------------------------------------------
33825    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33826 
33827    ----------------------------------------------------------------------------------
33828    -- 4219869 Business Flow
33829    -- Update journal entry status -- Need to generate this within IF <condition>
33830    ----------------------------------------------------------------------------------
33831    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33832          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
33833          ,p_balance_type_code => l_balance_type_code
33834          );
33835 
33836    -------------------------------------------------------------------------------------------
33837    -- 4262811 - Generate the Accrual Reversal lines
33838    -------------------------------------------------------------------------------------------
33839    BEGIN
33840       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
33841                               (g_array_event(p_event_id).array_value_num('header_index'));
33842       IF l_acc_rev_flag IS NULL THEN
33843          l_acc_rev_flag := 'N';
33844       END IF;
33845    EXCEPTION
33846       WHEN OTHERS THEN
33847          l_acc_rev_flag := 'N';
33848    END;
33849    --
33850    IF (l_acc_rev_flag = 'Y') THEN
33851 
33852        -- 4645092  ------------------------------------------------------------------------------
33853        -- To allow MPA report to determine if it should generate report process
33854        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
33855        ------------------------------------------------------------------------------------------
33856 
33857        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
33858        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
33862    --
33859    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
33860    -- call ADRs
33861    -- Bug 4922099
33863    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33864         (NVL(l_actual_upg_option, 'N') = 'O') OR
33865         (NVL(l_enc_upg_option, 'N') = 'O')
33866       )
33867    THEN
33868    NULL;
33869    --
33870    --
33871    
33872    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
33873      p_code_combination_id      => TO_NUMBER(C_NUM)
33874    , p_value_type_code          => NULL
33875    , p_transaction_coa_id       => null
33876    , p_accounting_coa_id        => null
33877    , p_adr_code                 => NULL
33878    , p_adr_type_code            => NULL
33879    , p_component_type           => l_component_type
33880    , p_component_code           => l_component_code
33881    , p_component_type_code      => l_component_type_code
33882    , p_component_appl_id        => l_component_appl_id
33883    , p_amb_context_code         => l_amb_context_code
33884    , p_side                     => NULL
33885    );
33886 
33887    
33888   -- initialise segments
33889   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33890   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33891   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33892   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33893   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33894   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33895   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33896   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33897   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
33898   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33899   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33900   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33901   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33902   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33903   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33904   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33905   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33906   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33907   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33908   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33909   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33910   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33911   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33912   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33913   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33914   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33915   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33916   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33917   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33918   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
33919   --
33920 
33921    --
33922 
33923 
33924    l_segment := AcctDerRule_16(
33925            p_application_id           => p_application_id
33926          , p_ae_header_id             => l_ae_header_id 
33927 , p_source_35 => p_source_35
33928          , x_transaction_coa_id       => l_adr_transaction_coa_id
33929          , x_accounting_coa_id        => l_adr_accounting_coa_id
33930          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
33931          , x_flex_value_set_id        => l_adr_flex_value_set_id
33932          , x_value_type_code          => l_adr_value_type_code
33933          , x_value_combination_id     => l_adr_value_combination_id
33934          , x_value_segment_code       => l_adr_value_segment_code
33935          , p_side                     => 'NA'
33936          , p_override_seg_flag        => 'Y'
33937    );
33938 
33939    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
33940 
33941       xla_ae_lines_pkg.set_segment(
33942           p_to_segment_code         => 'GL_ACCOUNT'
33943         , p_segment_value           => l_segment
33944         , p_from_segment_code       => l_adr_value_segment_code
33945         , p_from_combination_id     => l_adr_value_combination_id
33946         , p_value_type_code         => l_adr_value_type_code
33947         , p_transaction_coa_id      => l_adr_transaction_coa_id
33948         , p_accounting_coa_id       => l_adr_accounting_coa_id
33949         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
33950         , p_flex_value_set_id       => l_adr_flex_value_set_id
33951         , p_adr_code                => 'AP_PMT_CASH_CLEAR_NAT_ACC_POOL'
33952         , p_adr_type_code           => 'S'
33956         , p_component_appl_id       => l_component_appl_id
33953         , p_component_type          => l_component_type
33954         , p_component_code          => l_component_code
33955         , p_component_type_code     => l_component_type_code
33957         , p_amb_context_code        => l_amb_context_code
33958         , p_entity_code             => 'AP_PAYMENTS'
33959         , p_event_class_code        => 'REFUNDS'
33960         , p_side                    => 'NA'
33961         );
33962 
33963   END IF;
33964 
33965    --
33966    --
33967    END IF;
33968 
33969        --
33970        -- Update the line information that should be overwritten
33971        --
33972        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
33973                                          p_header_num   => 1);
33974        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
33975 
33976        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
33977 
33978        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
33979           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
33980        END IF;
33981 
33982       --
33983       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
33984       --
33985       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
33986           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
33987       ELSE
33988           ---------------------------------------------------------------------------------------------------
33989           -- 4262811a Switch Sign
33990           ---------------------------------------------------------------------------------------------------
33991           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
33992           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33993                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33994           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33995                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33996           -- 5132302
33997           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
33998                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33999 
34000       END IF;
34001 
34002       -- 4955764
34003       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34004       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
34005 
34006 
34007       XLA_AE_LINES_PKG.ValidateCurrentLine;
34008       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34009 
34010       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34011                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
34012                ,p_balance_type_code => l_balance_type_code);
34013 
34014    END IF;
34015 
34016    -----------------------------------------------------------------------------------------
34017    -- 4262811 Multiperiod Accounting
34018    -----------------------------------------------------------------------------------------
34019      -- No MPA option is assigned.
34020 
34021 
34022 END IF;
34023 END IF;
34024 --
34025 
34026 --
34027 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34028    trace
34029       (p_msg      => 'END of AcctLineType_82'
34030       ,p_level    => C_LEVEL_PROCEDURE
34031       ,p_module   => l_log_module);
34032 END IF;
34033 --
34034 EXCEPTION
34035   WHEN xla_exceptions_pkg.application_exception THEN
34036       RAISE;
34037   WHEN OTHERS THEN
34038        xla_exceptions_pkg.raise_message
34039            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_82');
34040 END AcctLineType_82;
34041 --
34042 
34043 ---------------------------------------
34044 --
34045 -- PRIVATE FUNCTION
34046 --         AcctLineType_83
34047 --
34048 ---------------------------------------
34049 PROCEDURE AcctLineType_83 (
34050   p_application_id        IN NUMBER
34051  ,p_event_id              IN NUMBER
34052  ,p_calculate_acctd_flag  IN VARCHAR2
34053  ,p_calculate_g_l_flag    IN VARCHAR2
34054  ,p_actual_flag           IN OUT VARCHAR2
34055  ,p_balance_type_code     OUT VARCHAR2
34056  ,p_gain_or_loss_ref      OUT VARCHAR2
34057  
34058 --Payment Currency Code
34059  , p_source_13            IN VARCHAR2
34060 --Automatic Offsets Value
34061  , p_source_15            IN VARCHAR2
34062  , p_source_15_meaning    IN VARCHAR2
34063 --Bank Cash Clearing Account
34064  , p_source_35            IN NUMBER
34065 --Accounting Reversal Indicator
34066  , p_source_53            IN VARCHAR2
34067 --Distribution Link Type
34068  , p_source_55            IN VARCHAR2
34069 --Override Accounted Amount Indicator
34070  , p_source_80            IN VARCHAR2
34071  , p_source_80_meaning    IN VARCHAR2
34072 --Third Party Type
34073  , p_source_83            IN VARCHAR2
34074 --Invoice Distribution Tax Line Identifier
34075  , p_source_86            IN NUMBER
34079  , p_source_88            IN NUMBER
34076 --Invoice Distribution Tax Distribution Identifier from Tax
34077  , p_source_87            IN NUMBER
34078 --Invoice Distribution Summary Tax Line Identifier
34080 --Business Flow Accounts Payable Application Identifier
34081  , p_source_91            IN NUMBER
34082 --Business Flow Invoice Distribution Type
34083  , p_source_92            IN VARCHAR2
34084 --Business Flow Invoice Entity Code
34085  , p_source_93            IN VARCHAR2
34086 --Business Flow Invoice Distribution Identifier
34087  , p_source_94            IN NUMBER
34088 --Business Flow Invoice Identifier
34089  , p_source_95            IN NUMBER
34090 --When to Account for Payment Option
34091  , p_source_97            IN VARCHAR2
34092 --Payment Distribution Type
34093  , p_source_98            IN VARCHAR2
34094  , p_source_98_meaning    IN VARCHAR2
34095 --Payment Distribution Amount
34096  , p_source_99            IN NUMBER
34097 --Payment Distribution Identifier
34098  , p_source_104            IN NUMBER
34099 --Payment Supplier Identifier
34100  , p_source_110            IN NUMBER
34101 --Payment Supplier Site Identifier
34102  , p_source_111            IN NUMBER
34103 --Payment Distribution Reversed Identifier
34104  , p_source_112            IN NUMBER
34105 --Pooled Bank Account Option
34106  , p_source_113            IN VARCHAR2
34107  , p_source_113_meaning    IN VARCHAR2
34108 --Payment Maturity Date
34109  , p_source_114            IN DATE
34110 --Payment Distribution (Invoice Rate) Ledger Amount
34111  , p_source_116            IN NUMBER
34112 --Payment Exchange Date
34113  , p_source_117            IN DATE
34114 --Payment Exchange Rate
34115  , p_source_118            IN NUMBER
34116 --Payment Exchange Rate Type
34117  , p_source_119            IN VARCHAR2
34118 --Payment Type
34119  , p_source_122            IN VARCHAR2
34120  , p_source_122_meaning    IN VARCHAR2
34121 )
34122 IS
34123 
34124 l_component_type              VARCHAR2(80);
34125 l_component_code              VARCHAR2(30);
34126 l_component_type_code         VARCHAR2(1);
34127 l_component_appl_id           INTEGER;
34128 l_amb_context_code            VARCHAR2(30);
34129 l_entity_code                 VARCHAR2(30);
34130 l_event_class_code            VARCHAR2(30);
34131 l_ae_header_id                NUMBER;
34132 l_event_type_code             VARCHAR2(30);
34133 l_line_definition_code        VARCHAR2(30);
34134 l_line_definition_owner_code  VARCHAR2(1);
34135 --
34136 -- adr variables
34137 l_segment                     VARCHAR2(30);
34138 l_ccid                        NUMBER;
34139 l_adr_transaction_coa_id      NUMBER;
34140 l_adr_accounting_coa_id       NUMBER;
34141 l_adr_flexfield_segment_code  VARCHAR2(30);
34142 l_adr_flex_value_set_id       NUMBER;
34143 l_adr_value_type_code         VARCHAR2(30);
34144 l_adr_value_combination_id    NUMBER;
34145 l_adr_value_segment_code      VARCHAR2(30);
34146 
34147 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
34148 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
34149 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
34150 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
34151 
34152 -- 4262811 Variables ------------------------------------------------------------------------------------------
34153 l_entered_amt_idx             NUMBER;
34154 l_accted_amt_idx              NUMBER;
34155 l_acc_rev_flag                VARCHAR2(1);
34156 l_accrual_line_num            NUMBER;
34157 l_tmp_amt                     NUMBER;
34158 l_acc_rev_natural_side_code   VARCHAR2(1);
34159 
34160 l_num_entries                 NUMBER;
34161 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
34162 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
34163 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
34164 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
34165 l_recog_line_1                NUMBER;
34166 l_recog_line_2                NUMBER;
34167 
34168 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
34169 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
34170 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
34171 
34172 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
34173 
34174 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
34175 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
34176 
34177 ---------------------------------------------------------------------------------------------------------------
34178 
34179 
34180 --
34181 -- bulk performance
34182 --
34183 l_balance_type_code           VARCHAR2(1);
34184 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
34185 l_log_module                  VARCHAR2(240);
34186 
34187 --
34188 -- Upgrade strategy
34189 --
34190 l_actual_upg_option           VARCHAR2(1);
34191 l_enc_upg_option           VARCHAR2(1);
34192 
34193 --
34194 BEGIN
34195 --
34196 IF g_log_enabled THEN
34197       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_83';
34198 END IF;
34199 --
34200 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34201 
34202       trace
34203          (p_msg      => 'BEGIN of AcctLineType_83'
34204          ,p_level    => C_LEVEL_PROCEDURE
34205          ,p_module   => l_log_module);
34206 
34207 END IF;
34208 --
34212 l_component_appl_id          :=  200;
34209 l_component_type             := 'AMB_JLT';
34210 l_component_code             := 'AP_CASH_CLEAR_REF_BS_INVXRATE';
34211 l_component_type_code        := 'S';
34213 l_amb_context_code           := 'DEFAULT';
34214 l_entity_code                := 'AP_PAYMENTS';
34215 l_event_class_code           := 'REFUNDS';
34216 l_event_type_code            := 'REFUNDS_ALL';
34217 l_line_definition_owner_code := 'S';
34218 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
34219 --
34220 l_balance_type_code          := 'A';
34221 l_segment                     := NULL;
34222 l_ccid                        := NULL;
34223 l_adr_transaction_coa_id      := NULL;
34224 l_adr_accounting_coa_id       := NULL;
34225 l_adr_flexfield_segment_code  := NULL;
34226 l_adr_flex_value_set_id       := NULL;
34227 l_adr_value_type_code         := NULL;
34228 l_adr_value_combination_id    := NULL;
34229 l_adr_value_segment_code      := NULL;
34230 
34231 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
34232 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
34233 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
34234 l_budgetary_control_flag     := 'N';
34235 
34236 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
34237 l_bflow_applied_to_amt       := NULL; -- 5132302
34238 l_entered_amt_idx            := NULL;          -- 4262811
34239 l_accted_amt_idx             := NULL;          -- 4262811
34240 l_acc_rev_flag               := NULL;          -- 4262811
34241 l_accrual_line_num           := NULL;          -- 4262811
34242 l_tmp_amt                    := NULL;          -- 4262811
34243 --
34244  
34245 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
34246     l_balance_type_code <> 'B' THEN
34247 IF NVL(p_source_97,'
34248 ') =  'ALWAYS_CLEAR' AND 
34249 (NVL(p_source_113,'
34250 ') =  'Y' AND 
34251 NVL(p_source_15,'
34252 ') =  'BALANCING_SEGMENT') AND 
34253 p_source_114 IS NULL AND 
34254 NVL(p_source_98,'
34255 ') =  'CASH' AND 
34256 NVL(p_source_122,'
34257 ') =  'R'
34258  THEN 
34259 
34260    --
34261    XLA_AE_LINES_PKG.SetNewLine;
34262 
34263    p_balance_type_code          := l_balance_type_code;
34264    -- set the flag so later we will know whether the gain loss line needs to be created
34265    
34266    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
34267      p_actual_flag :='A';
34268    END IF;
34269 
34270    --
34271    -- bulk performance
34272    --
34273    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
34274                                       p_header_num   => 0); -- 4262811
34275    --
34276    -- set accounting line options
34277    --
34278    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
34279            p_natural_side_code          => 'C'
34280          , p_gain_or_loss_flag          => 'N'
34281          , p_gl_transfer_mode_code      => 'S'
34282          , p_acct_entry_type_code       => 'A'
34283          , p_switch_side_flag           => 'Y'
34284          , p_merge_duplicate_code       => 'A'
34285          );
34286    --
34287    l_acc_rev_natural_side_code := 'D';  -- 4262811
34288    -- 
34289    --
34290    -- set accounting line type info
34291    --
34292    xla_ae_lines_pkg.SetAcctLineType
34293       (p_component_type             => l_component_type
34294       ,p_event_type_code            => l_event_type_code
34295       ,p_line_definition_owner_code => l_line_definition_owner_code
34296       ,p_line_definition_code       => l_line_definition_code
34297       ,p_accounting_line_code       => l_component_code
34298       ,p_accounting_line_type_code  => l_component_type_code
34299       ,p_accounting_line_appl_id    => l_component_appl_id
34300       ,p_amb_context_code           => l_amb_context_code
34301       ,p_entity_code                => l_entity_code
34302       ,p_event_class_code           => l_event_class_code);
34303    --
34304    -- set accounting class
34305    --
34306    xla_ae_lines_pkg.SetAcctClass(
34307            p_accounting_class_code  => 'CASH_CLEARING'
34308          , p_ae_header_id           => l_ae_header_id
34309          );
34310 
34311    --
34312    -- set rounding class
34313    --
34314    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
34315                       'CASH_CLEARING';
34316 
34317    --
34318    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
34319    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
34320    --
34321    -- bulk performance
34322    --
34323    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
34324 
34325    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
34326       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
34327 
34328    -- 4955764
34329    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34330       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
34331 
34332    -- 4458381 Public Sector Enh
34333    
34334    --
34335    -- set accounting attributes for the line type
34336    --
34337    l_entered_amt_idx := 9;
34341    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
34338    l_accted_amt_idx  := 14;
34339    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
34340    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
34342    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
34343    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
34344    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
34345    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
34346    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
34347    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
34348    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
34349    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
34350    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
34351    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
34352    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
34353    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
34354    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
34355    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
34356    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
34357    l_rec_acct_attrs.array_num_value(9)  := p_source_99;
34358    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
34359    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
34360    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
34361    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
34362    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
34363    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
34364    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
34365    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
34366    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
34367    l_rec_acct_attrs.array_num_value(14)  := p_source_116;
34368    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
34369    l_rec_acct_attrs.array_char_value(15)  := p_source_80;
34370    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
34371    l_rec_acct_attrs.array_num_value(16)  := p_source_110;
34372    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
34373    l_rec_acct_attrs.array_num_value(17)  := p_source_111;
34374    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
34375    l_rec_acct_attrs.array_char_value(18)  := p_source_83;
34376    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
34377    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_112);
34378    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
34379    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
34380    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
34381    l_rec_acct_attrs.array_num_value(21)  := p_source_86;
34382    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
34383    l_rec_acct_attrs.array_num_value(22)  := p_source_87;
34384    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
34385    l_rec_acct_attrs.array_num_value(23)  := p_source_88;
34386 
34387    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
34388    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
34389 
34390    ---------------------------------------------------------------------------------------------------------------
34391    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
34392    ---------------------------------------------------------------------------------------------------------------
34393    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
34394 
34395    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34396    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34397 
34398    IF xla_accounting_cache_pkg.GetValueChar
34399          (p_source_code         => 'LEDGER_CATEGORY_CODE'
34400          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
34401    AND l_bflow_method_code = 'PRIOR_ENTRY'
34402 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
34403    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
34404          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
34405        )
34406    THEN
34407          xla_ae_lines_pkg.BflowUpgEntry
34408            (p_business_method_code    => l_bflow_method_code
34409            ,p_business_class_code     => l_bflow_class_code
34410            ,p_balance_type            => l_balance_type_code);
34411    ELSE
34412       NULL;
34413 XLA_AE_LINES_PKG.business_flow_validation(
34414                                 p_business_method_code     => l_bflow_method_code
34415                                ,p_business_class_code      => l_bflow_class_code
34416                                ,p_inherit_description_flag => l_inherit_desc_flag);
34417    END IF;
34418 
34419    --
34420    -- call analytical criteria
34421    --
34422    
34423    --
34424    -- call description
34425    --
34426    -- No description or it is inherited.
34427    --
34428    -- call ADRs
34429    -- Bug 4922099
34430    --
34431    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34432         (NVL(l_actual_upg_option, 'N') = 'O') OR
34433         (NVL(l_enc_upg_option, 'N') = 'O')
34434       )
34435    THEN
34436    NULL;
34440   l_ccid := AcctDerRule_36(
34437    --
34438    --
34439    
34441            p_application_id           => p_application_id
34442          , p_ae_header_id             => l_ae_header_id 
34443 , p_source_35 => p_source_35
34444          , x_transaction_coa_id       => l_adr_transaction_coa_id
34445          , x_accounting_coa_id        => l_adr_accounting_coa_id
34446          , x_value_type_code          => l_adr_value_type_code
34447          , p_side                     => 'NA'
34448    );
34449 
34450    xla_ae_lines_pkg.set_ccid(
34451     p_code_combination_id          => l_ccid
34452   , p_value_type_code              => l_adr_value_type_code
34453   , p_transaction_coa_id           => l_adr_transaction_coa_id
34454   , p_accounting_coa_id            => l_adr_accounting_coa_id
34455   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
34456   , p_adr_type_code                => 'S'
34457   , p_component_type               => l_component_type
34458   , p_component_code               => l_component_code
34459   , p_component_type_code          => l_component_type_code
34460   , p_component_appl_id            => l_component_appl_id
34461   , p_amb_context_code             => l_amb_context_code
34462   , p_side                         => 'NA'
34463   );
34464 
34465 
34466    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
34467      p_to_segment_code         => 'GL_BALANCING'
34468    , p_segment_value           => C_CHAR
34469    , p_from_segment_code       => NULL
34470    , p_from_combination_id     => NULL
34471    , p_value_type_code         => NULL
34472    , p_transaction_coa_id      => null
34473    , p_accounting_coa_id       => null
34474    , p_flexfield_segment_code  => NULL
34475    , p_flex_value_set_id       => NULL
34476    , p_adr_code                => NULL
34477    , p_adr_type_code           => NULL
34478    , p_component_type          => l_component_type
34479    , p_component_code          => l_component_code
34480    , p_component_type_code     => l_component_type_code
34481    , p_component_appl_id       => l_component_appl_id
34482    , p_amb_context_code        => l_amb_context_code
34483    , p_entity_code             => 'AP_PAYMENTS'
34484    , p_event_class_code        => 'REFUNDS'
34485    , p_side                    => 'NA'
34486    );
34487    --
34488 
34489 
34490    --
34491    --
34492    END IF;
34493    --
34494    -- Bug 4922099
34495    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
34496           (NVL(l_enc_upg_option, 'N') = 'O')
34497         ) AND
34498         (l_bflow_method_code = 'PRIOR_ENTRY')
34499       )
34500    THEN
34501       IF
34502       --
34503       1 = 2
34504       --
34505       THEN
34506       xla_accounting_err_pkg.build_message
34507                                     (p_appli_s_name            => 'XLA'
34508                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34509                                     ,p_token_1                 => 'LINE_NUMBER'
34510                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
34511                                     ,p_token_2                 => 'LINE_TYPE_NAME'
34512                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
34513                                                                              l_component_type
34514                                                                             ,l_component_code
34515                                                                             ,l_component_type_code
34516                                                                             ,l_component_appl_id
34517                                                                             ,l_amb_context_code
34518                                                                             ,l_entity_code
34519                                                                             ,l_event_class_code
34520                                                                            )
34521                                     ,p_token_3                 => 'OWNER'
34522                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
34523                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
34524                                                                           ,p_lookup_code    => l_component_type_code
34525                                                                          )
34526                                     ,p_token_4                 => 'PRODUCT_NAME'
34527                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
34528                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
34529                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
34530                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
34531                                     ,p_ae_header_id            =>  NULL
34532                                        );
34533 
34534         IF (C_LEVEL_ERROR>= g_log_level) THEN
34535                  trace
34536                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34537                       ,p_level    => C_LEVEL_ERROR
34538                       ,p_module   => l_log_module);
34542    --
34539         END IF;
34540       END IF;
34541    END IF;
34543    --
34544    ------------------------------------------------------------------------------------------------
34545    -- 4219869 Business Flow
34546    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
34547    -- Prior Entry.  Currently, the following code is always generated.
34548    ------------------------------------------------------------------------------------------------
34549    XLA_AE_LINES_PKG.ValidateCurrentLine;
34550 
34551    ------------------------------------------------------------------------------------
34552    -- 4219869 Business Flow
34553    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
34554    ------------------------------------------------------------------------------------
34555    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34556 
34557    ----------------------------------------------------------------------------------
34558    -- 4219869 Business Flow
34559    -- Update journal entry status -- Need to generate this within IF <condition>
34560    ----------------------------------------------------------------------------------
34561    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34562          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
34563          ,p_balance_type_code => l_balance_type_code
34564          );
34565 
34566    -------------------------------------------------------------------------------------------
34567    -- 4262811 - Generate the Accrual Reversal lines
34568    -------------------------------------------------------------------------------------------
34569    BEGIN
34570       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
34571                               (g_array_event(p_event_id).array_value_num('header_index'));
34572       IF l_acc_rev_flag IS NULL THEN
34573          l_acc_rev_flag := 'N';
34574       END IF;
34575    EXCEPTION
34576       WHEN OTHERS THEN
34577          l_acc_rev_flag := 'N';
34578    END;
34579    --
34580    IF (l_acc_rev_flag = 'Y') THEN
34581 
34582        -- 4645092  ------------------------------------------------------------------------------
34583        -- To allow MPA report to determine if it should generate report process
34584        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
34585        ------------------------------------------------------------------------------------------
34586 
34587        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
34588        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
34589    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
34590    -- call ADRs
34591    -- Bug 4922099
34592    --
34593    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34594         (NVL(l_actual_upg_option, 'N') = 'O') OR
34595         (NVL(l_enc_upg_option, 'N') = 'O')
34596       )
34597    THEN
34598    NULL;
34599    --
34600    --
34601    
34602   l_ccid := AcctDerRule_36(
34603            p_application_id           => p_application_id
34604          , p_ae_header_id             => l_ae_header_id 
34605 , p_source_35 => p_source_35
34606          , x_transaction_coa_id       => l_adr_transaction_coa_id
34607          , x_accounting_coa_id        => l_adr_accounting_coa_id
34608          , x_value_type_code          => l_adr_value_type_code
34609          , p_side                     => 'NA'
34610    );
34611 
34612    xla_ae_lines_pkg.set_ccid(
34613     p_code_combination_id          => l_ccid
34614   , p_value_type_code              => l_adr_value_type_code
34615   , p_transaction_coa_id           => l_adr_transaction_coa_id
34616   , p_accounting_coa_id            => l_adr_accounting_coa_id
34617   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
34618   , p_adr_type_code                => 'S'
34619   , p_component_type               => l_component_type
34620   , p_component_code               => l_component_code
34621   , p_component_type_code          => l_component_type_code
34622   , p_component_appl_id            => l_component_appl_id
34623   , p_amb_context_code             => l_amb_context_code
34624   , p_side                         => 'NA'
34625   );
34626 
34627 
34628    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
34629      p_to_segment_code         => 'GL_BALANCING'
34630    , p_segment_value           => C_CHAR
34631    , p_from_segment_code       => NULL
34632    , p_from_combination_id     => NULL
34633    , p_value_type_code         => NULL
34634    , p_transaction_coa_id      => null
34635    , p_accounting_coa_id       => null
34636    , p_flexfield_segment_code  => NULL
34637    , p_flex_value_set_id       => NULL
34638    , p_adr_code                => NULL
34639    , p_adr_type_code           => NULL
34640    , p_component_type          => l_component_type
34641    , p_component_code          => l_component_code
34642    , p_component_type_code     => l_component_type_code
34643    , p_component_appl_id       => l_component_appl_id
34644    , p_amb_context_code        => l_amb_context_code
34645    , p_entity_code             => 'AP_PAYMENTS'
34646    , p_event_class_code        => 'REFUNDS'
34647    , p_side                    => 'NA'
34648    );
34649    --
34650 
34651 
34652    --
34653    --
34654    END IF;
34655 
34656        --
34657        -- Update the line information that should be overwritten
34658        --
34662 
34659        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
34660                                          p_header_num   => 1);
34661        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
34663        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
34664 
34665        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
34666           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
34667        END IF;
34668 
34669       --
34670       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
34671       --
34672       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
34673           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
34674       ELSE
34675           ---------------------------------------------------------------------------------------------------
34676           -- 4262811a Switch Sign
34677           ---------------------------------------------------------------------------------------------------
34678           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
34679           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34680                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34681           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34682                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34683           -- 5132302
34684           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
34685                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34686 
34687       END IF;
34688 
34689       -- 4955764
34690       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34691       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
34692 
34693 
34694       XLA_AE_LINES_PKG.ValidateCurrentLine;
34695       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34696 
34697       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34698                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
34699                ,p_balance_type_code => l_balance_type_code);
34700 
34701    END IF;
34702 
34703    -----------------------------------------------------------------------------------------
34704    -- 4262811 Multiperiod Accounting
34705    -----------------------------------------------------------------------------------------
34706      -- No MPA option is assigned.
34707 
34708 
34709 END IF;
34710 END IF;
34711 --
34712 
34713 --
34714 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34715    trace
34716       (p_msg      => 'END of AcctLineType_83'
34717       ,p_level    => C_LEVEL_PROCEDURE
34718       ,p_module   => l_log_module);
34719 END IF;
34720 --
34721 EXCEPTION
34722   WHEN xla_exceptions_pkg.application_exception THEN
34723       RAISE;
34724   WHEN OTHERS THEN
34725        xla_exceptions_pkg.raise_message
34726            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_83');
34727 END AcctLineType_83;
34728 --
34729 
34730 ---------------------------------------
34731 --
34732 -- PRIVATE FUNCTION
34733 --         AcctLineType_84
34734 --
34735 ---------------------------------------
34736 PROCEDURE AcctLineType_84 (
34737   p_application_id        IN NUMBER
34738  ,p_event_id              IN NUMBER
34739  ,p_calculate_acctd_flag  IN VARCHAR2
34740  ,p_calculate_g_l_flag    IN VARCHAR2
34741  ,p_actual_flag           IN OUT VARCHAR2
34742  ,p_balance_type_code     OUT VARCHAR2
34743  ,p_gain_or_loss_ref      OUT VARCHAR2
34744  
34745 --Payment Currency Code
34746  , p_source_13            IN VARCHAR2
34747 --Bank Cash Clearing Account
34748  , p_source_35            IN NUMBER
34749 --Automatic Offsets Flag
34750  , p_source_47            IN VARCHAR2
34751  , p_source_47_meaning    IN VARCHAR2
34752 --Accounting Reversal Indicator
34753  , p_source_53            IN VARCHAR2
34754 --Distribution Link Type
34755  , p_source_55            IN VARCHAR2
34756 --Override Accounted Amount Indicator
34757  , p_source_80            IN VARCHAR2
34758  , p_source_80_meaning    IN VARCHAR2
34759 --Third Party Type
34760  , p_source_83            IN VARCHAR2
34761 --Invoice Distribution Tax Line Identifier
34762  , p_source_86            IN NUMBER
34763 --Invoice Distribution Tax Distribution Identifier from Tax
34764  , p_source_87            IN NUMBER
34765 --Invoice Distribution Summary Tax Line Identifier
34766  , p_source_88            IN NUMBER
34767 --Business Flow Accounts Payable Application Identifier
34768  , p_source_91            IN NUMBER
34769 --Business Flow Invoice Distribution Type
34770  , p_source_92            IN VARCHAR2
34771 --Business Flow Invoice Entity Code
34772  , p_source_93            IN VARCHAR2
34773 --Business Flow Invoice Distribution Identifier
34774  , p_source_94            IN NUMBER
34775 --Business Flow Invoice Identifier
34776  , p_source_95            IN NUMBER
34777 --When to Account for Payment Option
34778  , p_source_97            IN VARCHAR2
34782 --Payment Distribution Amount
34779 --Payment Distribution Type
34780  , p_source_98            IN VARCHAR2
34781  , p_source_98_meaning    IN VARCHAR2
34783  , p_source_99            IN NUMBER
34784 --Payment Distribution Identifier
34785  , p_source_104            IN NUMBER
34786 --Payment Supplier Identifier
34787  , p_source_110            IN NUMBER
34788 --Payment Supplier Site Identifier
34789  , p_source_111            IN NUMBER
34790 --Payment Distribution Reversed Identifier
34791  , p_source_112            IN NUMBER
34792 --Pooled Bank Account Option
34793  , p_source_113            IN VARCHAR2
34794  , p_source_113_meaning    IN VARCHAR2
34795 --Payment Maturity Date
34796  , p_source_114            IN DATE
34797 --Payment Distribution (Invoice Rate) Ledger Amount
34798  , p_source_116            IN NUMBER
34799 --Payment Exchange Date
34800  , p_source_117            IN DATE
34801 --Payment Exchange Rate
34802  , p_source_118            IN NUMBER
34803 --Payment Exchange Rate Type
34804  , p_source_119            IN VARCHAR2
34805 --Payment Type
34806  , p_source_122            IN VARCHAR2
34807  , p_source_122_meaning    IN VARCHAR2
34808 )
34809 IS
34810 
34811 l_component_type              VARCHAR2(80);
34812 l_component_code              VARCHAR2(30);
34813 l_component_type_code         VARCHAR2(1);
34814 l_component_appl_id           INTEGER;
34815 l_amb_context_code            VARCHAR2(30);
34816 l_entity_code                 VARCHAR2(30);
34817 l_event_class_code            VARCHAR2(30);
34818 l_ae_header_id                NUMBER;
34819 l_event_type_code             VARCHAR2(30);
34820 l_line_definition_code        VARCHAR2(30);
34821 l_line_definition_owner_code  VARCHAR2(1);
34822 --
34823 -- adr variables
34824 l_segment                     VARCHAR2(30);
34825 l_ccid                        NUMBER;
34826 l_adr_transaction_coa_id      NUMBER;
34827 l_adr_accounting_coa_id       NUMBER;
34828 l_adr_flexfield_segment_code  VARCHAR2(30);
34829 l_adr_flex_value_set_id       NUMBER;
34830 l_adr_value_type_code         VARCHAR2(30);
34831 l_adr_value_combination_id    NUMBER;
34832 l_adr_value_segment_code      VARCHAR2(30);
34833 
34834 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
34835 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
34836 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
34837 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
34838 
34839 -- 4262811 Variables ------------------------------------------------------------------------------------------
34840 l_entered_amt_idx             NUMBER;
34841 l_accted_amt_idx              NUMBER;
34842 l_acc_rev_flag                VARCHAR2(1);
34843 l_accrual_line_num            NUMBER;
34844 l_tmp_amt                     NUMBER;
34845 l_acc_rev_natural_side_code   VARCHAR2(1);
34846 
34847 l_num_entries                 NUMBER;
34848 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
34849 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
34850 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
34851 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
34852 l_recog_line_1                NUMBER;
34853 l_recog_line_2                NUMBER;
34854 
34855 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
34856 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
34857 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
34858 
34859 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
34860 
34861 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
34862 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
34863 
34864 ---------------------------------------------------------------------------------------------------------------
34865 
34866 
34867 --
34868 -- bulk performance
34869 --
34870 l_balance_type_code           VARCHAR2(1);
34871 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
34872 l_log_module                  VARCHAR2(240);
34873 
34874 --
34875 -- Upgrade strategy
34876 --
34877 l_actual_upg_option           VARCHAR2(1);
34878 l_enc_upg_option           VARCHAR2(1);
34879 
34880 --
34881 BEGIN
34882 --
34883 IF g_log_enabled THEN
34884       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_84';
34885 END IF;
34886 --
34887 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34888 
34889       trace
34890          (p_msg      => 'BEGIN of AcctLineType_84'
34891          ,p_level    => C_LEVEL_PROCEDURE
34892          ,p_module   => l_log_module);
34893 
34894 END IF;
34895 --
34896 l_component_type             := 'AMB_JLT';
34897 l_component_code             := 'AP_CASH_CLEAR_REF_INVXRATE';
34898 l_component_type_code        := 'S';
34899 l_component_appl_id          :=  200;
34900 l_amb_context_code           := 'DEFAULT';
34901 l_entity_code                := 'AP_PAYMENTS';
34902 l_event_class_code           := 'REFUNDS';
34903 l_event_type_code            := 'REFUNDS_ALL';
34904 l_line_definition_owner_code := 'S';
34905 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
34906 --
34907 l_balance_type_code          := 'A';
34908 l_segment                     := NULL;
34909 l_ccid                        := NULL;
34910 l_adr_transaction_coa_id      := NULL;
34911 l_adr_accounting_coa_id       := NULL;
34915 l_adr_value_combination_id    := NULL;
34912 l_adr_flexfield_segment_code  := NULL;
34913 l_adr_flex_value_set_id       := NULL;
34914 l_adr_value_type_code         := NULL;
34916 l_adr_value_segment_code      := NULL;
34917 
34918 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
34919 l_bflow_class_code           := 'AP_CASH_CLEARING';    -- 4219869 Business Flow
34920 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
34921 l_budgetary_control_flag     := 'N';
34922 
34923 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
34924 l_bflow_applied_to_amt       := NULL; -- 5132302
34925 l_entered_amt_idx            := NULL;          -- 4262811
34926 l_accted_amt_idx             := NULL;          -- 4262811
34927 l_acc_rev_flag               := NULL;          -- 4262811
34928 l_accrual_line_num           := NULL;          -- 4262811
34929 l_tmp_amt                    := NULL;          -- 4262811
34930 --
34931  
34932 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
34933     l_balance_type_code <> 'B' THEN
34934 IF NVL(p_source_97,'
34935 ') =  'ALWAYS_CLEAR' AND 
34936 (NVL(p_source_47,'
34937 ') <>  'Y' OR 
34938 NVL(p_source_47,'
34939 ') =  'Y' AND 
34940 NVL(p_source_113,'
34941 ') <>  'Y') AND 
34942 p_source_114 IS NULL AND 
34943 NVL(p_source_98,'
34944 ') =  'CASH' AND 
34945 NVL(p_source_122,'
34946 ') =  'R'
34947  THEN 
34948 
34949    --
34950    XLA_AE_LINES_PKG.SetNewLine;
34951 
34952    p_balance_type_code          := l_balance_type_code;
34953    -- set the flag so later we will know whether the gain loss line needs to be created
34954    
34955    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
34956      p_actual_flag :='A';
34957    END IF;
34958 
34959    --
34960    -- bulk performance
34961    --
34962    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
34963                                       p_header_num   => 0); -- 4262811
34964    --
34965    -- set accounting line options
34966    --
34967    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
34968            p_natural_side_code          => 'C'
34969          , p_gain_or_loss_flag          => 'N'
34970          , p_gl_transfer_mode_code      => 'S'
34971          , p_acct_entry_type_code       => 'A'
34972          , p_switch_side_flag           => 'Y'
34973          , p_merge_duplicate_code       => 'A'
34974          );
34975    --
34976    l_acc_rev_natural_side_code := 'D';  -- 4262811
34977    -- 
34978    --
34979    -- set accounting line type info
34980    --
34981    xla_ae_lines_pkg.SetAcctLineType
34982       (p_component_type             => l_component_type
34983       ,p_event_type_code            => l_event_type_code
34984       ,p_line_definition_owner_code => l_line_definition_owner_code
34985       ,p_line_definition_code       => l_line_definition_code
34986       ,p_accounting_line_code       => l_component_code
34987       ,p_accounting_line_type_code  => l_component_type_code
34988       ,p_accounting_line_appl_id    => l_component_appl_id
34989       ,p_amb_context_code           => l_amb_context_code
34990       ,p_entity_code                => l_entity_code
34991       ,p_event_class_code           => l_event_class_code);
34992    --
34993    -- set accounting class
34994    --
34995    xla_ae_lines_pkg.SetAcctClass(
34996            p_accounting_class_code  => 'CASH_CLEARING'
34997          , p_ae_header_id           => l_ae_header_id
34998          );
34999 
35000    --
35001    -- set rounding class
35002    --
35003    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
35004                       'CASH_CLEARING';
35005 
35006    --
35007    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
35008    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
35009    --
35010    -- bulk performance
35011    --
35012    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
35013 
35014    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
35015       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
35016 
35017    -- 4955764
35018    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35019       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
35020 
35021    -- 4458381 Public Sector Enh
35022    
35023    --
35024    -- set accounting attributes for the line type
35025    --
35026    l_entered_amt_idx := 9;
35027    l_accted_amt_idx  := 14;
35028    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
35029    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
35030    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
35031    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
35032    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
35033    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
35034    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
35035    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
35036    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
35037    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
35038    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
35042    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
35039    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
35040    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
35041    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
35043    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
35044    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
35045    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
35046    l_rec_acct_attrs.array_num_value(9)  := p_source_99;
35047    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
35048    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
35049    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
35050    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
35051    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
35052    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
35053    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
35054    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
35055    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
35056    l_rec_acct_attrs.array_num_value(14)  := p_source_116;
35057    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
35058    l_rec_acct_attrs.array_char_value(15)  := p_source_80;
35059    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
35060    l_rec_acct_attrs.array_num_value(16)  := p_source_110;
35061    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
35062    l_rec_acct_attrs.array_num_value(17)  := p_source_111;
35063    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
35064    l_rec_acct_attrs.array_char_value(18)  := p_source_83;
35065    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
35066    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_112);
35067    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
35068    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
35069    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
35070    l_rec_acct_attrs.array_num_value(21)  := p_source_86;
35071    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
35072    l_rec_acct_attrs.array_num_value(22)  := p_source_87;
35073    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
35074    l_rec_acct_attrs.array_num_value(23)  := p_source_88;
35075 
35076    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
35077    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
35078 
35079    ---------------------------------------------------------------------------------------------------------------
35080    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
35081    ---------------------------------------------------------------------------------------------------------------
35082    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
35083 
35084    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35085    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35086 
35087    IF xla_accounting_cache_pkg.GetValueChar
35088          (p_source_code         => 'LEDGER_CATEGORY_CODE'
35089          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
35090    AND l_bflow_method_code = 'PRIOR_ENTRY'
35091 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
35092    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
35093          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
35094        )
35095    THEN
35096          xla_ae_lines_pkg.BflowUpgEntry
35097            (p_business_method_code    => l_bflow_method_code
35098            ,p_business_class_code     => l_bflow_class_code
35099            ,p_balance_type            => l_balance_type_code);
35100    ELSE
35101       NULL;
35102 -- No business flow processing for business flow method of NONE.
35103    END IF;
35104 
35105    --
35106    -- call analytical criteria
35107    --
35108    
35109    --
35110    -- call description
35111    --
35112    -- No description or it is inherited.
35113    --
35114    -- call ADRs
35115    -- Bug 4922099
35116    --
35117    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35118         (NVL(l_actual_upg_option, 'N') = 'O') OR
35119         (NVL(l_enc_upg_option, 'N') = 'O')
35120       )
35121    THEN
35122    NULL;
35123    --
35124    --
35125    
35126   l_ccid := AcctDerRule_36(
35127            p_application_id           => p_application_id
35128          , p_ae_header_id             => l_ae_header_id 
35129 , p_source_35 => p_source_35
35130          , x_transaction_coa_id       => l_adr_transaction_coa_id
35131          , x_accounting_coa_id        => l_adr_accounting_coa_id
35132          , x_value_type_code          => l_adr_value_type_code
35133          , p_side                     => 'NA'
35134    );
35135 
35136    xla_ae_lines_pkg.set_ccid(
35137     p_code_combination_id          => l_ccid
35138   , p_value_type_code              => l_adr_value_type_code
35139   , p_transaction_coa_id           => l_adr_transaction_coa_id
35140   , p_accounting_coa_id            => l_adr_accounting_coa_id
35141   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
35142   , p_adr_type_code                => 'S'
35146   , p_component_appl_id            => l_component_appl_id
35143   , p_component_type               => l_component_type
35144   , p_component_code               => l_component_code
35145   , p_component_type_code          => l_component_type_code
35147   , p_amb_context_code             => l_amb_context_code
35148   , p_side                         => 'NA'
35149   );
35150 
35151 
35152    --
35153    --
35154    END IF;
35155    --
35156    -- Bug 4922099
35157    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
35158           (NVL(l_enc_upg_option, 'N') = 'O')
35159         ) AND
35160         (l_bflow_method_code = 'PRIOR_ENTRY')
35161       )
35162    THEN
35163       IF
35164       --
35165       1 = 2
35166       --
35167       THEN
35168       xla_accounting_err_pkg.build_message
35169                                     (p_appli_s_name            => 'XLA'
35170                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35171                                     ,p_token_1                 => 'LINE_NUMBER'
35172                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
35173                                     ,p_token_2                 => 'LINE_TYPE_NAME'
35174                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
35175                                                                              l_component_type
35176                                                                             ,l_component_code
35177                                                                             ,l_component_type_code
35178                                                                             ,l_component_appl_id
35179                                                                             ,l_amb_context_code
35180                                                                             ,l_entity_code
35181                                                                             ,l_event_class_code
35182                                                                            )
35183                                     ,p_token_3                 => 'OWNER'
35184                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
35185                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
35186                                                                           ,p_lookup_code    => l_component_type_code
35187                                                                          )
35188                                     ,p_token_4                 => 'PRODUCT_NAME'
35189                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
35190                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
35191                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
35192                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
35193                                     ,p_ae_header_id            =>  NULL
35194                                        );
35195 
35196         IF (C_LEVEL_ERROR>= g_log_level) THEN
35197                  trace
35198                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35199                       ,p_level    => C_LEVEL_ERROR
35200                       ,p_module   => l_log_module);
35201         END IF;
35202       END IF;
35203    END IF;
35204    --
35205    --
35206    ------------------------------------------------------------------------------------------------
35207    -- 4219869 Business Flow
35208    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
35209    -- Prior Entry.  Currently, the following code is always generated.
35210    ------------------------------------------------------------------------------------------------
35211    XLA_AE_LINES_PKG.ValidateCurrentLine;
35212 
35213    ------------------------------------------------------------------------------------
35214    -- 4219869 Business Flow
35215    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
35216    ------------------------------------------------------------------------------------
35217    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35218 
35219    ----------------------------------------------------------------------------------
35220    -- 4219869 Business Flow
35221    -- Update journal entry status -- Need to generate this within IF <condition>
35222    ----------------------------------------------------------------------------------
35223    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35224          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
35225          ,p_balance_type_code => l_balance_type_code
35226          );
35227 
35228    -------------------------------------------------------------------------------------------
35229    -- 4262811 - Generate the Accrual Reversal lines
35230    -------------------------------------------------------------------------------------------
35231    BEGIN
35232       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
35233                               (g_array_event(p_event_id).array_value_num('header_index'));
35234       IF l_acc_rev_flag IS NULL THEN
35235          l_acc_rev_flag := 'N';
35236       END IF;
35237    EXCEPTION
35241    --
35238       WHEN OTHERS THEN
35239          l_acc_rev_flag := 'N';
35240    END;
35242    IF (l_acc_rev_flag = 'Y') THEN
35243 
35244        -- 4645092  ------------------------------------------------------------------------------
35245        -- To allow MPA report to determine if it should generate report process
35246        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
35247        ------------------------------------------------------------------------------------------
35248 
35249        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
35250        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
35251    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
35252    -- call ADRs
35253    -- Bug 4922099
35254    --
35255    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35256         (NVL(l_actual_upg_option, 'N') = 'O') OR
35257         (NVL(l_enc_upg_option, 'N') = 'O')
35258       )
35259    THEN
35260    NULL;
35261    --
35262    --
35263    
35264   l_ccid := AcctDerRule_36(
35265            p_application_id           => p_application_id
35266          , p_ae_header_id             => l_ae_header_id 
35267 , p_source_35 => p_source_35
35268          , x_transaction_coa_id       => l_adr_transaction_coa_id
35269          , x_accounting_coa_id        => l_adr_accounting_coa_id
35270          , x_value_type_code          => l_adr_value_type_code
35271          , p_side                     => 'NA'
35272    );
35273 
35274    xla_ae_lines_pkg.set_ccid(
35275     p_code_combination_id          => l_ccid
35276   , p_value_type_code              => l_adr_value_type_code
35277   , p_transaction_coa_id           => l_adr_transaction_coa_id
35278   , p_accounting_coa_id            => l_adr_accounting_coa_id
35279   , p_adr_code                     => 'AP_PMT_CASH_CLEAR'
35280   , p_adr_type_code                => 'S'
35281   , p_component_type               => l_component_type
35282   , p_component_code               => l_component_code
35283   , p_component_type_code          => l_component_type_code
35284   , p_component_appl_id            => l_component_appl_id
35285   , p_amb_context_code             => l_amb_context_code
35286   , p_side                         => 'NA'
35287   );
35288 
35289 
35290    --
35291    --
35292    END IF;
35293 
35294        --
35295        -- Update the line information that should be overwritten
35296        --
35297        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
35298                                          p_header_num   => 1);
35299        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
35300 
35301        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
35302 
35303        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
35304           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
35305        END IF;
35306 
35307       --
35308       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
35309       --
35310       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
35311           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
35312       ELSE
35313           ---------------------------------------------------------------------------------------------------
35314           -- 4262811a Switch Sign
35315           ---------------------------------------------------------------------------------------------------
35316           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
35317           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35318                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35319           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35320                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35321           -- 5132302
35322           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
35323                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35324 
35325       END IF;
35326 
35327       -- 4955764
35328       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35329       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
35330 
35331 
35332       XLA_AE_LINES_PKG.ValidateCurrentLine;
35333       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35334 
35335       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35336                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
35337                ,p_balance_type_code => l_balance_type_code);
35338 
35339    END IF;
35340 
35341    -----------------------------------------------------------------------------------------
35342    -- 4262811 Multiperiod Accounting
35343    -----------------------------------------------------------------------------------------
35344      -- No MPA option is assigned.
35345 
35346 
35347 END IF;
35348 END IF;
35349 --
35350 
35351 --
35352 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35353    trace
35357 END IF;
35354       (p_msg      => 'END of AcctLineType_84'
35355       ,p_level    => C_LEVEL_PROCEDURE
35356       ,p_module   => l_log_module);
35358 --
35359 EXCEPTION
35360   WHEN xla_exceptions_pkg.application_exception THEN
35361       RAISE;
35362   WHEN OTHERS THEN
35363        xla_exceptions_pkg.raise_message
35364            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_84');
35365 END AcctLineType_84;
35366 --
35367 
35368 ---------------------------------------
35369 --
35370 -- PRIVATE FUNCTION
35371 --         AcctLineType_85
35372 --
35373 ---------------------------------------
35374 PROCEDURE AcctLineType_85 (
35375   p_application_id        IN NUMBER
35376  ,p_event_id              IN NUMBER
35377  ,p_calculate_acctd_flag  IN VARCHAR2
35378  ,p_calculate_g_l_flag    IN VARCHAR2
35379  ,p_actual_flag           IN OUT VARCHAR2
35380  ,p_balance_type_code     OUT VARCHAR2
35381  ,p_gain_or_loss_ref      OUT VARCHAR2
35382  
35383 --Payment Currency Code
35384  , p_source_13            IN VARCHAR2
35385 --Bank Cash Account
35386  , p_source_17            IN NUMBER
35387 --Automatic Offsets Flag
35388  , p_source_47            IN VARCHAR2
35389  , p_source_47_meaning    IN VARCHAR2
35390 --Accounting Reversal Indicator
35391  , p_source_53            IN VARCHAR2
35392 --Distribution Link Type
35393  , p_source_55            IN VARCHAR2
35394 --Override Accounted Amount Indicator
35395  , p_source_80            IN VARCHAR2
35396  , p_source_80_meaning    IN VARCHAR2
35397 --Third Party Type
35398  , p_source_83            IN VARCHAR2
35399 --Invoice Distribution Tax Line Identifier
35400  , p_source_86            IN NUMBER
35401 --Invoice Distribution Tax Distribution Identifier from Tax
35402  , p_source_87            IN NUMBER
35403 --Invoice Distribution Summary Tax Line Identifier
35404  , p_source_88            IN NUMBER
35405 --Business Flow Accounts Payable Application Identifier
35406  , p_source_91            IN NUMBER
35407 --Business Flow Invoice Distribution Type
35408  , p_source_92            IN VARCHAR2
35409 --Business Flow Invoice Entity Code
35410  , p_source_93            IN VARCHAR2
35411 --Business Flow Invoice Distribution Identifier
35412  , p_source_94            IN NUMBER
35413 --Business Flow Invoice Identifier
35414  , p_source_95            IN NUMBER
35415 --When to Account for Payment Option
35416  , p_source_97            IN VARCHAR2
35417 --Payment Distribution Type
35418  , p_source_98            IN VARCHAR2
35419  , p_source_98_meaning    IN VARCHAR2
35420 --Payment Distribution Amount
35421  , p_source_99            IN NUMBER
35422 --Payment Distribution Identifier
35423  , p_source_104            IN NUMBER
35424 --Payment Supplier Identifier
35425  , p_source_110            IN NUMBER
35426 --Payment Supplier Site Identifier
35427  , p_source_111            IN NUMBER
35428 --Payment Distribution Reversed Identifier
35429  , p_source_112            IN NUMBER
35430 --Pooled Bank Account Option
35431  , p_source_113            IN VARCHAR2
35432  , p_source_113_meaning    IN VARCHAR2
35433 --Payment Maturity Date
35434  , p_source_114            IN DATE
35435 --Payment Distribution (Payment Rate) Ledger Amount
35436  , p_source_115            IN NUMBER
35437 --Payment Exchange Date
35438  , p_source_117            IN DATE
35439 --Payment Exchange Rate
35440  , p_source_118            IN NUMBER
35441 --Payment Exchange Rate Type
35442  , p_source_119            IN VARCHAR2
35443 --Payment Type
35444  , p_source_122            IN VARCHAR2
35445  , p_source_122_meaning    IN VARCHAR2
35446 --Payment Processing Type
35447  , p_source_123            IN VARCHAR2
35448 --Invoice Distribution Amount of the Payment Distribution
35449  , p_source_124            IN NUMBER
35450 )
35451 IS
35452 
35453 l_component_type              VARCHAR2(80);
35454 l_component_code              VARCHAR2(30);
35455 l_component_type_code         VARCHAR2(1);
35456 l_component_appl_id           INTEGER;
35457 l_amb_context_code            VARCHAR2(30);
35458 l_entity_code                 VARCHAR2(30);
35459 l_event_class_code            VARCHAR2(30);
35460 l_ae_header_id                NUMBER;
35461 l_event_type_code             VARCHAR2(30);
35462 l_line_definition_code        VARCHAR2(30);
35463 l_line_definition_owner_code  VARCHAR2(1);
35464 --
35465 -- adr variables
35466 l_segment                     VARCHAR2(30);
35467 l_ccid                        NUMBER;
35468 l_adr_transaction_coa_id      NUMBER;
35469 l_adr_accounting_coa_id       NUMBER;
35470 l_adr_flexfield_segment_code  VARCHAR2(30);
35471 l_adr_flex_value_set_id       NUMBER;
35472 l_adr_value_type_code         VARCHAR2(30);
35473 l_adr_value_combination_id    NUMBER;
35474 l_adr_value_segment_code      VARCHAR2(30);
35475 
35476 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
35477 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
35478 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
35479 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
35480 
35481 -- 4262811 Variables ------------------------------------------------------------------------------------------
35482 l_entered_amt_idx             NUMBER;
35483 l_accted_amt_idx              NUMBER;
35484 l_acc_rev_flag                VARCHAR2(1);
35485 l_accrual_line_num            NUMBER;
35486 l_tmp_amt                     NUMBER;
35490 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
35487 l_acc_rev_natural_side_code   VARCHAR2(1);
35488 
35489 l_num_entries                 NUMBER;
35491 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
35492 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
35493 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
35494 l_recog_line_1                NUMBER;
35495 l_recog_line_2                NUMBER;
35496 
35497 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
35498 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
35499 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
35500 
35501 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
35502 
35503 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
35504 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
35505 
35506 ---------------------------------------------------------------------------------------------------------------
35507 
35508 
35509 --
35510 -- bulk performance
35511 --
35512 l_balance_type_code           VARCHAR2(1);
35513 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
35514 l_log_module                  VARCHAR2(240);
35515 
35516 --
35517 -- Upgrade strategy
35518 --
35519 l_actual_upg_option           VARCHAR2(1);
35520 l_enc_upg_option           VARCHAR2(1);
35521 
35522 --
35523 BEGIN
35524 --
35525 IF g_log_enabled THEN
35526       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_85';
35527 END IF;
35528 --
35529 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35530 
35531       trace
35532          (p_msg      => 'BEGIN of AcctLineType_85'
35533          ,p_level    => C_LEVEL_PROCEDURE
35534          ,p_module   => l_log_module);
35535 
35536 END IF;
35537 --
35538 l_component_type             := 'AMB_JLT';
35539 l_component_code             := 'AP_CASH_PMT';
35540 l_component_type_code        := 'S';
35541 l_component_appl_id          :=  200;
35542 l_amb_context_code           := 'DEFAULT';
35543 l_entity_code                := 'AP_PAYMENTS';
35544 l_event_class_code           := 'PAYMENTS';
35545 l_event_type_code            := 'PAYMENTS_ALL';
35546 l_line_definition_owner_code := 'S';
35547 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
35548 --
35549 l_balance_type_code          := 'A';
35550 l_segment                     := NULL;
35551 l_ccid                        := NULL;
35552 l_adr_transaction_coa_id      := NULL;
35553 l_adr_accounting_coa_id       := NULL;
35554 l_adr_flexfield_segment_code  := NULL;
35555 l_adr_flex_value_set_id       := NULL;
35556 l_adr_value_type_code         := NULL;
35557 l_adr_value_combination_id    := NULL;
35558 l_adr_value_segment_code      := NULL;
35559 
35560 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
35561 l_bflow_class_code           := '';    -- 4219869 Business Flow
35562 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
35563 l_budgetary_control_flag     := 'N';
35564 
35565 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
35566 l_bflow_applied_to_amt       := NULL; -- 5132302
35567 l_entered_amt_idx            := NULL;          -- 4262811
35568 l_accted_amt_idx             := NULL;          -- 4262811
35569 l_acc_rev_flag               := NULL;          -- 4262811
35570 l_accrual_line_num           := NULL;          -- 4262811
35571 l_tmp_amt                    := NULL;          -- 4262811
35572 --
35573  
35574 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
35575     l_balance_type_code <> 'B' THEN
35576 IF NVL(p_source_97,'
35577 ') =  'ISSUE_ISSUE' AND 
35578 (NVL(p_source_47,'
35579 ') <>  'Y' OR 
35580 NVL(p_source_47,'
35581 ') =  'Y' AND 
35582 NVL(p_source_113,'
35583 ') <>  'Y') AND 
35584 p_source_114 IS NULL AND 
35585 NVL(p_source_98,'
35586 ') =  'CASH' AND 
35587 NVL(p_source_122,'
35588 ') <>  'R' AND 
35589 NVL(p_source_123,'
35590 ') <>  'PAYMENTCARD'
35591  THEN 
35592 
35593    --
35594    XLA_AE_LINES_PKG.SetNewLine;
35595 
35596    p_balance_type_code          := l_balance_type_code;
35597    -- set the flag so later we will know whether the gain loss line needs to be created
35598    
35599    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
35600      p_actual_flag :='A';
35601    END IF;
35602 
35603    --
35604    -- bulk performance
35605    --
35606    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
35607                                       p_header_num   => 0); -- 4262811
35608    --
35609    -- set accounting line options
35610    --
35611    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
35612            p_natural_side_code          => 'C'
35613          , p_gain_or_loss_flag          => 'N'
35614          , p_gl_transfer_mode_code      => 'S'
35615          , p_acct_entry_type_code       => 'A'
35616          , p_switch_side_flag           => 'Y'
35617          , p_merge_duplicate_code       => 'A'
35618          );
35619    --
35620    l_acc_rev_natural_side_code := 'D';  -- 4262811
35621    -- 
35622    --
35623    -- set accounting line type info
35624    --
35625    xla_ae_lines_pkg.SetAcctLineType
35626       (p_component_type             => l_component_type
35630       ,p_accounting_line_code       => l_component_code
35627       ,p_event_type_code            => l_event_type_code
35628       ,p_line_definition_owner_code => l_line_definition_owner_code
35629       ,p_line_definition_code       => l_line_definition_code
35631       ,p_accounting_line_type_code  => l_component_type_code
35632       ,p_accounting_line_appl_id    => l_component_appl_id
35633       ,p_amb_context_code           => l_amb_context_code
35634       ,p_entity_code                => l_entity_code
35635       ,p_event_class_code           => l_event_class_code);
35636    --
35637    -- set accounting class
35638    --
35639    xla_ae_lines_pkg.SetAcctClass(
35640            p_accounting_class_code  => 'CASH'
35641          , p_ae_header_id           => l_ae_header_id
35642          );
35643 
35644    --
35645    -- set rounding class
35646    --
35647    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
35648                       'CASH';
35649 
35650    --
35651    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
35652    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
35653    --
35654    -- bulk performance
35655    --
35656    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
35657 
35658    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
35659       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
35660 
35661    -- 4955764
35662    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35663       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
35664 
35665    -- 4458381 Public Sector Enh
35666    
35667    --
35668    -- set accounting attributes for the line type
35669    --
35670    l_entered_amt_idx := 10;
35671    l_accted_amt_idx  := 15;
35672    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
35673    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
35674    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
35675    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
35676    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
35677    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
35678    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
35679    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
35680    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
35681    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
35682    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
35683    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
35684    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
35685    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
35686    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
35687    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
35688    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
35689    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
35690    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
35691    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
35692    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
35693    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
35694    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
35695    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
35696    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
35697    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
35698    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
35699    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
35700    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
35701    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
35702    l_rec_acct_attrs.array_num_value(15)  := p_source_115;
35703    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
35704    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
35705    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
35706    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
35707    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
35708    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
35709    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
35710    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
35711    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
35712    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
35713    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
35714    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
35715    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
35716    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
35717    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
35718    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
35719    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
35720    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
35721 
35722    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
35723    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
35724 
35728    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
35725    ---------------------------------------------------------------------------------------------------------------
35726    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
35727    ---------------------------------------------------------------------------------------------------------------
35729 
35730    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35731    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35732 
35733    IF xla_accounting_cache_pkg.GetValueChar
35734          (p_source_code         => 'LEDGER_CATEGORY_CODE'
35735          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
35736    AND l_bflow_method_code = 'PRIOR_ENTRY'
35737 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
35738    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
35739          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
35740        )
35741    THEN
35742          xla_ae_lines_pkg.BflowUpgEntry
35743            (p_business_method_code    => l_bflow_method_code
35744            ,p_business_class_code     => l_bflow_class_code
35745            ,p_balance_type            => l_balance_type_code);
35746    ELSE
35747       NULL;
35748 -- No business flow processing for business flow method of NONE.
35749    END IF;
35750 
35751    --
35752    -- call analytical criteria
35753    --
35754    
35755    --
35756    -- call description
35757    --
35758    -- No description or it is inherited.
35759    --
35760    -- call ADRs
35761    -- Bug 4922099
35762    --
35763    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35764         (NVL(l_actual_upg_option, 'N') = 'O') OR
35765         (NVL(l_enc_upg_option, 'N') = 'O')
35766       )
35767    THEN
35768    NULL;
35769    --
35770    --
35771    
35772   l_ccid := AcctDerRule_28(
35773            p_application_id           => p_application_id
35774          , p_ae_header_id             => l_ae_header_id 
35775 , p_source_17 => p_source_17
35776          , x_transaction_coa_id       => l_adr_transaction_coa_id
35777          , x_accounting_coa_id        => l_adr_accounting_coa_id
35778          , x_value_type_code          => l_adr_value_type_code
35779          , p_side                     => 'NA'
35780    );
35781 
35782    xla_ae_lines_pkg.set_ccid(
35783     p_code_combination_id          => l_ccid
35784   , p_value_type_code              => l_adr_value_type_code
35785   , p_transaction_coa_id           => l_adr_transaction_coa_id
35786   , p_accounting_coa_id            => l_adr_accounting_coa_id
35787   , p_adr_code                     => 'AP_CASH'
35788   , p_adr_type_code                => 'S'
35789   , p_component_type               => l_component_type
35790   , p_component_code               => l_component_code
35791   , p_component_type_code          => l_component_type_code
35792   , p_component_appl_id            => l_component_appl_id
35793   , p_amb_context_code             => l_amb_context_code
35794   , p_side                         => 'NA'
35795   );
35796 
35797 
35798    --
35799    --
35800    END IF;
35801    --
35802    -- Bug 4922099
35803    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
35804           (NVL(l_enc_upg_option, 'N') = 'O')
35805         ) AND
35806         (l_bflow_method_code = 'PRIOR_ENTRY')
35807       )
35808    THEN
35809       IF
35810       --
35811       1 = 2
35812       --
35813       THEN
35814       xla_accounting_err_pkg.build_message
35815                                     (p_appli_s_name            => 'XLA'
35816                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35817                                     ,p_token_1                 => 'LINE_NUMBER'
35818                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
35819                                     ,p_token_2                 => 'LINE_TYPE_NAME'
35820                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
35821                                                                              l_component_type
35822                                                                             ,l_component_code
35823                                                                             ,l_component_type_code
35824                                                                             ,l_component_appl_id
35825                                                                             ,l_amb_context_code
35826                                                                             ,l_entity_code
35827                                                                             ,l_event_class_code
35828                                                                            )
35829                                     ,p_token_3                 => 'OWNER'
35830                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
35831                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
35832                                                                           ,p_lookup_code    => l_component_type_code
35833                                                                          )
35834                                     ,p_token_4                 => 'PRODUCT_NAME'
35838                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
35835                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
35836                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
35837                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
35839                                     ,p_ae_header_id            =>  NULL
35840                                        );
35841 
35842         IF (C_LEVEL_ERROR>= g_log_level) THEN
35843                  trace
35844                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35845                       ,p_level    => C_LEVEL_ERROR
35846                       ,p_module   => l_log_module);
35847         END IF;
35848       END IF;
35849    END IF;
35850    --
35851    --
35852    ------------------------------------------------------------------------------------------------
35853    -- 4219869 Business Flow
35854    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
35855    -- Prior Entry.  Currently, the following code is always generated.
35856    ------------------------------------------------------------------------------------------------
35857    XLA_AE_LINES_PKG.ValidateCurrentLine;
35858 
35859    ------------------------------------------------------------------------------------
35860    -- 4219869 Business Flow
35861    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
35862    ------------------------------------------------------------------------------------
35863    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35864 
35865    ----------------------------------------------------------------------------------
35866    -- 4219869 Business Flow
35867    -- Update journal entry status -- Need to generate this within IF <condition>
35868    ----------------------------------------------------------------------------------
35869    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35870          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
35871          ,p_balance_type_code => l_balance_type_code
35872          );
35873 
35874    -------------------------------------------------------------------------------------------
35875    -- 4262811 - Generate the Accrual Reversal lines
35876    -------------------------------------------------------------------------------------------
35877    BEGIN
35878       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
35879                               (g_array_event(p_event_id).array_value_num('header_index'));
35880       IF l_acc_rev_flag IS NULL THEN
35881          l_acc_rev_flag := 'N';
35882       END IF;
35883    EXCEPTION
35884       WHEN OTHERS THEN
35885          l_acc_rev_flag := 'N';
35886    END;
35887    --
35888    IF (l_acc_rev_flag = 'Y') THEN
35889 
35890        -- 4645092  ------------------------------------------------------------------------------
35891        -- To allow MPA report to determine if it should generate report process
35892        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
35893        ------------------------------------------------------------------------------------------
35894 
35895        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
35896        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
35897    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
35898    -- call ADRs
35899    -- Bug 4922099
35900    --
35901    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35902         (NVL(l_actual_upg_option, 'N') = 'O') OR
35903         (NVL(l_enc_upg_option, 'N') = 'O')
35904       )
35905    THEN
35906    NULL;
35907    --
35908    --
35909    
35910   l_ccid := AcctDerRule_28(
35911            p_application_id           => p_application_id
35912          , p_ae_header_id             => l_ae_header_id 
35913 , p_source_17 => p_source_17
35914          , x_transaction_coa_id       => l_adr_transaction_coa_id
35915          , x_accounting_coa_id        => l_adr_accounting_coa_id
35916          , x_value_type_code          => l_adr_value_type_code
35917          , p_side                     => 'NA'
35918    );
35919 
35920    xla_ae_lines_pkg.set_ccid(
35921     p_code_combination_id          => l_ccid
35922   , p_value_type_code              => l_adr_value_type_code
35923   , p_transaction_coa_id           => l_adr_transaction_coa_id
35924   , p_accounting_coa_id            => l_adr_accounting_coa_id
35925   , p_adr_code                     => 'AP_CASH'
35926   , p_adr_type_code                => 'S'
35927   , p_component_type               => l_component_type
35928   , p_component_code               => l_component_code
35929   , p_component_type_code          => l_component_type_code
35930   , p_component_appl_id            => l_component_appl_id
35931   , p_amb_context_code             => l_amb_context_code
35932   , p_side                         => 'NA'
35933   );
35934 
35935 
35936    --
35937    --
35938    END IF;
35939 
35940        --
35941        -- Update the line information that should be overwritten
35942        --
35943        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
35944                                          p_header_num   => 1);
35945        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
35946 
35950           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
35947        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
35948 
35949        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
35951        END IF;
35952 
35953       --
35954       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
35955       --
35956       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
35957           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
35958       ELSE
35959           ---------------------------------------------------------------------------------------------------
35960           -- 4262811a Switch Sign
35961           ---------------------------------------------------------------------------------------------------
35962           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
35963           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35964                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35965           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35966                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35967           -- 5132302
35968           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
35969                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35970 
35971       END IF;
35972 
35973       -- 4955764
35974       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35975       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
35976 
35977 
35978       XLA_AE_LINES_PKG.ValidateCurrentLine;
35979       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35980 
35981       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35982                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
35983                ,p_balance_type_code => l_balance_type_code);
35984 
35985    END IF;
35986 
35987    -----------------------------------------------------------------------------------------
35988    -- 4262811 Multiperiod Accounting
35989    -----------------------------------------------------------------------------------------
35990      -- No MPA option is assigned.
35991 
35992 
35993 END IF;
35994 END IF;
35995 --
35996 
35997 --
35998 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35999    trace
36000       (p_msg      => 'END of AcctLineType_85'
36001       ,p_level    => C_LEVEL_PROCEDURE
36002       ,p_module   => l_log_module);
36003 END IF;
36004 --
36005 EXCEPTION
36006   WHEN xla_exceptions_pkg.application_exception THEN
36007       RAISE;
36008   WHEN OTHERS THEN
36009        xla_exceptions_pkg.raise_message
36010            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_85');
36011 END AcctLineType_85;
36012 --
36013 
36014 ---------------------------------------
36015 --
36016 -- PRIVATE FUNCTION
36017 --         AcctLineType_86
36018 --
36019 ---------------------------------------
36020 PROCEDURE AcctLineType_86 (
36021   p_application_id        IN NUMBER
36022  ,p_event_id              IN NUMBER
36023  ,p_calculate_acctd_flag  IN VARCHAR2
36024  ,p_calculate_g_l_flag    IN VARCHAR2
36025  ,p_actual_flag           IN OUT VARCHAR2
36026  ,p_balance_type_code     OUT VARCHAR2
36027  ,p_gain_or_loss_ref      OUT VARCHAR2
36028  
36029 --Payment Currency Code
36030  , p_source_13            IN VARCHAR2
36031 --Automatic Offsets Value
36032  , p_source_15            IN VARCHAR2
36033  , p_source_15_meaning    IN VARCHAR2
36034 --Bank Cash Account
36035  , p_source_17            IN NUMBER
36036 --Accounting Reversal Indicator
36037  , p_source_53            IN VARCHAR2
36038 --Distribution Link Type
36039  , p_source_55            IN VARCHAR2
36040 --Override Accounted Amount Indicator
36041  , p_source_80            IN VARCHAR2
36042  , p_source_80_meaning    IN VARCHAR2
36043 --Third Party Type
36044  , p_source_83            IN VARCHAR2
36045 --Invoice Distribution Tax Line Identifier
36046  , p_source_86            IN NUMBER
36047 --Invoice Distribution Tax Distribution Identifier from Tax
36048  , p_source_87            IN NUMBER
36049 --Invoice Distribution Summary Tax Line Identifier
36050  , p_source_88            IN NUMBER
36051 --Business Flow Accounts Payable Application Identifier
36052  , p_source_91            IN NUMBER
36053 --Business Flow Invoice Distribution Type
36054  , p_source_92            IN VARCHAR2
36055 --Business Flow Invoice Entity Code
36056  , p_source_93            IN VARCHAR2
36057 --Business Flow Invoice Distribution Identifier
36058  , p_source_94            IN NUMBER
36059 --Business Flow Invoice Identifier
36060  , p_source_95            IN NUMBER
36061 --When to Account for Payment Option
36062  , p_source_97            IN VARCHAR2
36063 --Payment Distribution Type
36064  , p_source_98            IN VARCHAR2
36065  , p_source_98_meaning    IN VARCHAR2
36066 --Payment Distribution Amount
36067  , p_source_99            IN NUMBER
36068 --Payment Distribution Identifier
36072 --Payment Supplier Site Identifier
36069  , p_source_104            IN NUMBER
36070 --Payment Supplier Identifier
36071  , p_source_110            IN NUMBER
36073  , p_source_111            IN NUMBER
36074 --Payment Distribution Reversed Identifier
36075  , p_source_112            IN NUMBER
36076 --Pooled Bank Account Option
36077  , p_source_113            IN VARCHAR2
36078  , p_source_113_meaning    IN VARCHAR2
36079 --Payment Maturity Date
36080  , p_source_114            IN DATE
36081 --Payment Distribution (Payment Rate) Ledger Amount
36082  , p_source_115            IN NUMBER
36083 --Payment Exchange Date
36084  , p_source_117            IN DATE
36085 --Payment Exchange Rate
36086  , p_source_118            IN NUMBER
36087 --Payment Exchange Rate Type
36088  , p_source_119            IN VARCHAR2
36089 --Payment Type
36090  , p_source_122            IN VARCHAR2
36091  , p_source_122_meaning    IN VARCHAR2
36092 --Payment Processing Type
36093  , p_source_123            IN VARCHAR2
36094 --Invoice Distribution Amount of the Payment Distribution
36095  , p_source_124            IN NUMBER
36096 )
36097 IS
36098 
36099 l_component_type              VARCHAR2(80);
36100 l_component_code              VARCHAR2(30);
36101 l_component_type_code         VARCHAR2(1);
36102 l_component_appl_id           INTEGER;
36103 l_amb_context_code            VARCHAR2(30);
36104 l_entity_code                 VARCHAR2(30);
36105 l_event_class_code            VARCHAR2(30);
36106 l_ae_header_id                NUMBER;
36107 l_event_type_code             VARCHAR2(30);
36108 l_line_definition_code        VARCHAR2(30);
36109 l_line_definition_owner_code  VARCHAR2(1);
36110 --
36111 -- adr variables
36112 l_segment                     VARCHAR2(30);
36113 l_ccid                        NUMBER;
36114 l_adr_transaction_coa_id      NUMBER;
36115 l_adr_accounting_coa_id       NUMBER;
36116 l_adr_flexfield_segment_code  VARCHAR2(30);
36117 l_adr_flex_value_set_id       NUMBER;
36118 l_adr_value_type_code         VARCHAR2(30);
36119 l_adr_value_combination_id    NUMBER;
36120 l_adr_value_segment_code      VARCHAR2(30);
36121 
36122 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
36123 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
36124 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
36125 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
36126 
36127 -- 4262811 Variables ------------------------------------------------------------------------------------------
36128 l_entered_amt_idx             NUMBER;
36129 l_accted_amt_idx              NUMBER;
36130 l_acc_rev_flag                VARCHAR2(1);
36131 l_accrual_line_num            NUMBER;
36132 l_tmp_amt                     NUMBER;
36133 l_acc_rev_natural_side_code   VARCHAR2(1);
36134 
36135 l_num_entries                 NUMBER;
36136 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
36137 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
36138 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
36139 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
36140 l_recog_line_1                NUMBER;
36141 l_recog_line_2                NUMBER;
36142 
36143 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
36144 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
36145 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
36146 
36147 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
36148 
36149 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
36150 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
36151 
36152 ---------------------------------------------------------------------------------------------------------------
36153 
36154 
36155 --
36156 -- bulk performance
36157 --
36158 l_balance_type_code           VARCHAR2(1);
36159 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
36160 l_log_module                  VARCHAR2(240);
36161 
36162 --
36163 -- Upgrade strategy
36164 --
36165 l_actual_upg_option           VARCHAR2(1);
36166 l_enc_upg_option           VARCHAR2(1);
36167 
36168 --
36169 BEGIN
36170 --
36171 IF g_log_enabled THEN
36172       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_86';
36173 END IF;
36174 --
36175 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36176 
36177       trace
36178          (p_msg      => 'BEGIN of AcctLineType_86'
36179          ,p_level    => C_LEVEL_PROCEDURE
36180          ,p_module   => l_log_module);
36181 
36182 END IF;
36183 --
36184 l_component_type             := 'AMB_JLT';
36185 l_component_code             := 'AP_CASH_PMT_AOS_AS';
36186 l_component_type_code        := 'S';
36187 l_component_appl_id          :=  200;
36188 l_amb_context_code           := 'DEFAULT';
36189 l_entity_code                := 'AP_PAYMENTS';
36190 l_event_class_code           := 'PAYMENTS';
36191 l_event_type_code            := 'PAYMENTS_ALL';
36192 l_line_definition_owner_code := 'S';
36193 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
36194 --
36195 l_balance_type_code          := 'A';
36196 l_segment                     := NULL;
36197 l_ccid                        := NULL;
36198 l_adr_transaction_coa_id      := NULL;
36202 l_adr_value_type_code         := NULL;
36199 l_adr_accounting_coa_id       := NULL;
36200 l_adr_flexfield_segment_code  := NULL;
36201 l_adr_flex_value_set_id       := NULL;
36203 l_adr_value_combination_id    := NULL;
36204 l_adr_value_segment_code      := NULL;
36205 
36206 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
36207 l_bflow_class_code           := '';    -- 4219869 Business Flow
36208 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
36209 l_budgetary_control_flag     := 'N';
36210 
36211 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
36212 l_bflow_applied_to_amt       := NULL; -- 5132302
36213 l_entered_amt_idx            := NULL;          -- 4262811
36214 l_accted_amt_idx             := NULL;          -- 4262811
36215 l_acc_rev_flag               := NULL;          -- 4262811
36216 l_accrual_line_num           := NULL;          -- 4262811
36217 l_tmp_amt                    := NULL;          -- 4262811
36218 --
36219  
36220 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
36221     l_balance_type_code <> 'B' THEN
36222 IF NVL(p_source_97,'
36223 ') =  'ISSUE_ISSUE' AND 
36224 (NVL(p_source_113,'
36225 ') =  'Y' AND 
36226 NVL(p_source_15,'
36227 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
36228 p_source_114 IS NULL AND 
36229 NVL(p_source_98,'
36230 ') =  'CASH' AND 
36231 NVL(p_source_122,'
36232 ') <>  'R' AND 
36233 NVL(p_source_123,'
36234 ') <>  'PAYMENTCARD'
36235  THEN 
36236 
36237    --
36238    XLA_AE_LINES_PKG.SetNewLine;
36239 
36240    p_balance_type_code          := l_balance_type_code;
36241    -- set the flag so later we will know whether the gain loss line needs to be created
36242    
36243    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
36244      p_actual_flag :='A';
36245    END IF;
36246 
36247    --
36248    -- bulk performance
36249    --
36250    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
36251                                       p_header_num   => 0); -- 4262811
36252    --
36253    -- set accounting line options
36254    --
36255    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
36256            p_natural_side_code          => 'C'
36257          , p_gain_or_loss_flag          => 'N'
36258          , p_gl_transfer_mode_code      => 'S'
36259          , p_acct_entry_type_code       => 'A'
36260          , p_switch_side_flag           => 'Y'
36261          , p_merge_duplicate_code       => 'A'
36262          );
36263    --
36264    l_acc_rev_natural_side_code := 'D';  -- 4262811
36265    -- 
36266    --
36267    -- set accounting line type info
36268    --
36269    xla_ae_lines_pkg.SetAcctLineType
36270       (p_component_type             => l_component_type
36271       ,p_event_type_code            => l_event_type_code
36272       ,p_line_definition_owner_code => l_line_definition_owner_code
36273       ,p_line_definition_code       => l_line_definition_code
36274       ,p_accounting_line_code       => l_component_code
36275       ,p_accounting_line_type_code  => l_component_type_code
36276       ,p_accounting_line_appl_id    => l_component_appl_id
36277       ,p_amb_context_code           => l_amb_context_code
36278       ,p_entity_code                => l_entity_code
36279       ,p_event_class_code           => l_event_class_code);
36280    --
36281    -- set accounting class
36282    --
36283    xla_ae_lines_pkg.SetAcctClass(
36284            p_accounting_class_code  => 'CASH'
36285          , p_ae_header_id           => l_ae_header_id
36286          );
36287 
36288    --
36289    -- set rounding class
36290    --
36291    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
36292                       'CASH';
36293 
36294    --
36295    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
36296    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
36297    --
36298    -- bulk performance
36299    --
36300    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
36301 
36302    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
36303       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
36304 
36305    -- 4955764
36306    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36307       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
36308 
36309    -- 4458381 Public Sector Enh
36310    
36311    --
36312    -- set accounting attributes for the line type
36313    --
36314    l_entered_amt_idx := 10;
36315    l_accted_amt_idx  := 15;
36316    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
36317    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
36318    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
36319    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
36320    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
36321    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
36322    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
36323    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
36324    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
36325    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
36329    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
36326    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
36327    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
36328    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
36330    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
36331    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
36332    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
36333    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
36334    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
36335    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
36336    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
36337    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
36338    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
36339    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
36340    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
36341    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
36342    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
36343    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
36344    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
36345    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
36346    l_rec_acct_attrs.array_num_value(15)  := p_source_115;
36347    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
36348    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
36349    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
36350    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
36351    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
36352    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
36353    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
36354    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
36355    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
36356    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
36357    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
36358    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
36359    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
36360    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
36361    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
36362    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
36363    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
36364    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
36365 
36366    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
36367    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
36368 
36369    ---------------------------------------------------------------------------------------------------------------
36370    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
36371    ---------------------------------------------------------------------------------------------------------------
36372    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
36373 
36374    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36375    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36376 
36377    IF xla_accounting_cache_pkg.GetValueChar
36378          (p_source_code         => 'LEDGER_CATEGORY_CODE'
36379          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
36380    AND l_bflow_method_code = 'PRIOR_ENTRY'
36381 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
36382    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
36383          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
36384        )
36385    THEN
36386          xla_ae_lines_pkg.BflowUpgEntry
36387            (p_business_method_code    => l_bflow_method_code
36388            ,p_business_class_code     => l_bflow_class_code
36389            ,p_balance_type            => l_balance_type_code);
36390    ELSE
36391       NULL;
36392 XLA_AE_LINES_PKG.business_flow_validation(
36393                                 p_business_method_code     => l_bflow_method_code
36394                                ,p_business_class_code      => l_bflow_class_code
36395                                ,p_inherit_description_flag => l_inherit_desc_flag);
36396    END IF;
36397 
36398    --
36399    -- call analytical criteria
36400    --
36401    
36402    --
36403    -- call description
36404    --
36405    -- No description or it is inherited.
36406    --
36407    -- call ADRs
36408    -- Bug 4922099
36409    --
36410    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36411         (NVL(l_actual_upg_option, 'N') = 'O') OR
36412         (NVL(l_enc_upg_option, 'N') = 'O')
36413       )
36414    THEN
36415    NULL;
36416    --
36417    --
36418    
36419    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
36420      p_code_combination_id      => TO_NUMBER(C_NUM)
36421    , p_value_type_code          => NULL
36422    , p_transaction_coa_id       => null
36423    , p_accounting_coa_id        => null
36424    , p_adr_code                 => NULL
36425    , p_adr_type_code            => NULL
36426    , p_component_type           => l_component_type
36427    , p_component_code           => l_component_code
36431    , p_side                     => NULL
36428    , p_component_type_code      => l_component_type_code
36429    , p_component_appl_id        => l_component_appl_id
36430    , p_amb_context_code         => l_amb_context_code
36432    );
36433 
36434    
36435   -- initialise segments
36436   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36437   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36438   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36439   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36440   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36441   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36442   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36443   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36444   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36445   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36446   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36447   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36448   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36449   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36450   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36451   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36452   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36453   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36454   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36455   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36456   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36457   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36458   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36459   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36460   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36461   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36462   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36463   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36464   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36465   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36466   --
36467 
36468    --
36469 
36470 
36471    l_segment := AcctDerRule_6(
36472            p_application_id           => p_application_id
36473          , p_ae_header_id             => l_ae_header_id 
36474 , p_source_17 => p_source_17
36475          , x_transaction_coa_id       => l_adr_transaction_coa_id
36476          , x_accounting_coa_id        => l_adr_accounting_coa_id
36477          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
36478          , x_flex_value_set_id        => l_adr_flex_value_set_id
36479          , x_value_type_code          => l_adr_value_type_code
36480          , x_value_combination_id     => l_adr_value_combination_id
36481          , x_value_segment_code       => l_adr_value_segment_code
36482          , p_side                     => 'NA'
36483          , p_override_seg_flag        => 'Y'
36484    );
36485 
36486    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
36487 
36488       xla_ae_lines_pkg.set_segment(
36489           p_to_segment_code         => 'GL_ACCOUNT'
36490         , p_segment_value           => l_segment
36491         , p_from_segment_code       => l_adr_value_segment_code
36492         , p_from_combination_id     => l_adr_value_combination_id
36493         , p_value_type_code         => l_adr_value_type_code
36494         , p_transaction_coa_id      => l_adr_transaction_coa_id
36495         , p_accounting_coa_id       => l_adr_accounting_coa_id
36496         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
36497         , p_flex_value_set_id       => l_adr_flex_value_set_id
36498         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
36499         , p_adr_type_code           => 'S'
36500         , p_component_type          => l_component_type
36501         , p_component_code          => l_component_code
36502         , p_component_type_code     => l_component_type_code
36503         , p_component_appl_id       => l_component_appl_id
36504         , p_amb_context_code        => l_amb_context_code
36505         , p_entity_code             => 'AP_PAYMENTS'
36506         , p_event_class_code        => 'PAYMENTS'
36507         , p_side                    => 'NA'
36508         );
36509 
36510   END IF;
36511 
36512    --
36513    --
36514    END IF;
36515    --
36516    -- Bug 4922099
36517    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
36518           (NVL(l_enc_upg_option, 'N') = 'O')
36519         ) AND
36520         (l_bflow_method_code = 'PRIOR_ENTRY')
36521       )
36522    THEN
36523       IF
36524       --
36525       1 = 2
36526       --
36530                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36527       THEN
36528       xla_accounting_err_pkg.build_message
36529                                     (p_appli_s_name            => 'XLA'
36531                                     ,p_token_1                 => 'LINE_NUMBER'
36532                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
36533                                     ,p_token_2                 => 'LINE_TYPE_NAME'
36534                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
36535                                                                              l_component_type
36536                                                                             ,l_component_code
36537                                                                             ,l_component_type_code
36538                                                                             ,l_component_appl_id
36539                                                                             ,l_amb_context_code
36540                                                                             ,l_entity_code
36541                                                                             ,l_event_class_code
36542                                                                            )
36543                                     ,p_token_3                 => 'OWNER'
36544                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
36545                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
36546                                                                           ,p_lookup_code    => l_component_type_code
36547                                                                          )
36548                                     ,p_token_4                 => 'PRODUCT_NAME'
36549                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
36550                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
36551                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
36552                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
36553                                     ,p_ae_header_id            =>  NULL
36554                                        );
36555 
36556         IF (C_LEVEL_ERROR>= g_log_level) THEN
36557                  trace
36558                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36559                       ,p_level    => C_LEVEL_ERROR
36560                       ,p_module   => l_log_module);
36561         END IF;
36562       END IF;
36563    END IF;
36564    --
36565    --
36566    ------------------------------------------------------------------------------------------------
36567    -- 4219869 Business Flow
36568    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
36569    -- Prior Entry.  Currently, the following code is always generated.
36570    ------------------------------------------------------------------------------------------------
36571    XLA_AE_LINES_PKG.ValidateCurrentLine;
36572 
36573    ------------------------------------------------------------------------------------
36574    -- 4219869 Business Flow
36575    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
36576    ------------------------------------------------------------------------------------
36577    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36578 
36579    ----------------------------------------------------------------------------------
36580    -- 4219869 Business Flow
36581    -- Update journal entry status -- Need to generate this within IF <condition>
36582    ----------------------------------------------------------------------------------
36583    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36584          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
36585          ,p_balance_type_code => l_balance_type_code
36586          );
36587 
36588    -------------------------------------------------------------------------------------------
36589    -- 4262811 - Generate the Accrual Reversal lines
36590    -------------------------------------------------------------------------------------------
36591    BEGIN
36592       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
36593                               (g_array_event(p_event_id).array_value_num('header_index'));
36594       IF l_acc_rev_flag IS NULL THEN
36595          l_acc_rev_flag := 'N';
36596       END IF;
36597    EXCEPTION
36598       WHEN OTHERS THEN
36599          l_acc_rev_flag := 'N';
36600    END;
36601    --
36602    IF (l_acc_rev_flag = 'Y') THEN
36603 
36604        -- 4645092  ------------------------------------------------------------------------------
36605        -- To allow MPA report to determine if it should generate report process
36606        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
36607        ------------------------------------------------------------------------------------------
36608 
36609        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
36610        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
36611    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
36612    -- call ADRs
36613    -- Bug 4922099
36614    --
36615    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36616         (NVL(l_actual_upg_option, 'N') = 'O') OR
36617         (NVL(l_enc_upg_option, 'N') = 'O')
36618       )
36619    THEN
36620    NULL;
36624    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
36621    --
36622    --
36623    
36625      p_code_combination_id      => TO_NUMBER(C_NUM)
36626    , p_value_type_code          => NULL
36627    , p_transaction_coa_id       => null
36628    , p_accounting_coa_id        => null
36629    , p_adr_code                 => NULL
36630    , p_adr_type_code            => NULL
36631    , p_component_type           => l_component_type
36632    , p_component_code           => l_component_code
36633    , p_component_type_code      => l_component_type_code
36634    , p_component_appl_id        => l_component_appl_id
36635    , p_amb_context_code         => l_amb_context_code
36636    , p_side                     => NULL
36637    );
36638 
36639    
36640   -- initialise segments
36641   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36642   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36643   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36644   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36645   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36646   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36647   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36648   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36649   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
36650   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36651   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36652   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36653   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36654   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36655   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36656   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36657   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36658   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36659   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36660   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36661   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36662   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36663   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36664   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36665   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36666   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36667   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36668   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36669   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36670   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
36671   --
36672 
36673    --
36674 
36675 
36676    l_segment := AcctDerRule_6(
36677            p_application_id           => p_application_id
36678          , p_ae_header_id             => l_ae_header_id 
36679 , p_source_17 => p_source_17
36680          , x_transaction_coa_id       => l_adr_transaction_coa_id
36681          , x_accounting_coa_id        => l_adr_accounting_coa_id
36682          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
36683          , x_flex_value_set_id        => l_adr_flex_value_set_id
36684          , x_value_type_code          => l_adr_value_type_code
36685          , x_value_combination_id     => l_adr_value_combination_id
36686          , x_value_segment_code       => l_adr_value_segment_code
36687          , p_side                     => 'NA'
36688          , p_override_seg_flag        => 'Y'
36689    );
36690 
36691    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
36692 
36693       xla_ae_lines_pkg.set_segment(
36694           p_to_segment_code         => 'GL_ACCOUNT'
36695         , p_segment_value           => l_segment
36696         , p_from_segment_code       => l_adr_value_segment_code
36697         , p_from_combination_id     => l_adr_value_combination_id
36698         , p_value_type_code         => l_adr_value_type_code
36699         , p_transaction_coa_id      => l_adr_transaction_coa_id
36700         , p_accounting_coa_id       => l_adr_accounting_coa_id
36701         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
36702         , p_flex_value_set_id       => l_adr_flex_value_set_id
36703         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
36704         , p_adr_type_code           => 'S'
36705         , p_component_type          => l_component_type
36706         , p_component_code          => l_component_code
36707         , p_component_type_code     => l_component_type_code
36708         , p_component_appl_id       => l_component_appl_id
36709         , p_amb_context_code        => l_amb_context_code
36710         , p_entity_code             => 'AP_PAYMENTS'
36711         , p_event_class_code        => 'PAYMENTS'
36715   END IF;
36712         , p_side                    => 'NA'
36713         );
36714 
36716 
36717    --
36718    --
36719    END IF;
36720 
36721        --
36722        -- Update the line information that should be overwritten
36723        --
36724        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
36725                                          p_header_num   => 1);
36726        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
36727 
36728        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
36729 
36730        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
36731           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
36732        END IF;
36733 
36734       --
36735       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
36736       --
36737       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
36738           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
36739       ELSE
36740           ---------------------------------------------------------------------------------------------------
36741           -- 4262811a Switch Sign
36742           ---------------------------------------------------------------------------------------------------
36743           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
36744           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36745                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36746           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36747                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36748           -- 5132302
36749           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
36750                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36751 
36752       END IF;
36753 
36754       -- 4955764
36755       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36756       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
36757 
36758 
36759       XLA_AE_LINES_PKG.ValidateCurrentLine;
36760       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36761 
36762       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36763                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
36764                ,p_balance_type_code => l_balance_type_code);
36765 
36766    END IF;
36767 
36768    -----------------------------------------------------------------------------------------
36769    -- 4262811 Multiperiod Accounting
36770    -----------------------------------------------------------------------------------------
36771      -- No MPA option is assigned.
36772 
36773 
36774 END IF;
36775 END IF;
36776 --
36777 
36778 --
36779 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36780    trace
36781       (p_msg      => 'END of AcctLineType_86'
36782       ,p_level    => C_LEVEL_PROCEDURE
36783       ,p_module   => l_log_module);
36784 END IF;
36785 --
36786 EXCEPTION
36787   WHEN xla_exceptions_pkg.application_exception THEN
36788       RAISE;
36789   WHEN OTHERS THEN
36790        xla_exceptions_pkg.raise_message
36791            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_86');
36792 END AcctLineType_86;
36793 --
36794 
36795 ---------------------------------------
36796 --
36797 -- PRIVATE FUNCTION
36798 --         AcctLineType_87
36799 --
36800 ---------------------------------------
36801 PROCEDURE AcctLineType_87 (
36802   p_application_id        IN NUMBER
36803  ,p_event_id              IN NUMBER
36804  ,p_calculate_acctd_flag  IN VARCHAR2
36805  ,p_calculate_g_l_flag    IN VARCHAR2
36806  ,p_actual_flag           IN OUT VARCHAR2
36807  ,p_balance_type_code     OUT VARCHAR2
36808  ,p_gain_or_loss_ref      OUT VARCHAR2
36809  
36810 --Payment Currency Code
36811  , p_source_13            IN VARCHAR2
36812 --Automatic Offsets Value
36813  , p_source_15            IN VARCHAR2
36814  , p_source_15_meaning    IN VARCHAR2
36815 --Bank Cash Account
36816  , p_source_17            IN NUMBER
36817 --Accounting Reversal Indicator
36818  , p_source_53            IN VARCHAR2
36819 --Distribution Link Type
36820  , p_source_55            IN VARCHAR2
36821 --Override Accounted Amount Indicator
36822  , p_source_80            IN VARCHAR2
36823  , p_source_80_meaning    IN VARCHAR2
36824 --Third Party Type
36825  , p_source_83            IN VARCHAR2
36826 --Invoice Distribution Tax Line Identifier
36827  , p_source_86            IN NUMBER
36828 --Invoice Distribution Tax Distribution Identifier from Tax
36829  , p_source_87            IN NUMBER
36830 --Invoice Distribution Summary Tax Line Identifier
36831  , p_source_88            IN NUMBER
36832 --Business Flow Accounts Payable Application Identifier
36833  , p_source_91            IN NUMBER
36834 --Business Flow Invoice Distribution Type
36835  , p_source_92            IN VARCHAR2
36836 --Business Flow Invoice Entity Code
36840 --Business Flow Invoice Identifier
36837  , p_source_93            IN VARCHAR2
36838 --Business Flow Invoice Distribution Identifier
36839  , p_source_94            IN NUMBER
36841  , p_source_95            IN NUMBER
36842 --When to Account for Payment Option
36843  , p_source_97            IN VARCHAR2
36844 --Payment Distribution Type
36845  , p_source_98            IN VARCHAR2
36846  , p_source_98_meaning    IN VARCHAR2
36847 --Payment Distribution Amount
36848  , p_source_99            IN NUMBER
36849 --Payment Distribution Identifier
36850  , p_source_104            IN NUMBER
36851 --Payment Supplier Identifier
36852  , p_source_110            IN NUMBER
36853 --Payment Supplier Site Identifier
36854  , p_source_111            IN NUMBER
36855 --Payment Distribution Reversed Identifier
36856  , p_source_112            IN NUMBER
36857 --Pooled Bank Account Option
36858  , p_source_113            IN VARCHAR2
36859  , p_source_113_meaning    IN VARCHAR2
36860 --Payment Maturity Date
36861  , p_source_114            IN DATE
36862 --Payment Distribution (Payment Rate) Ledger Amount
36863  , p_source_115            IN NUMBER
36864 --Payment Exchange Date
36865  , p_source_117            IN DATE
36866 --Payment Exchange Rate
36867  , p_source_118            IN NUMBER
36868 --Payment Exchange Rate Type
36869  , p_source_119            IN VARCHAR2
36870 --Payment Type
36871  , p_source_122            IN VARCHAR2
36872  , p_source_122_meaning    IN VARCHAR2
36873 --Payment Processing Type
36874  , p_source_123            IN VARCHAR2
36875 --Invoice Distribution Amount of the Payment Distribution
36876  , p_source_124            IN NUMBER
36877 )
36878 IS
36879 
36880 l_component_type              VARCHAR2(80);
36881 l_component_code              VARCHAR2(30);
36882 l_component_type_code         VARCHAR2(1);
36883 l_component_appl_id           INTEGER;
36884 l_amb_context_code            VARCHAR2(30);
36885 l_entity_code                 VARCHAR2(30);
36886 l_event_class_code            VARCHAR2(30);
36887 l_ae_header_id                NUMBER;
36888 l_event_type_code             VARCHAR2(30);
36889 l_line_definition_code        VARCHAR2(30);
36890 l_line_definition_owner_code  VARCHAR2(1);
36891 --
36892 -- adr variables
36893 l_segment                     VARCHAR2(30);
36894 l_ccid                        NUMBER;
36895 l_adr_transaction_coa_id      NUMBER;
36896 l_adr_accounting_coa_id       NUMBER;
36897 l_adr_flexfield_segment_code  VARCHAR2(30);
36898 l_adr_flex_value_set_id       NUMBER;
36899 l_adr_value_type_code         VARCHAR2(30);
36900 l_adr_value_combination_id    NUMBER;
36901 l_adr_value_segment_code      VARCHAR2(30);
36902 
36903 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
36904 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
36905 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
36906 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
36907 
36908 -- 4262811 Variables ------------------------------------------------------------------------------------------
36909 l_entered_amt_idx             NUMBER;
36910 l_accted_amt_idx              NUMBER;
36911 l_acc_rev_flag                VARCHAR2(1);
36912 l_accrual_line_num            NUMBER;
36913 l_tmp_amt                     NUMBER;
36914 l_acc_rev_natural_side_code   VARCHAR2(1);
36915 
36916 l_num_entries                 NUMBER;
36917 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
36918 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
36919 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
36920 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
36921 l_recog_line_1                NUMBER;
36922 l_recog_line_2                NUMBER;
36923 
36924 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
36925 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
36926 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
36927 
36928 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
36929 
36930 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
36931 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
36932 
36933 ---------------------------------------------------------------------------------------------------------------
36934 
36935 
36936 --
36937 -- bulk performance
36938 --
36939 l_balance_type_code           VARCHAR2(1);
36940 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
36941 l_log_module                  VARCHAR2(240);
36942 
36943 --
36944 -- Upgrade strategy
36945 --
36946 l_actual_upg_option           VARCHAR2(1);
36947 l_enc_upg_option           VARCHAR2(1);
36948 
36949 --
36950 BEGIN
36951 --
36952 IF g_log_enabled THEN
36953       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_87';
36954 END IF;
36955 --
36956 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36957 
36958       trace
36959          (p_msg      => 'BEGIN of AcctLineType_87'
36960          ,p_level    => C_LEVEL_PROCEDURE
36961          ,p_module   => l_log_module);
36962 
36963 END IF;
36964 --
36965 l_component_type             := 'AMB_JLT';
36966 l_component_code             := 'AP_CASH_PMT_AOS_BS';
36970 l_entity_code                := 'AP_PAYMENTS';
36967 l_component_type_code        := 'S';
36968 l_component_appl_id          :=  200;
36969 l_amb_context_code           := 'DEFAULT';
36971 l_event_class_code           := 'PAYMENTS';
36972 l_event_type_code            := 'PAYMENTS_ALL';
36973 l_line_definition_owner_code := 'S';
36974 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
36975 --
36976 l_balance_type_code          := 'A';
36977 l_segment                     := NULL;
36978 l_ccid                        := NULL;
36979 l_adr_transaction_coa_id      := NULL;
36980 l_adr_accounting_coa_id       := NULL;
36981 l_adr_flexfield_segment_code  := NULL;
36982 l_adr_flex_value_set_id       := NULL;
36983 l_adr_value_type_code         := NULL;
36984 l_adr_value_combination_id    := NULL;
36985 l_adr_value_segment_code      := NULL;
36986 
36987 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
36988 l_bflow_class_code           := '';    -- 4219869 Business Flow
36989 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
36990 l_budgetary_control_flag     := 'N';
36991 
36992 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
36993 l_bflow_applied_to_amt       := NULL; -- 5132302
36994 l_entered_amt_idx            := NULL;          -- 4262811
36995 l_accted_amt_idx             := NULL;          -- 4262811
36996 l_acc_rev_flag               := NULL;          -- 4262811
36997 l_accrual_line_num           := NULL;          -- 4262811
36998 l_tmp_amt                    := NULL;          -- 4262811
36999 --
37000  
37001 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
37002     l_balance_type_code <> 'B' THEN
37003 IF NVL(p_source_97,'
37004 ') =  'ISSUE_ISSUE' AND 
37005 (NVL(p_source_113,'
37006 ') =  'Y' AND 
37007 NVL(p_source_15,'
37008 ') =  'BALANCING_SEGMENT') AND 
37009 p_source_114 IS NULL AND 
37010 NVL(p_source_98,'
37011 ') =  'CASH' AND 
37012 NVL(p_source_122,'
37013 ') <>  'R' AND 
37014 NVL(p_source_123,'
37015 ') <>  'PAYMENTCARD'
37016  THEN 
37017 
37018    --
37019    XLA_AE_LINES_PKG.SetNewLine;
37020 
37021    p_balance_type_code          := l_balance_type_code;
37022    -- set the flag so later we will know whether the gain loss line needs to be created
37023    
37024    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
37025      p_actual_flag :='A';
37026    END IF;
37027 
37028    --
37029    -- bulk performance
37030    --
37031    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
37032                                       p_header_num   => 0); -- 4262811
37033    --
37034    -- set accounting line options
37035    --
37036    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
37037            p_natural_side_code          => 'C'
37038          , p_gain_or_loss_flag          => 'N'
37039          , p_gl_transfer_mode_code      => 'S'
37040          , p_acct_entry_type_code       => 'A'
37041          , p_switch_side_flag           => 'Y'
37042          , p_merge_duplicate_code       => 'A'
37043          );
37044    --
37045    l_acc_rev_natural_side_code := 'D';  -- 4262811
37046    -- 
37047    --
37048    -- set accounting line type info
37049    --
37050    xla_ae_lines_pkg.SetAcctLineType
37051       (p_component_type             => l_component_type
37052       ,p_event_type_code            => l_event_type_code
37053       ,p_line_definition_owner_code => l_line_definition_owner_code
37054       ,p_line_definition_code       => l_line_definition_code
37055       ,p_accounting_line_code       => l_component_code
37056       ,p_accounting_line_type_code  => l_component_type_code
37057       ,p_accounting_line_appl_id    => l_component_appl_id
37058       ,p_amb_context_code           => l_amb_context_code
37059       ,p_entity_code                => l_entity_code
37060       ,p_event_class_code           => l_event_class_code);
37061    --
37062    -- set accounting class
37063    --
37064    xla_ae_lines_pkg.SetAcctClass(
37065            p_accounting_class_code  => 'CASH'
37066          , p_ae_header_id           => l_ae_header_id
37067          );
37068 
37069    --
37070    -- set rounding class
37071    --
37072    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
37073                       'CASH';
37074 
37075    --
37076    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
37077    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
37078    --
37079    -- bulk performance
37080    --
37081    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
37082 
37083    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
37084       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
37085 
37086    -- 4955764
37087    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37088       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
37089 
37090    -- 4458381 Public Sector Enh
37091    
37092    --
37093    -- set accounting attributes for the line type
37094    --
37095    l_entered_amt_idx := 10;
37096    l_accted_amt_idx  := 15;
37097    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
37098    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
37102    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
37099    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
37100    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
37101    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
37103    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
37104    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
37105    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
37106    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
37107    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
37108    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
37109    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
37110    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
37111    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
37112    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
37113    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
37114    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
37115    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
37116    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
37117    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
37118    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
37119    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
37120    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
37121    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
37122    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
37123    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
37124    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
37125    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
37126    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
37127    l_rec_acct_attrs.array_num_value(15)  := p_source_115;
37128    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
37129    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
37130    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
37131    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
37132    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
37133    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
37134    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
37135    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
37136    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
37137    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
37138    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
37139    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
37140    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
37141    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
37142    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
37143    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
37144    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
37145    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
37146 
37147    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
37148    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
37149 
37150    ---------------------------------------------------------------------------------------------------------------
37151    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
37152    ---------------------------------------------------------------------------------------------------------------
37153    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
37154 
37155    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37156    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37157 
37158    IF xla_accounting_cache_pkg.GetValueChar
37159          (p_source_code         => 'LEDGER_CATEGORY_CODE'
37160          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
37161    AND l_bflow_method_code = 'PRIOR_ENTRY'
37162 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
37163    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
37164          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
37165        )
37166    THEN
37167          xla_ae_lines_pkg.BflowUpgEntry
37168            (p_business_method_code    => l_bflow_method_code
37169            ,p_business_class_code     => l_bflow_class_code
37170            ,p_balance_type            => l_balance_type_code);
37171    ELSE
37172       NULL;
37173 XLA_AE_LINES_PKG.business_flow_validation(
37174                                 p_business_method_code     => l_bflow_method_code
37175                                ,p_business_class_code      => l_bflow_class_code
37176                                ,p_inherit_description_flag => l_inherit_desc_flag);
37177    END IF;
37178 
37179    --
37180    -- call analytical criteria
37181    --
37182    
37183    --
37184    -- call description
37185    --
37186    -- No description or it is inherited.
37187    --
37188    -- call ADRs
37189    -- Bug 4922099
37190    --
37191    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37192         (NVL(l_actual_upg_option, 'N') = 'O') OR
37193         (NVL(l_enc_upg_option, 'N') = 'O')
37194       )
37195    THEN
37196    NULL;
37197    --
37198    --
37199    
37203 , p_source_17 => p_source_17
37200   l_ccid := AcctDerRule_28(
37201            p_application_id           => p_application_id
37202          , p_ae_header_id             => l_ae_header_id 
37204          , x_transaction_coa_id       => l_adr_transaction_coa_id
37205          , x_accounting_coa_id        => l_adr_accounting_coa_id
37206          , x_value_type_code          => l_adr_value_type_code
37207          , p_side                     => 'NA'
37208    );
37209 
37210    xla_ae_lines_pkg.set_ccid(
37211     p_code_combination_id          => l_ccid
37212   , p_value_type_code              => l_adr_value_type_code
37213   , p_transaction_coa_id           => l_adr_transaction_coa_id
37214   , p_accounting_coa_id            => l_adr_accounting_coa_id
37215   , p_adr_code                     => 'AP_CASH'
37216   , p_adr_type_code                => 'S'
37217   , p_component_type               => l_component_type
37218   , p_component_code               => l_component_code
37219   , p_component_type_code          => l_component_type_code
37220   , p_component_appl_id            => l_component_appl_id
37221   , p_amb_context_code             => l_amb_context_code
37222   , p_side                         => 'NA'
37223   );
37224 
37225 
37226    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
37227      p_to_segment_code         => 'GL_BALANCING'
37228    , p_segment_value           => C_CHAR
37229    , p_from_segment_code       => NULL
37230    , p_from_combination_id     => NULL
37231    , p_value_type_code         => NULL
37232    , p_transaction_coa_id      => null
37233    , p_accounting_coa_id       => null
37234    , p_flexfield_segment_code  => NULL
37235    , p_flex_value_set_id       => NULL
37236    , p_adr_code                => NULL
37237    , p_adr_type_code           => NULL
37238    , p_component_type          => l_component_type
37239    , p_component_code          => l_component_code
37240    , p_component_type_code     => l_component_type_code
37241    , p_component_appl_id       => l_component_appl_id
37242    , p_amb_context_code        => l_amb_context_code
37243    , p_entity_code             => 'AP_PAYMENTS'
37244    , p_event_class_code        => 'PAYMENTS'
37245    , p_side                    => 'NA'
37246    );
37247    --
37248 
37249 
37250    --
37251    --
37252    END IF;
37253    --
37254    -- Bug 4922099
37255    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
37256           (NVL(l_enc_upg_option, 'N') = 'O')
37257         ) AND
37258         (l_bflow_method_code = 'PRIOR_ENTRY')
37259       )
37260    THEN
37261       IF
37262       --
37263       1 = 2
37264       --
37265       THEN
37266       xla_accounting_err_pkg.build_message
37267                                     (p_appli_s_name            => 'XLA'
37268                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37269                                     ,p_token_1                 => 'LINE_NUMBER'
37270                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
37271                                     ,p_token_2                 => 'LINE_TYPE_NAME'
37272                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
37273                                                                              l_component_type
37274                                                                             ,l_component_code
37275                                                                             ,l_component_type_code
37276                                                                             ,l_component_appl_id
37277                                                                             ,l_amb_context_code
37278                                                                             ,l_entity_code
37279                                                                             ,l_event_class_code
37280                                                                            )
37281                                     ,p_token_3                 => 'OWNER'
37282                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
37283                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
37284                                                                           ,p_lookup_code    => l_component_type_code
37285                                                                          )
37286                                     ,p_token_4                 => 'PRODUCT_NAME'
37287                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
37288                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
37289                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
37290                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
37291                                     ,p_ae_header_id            =>  NULL
37292                                        );
37293 
37294         IF (C_LEVEL_ERROR>= g_log_level) THEN
37295                  trace
37296                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37297                       ,p_level    => C_LEVEL_ERROR
37298                       ,p_module   => l_log_module);
37299         END IF;
37300       END IF;
37301    END IF;
37302    --
37303    --
37307    -- Prior Entry.  Currently, the following code is always generated.
37304    ------------------------------------------------------------------------------------------------
37305    -- 4219869 Business Flow
37306    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
37308    ------------------------------------------------------------------------------------------------
37309    XLA_AE_LINES_PKG.ValidateCurrentLine;
37310 
37311    ------------------------------------------------------------------------------------
37312    -- 4219869 Business Flow
37313    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
37314    ------------------------------------------------------------------------------------
37315    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37316 
37317    ----------------------------------------------------------------------------------
37318    -- 4219869 Business Flow
37319    -- Update journal entry status -- Need to generate this within IF <condition>
37320    ----------------------------------------------------------------------------------
37321    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37322          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
37323          ,p_balance_type_code => l_balance_type_code
37324          );
37325 
37326    -------------------------------------------------------------------------------------------
37327    -- 4262811 - Generate the Accrual Reversal lines
37328    -------------------------------------------------------------------------------------------
37329    BEGIN
37330       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
37331                               (g_array_event(p_event_id).array_value_num('header_index'));
37332       IF l_acc_rev_flag IS NULL THEN
37333          l_acc_rev_flag := 'N';
37334       END IF;
37335    EXCEPTION
37336       WHEN OTHERS THEN
37337          l_acc_rev_flag := 'N';
37338    END;
37339    --
37340    IF (l_acc_rev_flag = 'Y') THEN
37341 
37342        -- 4645092  ------------------------------------------------------------------------------
37343        -- To allow MPA report to determine if it should generate report process
37344        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
37345        ------------------------------------------------------------------------------------------
37346 
37347        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
37348        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
37349    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
37350    -- call ADRs
37351    -- Bug 4922099
37352    --
37353    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37354         (NVL(l_actual_upg_option, 'N') = 'O') OR
37355         (NVL(l_enc_upg_option, 'N') = 'O')
37356       )
37357    THEN
37358    NULL;
37359    --
37360    --
37361    
37362   l_ccid := AcctDerRule_28(
37363            p_application_id           => p_application_id
37364          , p_ae_header_id             => l_ae_header_id 
37365 , p_source_17 => p_source_17
37366          , x_transaction_coa_id       => l_adr_transaction_coa_id
37367          , x_accounting_coa_id        => l_adr_accounting_coa_id
37368          , x_value_type_code          => l_adr_value_type_code
37369          , p_side                     => 'NA'
37370    );
37371 
37372    xla_ae_lines_pkg.set_ccid(
37373     p_code_combination_id          => l_ccid
37374   , p_value_type_code              => l_adr_value_type_code
37375   , p_transaction_coa_id           => l_adr_transaction_coa_id
37376   , p_accounting_coa_id            => l_adr_accounting_coa_id
37377   , p_adr_code                     => 'AP_CASH'
37378   , p_adr_type_code                => 'S'
37379   , p_component_type               => l_component_type
37380   , p_component_code               => l_component_code
37381   , p_component_type_code          => l_component_type_code
37382   , p_component_appl_id            => l_component_appl_id
37383   , p_amb_context_code             => l_amb_context_code
37384   , p_side                         => 'NA'
37385   );
37386 
37387 
37388    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
37389      p_to_segment_code         => 'GL_BALANCING'
37390    , p_segment_value           => C_CHAR
37391    , p_from_segment_code       => NULL
37392    , p_from_combination_id     => NULL
37393    , p_value_type_code         => NULL
37394    , p_transaction_coa_id      => null
37395    , p_accounting_coa_id       => null
37396    , p_flexfield_segment_code  => NULL
37397    , p_flex_value_set_id       => NULL
37398    , p_adr_code                => NULL
37399    , p_adr_type_code           => NULL
37400    , p_component_type          => l_component_type
37401    , p_component_code          => l_component_code
37402    , p_component_type_code     => l_component_type_code
37403    , p_component_appl_id       => l_component_appl_id
37404    , p_amb_context_code        => l_amb_context_code
37405    , p_entity_code             => 'AP_PAYMENTS'
37406    , p_event_class_code        => 'PAYMENTS'
37407    , p_side                    => 'NA'
37408    );
37409    --
37410 
37411 
37412    --
37413    --
37414    END IF;
37415 
37416        --
37417        -- Update the line information that should be overwritten
37418        --
37419        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
37420                                          p_header_num   => 1);
37421        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
37425        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
37422 
37423        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
37424 
37426           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
37427        END IF;
37428 
37429       --
37430       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
37431       --
37432       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
37433           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
37434       ELSE
37435           ---------------------------------------------------------------------------------------------------
37436           -- 4262811a Switch Sign
37437           ---------------------------------------------------------------------------------------------------
37438           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
37439           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37440                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37441           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37442                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37443           -- 5132302
37444           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
37445                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37446 
37447       END IF;
37448 
37449       -- 4955764
37450       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37451       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
37452 
37453 
37454       XLA_AE_LINES_PKG.ValidateCurrentLine;
37455       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37456 
37457       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37458                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
37459                ,p_balance_type_code => l_balance_type_code);
37460 
37461    END IF;
37462 
37463    -----------------------------------------------------------------------------------------
37464    -- 4262811 Multiperiod Accounting
37465    -----------------------------------------------------------------------------------------
37466      -- No MPA option is assigned.
37467 
37468 
37469 END IF;
37470 END IF;
37471 --
37472 
37473 --
37474 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37475    trace
37476       (p_msg      => 'END of AcctLineType_87'
37477       ,p_level    => C_LEVEL_PROCEDURE
37478       ,p_module   => l_log_module);
37479 END IF;
37480 --
37481 EXCEPTION
37482   WHEN xla_exceptions_pkg.application_exception THEN
37483       RAISE;
37484   WHEN OTHERS THEN
37485        xla_exceptions_pkg.raise_message
37486            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_87');
37487 END AcctLineType_87;
37488 --
37489 
37490 ---------------------------------------
37491 --
37492 -- PRIVATE FUNCTION
37493 --         AcctLineType_88
37494 --
37495 ---------------------------------------
37496 PROCEDURE AcctLineType_88 (
37497   p_application_id        IN NUMBER
37498  ,p_event_id              IN NUMBER
37499  ,p_calculate_acctd_flag  IN VARCHAR2
37500  ,p_calculate_g_l_flag    IN VARCHAR2
37501  ,p_actual_flag           IN OUT VARCHAR2
37502  ,p_balance_type_code     OUT VARCHAR2
37503  ,p_gain_or_loss_ref      OUT VARCHAR2
37504  
37505 --Payment Currency Code
37506  , p_source_13            IN VARCHAR2
37507 --Bank Cash Account
37508  , p_source_17            IN NUMBER
37509 --Automatic Offsets Flag
37510  , p_source_47            IN VARCHAR2
37511  , p_source_47_meaning    IN VARCHAR2
37512 --Accounting Reversal Indicator
37513  , p_source_53            IN VARCHAR2
37514 --Distribution Link Type
37515  , p_source_55            IN VARCHAR2
37516 --Override Accounted Amount Indicator
37517  , p_source_80            IN VARCHAR2
37518  , p_source_80_meaning    IN VARCHAR2
37519 --Third Party Type
37520  , p_source_83            IN VARCHAR2
37521 --Business Flow Accounts Payable Application Identifier
37522  , p_source_91            IN NUMBER
37523 --When to Account for Payment Option
37524  , p_source_97            IN VARCHAR2
37525 --Payment Distribution Type
37526  , p_source_98            IN VARCHAR2
37527  , p_source_98_meaning    IN VARCHAR2
37528 --Payment Distribution Amount
37529  , p_source_99            IN NUMBER
37530 --Business Flow Payment Distribution Type
37531  , p_source_100            IN VARCHAR2
37532 --Business Flow Payment Entity Code
37533  , p_source_101            IN VARCHAR2
37534 --Business Flow Payment Distribution Identifier
37535  , p_source_102            IN NUMBER
37536 --Business Flow Payment Identifier
37537  , p_source_103            IN NUMBER
37538 --Payment Distribution Identifier
37539  , p_source_104            IN NUMBER
37540 --Payment Supplier Identifier
37541  , p_source_110            IN NUMBER
37542 --Payment Supplier Site Identifier
37543  , p_source_111            IN NUMBER
37544 --Payment Distribution Reversed Identifier
37548  , p_source_113_meaning    IN VARCHAR2
37545  , p_source_112            IN NUMBER
37546 --Pooled Bank Account Option
37547  , p_source_113            IN VARCHAR2
37549 --Payment Maturity Date
37550  , p_source_114            IN DATE
37551 --Payment Exchange Date
37552  , p_source_117            IN DATE
37553 --Payment Exchange Rate
37554  , p_source_118            IN NUMBER
37555 --Payment Exchange Rate Type
37556  , p_source_119            IN VARCHAR2
37557 --Payment Distribution (Matured Rate) Ledger Amount
37558  , p_source_121            IN NUMBER
37559 )
37560 IS
37561 
37562 l_component_type              VARCHAR2(80);
37563 l_component_code              VARCHAR2(30);
37564 l_component_type_code         VARCHAR2(1);
37565 l_component_appl_id           INTEGER;
37566 l_amb_context_code            VARCHAR2(30);
37567 l_entity_code                 VARCHAR2(30);
37568 l_event_class_code            VARCHAR2(30);
37569 l_ae_header_id                NUMBER;
37570 l_event_type_code             VARCHAR2(30);
37571 l_line_definition_code        VARCHAR2(30);
37572 l_line_definition_owner_code  VARCHAR2(1);
37573 --
37574 -- adr variables
37575 l_segment                     VARCHAR2(30);
37576 l_ccid                        NUMBER;
37577 l_adr_transaction_coa_id      NUMBER;
37578 l_adr_accounting_coa_id       NUMBER;
37579 l_adr_flexfield_segment_code  VARCHAR2(30);
37580 l_adr_flex_value_set_id       NUMBER;
37581 l_adr_value_type_code         VARCHAR2(30);
37582 l_adr_value_combination_id    NUMBER;
37583 l_adr_value_segment_code      VARCHAR2(30);
37584 
37585 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
37586 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
37587 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
37588 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
37589 
37590 -- 4262811 Variables ------------------------------------------------------------------------------------------
37591 l_entered_amt_idx             NUMBER;
37592 l_accted_amt_idx              NUMBER;
37593 l_acc_rev_flag                VARCHAR2(1);
37594 l_accrual_line_num            NUMBER;
37595 l_tmp_amt                     NUMBER;
37596 l_acc_rev_natural_side_code   VARCHAR2(1);
37597 
37598 l_num_entries                 NUMBER;
37599 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
37600 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
37601 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
37602 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
37603 l_recog_line_1                NUMBER;
37604 l_recog_line_2                NUMBER;
37605 
37606 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
37607 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
37608 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
37609 
37610 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
37611 
37612 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
37613 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
37614 
37615 ---------------------------------------------------------------------------------------------------------------
37616 
37617 
37618 --
37619 -- bulk performance
37620 --
37621 l_balance_type_code           VARCHAR2(1);
37622 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
37623 l_log_module                  VARCHAR2(240);
37624 
37625 --
37626 -- Upgrade strategy
37627 --
37628 l_actual_upg_option           VARCHAR2(1);
37629 l_enc_upg_option           VARCHAR2(1);
37630 
37631 --
37632 BEGIN
37633 --
37634 IF g_log_enabled THEN
37635       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_88';
37636 END IF;
37637 --
37638 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37639 
37640       trace
37641          (p_msg      => 'BEGIN of AcctLineType_88'
37642          ,p_level    => C_LEVEL_PROCEDURE
37643          ,p_module   => l_log_module);
37644 
37645 END IF;
37646 --
37647 l_component_type             := 'AMB_JLT';
37648 l_component_code             := 'AP_CASH_PMT_MAT';
37649 l_component_type_code        := 'S';
37650 l_component_appl_id          :=  200;
37651 l_amb_context_code           := 'DEFAULT';
37652 l_entity_code                := 'AP_PAYMENTS';
37653 l_event_class_code           := 'FUTURE DATED PAYMENTS';
37654 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
37655 l_line_definition_owner_code := 'S';
37656 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
37657 --
37658 l_balance_type_code          := 'A';
37659 l_segment                     := NULL;
37660 l_ccid                        := NULL;
37661 l_adr_transaction_coa_id      := NULL;
37662 l_adr_accounting_coa_id       := NULL;
37663 l_adr_flexfield_segment_code  := NULL;
37664 l_adr_flex_value_set_id       := NULL;
37665 l_adr_value_type_code         := NULL;
37666 l_adr_value_combination_id    := NULL;
37667 l_adr_value_segment_code      := NULL;
37668 
37669 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
37670 l_bflow_class_code           := '';    -- 4219869 Business Flow
37671 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
37672 l_budgetary_control_flag     := 'N';
37673 
37677 l_accted_amt_idx             := NULL;          -- 4262811
37674 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
37675 l_bflow_applied_to_amt       := NULL; -- 5132302
37676 l_entered_amt_idx            := NULL;          -- 4262811
37678 l_acc_rev_flag               := NULL;          -- 4262811
37679 l_accrual_line_num           := NULL;          -- 4262811
37680 l_tmp_amt                    := NULL;          -- 4262811
37681 --
37682  
37683 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
37684     l_balance_type_code <> 'B' THEN
37685 IF NVL(p_source_97,'
37686 ') =  'ISSUE_ISSUE' AND 
37687 (NVL(p_source_47,'
37688 ') <>  'Y' OR 
37689 NVL(p_source_47,'
37690 ') =  'Y' AND 
37691 NVL(p_source_113,'
37692 ') <>  'Y') AND 
37693 p_source_114 IS NOT NULL AND 
37694 NVL(p_source_98,'
37695 ') =  'CASH'
37696  THEN 
37697 
37698    --
37699    XLA_AE_LINES_PKG.SetNewLine;
37700 
37701    p_balance_type_code          := l_balance_type_code;
37702    -- set the flag so later we will know whether the gain loss line needs to be created
37703    
37704    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
37705      p_actual_flag :='A';
37706    END IF;
37707 
37708    --
37709    -- bulk performance
37710    --
37711    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
37712                                       p_header_num   => 0); -- 4262811
37713    --
37714    -- set accounting line options
37715    --
37716    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
37717            p_natural_side_code          => 'C'
37718          , p_gain_or_loss_flag          => 'N'
37719          , p_gl_transfer_mode_code      => 'S'
37720          , p_acct_entry_type_code       => 'A'
37721          , p_switch_side_flag           => 'Y'
37722          , p_merge_duplicate_code       => 'A'
37723          );
37724    --
37725    l_acc_rev_natural_side_code := 'D';  -- 4262811
37726    -- 
37727    --
37728    -- set accounting line type info
37729    --
37730    xla_ae_lines_pkg.SetAcctLineType
37731       (p_component_type             => l_component_type
37732       ,p_event_type_code            => l_event_type_code
37733       ,p_line_definition_owner_code => l_line_definition_owner_code
37734       ,p_line_definition_code       => l_line_definition_code
37735       ,p_accounting_line_code       => l_component_code
37736       ,p_accounting_line_type_code  => l_component_type_code
37737       ,p_accounting_line_appl_id    => l_component_appl_id
37738       ,p_amb_context_code           => l_amb_context_code
37739       ,p_entity_code                => l_entity_code
37740       ,p_event_class_code           => l_event_class_code);
37741    --
37742    -- set accounting class
37743    --
37744    xla_ae_lines_pkg.SetAcctClass(
37745            p_accounting_class_code  => 'CASH'
37746          , p_ae_header_id           => l_ae_header_id
37747          );
37748 
37749    --
37750    -- set rounding class
37751    --
37752    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
37753                       'CASH';
37754 
37755    --
37756    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
37757    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
37758    --
37759    -- bulk performance
37760    --
37761    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
37762 
37763    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
37764       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
37765 
37766    -- 4955764
37767    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37768       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
37769 
37770    -- 4458381 Public Sector Enh
37771    
37772    --
37773    -- set accounting attributes for the line type
37774    --
37775    l_entered_amt_idx := 9;
37776    l_accted_amt_idx  := 14;
37777    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
37778    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
37779    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
37780    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
37781    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
37782    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
37783    l_rec_acct_attrs.array_char_value(3)  := p_source_100;
37784    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
37785    l_rec_acct_attrs.array_char_value(4)  := p_source_101;
37786    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
37787    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_102);
37788    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
37789    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_103);
37790    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
37791    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
37792    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
37793    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
37794    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
37798    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
37795    l_rec_acct_attrs.array_num_value(9)  := p_source_99;
37796    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
37797    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
37799    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
37800    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
37801    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
37802    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
37803    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
37804    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
37805    l_rec_acct_attrs.array_num_value(14)  := p_source_121;
37806    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
37807    l_rec_acct_attrs.array_char_value(15)  := p_source_80;
37808    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
37809    l_rec_acct_attrs.array_num_value(16)  := p_source_110;
37810    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
37811    l_rec_acct_attrs.array_num_value(17)  := p_source_111;
37812    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
37813    l_rec_acct_attrs.array_char_value(18)  := p_source_83;
37814    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
37815    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_112);
37816    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
37817    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
37818 
37819    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
37820    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
37821 
37822    ---------------------------------------------------------------------------------------------------------------
37823    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
37824    ---------------------------------------------------------------------------------------------------------------
37825    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
37826 
37827    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37828    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37829 
37830    IF xla_accounting_cache_pkg.GetValueChar
37831          (p_source_code         => 'LEDGER_CATEGORY_CODE'
37832          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
37833    AND l_bflow_method_code = 'PRIOR_ENTRY'
37834 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
37835    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
37836          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
37837        )
37838    THEN
37839          xla_ae_lines_pkg.BflowUpgEntry
37840            (p_business_method_code    => l_bflow_method_code
37841            ,p_business_class_code     => l_bflow_class_code
37842            ,p_balance_type            => l_balance_type_code);
37843    ELSE
37844       NULL;
37845 -- No business flow processing for business flow method of NONE.
37846    END IF;
37847 
37848    --
37849    -- call analytical criteria
37850    --
37851    
37852    --
37853    -- call description
37854    --
37855    -- No description or it is inherited.
37856    --
37857    -- call ADRs
37858    -- Bug 4922099
37859    --
37860    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37861         (NVL(l_actual_upg_option, 'N') = 'O') OR
37862         (NVL(l_enc_upg_option, 'N') = 'O')
37863       )
37864    THEN
37865    NULL;
37866    --
37867    --
37868    
37869   l_ccid := AcctDerRule_28(
37870            p_application_id           => p_application_id
37871          , p_ae_header_id             => l_ae_header_id 
37872 , p_source_17 => p_source_17
37873          , x_transaction_coa_id       => l_adr_transaction_coa_id
37874          , x_accounting_coa_id        => l_adr_accounting_coa_id
37875          , x_value_type_code          => l_adr_value_type_code
37876          , p_side                     => 'NA'
37877    );
37878 
37879    xla_ae_lines_pkg.set_ccid(
37880     p_code_combination_id          => l_ccid
37881   , p_value_type_code              => l_adr_value_type_code
37882   , p_transaction_coa_id           => l_adr_transaction_coa_id
37883   , p_accounting_coa_id            => l_adr_accounting_coa_id
37884   , p_adr_code                     => 'AP_CASH'
37885   , p_adr_type_code                => 'S'
37886   , p_component_type               => l_component_type
37887   , p_component_code               => l_component_code
37888   , p_component_type_code          => l_component_type_code
37889   , p_component_appl_id            => l_component_appl_id
37890   , p_amb_context_code             => l_amb_context_code
37891   , p_side                         => 'NA'
37892   );
37893 
37894 
37895    --
37896    --
37897    END IF;
37898    --
37899    -- Bug 4922099
37900    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
37901           (NVL(l_enc_upg_option, 'N') = 'O')
37902         ) AND
37903         (l_bflow_method_code = 'PRIOR_ENTRY')
37904       )
37905    THEN
37906       IF
37907       --
37908       1 = 2
37909       --
37910       THEN
37911       xla_accounting_err_pkg.build_message
37912                                     (p_appli_s_name            => 'XLA'
37916                                     ,p_token_2                 => 'LINE_TYPE_NAME'
37913                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37914                                     ,p_token_1                 => 'LINE_NUMBER'
37915                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
37917                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
37918                                                                              l_component_type
37919                                                                             ,l_component_code
37920                                                                             ,l_component_type_code
37921                                                                             ,l_component_appl_id
37922                                                                             ,l_amb_context_code
37923                                                                             ,l_entity_code
37924                                                                             ,l_event_class_code
37925                                                                            )
37926                                     ,p_token_3                 => 'OWNER'
37927                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
37928                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
37929                                                                           ,p_lookup_code    => l_component_type_code
37930                                                                          )
37931                                     ,p_token_4                 => 'PRODUCT_NAME'
37932                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
37933                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
37934                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
37935                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
37936                                     ,p_ae_header_id            =>  NULL
37937                                        );
37938 
37939         IF (C_LEVEL_ERROR>= g_log_level) THEN
37940                  trace
37941                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37942                       ,p_level    => C_LEVEL_ERROR
37943                       ,p_module   => l_log_module);
37944         END IF;
37945       END IF;
37946    END IF;
37947    --
37948    --
37949    ------------------------------------------------------------------------------------------------
37950    -- 4219869 Business Flow
37951    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
37952    -- Prior Entry.  Currently, the following code is always generated.
37953    ------------------------------------------------------------------------------------------------
37954    XLA_AE_LINES_PKG.ValidateCurrentLine;
37955 
37956    ------------------------------------------------------------------------------------
37957    -- 4219869 Business Flow
37958    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
37959    ------------------------------------------------------------------------------------
37960    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37961 
37962    ----------------------------------------------------------------------------------
37963    -- 4219869 Business Flow
37964    -- Update journal entry status -- Need to generate this within IF <condition>
37965    ----------------------------------------------------------------------------------
37966    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37967          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
37968          ,p_balance_type_code => l_balance_type_code
37969          );
37970 
37971    -------------------------------------------------------------------------------------------
37972    -- 4262811 - Generate the Accrual Reversal lines
37973    -------------------------------------------------------------------------------------------
37974    BEGIN
37975       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
37976                               (g_array_event(p_event_id).array_value_num('header_index'));
37977       IF l_acc_rev_flag IS NULL THEN
37978          l_acc_rev_flag := 'N';
37979       END IF;
37980    EXCEPTION
37981       WHEN OTHERS THEN
37982          l_acc_rev_flag := 'N';
37983    END;
37984    --
37985    IF (l_acc_rev_flag = 'Y') THEN
37986 
37987        -- 4645092  ------------------------------------------------------------------------------
37988        -- To allow MPA report to determine if it should generate report process
37989        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
37990        ------------------------------------------------------------------------------------------
37991 
37992        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
37993        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
37994    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
37995    -- call ADRs
37996    -- Bug 4922099
37997    --
37998    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37999         (NVL(l_actual_upg_option, 'N') = 'O') OR
38000         (NVL(l_enc_upg_option, 'N') = 'O')
38001       )
38002    THEN
38003    NULL;
38004    --
38005    --
38009          , p_ae_header_id             => l_ae_header_id 
38006    
38007   l_ccid := AcctDerRule_28(
38008            p_application_id           => p_application_id
38010 , p_source_17 => p_source_17
38011          , x_transaction_coa_id       => l_adr_transaction_coa_id
38012          , x_accounting_coa_id        => l_adr_accounting_coa_id
38013          , x_value_type_code          => l_adr_value_type_code
38014          , p_side                     => 'NA'
38015    );
38016 
38017    xla_ae_lines_pkg.set_ccid(
38018     p_code_combination_id          => l_ccid
38019   , p_value_type_code              => l_adr_value_type_code
38020   , p_transaction_coa_id           => l_adr_transaction_coa_id
38021   , p_accounting_coa_id            => l_adr_accounting_coa_id
38022   , p_adr_code                     => 'AP_CASH'
38023   , p_adr_type_code                => 'S'
38024   , p_component_type               => l_component_type
38025   , p_component_code               => l_component_code
38026   , p_component_type_code          => l_component_type_code
38027   , p_component_appl_id            => l_component_appl_id
38028   , p_amb_context_code             => l_amb_context_code
38029   , p_side                         => 'NA'
38030   );
38031 
38032 
38033    --
38034    --
38035    END IF;
38036 
38037        --
38038        -- Update the line information that should be overwritten
38039        --
38040        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
38041                                          p_header_num   => 1);
38042        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
38043 
38044        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
38045 
38046        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
38047           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
38048        END IF;
38049 
38050       --
38051       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
38052       --
38053       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
38054           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
38055       ELSE
38056           ---------------------------------------------------------------------------------------------------
38057           -- 4262811a Switch Sign
38058           ---------------------------------------------------------------------------------------------------
38059           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
38060           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38061                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38062           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38063                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38064           -- 5132302
38065           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
38066                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38067 
38068       END IF;
38069 
38070       -- 4955764
38071       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38072       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
38073 
38074 
38075       XLA_AE_LINES_PKG.ValidateCurrentLine;
38076       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38077 
38078       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38079                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
38080                ,p_balance_type_code => l_balance_type_code);
38081 
38082    END IF;
38083 
38084    -----------------------------------------------------------------------------------------
38085    -- 4262811 Multiperiod Accounting
38086    -----------------------------------------------------------------------------------------
38087      -- No MPA option is assigned.
38088 
38089 
38090 END IF;
38091 END IF;
38092 --
38093 
38094 --
38095 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38096    trace
38097       (p_msg      => 'END of AcctLineType_88'
38098       ,p_level    => C_LEVEL_PROCEDURE
38099       ,p_module   => l_log_module);
38100 END IF;
38101 --
38102 EXCEPTION
38103   WHEN xla_exceptions_pkg.application_exception THEN
38104       RAISE;
38105   WHEN OTHERS THEN
38106        xla_exceptions_pkg.raise_message
38107            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_88');
38108 END AcctLineType_88;
38109 --
38110 
38111 ---------------------------------------
38112 --
38113 -- PRIVATE FUNCTION
38114 --         AcctLineType_89
38115 --
38116 ---------------------------------------
38117 PROCEDURE AcctLineType_89 (
38118   p_application_id        IN NUMBER
38119  ,p_event_id              IN NUMBER
38120  ,p_calculate_acctd_flag  IN VARCHAR2
38121  ,p_calculate_g_l_flag    IN VARCHAR2
38122  ,p_actual_flag           IN OUT VARCHAR2
38123  ,p_balance_type_code     OUT VARCHAR2
38124  ,p_gain_or_loss_ref      OUT VARCHAR2
38125  
38126 --Payment Currency Code
38130  , p_source_15_meaning    IN VARCHAR2
38127  , p_source_13            IN VARCHAR2
38128 --Automatic Offsets Value
38129  , p_source_15            IN VARCHAR2
38131 --Bank Cash Account
38132  , p_source_17            IN NUMBER
38133 --Accounting Reversal Indicator
38134  , p_source_53            IN VARCHAR2
38135 --Distribution Link Type
38136  , p_source_55            IN VARCHAR2
38137 --Override Accounted Amount Indicator
38138  , p_source_80            IN VARCHAR2
38139  , p_source_80_meaning    IN VARCHAR2
38140 --Third Party Type
38141  , p_source_83            IN VARCHAR2
38142 --Business Flow Accounts Payable Application Identifier
38143  , p_source_91            IN NUMBER
38144 --When to Account for Payment Option
38145  , p_source_97            IN VARCHAR2
38146 --Payment Distribution Type
38147  , p_source_98            IN VARCHAR2
38148  , p_source_98_meaning    IN VARCHAR2
38149 --Payment Distribution Amount
38150  , p_source_99            IN NUMBER
38151 --Business Flow Payment Distribution Type
38152  , p_source_100            IN VARCHAR2
38153 --Business Flow Payment Entity Code
38154  , p_source_101            IN VARCHAR2
38155 --Business Flow Payment Distribution Identifier
38156  , p_source_102            IN NUMBER
38157 --Business Flow Payment Identifier
38158  , p_source_103            IN NUMBER
38159 --Payment Distribution Identifier
38160  , p_source_104            IN NUMBER
38161 --Payment Supplier Identifier
38162  , p_source_110            IN NUMBER
38163 --Payment Supplier Site Identifier
38164  , p_source_111            IN NUMBER
38165 --Payment Distribution Reversed Identifier
38166  , p_source_112            IN NUMBER
38167 --Pooled Bank Account Option
38168  , p_source_113            IN VARCHAR2
38169  , p_source_113_meaning    IN VARCHAR2
38170 --Payment Maturity Date
38171  , p_source_114            IN DATE
38172 --Payment Exchange Date
38173  , p_source_117            IN DATE
38174 --Payment Exchange Rate
38175  , p_source_118            IN NUMBER
38176 --Payment Exchange Rate Type
38177  , p_source_119            IN VARCHAR2
38178 --Payment Distribution (Matured Rate) Ledger Amount
38179  , p_source_121            IN NUMBER
38180 )
38181 IS
38182 
38183 l_component_type              VARCHAR2(80);
38184 l_component_code              VARCHAR2(30);
38185 l_component_type_code         VARCHAR2(1);
38186 l_component_appl_id           INTEGER;
38187 l_amb_context_code            VARCHAR2(30);
38188 l_entity_code                 VARCHAR2(30);
38189 l_event_class_code            VARCHAR2(30);
38190 l_ae_header_id                NUMBER;
38191 l_event_type_code             VARCHAR2(30);
38192 l_line_definition_code        VARCHAR2(30);
38193 l_line_definition_owner_code  VARCHAR2(1);
38194 --
38195 -- adr variables
38196 l_segment                     VARCHAR2(30);
38197 l_ccid                        NUMBER;
38198 l_adr_transaction_coa_id      NUMBER;
38199 l_adr_accounting_coa_id       NUMBER;
38200 l_adr_flexfield_segment_code  VARCHAR2(30);
38201 l_adr_flex_value_set_id       NUMBER;
38202 l_adr_value_type_code         VARCHAR2(30);
38203 l_adr_value_combination_id    NUMBER;
38204 l_adr_value_segment_code      VARCHAR2(30);
38205 
38206 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
38207 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
38208 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
38209 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
38210 
38211 -- 4262811 Variables ------------------------------------------------------------------------------------------
38212 l_entered_amt_idx             NUMBER;
38213 l_accted_amt_idx              NUMBER;
38214 l_acc_rev_flag                VARCHAR2(1);
38215 l_accrual_line_num            NUMBER;
38216 l_tmp_amt                     NUMBER;
38217 l_acc_rev_natural_side_code   VARCHAR2(1);
38218 
38219 l_num_entries                 NUMBER;
38220 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
38221 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
38222 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
38223 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
38224 l_recog_line_1                NUMBER;
38225 l_recog_line_2                NUMBER;
38226 
38227 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
38228 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
38229 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
38230 
38231 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
38232 
38233 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
38234 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
38235 
38236 ---------------------------------------------------------------------------------------------------------------
38237 
38238 
38239 --
38240 -- bulk performance
38241 --
38242 l_balance_type_code           VARCHAR2(1);
38243 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
38244 l_log_module                  VARCHAR2(240);
38245 
38246 --
38247 -- Upgrade strategy
38248 --
38249 l_actual_upg_option           VARCHAR2(1);
38250 l_enc_upg_option           VARCHAR2(1);
38251 
38252 --
38253 BEGIN
38254 --
38255 IF g_log_enabled THEN
38256       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_89';
38257 END IF;
38258 --
38262          (p_msg      => 'BEGIN of AcctLineType_89'
38259 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38260 
38261       trace
38263          ,p_level    => C_LEVEL_PROCEDURE
38264          ,p_module   => l_log_module);
38265 
38266 END IF;
38267 --
38268 l_component_type             := 'AMB_JLT';
38269 l_component_code             := 'AP_CASH_PMT_MAT_AOS_AS';
38270 l_component_type_code        := 'S';
38271 l_component_appl_id          :=  200;
38272 l_amb_context_code           := 'DEFAULT';
38273 l_entity_code                := 'AP_PAYMENTS';
38274 l_event_class_code           := 'FUTURE DATED PAYMENTS';
38275 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
38276 l_line_definition_owner_code := 'S';
38277 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
38278 --
38279 l_balance_type_code          := 'A';
38280 l_segment                     := NULL;
38281 l_ccid                        := NULL;
38282 l_adr_transaction_coa_id      := NULL;
38283 l_adr_accounting_coa_id       := NULL;
38284 l_adr_flexfield_segment_code  := NULL;
38285 l_adr_flex_value_set_id       := NULL;
38286 l_adr_value_type_code         := NULL;
38287 l_adr_value_combination_id    := NULL;
38288 l_adr_value_segment_code      := NULL;
38289 
38290 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
38291 l_bflow_class_code           := '';    -- 4219869 Business Flow
38292 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
38293 l_budgetary_control_flag     := 'N';
38294 
38295 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
38296 l_bflow_applied_to_amt       := NULL; -- 5132302
38297 l_entered_amt_idx            := NULL;          -- 4262811
38298 l_accted_amt_idx             := NULL;          -- 4262811
38299 l_acc_rev_flag               := NULL;          -- 4262811
38300 l_accrual_line_num           := NULL;          -- 4262811
38301 l_tmp_amt                    := NULL;          -- 4262811
38302 --
38303  
38304 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
38305     l_balance_type_code <> 'B' THEN
38306 IF NVL(p_source_97,'
38307 ') =  'ISSUE_ISSUE' AND 
38308 (NVL(p_source_113,'
38309 ') =  'Y' AND 
38310 NVL(p_source_15,'
38311 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
38312 p_source_114 IS NOT NULL AND 
38313 NVL(p_source_98,'
38314 ') =  'CASH'
38315  THEN 
38316 
38317    --
38318    XLA_AE_LINES_PKG.SetNewLine;
38319 
38320    p_balance_type_code          := l_balance_type_code;
38321    -- set the flag so later we will know whether the gain loss line needs to be created
38322    
38323    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
38324      p_actual_flag :='A';
38325    END IF;
38326 
38327    --
38328    -- bulk performance
38329    --
38330    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
38331                                       p_header_num   => 0); -- 4262811
38332    --
38333    -- set accounting line options
38334    --
38335    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
38336            p_natural_side_code          => 'C'
38337          , p_gain_or_loss_flag          => 'N'
38338          , p_gl_transfer_mode_code      => 'S'
38339          , p_acct_entry_type_code       => 'A'
38340          , p_switch_side_flag           => 'Y'
38341          , p_merge_duplicate_code       => 'A'
38342          );
38343    --
38344    l_acc_rev_natural_side_code := 'D';  -- 4262811
38345    -- 
38346    --
38347    -- set accounting line type info
38348    --
38349    xla_ae_lines_pkg.SetAcctLineType
38350       (p_component_type             => l_component_type
38351       ,p_event_type_code            => l_event_type_code
38352       ,p_line_definition_owner_code => l_line_definition_owner_code
38353       ,p_line_definition_code       => l_line_definition_code
38354       ,p_accounting_line_code       => l_component_code
38355       ,p_accounting_line_type_code  => l_component_type_code
38356       ,p_accounting_line_appl_id    => l_component_appl_id
38357       ,p_amb_context_code           => l_amb_context_code
38358       ,p_entity_code                => l_entity_code
38359       ,p_event_class_code           => l_event_class_code);
38360    --
38361    -- set accounting class
38362    --
38363    xla_ae_lines_pkg.SetAcctClass(
38364            p_accounting_class_code  => 'CASH'
38365          , p_ae_header_id           => l_ae_header_id
38366          );
38367 
38368    --
38369    -- set rounding class
38370    --
38371    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
38372                       'CASH';
38373 
38374    --
38375    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
38376    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
38377    --
38378    -- bulk performance
38379    --
38380    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
38381 
38382    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
38383       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
38384 
38385    -- 4955764
38386    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38390    
38387       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
38388 
38389    -- 4458381 Public Sector Enh
38391    --
38392    -- set accounting attributes for the line type
38393    --
38394    l_entered_amt_idx := 9;
38395    l_accted_amt_idx  := 14;
38396    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
38397    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
38398    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
38399    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
38400    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
38401    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
38402    l_rec_acct_attrs.array_char_value(3)  := p_source_100;
38403    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
38404    l_rec_acct_attrs.array_char_value(4)  := p_source_101;
38405    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
38406    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_102);
38407    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
38408    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_103);
38409    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
38410    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
38411    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
38412    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
38413    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
38414    l_rec_acct_attrs.array_num_value(9)  := p_source_99;
38415    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
38416    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
38417    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
38418    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
38419    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
38420    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
38421    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
38422    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
38423    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
38424    l_rec_acct_attrs.array_num_value(14)  := p_source_121;
38425    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
38426    l_rec_acct_attrs.array_char_value(15)  := p_source_80;
38427    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
38428    l_rec_acct_attrs.array_num_value(16)  := p_source_110;
38429    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
38430    l_rec_acct_attrs.array_num_value(17)  := p_source_111;
38431    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
38432    l_rec_acct_attrs.array_char_value(18)  := p_source_83;
38433    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
38434    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_112);
38435    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
38436    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
38437 
38438    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
38439    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
38440 
38441    ---------------------------------------------------------------------------------------------------------------
38442    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
38443    ---------------------------------------------------------------------------------------------------------------
38444    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
38445 
38446    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38447    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38448 
38449    IF xla_accounting_cache_pkg.GetValueChar
38450          (p_source_code         => 'LEDGER_CATEGORY_CODE'
38451          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
38452    AND l_bflow_method_code = 'PRIOR_ENTRY'
38453 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
38454    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
38455          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
38456        )
38457    THEN
38458          xla_ae_lines_pkg.BflowUpgEntry
38459            (p_business_method_code    => l_bflow_method_code
38460            ,p_business_class_code     => l_bflow_class_code
38461            ,p_balance_type            => l_balance_type_code);
38462    ELSE
38463       NULL;
38464 XLA_AE_LINES_PKG.business_flow_validation(
38465                                 p_business_method_code     => l_bflow_method_code
38466                                ,p_business_class_code      => l_bflow_class_code
38467                                ,p_inherit_description_flag => l_inherit_desc_flag);
38468    END IF;
38469 
38470    --
38471    -- call analytical criteria
38472    --
38473    
38474    --
38475    -- call description
38476    --
38477    -- No description or it is inherited.
38478    --
38479    -- call ADRs
38480    -- Bug 4922099
38481    --
38482    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38483         (NVL(l_actual_upg_option, 'N') = 'O') OR
38484         (NVL(l_enc_upg_option, 'N') = 'O')
38485       )
38489    --
38486    THEN
38487    NULL;
38488    --
38490    
38491    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
38492      p_code_combination_id      => TO_NUMBER(C_NUM)
38493    , p_value_type_code          => NULL
38494    , p_transaction_coa_id       => null
38495    , p_accounting_coa_id        => null
38496    , p_adr_code                 => NULL
38497    , p_adr_type_code            => NULL
38498    , p_component_type           => l_component_type
38499    , p_component_code           => l_component_code
38500    , p_component_type_code      => l_component_type_code
38501    , p_component_appl_id        => l_component_appl_id
38502    , p_amb_context_code         => l_amb_context_code
38503    , p_side                     => NULL
38504    );
38505 
38506    
38507   -- initialise segments
38508   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38509   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38510   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38511   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38512   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38513   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38514   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38515   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38516   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38517   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38518   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38519   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38520   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38521   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38522   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38523   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38524   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38525   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38526   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38527   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38528   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38529   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38530   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38531   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38532   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38533   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38534   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38535   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38536   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38537   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38538   --
38539 
38540    --
38541 
38542 
38543    l_segment := AcctDerRule_6(
38544            p_application_id           => p_application_id
38545          , p_ae_header_id             => l_ae_header_id 
38546 , p_source_17 => p_source_17
38547          , x_transaction_coa_id       => l_adr_transaction_coa_id
38548          , x_accounting_coa_id        => l_adr_accounting_coa_id
38549          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
38550          , x_flex_value_set_id        => l_adr_flex_value_set_id
38551          , x_value_type_code          => l_adr_value_type_code
38552          , x_value_combination_id     => l_adr_value_combination_id
38553          , x_value_segment_code       => l_adr_value_segment_code
38554          , p_side                     => 'NA'
38555          , p_override_seg_flag        => 'Y'
38556    );
38557 
38558    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
38559 
38560       xla_ae_lines_pkg.set_segment(
38561           p_to_segment_code         => 'GL_ACCOUNT'
38562         , p_segment_value           => l_segment
38563         , p_from_segment_code       => l_adr_value_segment_code
38564         , p_from_combination_id     => l_adr_value_combination_id
38565         , p_value_type_code         => l_adr_value_type_code
38566         , p_transaction_coa_id      => l_adr_transaction_coa_id
38567         , p_accounting_coa_id       => l_adr_accounting_coa_id
38568         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
38569         , p_flex_value_set_id       => l_adr_flex_value_set_id
38570         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
38571         , p_adr_type_code           => 'S'
38572         , p_component_type          => l_component_type
38573         , p_component_code          => l_component_code
38574         , p_component_type_code     => l_component_type_code
38575         , p_component_appl_id       => l_component_appl_id
38576         , p_amb_context_code        => l_amb_context_code
38580         );
38577         , p_entity_code             => 'AP_PAYMENTS'
38578         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
38579         , p_side                    => 'NA'
38581 
38582   END IF;
38583 
38584    --
38585    --
38586    END IF;
38587    --
38588    -- Bug 4922099
38589    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
38590           (NVL(l_enc_upg_option, 'N') = 'O')
38591         ) AND
38592         (l_bflow_method_code = 'PRIOR_ENTRY')
38593       )
38594    THEN
38595       IF
38596       --
38597       1 = 2
38598       --
38599       THEN
38600       xla_accounting_err_pkg.build_message
38601                                     (p_appli_s_name            => 'XLA'
38602                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38603                                     ,p_token_1                 => 'LINE_NUMBER'
38604                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
38605                                     ,p_token_2                 => 'LINE_TYPE_NAME'
38606                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
38607                                                                              l_component_type
38608                                                                             ,l_component_code
38609                                                                             ,l_component_type_code
38610                                                                             ,l_component_appl_id
38611                                                                             ,l_amb_context_code
38612                                                                             ,l_entity_code
38613                                                                             ,l_event_class_code
38614                                                                            )
38615                                     ,p_token_3                 => 'OWNER'
38616                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
38617                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
38618                                                                           ,p_lookup_code    => l_component_type_code
38619                                                                          )
38620                                     ,p_token_4                 => 'PRODUCT_NAME'
38621                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
38622                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
38623                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
38624                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
38625                                     ,p_ae_header_id            =>  NULL
38626                                        );
38627 
38628         IF (C_LEVEL_ERROR>= g_log_level) THEN
38629                  trace
38630                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38631                       ,p_level    => C_LEVEL_ERROR
38632                       ,p_module   => l_log_module);
38633         END IF;
38634       END IF;
38635    END IF;
38636    --
38637    --
38638    ------------------------------------------------------------------------------------------------
38639    -- 4219869 Business Flow
38640    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
38641    -- Prior Entry.  Currently, the following code is always generated.
38642    ------------------------------------------------------------------------------------------------
38643    XLA_AE_LINES_PKG.ValidateCurrentLine;
38644 
38645    ------------------------------------------------------------------------------------
38646    -- 4219869 Business Flow
38647    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
38648    ------------------------------------------------------------------------------------
38649    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38650 
38651    ----------------------------------------------------------------------------------
38652    -- 4219869 Business Flow
38653    -- Update journal entry status -- Need to generate this within IF <condition>
38654    ----------------------------------------------------------------------------------
38655    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38656          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
38657          ,p_balance_type_code => l_balance_type_code
38658          );
38659 
38660    -------------------------------------------------------------------------------------------
38661    -- 4262811 - Generate the Accrual Reversal lines
38662    -------------------------------------------------------------------------------------------
38663    BEGIN
38664       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
38665                               (g_array_event(p_event_id).array_value_num('header_index'));
38666       IF l_acc_rev_flag IS NULL THEN
38667          l_acc_rev_flag := 'N';
38668       END IF;
38669    EXCEPTION
38670       WHEN OTHERS THEN
38671          l_acc_rev_flag := 'N';
38672    END;
38673    --
38674    IF (l_acc_rev_flag = 'Y') THEN
38675 
38676        -- 4645092  ------------------------------------------------------------------------------
38677        -- To allow MPA report to determine if it should generate report process
38681        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
38678        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
38679        ------------------------------------------------------------------------------------------
38680 
38682        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
38683    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
38684    -- call ADRs
38685    -- Bug 4922099
38686    --
38687    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38688         (NVL(l_actual_upg_option, 'N') = 'O') OR
38689         (NVL(l_enc_upg_option, 'N') = 'O')
38690       )
38691    THEN
38692    NULL;
38693    --
38694    --
38695    
38696    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
38697      p_code_combination_id      => TO_NUMBER(C_NUM)
38698    , p_value_type_code          => NULL
38699    , p_transaction_coa_id       => null
38700    , p_accounting_coa_id        => null
38701    , p_adr_code                 => NULL
38702    , p_adr_type_code            => NULL
38703    , p_component_type           => l_component_type
38704    , p_component_code           => l_component_code
38705    , p_component_type_code      => l_component_type_code
38706    , p_component_appl_id        => l_component_appl_id
38707    , p_amb_context_code         => l_amb_context_code
38708    , p_side                     => NULL
38709    );
38710 
38711    
38712   -- initialise segments
38713   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38714   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38715   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38716   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38717   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38718   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38719   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38720   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38721   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
38722   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38723   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38724   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38725   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38726   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38727   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38728   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38729   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38730   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38731   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38732   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38733   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38734   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38735   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38736   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38737   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38738   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38739   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38740   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38741   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38742   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
38743   --
38744 
38745    --
38746 
38747 
38748    l_segment := AcctDerRule_6(
38749            p_application_id           => p_application_id
38750          , p_ae_header_id             => l_ae_header_id 
38751 , p_source_17 => p_source_17
38752          , x_transaction_coa_id       => l_adr_transaction_coa_id
38753          , x_accounting_coa_id        => l_adr_accounting_coa_id
38754          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
38755          , x_flex_value_set_id        => l_adr_flex_value_set_id
38756          , x_value_type_code          => l_adr_value_type_code
38757          , x_value_combination_id     => l_adr_value_combination_id
38758          , x_value_segment_code       => l_adr_value_segment_code
38759          , p_side                     => 'NA'
38760          , p_override_seg_flag        => 'Y'
38761    );
38762 
38763    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
38764 
38765       xla_ae_lines_pkg.set_segment(
38766           p_to_segment_code         => 'GL_ACCOUNT'
38767         , p_segment_value           => l_segment
38768         , p_from_segment_code       => l_adr_value_segment_code
38769         , p_from_combination_id     => l_adr_value_combination_id
38770         , p_value_type_code         => l_adr_value_type_code
38771         , p_transaction_coa_id      => l_adr_transaction_coa_id
38772         , p_accounting_coa_id       => l_adr_accounting_coa_id
38773         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
38777         , p_component_type          => l_component_type
38774         , p_flex_value_set_id       => l_adr_flex_value_set_id
38775         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
38776         , p_adr_type_code           => 'S'
38778         , p_component_code          => l_component_code
38779         , p_component_type_code     => l_component_type_code
38780         , p_component_appl_id       => l_component_appl_id
38781         , p_amb_context_code        => l_amb_context_code
38782         , p_entity_code             => 'AP_PAYMENTS'
38783         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
38784         , p_side                    => 'NA'
38785         );
38786 
38787   END IF;
38788 
38789    --
38790    --
38791    END IF;
38792 
38793        --
38794        -- Update the line information that should be overwritten
38795        --
38796        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
38797                                          p_header_num   => 1);
38798        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
38799 
38800        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
38801 
38802        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
38803           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
38804        END IF;
38805 
38806       --
38807       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
38808       --
38809       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
38810           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
38811       ELSE
38812           ---------------------------------------------------------------------------------------------------
38813           -- 4262811a Switch Sign
38814           ---------------------------------------------------------------------------------------------------
38815           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
38816           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38817                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38818           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38819                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38820           -- 5132302
38821           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
38822                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38823 
38824       END IF;
38825 
38826       -- 4955764
38827       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38828       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
38829 
38830 
38831       XLA_AE_LINES_PKG.ValidateCurrentLine;
38832       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38833 
38834       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38835                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
38836                ,p_balance_type_code => l_balance_type_code);
38837 
38838    END IF;
38839 
38840    -----------------------------------------------------------------------------------------
38841    -- 4262811 Multiperiod Accounting
38842    -----------------------------------------------------------------------------------------
38843      -- No MPA option is assigned.
38844 
38845 
38846 END IF;
38847 END IF;
38848 --
38849 
38850 --
38851 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38852    trace
38853       (p_msg      => 'END of AcctLineType_89'
38854       ,p_level    => C_LEVEL_PROCEDURE
38855       ,p_module   => l_log_module);
38856 END IF;
38857 --
38858 EXCEPTION
38859   WHEN xla_exceptions_pkg.application_exception THEN
38860       RAISE;
38861   WHEN OTHERS THEN
38862        xla_exceptions_pkg.raise_message
38863            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_89');
38864 END AcctLineType_89;
38865 --
38866 
38867 ---------------------------------------
38868 --
38869 -- PRIVATE FUNCTION
38870 --         AcctLineType_90
38871 --
38872 ---------------------------------------
38873 PROCEDURE AcctLineType_90 (
38874   p_application_id        IN NUMBER
38875  ,p_event_id              IN NUMBER
38876  ,p_calculate_acctd_flag  IN VARCHAR2
38877  ,p_calculate_g_l_flag    IN VARCHAR2
38878  ,p_actual_flag           IN OUT VARCHAR2
38879  ,p_balance_type_code     OUT VARCHAR2
38880  ,p_gain_or_loss_ref      OUT VARCHAR2
38881  
38882 --Payment Currency Code
38883  , p_source_13            IN VARCHAR2
38884 --Automatic Offsets Value
38885  , p_source_15            IN VARCHAR2
38886  , p_source_15_meaning    IN VARCHAR2
38887 --Bank Cash Account
38888  , p_source_17            IN NUMBER
38889 --Accounting Reversal Indicator
38890  , p_source_53            IN VARCHAR2
38891 --Distribution Link Type
38892  , p_source_55            IN VARCHAR2
38893 --Override Accounted Amount Indicator
38894  , p_source_80            IN VARCHAR2
38895  , p_source_80_meaning    IN VARCHAR2
38896 --Third Party Type
38900 --When to Account for Payment Option
38897  , p_source_83            IN VARCHAR2
38898 --Business Flow Accounts Payable Application Identifier
38899  , p_source_91            IN NUMBER
38901  , p_source_97            IN VARCHAR2
38902 --Payment Distribution Type
38903  , p_source_98            IN VARCHAR2
38904  , p_source_98_meaning    IN VARCHAR2
38905 --Payment Distribution Amount
38906  , p_source_99            IN NUMBER
38907 --Business Flow Payment Distribution Type
38908  , p_source_100            IN VARCHAR2
38909 --Business Flow Payment Entity Code
38910  , p_source_101            IN VARCHAR2
38911 --Business Flow Payment Distribution Identifier
38912  , p_source_102            IN NUMBER
38913 --Business Flow Payment Identifier
38914  , p_source_103            IN NUMBER
38915 --Payment Distribution Identifier
38916  , p_source_104            IN NUMBER
38917 --Payment Supplier Identifier
38918  , p_source_110            IN NUMBER
38919 --Payment Supplier Site Identifier
38920  , p_source_111            IN NUMBER
38921 --Payment Distribution Reversed Identifier
38922  , p_source_112            IN NUMBER
38923 --Pooled Bank Account Option
38924  , p_source_113            IN VARCHAR2
38925  , p_source_113_meaning    IN VARCHAR2
38926 --Payment Maturity Date
38927  , p_source_114            IN DATE
38928 --Payment Exchange Date
38929  , p_source_117            IN DATE
38930 --Payment Exchange Rate
38931  , p_source_118            IN NUMBER
38932 --Payment Exchange Rate Type
38933  , p_source_119            IN VARCHAR2
38934 --Payment Distribution (Matured Rate) Ledger Amount
38935  , p_source_121            IN NUMBER
38936 )
38937 IS
38938 
38939 l_component_type              VARCHAR2(80);
38940 l_component_code              VARCHAR2(30);
38941 l_component_type_code         VARCHAR2(1);
38942 l_component_appl_id           INTEGER;
38943 l_amb_context_code            VARCHAR2(30);
38944 l_entity_code                 VARCHAR2(30);
38945 l_event_class_code            VARCHAR2(30);
38946 l_ae_header_id                NUMBER;
38947 l_event_type_code             VARCHAR2(30);
38948 l_line_definition_code        VARCHAR2(30);
38949 l_line_definition_owner_code  VARCHAR2(1);
38950 --
38951 -- adr variables
38952 l_segment                     VARCHAR2(30);
38953 l_ccid                        NUMBER;
38954 l_adr_transaction_coa_id      NUMBER;
38955 l_adr_accounting_coa_id       NUMBER;
38956 l_adr_flexfield_segment_code  VARCHAR2(30);
38957 l_adr_flex_value_set_id       NUMBER;
38958 l_adr_value_type_code         VARCHAR2(30);
38959 l_adr_value_combination_id    NUMBER;
38960 l_adr_value_segment_code      VARCHAR2(30);
38961 
38962 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
38963 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
38964 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
38965 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
38966 
38967 -- 4262811 Variables ------------------------------------------------------------------------------------------
38968 l_entered_amt_idx             NUMBER;
38969 l_accted_amt_idx              NUMBER;
38970 l_acc_rev_flag                VARCHAR2(1);
38971 l_accrual_line_num            NUMBER;
38972 l_tmp_amt                     NUMBER;
38973 l_acc_rev_natural_side_code   VARCHAR2(1);
38974 
38975 l_num_entries                 NUMBER;
38976 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
38977 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
38978 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
38979 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
38980 l_recog_line_1                NUMBER;
38981 l_recog_line_2                NUMBER;
38982 
38983 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
38984 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
38985 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
38986 
38987 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
38988 
38989 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
38990 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
38991 
38992 ---------------------------------------------------------------------------------------------------------------
38993 
38994 
38995 --
38996 -- bulk performance
38997 --
38998 l_balance_type_code           VARCHAR2(1);
38999 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
39000 l_log_module                  VARCHAR2(240);
39001 
39002 --
39003 -- Upgrade strategy
39004 --
39005 l_actual_upg_option           VARCHAR2(1);
39006 l_enc_upg_option           VARCHAR2(1);
39007 
39008 --
39009 BEGIN
39010 --
39011 IF g_log_enabled THEN
39012       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_90';
39013 END IF;
39014 --
39015 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39016 
39017       trace
39018          (p_msg      => 'BEGIN of AcctLineType_90'
39019          ,p_level    => C_LEVEL_PROCEDURE
39020          ,p_module   => l_log_module);
39021 
39022 END IF;
39023 --
39024 l_component_type             := 'AMB_JLT';
39025 l_component_code             := 'AP_CASH_PMT_MAT_AOS_BS';
39026 l_component_type_code        := 'S';
39027 l_component_appl_id          :=  200;
39028 l_amb_context_code           := 'DEFAULT';
39032 l_line_definition_owner_code := 'S';
39029 l_entity_code                := 'AP_PAYMENTS';
39030 l_event_class_code           := 'FUTURE DATED PAYMENTS';
39031 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
39033 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
39034 --
39035 l_balance_type_code          := 'A';
39036 l_segment                     := NULL;
39037 l_ccid                        := NULL;
39038 l_adr_transaction_coa_id      := NULL;
39039 l_adr_accounting_coa_id       := NULL;
39040 l_adr_flexfield_segment_code  := NULL;
39041 l_adr_flex_value_set_id       := NULL;
39042 l_adr_value_type_code         := NULL;
39043 l_adr_value_combination_id    := NULL;
39044 l_adr_value_segment_code      := NULL;
39045 
39046 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
39047 l_bflow_class_code           := '';    -- 4219869 Business Flow
39048 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
39049 l_budgetary_control_flag     := 'N';
39050 
39051 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
39052 l_bflow_applied_to_amt       := NULL; -- 5132302
39053 l_entered_amt_idx            := NULL;          -- 4262811
39054 l_accted_amt_idx             := NULL;          -- 4262811
39055 l_acc_rev_flag               := NULL;          -- 4262811
39056 l_accrual_line_num           := NULL;          -- 4262811
39057 l_tmp_amt                    := NULL;          -- 4262811
39058 --
39059  
39060 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
39061     l_balance_type_code <> 'B' THEN
39062 IF NVL(p_source_97,'
39063 ') =  'ISSUE_ISSUE' AND 
39064 (NVL(p_source_113,'
39065 ') =  'Y' AND 
39066 NVL(p_source_15,'
39067 ') =  'BALANCING_SEGMENT') AND 
39068 p_source_114 IS NOT NULL AND 
39069 NVL(p_source_98,'
39070 ') =  'CASH'
39071  THEN 
39072 
39073    --
39074    XLA_AE_LINES_PKG.SetNewLine;
39075 
39076    p_balance_type_code          := l_balance_type_code;
39077    -- set the flag so later we will know whether the gain loss line needs to be created
39078    
39079    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
39080      p_actual_flag :='A';
39081    END IF;
39082 
39083    --
39084    -- bulk performance
39085    --
39086    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
39087                                       p_header_num   => 0); -- 4262811
39088    --
39089    -- set accounting line options
39090    --
39091    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
39092            p_natural_side_code          => 'C'
39093          , p_gain_or_loss_flag          => 'N'
39094          , p_gl_transfer_mode_code      => 'S'
39095          , p_acct_entry_type_code       => 'A'
39096          , p_switch_side_flag           => 'Y'
39097          , p_merge_duplicate_code       => 'A'
39098          );
39099    --
39100    l_acc_rev_natural_side_code := 'D';  -- 4262811
39101    -- 
39102    --
39103    -- set accounting line type info
39104    --
39105    xla_ae_lines_pkg.SetAcctLineType
39106       (p_component_type             => l_component_type
39107       ,p_event_type_code            => l_event_type_code
39108       ,p_line_definition_owner_code => l_line_definition_owner_code
39109       ,p_line_definition_code       => l_line_definition_code
39110       ,p_accounting_line_code       => l_component_code
39111       ,p_accounting_line_type_code  => l_component_type_code
39112       ,p_accounting_line_appl_id    => l_component_appl_id
39113       ,p_amb_context_code           => l_amb_context_code
39114       ,p_entity_code                => l_entity_code
39115       ,p_event_class_code           => l_event_class_code);
39116    --
39117    -- set accounting class
39118    --
39119    xla_ae_lines_pkg.SetAcctClass(
39120            p_accounting_class_code  => 'CASH'
39121          , p_ae_header_id           => l_ae_header_id
39122          );
39123 
39124    --
39125    -- set rounding class
39126    --
39127    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
39128                       'CASH';
39129 
39130    --
39131    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
39132    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
39133    --
39134    -- bulk performance
39135    --
39136    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
39137 
39138    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
39139       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
39140 
39141    -- 4955764
39142    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39143       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
39144 
39145    -- 4458381 Public Sector Enh
39146    
39147    --
39148    -- set accounting attributes for the line type
39149    --
39150    l_entered_amt_idx := 9;
39151    l_accted_amt_idx  := 14;
39152    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
39153    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
39154    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
39158    l_rec_acct_attrs.array_char_value(3)  := p_source_100;
39155    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
39156    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
39157    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
39159    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
39160    l_rec_acct_attrs.array_char_value(4)  := p_source_101;
39161    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
39162    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_102);
39163    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
39164    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_103);
39165    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
39166    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
39167    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
39168    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
39169    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
39170    l_rec_acct_attrs.array_num_value(9)  := p_source_99;
39171    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
39172    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
39173    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
39174    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
39175    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
39176    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
39177    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
39178    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
39179    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
39180    l_rec_acct_attrs.array_num_value(14)  := p_source_121;
39181    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
39182    l_rec_acct_attrs.array_char_value(15)  := p_source_80;
39183    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
39184    l_rec_acct_attrs.array_num_value(16)  := p_source_110;
39185    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
39186    l_rec_acct_attrs.array_num_value(17)  := p_source_111;
39187    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
39188    l_rec_acct_attrs.array_char_value(18)  := p_source_83;
39189    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
39190    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_112);
39191    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
39192    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
39193 
39194    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
39195    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
39196 
39197    ---------------------------------------------------------------------------------------------------------------
39198    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
39199    ---------------------------------------------------------------------------------------------------------------
39200    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
39201 
39202    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39203    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39204 
39205    IF xla_accounting_cache_pkg.GetValueChar
39206          (p_source_code         => 'LEDGER_CATEGORY_CODE'
39207          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
39208    AND l_bflow_method_code = 'PRIOR_ENTRY'
39209 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
39210    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
39211          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
39212        )
39213    THEN
39214          xla_ae_lines_pkg.BflowUpgEntry
39215            (p_business_method_code    => l_bflow_method_code
39216            ,p_business_class_code     => l_bflow_class_code
39217            ,p_balance_type            => l_balance_type_code);
39218    ELSE
39219       NULL;
39220 XLA_AE_LINES_PKG.business_flow_validation(
39221                                 p_business_method_code     => l_bflow_method_code
39222                                ,p_business_class_code      => l_bflow_class_code
39223                                ,p_inherit_description_flag => l_inherit_desc_flag);
39224    END IF;
39225 
39226    --
39227    -- call analytical criteria
39228    --
39229    
39230    --
39231    -- call description
39232    --
39233    -- No description or it is inherited.
39234    --
39235    -- call ADRs
39236    -- Bug 4922099
39237    --
39238    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39239         (NVL(l_actual_upg_option, 'N') = 'O') OR
39240         (NVL(l_enc_upg_option, 'N') = 'O')
39241       )
39242    THEN
39243    NULL;
39244    --
39245    --
39246    
39247   l_ccid := AcctDerRule_28(
39248            p_application_id           => p_application_id
39249          , p_ae_header_id             => l_ae_header_id 
39250 , p_source_17 => p_source_17
39251          , x_transaction_coa_id       => l_adr_transaction_coa_id
39252          , x_accounting_coa_id        => l_adr_accounting_coa_id
39253          , x_value_type_code          => l_adr_value_type_code
39254          , p_side                     => 'NA'
39255    );
39256 
39257    xla_ae_lines_pkg.set_ccid(
39261   , p_accounting_coa_id            => l_adr_accounting_coa_id
39258     p_code_combination_id          => l_ccid
39259   , p_value_type_code              => l_adr_value_type_code
39260   , p_transaction_coa_id           => l_adr_transaction_coa_id
39262   , p_adr_code                     => 'AP_CASH'
39263   , p_adr_type_code                => 'S'
39264   , p_component_type               => l_component_type
39265   , p_component_code               => l_component_code
39266   , p_component_type_code          => l_component_type_code
39267   , p_component_appl_id            => l_component_appl_id
39268   , p_amb_context_code             => l_amb_context_code
39269   , p_side                         => 'NA'
39270   );
39271 
39272 
39273    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
39274      p_to_segment_code         => 'GL_BALANCING'
39275    , p_segment_value           => C_CHAR
39276    , p_from_segment_code       => NULL
39277    , p_from_combination_id     => NULL
39278    , p_value_type_code         => NULL
39279    , p_transaction_coa_id      => null
39280    , p_accounting_coa_id       => null
39281    , p_flexfield_segment_code  => NULL
39282    , p_flex_value_set_id       => NULL
39283    , p_adr_code                => NULL
39284    , p_adr_type_code           => NULL
39285    , p_component_type          => l_component_type
39286    , p_component_code          => l_component_code
39287    , p_component_type_code     => l_component_type_code
39288    , p_component_appl_id       => l_component_appl_id
39289    , p_amb_context_code        => l_amb_context_code
39290    , p_entity_code             => 'AP_PAYMENTS'
39291    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
39292    , p_side                    => 'NA'
39293    );
39294    --
39295 
39296 
39297    --
39298    --
39299    END IF;
39300    --
39301    -- Bug 4922099
39302    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
39303           (NVL(l_enc_upg_option, 'N') = 'O')
39304         ) AND
39305         (l_bflow_method_code = 'PRIOR_ENTRY')
39306       )
39307    THEN
39308       IF
39309       --
39310       1 = 2
39311       --
39312       THEN
39313       xla_accounting_err_pkg.build_message
39314                                     (p_appli_s_name            => 'XLA'
39315                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39316                                     ,p_token_1                 => 'LINE_NUMBER'
39317                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
39318                                     ,p_token_2                 => 'LINE_TYPE_NAME'
39319                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
39320                                                                              l_component_type
39321                                                                             ,l_component_code
39322                                                                             ,l_component_type_code
39323                                                                             ,l_component_appl_id
39324                                                                             ,l_amb_context_code
39325                                                                             ,l_entity_code
39326                                                                             ,l_event_class_code
39327                                                                            )
39328                                     ,p_token_3                 => 'OWNER'
39329                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
39330                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
39331                                                                           ,p_lookup_code    => l_component_type_code
39332                                                                          )
39333                                     ,p_token_4                 => 'PRODUCT_NAME'
39334                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
39335                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
39336                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
39337                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
39338                                     ,p_ae_header_id            =>  NULL
39339                                        );
39340 
39341         IF (C_LEVEL_ERROR>= g_log_level) THEN
39342                  trace
39343                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39344                       ,p_level    => C_LEVEL_ERROR
39345                       ,p_module   => l_log_module);
39346         END IF;
39347       END IF;
39348    END IF;
39349    --
39350    --
39351    ------------------------------------------------------------------------------------------------
39352    -- 4219869 Business Flow
39353    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
39354    -- Prior Entry.  Currently, the following code is always generated.
39355    ------------------------------------------------------------------------------------------------
39356    XLA_AE_LINES_PKG.ValidateCurrentLine;
39357 
39358    ------------------------------------------------------------------------------------
39362    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39359    -- 4219869 Business Flow
39360    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
39361    ------------------------------------------------------------------------------------
39363 
39364    ----------------------------------------------------------------------------------
39365    -- 4219869 Business Flow
39366    -- Update journal entry status -- Need to generate this within IF <condition>
39367    ----------------------------------------------------------------------------------
39368    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39369          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
39370          ,p_balance_type_code => l_balance_type_code
39371          );
39372 
39373    -------------------------------------------------------------------------------------------
39374    -- 4262811 - Generate the Accrual Reversal lines
39375    -------------------------------------------------------------------------------------------
39376    BEGIN
39377       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
39378                               (g_array_event(p_event_id).array_value_num('header_index'));
39379       IF l_acc_rev_flag IS NULL THEN
39380          l_acc_rev_flag := 'N';
39381       END IF;
39382    EXCEPTION
39383       WHEN OTHERS THEN
39384          l_acc_rev_flag := 'N';
39385    END;
39386    --
39387    IF (l_acc_rev_flag = 'Y') THEN
39388 
39389        -- 4645092  ------------------------------------------------------------------------------
39390        -- To allow MPA report to determine if it should generate report process
39391        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
39392        ------------------------------------------------------------------------------------------
39393 
39394        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
39395        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
39396    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
39397    -- call ADRs
39398    -- Bug 4922099
39399    --
39400    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39401         (NVL(l_actual_upg_option, 'N') = 'O') OR
39402         (NVL(l_enc_upg_option, 'N') = 'O')
39403       )
39404    THEN
39405    NULL;
39406    --
39407    --
39408    
39409   l_ccid := AcctDerRule_28(
39410            p_application_id           => p_application_id
39411          , p_ae_header_id             => l_ae_header_id 
39412 , p_source_17 => p_source_17
39413          , x_transaction_coa_id       => l_adr_transaction_coa_id
39414          , x_accounting_coa_id        => l_adr_accounting_coa_id
39415          , x_value_type_code          => l_adr_value_type_code
39416          , p_side                     => 'NA'
39417    );
39418 
39419    xla_ae_lines_pkg.set_ccid(
39420     p_code_combination_id          => l_ccid
39421   , p_value_type_code              => l_adr_value_type_code
39422   , p_transaction_coa_id           => l_adr_transaction_coa_id
39423   , p_accounting_coa_id            => l_adr_accounting_coa_id
39424   , p_adr_code                     => 'AP_CASH'
39425   , p_adr_type_code                => 'S'
39426   , p_component_type               => l_component_type
39427   , p_component_code               => l_component_code
39428   , p_component_type_code          => l_component_type_code
39429   , p_component_appl_id            => l_component_appl_id
39430   , p_amb_context_code             => l_amb_context_code
39431   , p_side                         => 'NA'
39432   );
39433 
39434 
39435    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
39436      p_to_segment_code         => 'GL_BALANCING'
39437    , p_segment_value           => C_CHAR
39438    , p_from_segment_code       => NULL
39439    , p_from_combination_id     => NULL
39440    , p_value_type_code         => NULL
39441    , p_transaction_coa_id      => null
39442    , p_accounting_coa_id       => null
39443    , p_flexfield_segment_code  => NULL
39444    , p_flex_value_set_id       => NULL
39445    , p_adr_code                => NULL
39446    , p_adr_type_code           => NULL
39447    , p_component_type          => l_component_type
39448    , p_component_code          => l_component_code
39449    , p_component_type_code     => l_component_type_code
39450    , p_component_appl_id       => l_component_appl_id
39451    , p_amb_context_code        => l_amb_context_code
39452    , p_entity_code             => 'AP_PAYMENTS'
39453    , p_event_class_code        => 'FUTURE DATED PAYMENTS'
39454    , p_side                    => 'NA'
39455    );
39456    --
39457 
39458 
39459    --
39460    --
39461    END IF;
39462 
39463        --
39464        -- Update the line information that should be overwritten
39465        --
39466        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
39467                                          p_header_num   => 1);
39468        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
39469 
39470        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
39471 
39472        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
39473           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
39474        END IF;
39475 
39476       --
39477       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
39478       --
39482           ---------------------------------------------------------------------------------------------------
39479       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
39480           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
39481       ELSE
39483           -- 4262811a Switch Sign
39484           ---------------------------------------------------------------------------------------------------
39485           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
39486           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39487                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39488           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39489                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39490           -- 5132302
39491           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
39492                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39493 
39494       END IF;
39495 
39496       -- 4955764
39497       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39498       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
39499 
39500 
39501       XLA_AE_LINES_PKG.ValidateCurrentLine;
39502       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39503 
39504       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39505                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
39506                ,p_balance_type_code => l_balance_type_code);
39507 
39508    END IF;
39509 
39510    -----------------------------------------------------------------------------------------
39511    -- 4262811 Multiperiod Accounting
39512    -----------------------------------------------------------------------------------------
39513      -- No MPA option is assigned.
39514 
39515 
39516 END IF;
39517 END IF;
39518 --
39519 
39520 --
39521 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39522    trace
39523       (p_msg      => 'END of AcctLineType_90'
39524       ,p_level    => C_LEVEL_PROCEDURE
39525       ,p_module   => l_log_module);
39526 END IF;
39527 --
39528 EXCEPTION
39529   WHEN xla_exceptions_pkg.application_exception THEN
39530       RAISE;
39531   WHEN OTHERS THEN
39532        xla_exceptions_pkg.raise_message
39533            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_90');
39534 END AcctLineType_90;
39535 --
39536 
39537 ---------------------------------------
39538 --
39539 -- PRIVATE FUNCTION
39540 --         AcctLineType_91
39541 --
39542 ---------------------------------------
39543 PROCEDURE AcctLineType_91 (
39544   p_application_id        IN NUMBER
39545  ,p_event_id              IN NUMBER
39546  ,p_calculate_acctd_flag  IN VARCHAR2
39547  ,p_calculate_g_l_flag    IN VARCHAR2
39548  ,p_actual_flag           IN OUT VARCHAR2
39549  ,p_balance_type_code     OUT VARCHAR2
39550  ,p_gain_or_loss_ref      OUT VARCHAR2
39551  
39552 --Payment Currency Code
39553  , p_source_13            IN VARCHAR2
39554 --Bank Cash Account
39555  , p_source_17            IN NUMBER
39556 --Automatic Offsets Flag
39557  , p_source_47            IN VARCHAR2
39558  , p_source_47_meaning    IN VARCHAR2
39559 --Accounting Reversal Indicator
39560  , p_source_53            IN VARCHAR2
39561 --Distribution Link Type
39562  , p_source_55            IN VARCHAR2
39563 --Override Accounted Amount Indicator
39564  , p_source_80            IN VARCHAR2
39565  , p_source_80_meaning    IN VARCHAR2
39566 --Third Party Type
39567  , p_source_83            IN VARCHAR2
39568 --Invoice Distribution Tax Line Identifier
39569  , p_source_86            IN NUMBER
39570 --Invoice Distribution Tax Distribution Identifier from Tax
39571  , p_source_87            IN NUMBER
39572 --Invoice Distribution Summary Tax Line Identifier
39573  , p_source_88            IN NUMBER
39574 --Business Flow Accounts Payable Application Identifier
39575  , p_source_91            IN NUMBER
39576 --Business Flow Invoice Distribution Type
39577  , p_source_92            IN VARCHAR2
39578 --Business Flow Invoice Entity Code
39579  , p_source_93            IN VARCHAR2
39580 --Business Flow Invoice Distribution Identifier
39581  , p_source_94            IN NUMBER
39582 --Business Flow Invoice Identifier
39583  , p_source_95            IN NUMBER
39584 --When to Account for Payment Option
39585  , p_source_97            IN VARCHAR2
39586 --Payment Distribution Type
39587  , p_source_98            IN VARCHAR2
39588  , p_source_98_meaning    IN VARCHAR2
39589 --Payment Distribution Amount
39590  , p_source_99            IN NUMBER
39591 --Payment Distribution Identifier
39592  , p_source_104            IN NUMBER
39593 --Payment Supplier Identifier
39594  , p_source_110            IN NUMBER
39595 --Payment Supplier Site Identifier
39596  , p_source_111            IN NUMBER
39597 --Payment Distribution Reversed Identifier
39598  , p_source_112            IN NUMBER
39599 --Pooled Bank Account Option
39600  , p_source_113            IN VARCHAR2
39601  , p_source_113_meaning    IN VARCHAR2
39602 --Payment Maturity Date
39603  , p_source_114            IN DATE
39607  , p_source_117            IN DATE
39604 --Payment Distribution (Payment Rate) Ledger Amount
39605  , p_source_115            IN NUMBER
39606 --Payment Exchange Date
39608 --Payment Exchange Rate
39609  , p_source_118            IN NUMBER
39610 --Payment Exchange Rate Type
39611  , p_source_119            IN VARCHAR2
39612 --Payment Type
39613  , p_source_122            IN VARCHAR2
39614  , p_source_122_meaning    IN VARCHAR2
39615 )
39616 IS
39617 
39618 l_component_type              VARCHAR2(80);
39619 l_component_code              VARCHAR2(30);
39620 l_component_type_code         VARCHAR2(1);
39621 l_component_appl_id           INTEGER;
39622 l_amb_context_code            VARCHAR2(30);
39623 l_entity_code                 VARCHAR2(30);
39624 l_event_class_code            VARCHAR2(30);
39625 l_ae_header_id                NUMBER;
39626 l_event_type_code             VARCHAR2(30);
39627 l_line_definition_code        VARCHAR2(30);
39628 l_line_definition_owner_code  VARCHAR2(1);
39629 --
39630 -- adr variables
39631 l_segment                     VARCHAR2(30);
39632 l_ccid                        NUMBER;
39633 l_adr_transaction_coa_id      NUMBER;
39634 l_adr_accounting_coa_id       NUMBER;
39635 l_adr_flexfield_segment_code  VARCHAR2(30);
39636 l_adr_flex_value_set_id       NUMBER;
39637 l_adr_value_type_code         VARCHAR2(30);
39638 l_adr_value_combination_id    NUMBER;
39639 l_adr_value_segment_code      VARCHAR2(30);
39640 
39641 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
39642 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
39643 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
39644 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
39645 
39646 -- 4262811 Variables ------------------------------------------------------------------------------------------
39647 l_entered_amt_idx             NUMBER;
39648 l_accted_amt_idx              NUMBER;
39649 l_acc_rev_flag                VARCHAR2(1);
39650 l_accrual_line_num            NUMBER;
39651 l_tmp_amt                     NUMBER;
39652 l_acc_rev_natural_side_code   VARCHAR2(1);
39653 
39654 l_num_entries                 NUMBER;
39655 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
39656 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
39657 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
39658 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
39659 l_recog_line_1                NUMBER;
39660 l_recog_line_2                NUMBER;
39661 
39662 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
39663 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
39664 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
39665 
39666 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
39667 
39668 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
39669 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
39670 
39671 ---------------------------------------------------------------------------------------------------------------
39672 
39673 
39674 --
39675 -- bulk performance
39676 --
39677 l_balance_type_code           VARCHAR2(1);
39678 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
39679 l_log_module                  VARCHAR2(240);
39680 
39681 --
39682 -- Upgrade strategy
39683 --
39684 l_actual_upg_option           VARCHAR2(1);
39685 l_enc_upg_option           VARCHAR2(1);
39686 
39687 --
39688 BEGIN
39689 --
39690 IF g_log_enabled THEN
39691       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_91';
39692 END IF;
39693 --
39694 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39695 
39696       trace
39697          (p_msg      => 'BEGIN of AcctLineType_91'
39698          ,p_level    => C_LEVEL_PROCEDURE
39699          ,p_module   => l_log_module);
39700 
39701 END IF;
39702 --
39703 l_component_type             := 'AMB_JLT';
39704 l_component_code             := 'AP_CASH_REF';
39705 l_component_type_code        := 'S';
39706 l_component_appl_id          :=  200;
39707 l_amb_context_code           := 'DEFAULT';
39708 l_entity_code                := 'AP_PAYMENTS';
39709 l_event_class_code           := 'REFUNDS';
39710 l_event_type_code            := 'REFUNDS_ALL';
39711 l_line_definition_owner_code := 'S';
39712 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
39713 --
39714 l_balance_type_code          := 'A';
39715 l_segment                     := NULL;
39716 l_ccid                        := NULL;
39717 l_adr_transaction_coa_id      := NULL;
39718 l_adr_accounting_coa_id       := NULL;
39719 l_adr_flexfield_segment_code  := NULL;
39720 l_adr_flex_value_set_id       := NULL;
39721 l_adr_value_type_code         := NULL;
39722 l_adr_value_combination_id    := NULL;
39723 l_adr_value_segment_code      := NULL;
39724 
39725 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
39726 l_bflow_class_code           := '';    -- 4219869 Business Flow
39727 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
39728 l_budgetary_control_flag     := 'N';
39729 
39730 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
39731 l_bflow_applied_to_amt       := NULL; -- 5132302
39732 l_entered_amt_idx            := NULL;          -- 4262811
39733 l_accted_amt_idx             := NULL;          -- 4262811
39737 --
39734 l_acc_rev_flag               := NULL;          -- 4262811
39735 l_accrual_line_num           := NULL;          -- 4262811
39736 l_tmp_amt                    := NULL;          -- 4262811
39738  
39739 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
39740     l_balance_type_code <> 'B' THEN
39741 IF NVL(p_source_97,'
39742 ') =  'ISSUE_ISSUE' AND 
39743 (NVL(p_source_47,'
39744 ') <>  'Y' OR 
39745 NVL(p_source_47,'
39746 ') =  'Y' AND 
39747 NVL(p_source_113,'
39748 ') <>  'Y') AND 
39749 p_source_114 IS NULL AND 
39750 NVL(p_source_98,'
39751 ') =  'CASH' AND 
39752 NVL(p_source_122,'
39753 ') =  'R'
39754  THEN 
39755 
39756    --
39757    XLA_AE_LINES_PKG.SetNewLine;
39758 
39759    p_balance_type_code          := l_balance_type_code;
39760    -- set the flag so later we will know whether the gain loss line needs to be created
39761    
39762    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
39763      p_actual_flag :='A';
39764    END IF;
39765 
39766    --
39767    -- bulk performance
39768    --
39769    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
39770                                       p_header_num   => 0); -- 4262811
39771    --
39772    -- set accounting line options
39773    --
39774    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
39775            p_natural_side_code          => 'C'
39776          , p_gain_or_loss_flag          => 'N'
39777          , p_gl_transfer_mode_code      => 'S'
39778          , p_acct_entry_type_code       => 'A'
39779          , p_switch_side_flag           => 'Y'
39780          , p_merge_duplicate_code       => 'A'
39781          );
39782    --
39783    l_acc_rev_natural_side_code := 'D';  -- 4262811
39784    -- 
39785    --
39786    -- set accounting line type info
39787    --
39788    xla_ae_lines_pkg.SetAcctLineType
39789       (p_component_type             => l_component_type
39790       ,p_event_type_code            => l_event_type_code
39791       ,p_line_definition_owner_code => l_line_definition_owner_code
39792       ,p_line_definition_code       => l_line_definition_code
39793       ,p_accounting_line_code       => l_component_code
39794       ,p_accounting_line_type_code  => l_component_type_code
39795       ,p_accounting_line_appl_id    => l_component_appl_id
39796       ,p_amb_context_code           => l_amb_context_code
39797       ,p_entity_code                => l_entity_code
39798       ,p_event_class_code           => l_event_class_code);
39799    --
39800    -- set accounting class
39801    --
39802    xla_ae_lines_pkg.SetAcctClass(
39803            p_accounting_class_code  => 'CASH'
39804          , p_ae_header_id           => l_ae_header_id
39805          );
39806 
39807    --
39808    -- set rounding class
39809    --
39810    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
39811                       'CASH';
39812 
39813    --
39814    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
39815    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
39816    --
39817    -- bulk performance
39818    --
39819    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
39820 
39821    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
39822       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
39823 
39824    -- 4955764
39825    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39826       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
39827 
39828    -- 4458381 Public Sector Enh
39829    
39830    --
39831    -- set accounting attributes for the line type
39832    --
39833    l_entered_amt_idx := 9;
39834    l_accted_amt_idx  := 14;
39835    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
39836    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
39837    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
39838    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
39839    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
39840    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
39841    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
39842    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
39843    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
39844    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
39845    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
39846    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
39847    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
39848    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
39849    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
39850    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
39851    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
39852    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
39853    l_rec_acct_attrs.array_num_value(9)  := p_source_99;
39854    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
39858    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
39855    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
39856    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
39857    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
39859    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
39860    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
39861    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
39862    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
39863    l_rec_acct_attrs.array_num_value(14)  := p_source_115;
39864    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
39865    l_rec_acct_attrs.array_char_value(15)  := p_source_80;
39866    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
39867    l_rec_acct_attrs.array_num_value(16)  := p_source_110;
39868    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
39869    l_rec_acct_attrs.array_num_value(17)  := p_source_111;
39870    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
39871    l_rec_acct_attrs.array_char_value(18)  := p_source_83;
39872    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
39873    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_112);
39874    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
39875    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
39876    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
39877    l_rec_acct_attrs.array_num_value(21)  := p_source_86;
39878    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
39879    l_rec_acct_attrs.array_num_value(22)  := p_source_87;
39880    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
39881    l_rec_acct_attrs.array_num_value(23)  := p_source_88;
39882 
39883    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
39884    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
39885 
39886    ---------------------------------------------------------------------------------------------------------------
39887    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
39888    ---------------------------------------------------------------------------------------------------------------
39889    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
39890 
39891    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39892    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39893 
39894    IF xla_accounting_cache_pkg.GetValueChar
39895          (p_source_code         => 'LEDGER_CATEGORY_CODE'
39896          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
39897    AND l_bflow_method_code = 'PRIOR_ENTRY'
39898 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
39899    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
39900          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
39901        )
39902    THEN
39903          xla_ae_lines_pkg.BflowUpgEntry
39904            (p_business_method_code    => l_bflow_method_code
39905            ,p_business_class_code     => l_bflow_class_code
39906            ,p_balance_type            => l_balance_type_code);
39907    ELSE
39908       NULL;
39909 -- No business flow processing for business flow method of NONE.
39910    END IF;
39911 
39912    --
39913    -- call analytical criteria
39914    --
39915    
39916    --
39917    -- call description
39918    --
39919    -- No description or it is inherited.
39920    --
39921    -- call ADRs
39922    -- Bug 4922099
39923    --
39924    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39925         (NVL(l_actual_upg_option, 'N') = 'O') OR
39926         (NVL(l_enc_upg_option, 'N') = 'O')
39927       )
39928    THEN
39929    NULL;
39930    --
39931    --
39932    
39933   l_ccid := AcctDerRule_28(
39934            p_application_id           => p_application_id
39935          , p_ae_header_id             => l_ae_header_id 
39936 , p_source_17 => p_source_17
39937          , x_transaction_coa_id       => l_adr_transaction_coa_id
39938          , x_accounting_coa_id        => l_adr_accounting_coa_id
39939          , x_value_type_code          => l_adr_value_type_code
39940          , p_side                     => 'NA'
39941    );
39942 
39943    xla_ae_lines_pkg.set_ccid(
39944     p_code_combination_id          => l_ccid
39945   , p_value_type_code              => l_adr_value_type_code
39946   , p_transaction_coa_id           => l_adr_transaction_coa_id
39947   , p_accounting_coa_id            => l_adr_accounting_coa_id
39948   , p_adr_code                     => 'AP_CASH'
39949   , p_adr_type_code                => 'S'
39950   , p_component_type               => l_component_type
39951   , p_component_code               => l_component_code
39952   , p_component_type_code          => l_component_type_code
39953   , p_component_appl_id            => l_component_appl_id
39954   , p_amb_context_code             => l_amb_context_code
39955   , p_side                         => 'NA'
39956   );
39957 
39958 
39959    --
39960    --
39961    END IF;
39962    --
39963    -- Bug 4922099
39964    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
39965           (NVL(l_enc_upg_option, 'N') = 'O')
39966         ) AND
39970       IF
39967         (l_bflow_method_code = 'PRIOR_ENTRY')
39968       )
39969    THEN
39971       --
39972       1 = 2
39973       --
39974       THEN
39975       xla_accounting_err_pkg.build_message
39976                                     (p_appli_s_name            => 'XLA'
39977                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39978                                     ,p_token_1                 => 'LINE_NUMBER'
39979                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
39980                                     ,p_token_2                 => 'LINE_TYPE_NAME'
39981                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
39982                                                                              l_component_type
39983                                                                             ,l_component_code
39984                                                                             ,l_component_type_code
39985                                                                             ,l_component_appl_id
39986                                                                             ,l_amb_context_code
39987                                                                             ,l_entity_code
39988                                                                             ,l_event_class_code
39989                                                                            )
39990                                     ,p_token_3                 => 'OWNER'
39991                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
39992                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
39993                                                                           ,p_lookup_code    => l_component_type_code
39994                                                                          )
39995                                     ,p_token_4                 => 'PRODUCT_NAME'
39996                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
39997                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
39998                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
39999                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
40000                                     ,p_ae_header_id            =>  NULL
40001                                        );
40002 
40003         IF (C_LEVEL_ERROR>= g_log_level) THEN
40004                  trace
40005                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40006                       ,p_level    => C_LEVEL_ERROR
40007                       ,p_module   => l_log_module);
40008         END IF;
40009       END IF;
40010    END IF;
40011    --
40012    --
40013    ------------------------------------------------------------------------------------------------
40014    -- 4219869 Business Flow
40015    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
40016    -- Prior Entry.  Currently, the following code is always generated.
40017    ------------------------------------------------------------------------------------------------
40018    XLA_AE_LINES_PKG.ValidateCurrentLine;
40019 
40020    ------------------------------------------------------------------------------------
40021    -- 4219869 Business Flow
40022    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
40023    ------------------------------------------------------------------------------------
40024    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40025 
40026    ----------------------------------------------------------------------------------
40027    -- 4219869 Business Flow
40028    -- Update journal entry status -- Need to generate this within IF <condition>
40029    ----------------------------------------------------------------------------------
40030    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40031          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
40032          ,p_balance_type_code => l_balance_type_code
40033          );
40034 
40035    -------------------------------------------------------------------------------------------
40036    -- 4262811 - Generate the Accrual Reversal lines
40037    -------------------------------------------------------------------------------------------
40038    BEGIN
40039       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
40040                               (g_array_event(p_event_id).array_value_num('header_index'));
40041       IF l_acc_rev_flag IS NULL THEN
40042          l_acc_rev_flag := 'N';
40043       END IF;
40044    EXCEPTION
40045       WHEN OTHERS THEN
40046          l_acc_rev_flag := 'N';
40047    END;
40048    --
40049    IF (l_acc_rev_flag = 'Y') THEN
40050 
40051        -- 4645092  ------------------------------------------------------------------------------
40052        -- To allow MPA report to determine if it should generate report process
40053        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
40054        ------------------------------------------------------------------------------------------
40055 
40056        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
40057        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
40058    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
40062    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40059    -- call ADRs
40060    -- Bug 4922099
40061    --
40063         (NVL(l_actual_upg_option, 'N') = 'O') OR
40064         (NVL(l_enc_upg_option, 'N') = 'O')
40065       )
40066    THEN
40067    NULL;
40068    --
40069    --
40070    
40071   l_ccid := AcctDerRule_28(
40072            p_application_id           => p_application_id
40073          , p_ae_header_id             => l_ae_header_id 
40074 , p_source_17 => p_source_17
40075          , x_transaction_coa_id       => l_adr_transaction_coa_id
40076          , x_accounting_coa_id        => l_adr_accounting_coa_id
40077          , x_value_type_code          => l_adr_value_type_code
40078          , p_side                     => 'NA'
40079    );
40080 
40081    xla_ae_lines_pkg.set_ccid(
40082     p_code_combination_id          => l_ccid
40083   , p_value_type_code              => l_adr_value_type_code
40084   , p_transaction_coa_id           => l_adr_transaction_coa_id
40085   , p_accounting_coa_id            => l_adr_accounting_coa_id
40086   , p_adr_code                     => 'AP_CASH'
40087   , p_adr_type_code                => 'S'
40088   , p_component_type               => l_component_type
40089   , p_component_code               => l_component_code
40090   , p_component_type_code          => l_component_type_code
40091   , p_component_appl_id            => l_component_appl_id
40092   , p_amb_context_code             => l_amb_context_code
40093   , p_side                         => 'NA'
40094   );
40095 
40096 
40097    --
40098    --
40099    END IF;
40100 
40101        --
40102        -- Update the line information that should be overwritten
40103        --
40104        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
40105                                          p_header_num   => 1);
40106        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
40107 
40108        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
40109 
40110        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
40111           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
40112        END IF;
40113 
40114       --
40115       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
40116       --
40117       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
40118           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
40119       ELSE
40120           ---------------------------------------------------------------------------------------------------
40121           -- 4262811a Switch Sign
40122           ---------------------------------------------------------------------------------------------------
40123           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
40124           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40125                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40126           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40127                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40128           -- 5132302
40129           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
40130                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40131 
40132       END IF;
40133 
40134       -- 4955764
40135       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40136       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
40137 
40138 
40139       XLA_AE_LINES_PKG.ValidateCurrentLine;
40140       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40141 
40142       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40143                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
40144                ,p_balance_type_code => l_balance_type_code);
40145 
40146    END IF;
40147 
40148    -----------------------------------------------------------------------------------------
40149    -- 4262811 Multiperiod Accounting
40150    -----------------------------------------------------------------------------------------
40151      -- No MPA option is assigned.
40152 
40153 
40154 END IF;
40155 END IF;
40156 --
40157 
40158 --
40159 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40160    trace
40161       (p_msg      => 'END of AcctLineType_91'
40162       ,p_level    => C_LEVEL_PROCEDURE
40163       ,p_module   => l_log_module);
40164 END IF;
40165 --
40166 EXCEPTION
40167   WHEN xla_exceptions_pkg.application_exception THEN
40168       RAISE;
40169   WHEN OTHERS THEN
40170        xla_exceptions_pkg.raise_message
40171            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_91');
40172 END AcctLineType_91;
40173 --
40174 
40175 ---------------------------------------
40176 --
40177 -- PRIVATE FUNCTION
40178 --         AcctLineType_92
40179 --
40180 ---------------------------------------
40181 PROCEDURE AcctLineType_92 (
40182   p_application_id        IN NUMBER
40183  ,p_event_id              IN NUMBER
40184  ,p_calculate_acctd_flag  IN VARCHAR2
40188  ,p_gain_or_loss_ref      OUT VARCHAR2
40185  ,p_calculate_g_l_flag    IN VARCHAR2
40186  ,p_actual_flag           IN OUT VARCHAR2
40187  ,p_balance_type_code     OUT VARCHAR2
40189  
40190 --Payment Currency Code
40191  , p_source_13            IN VARCHAR2
40192 --Automatic Offsets Value
40193  , p_source_15            IN VARCHAR2
40194  , p_source_15_meaning    IN VARCHAR2
40195 --Bank Cash Account
40196  , p_source_17            IN NUMBER
40197 --Accounting Reversal Indicator
40198  , p_source_53            IN VARCHAR2
40199 --Distribution Link Type
40200  , p_source_55            IN VARCHAR2
40201 --Override Accounted Amount Indicator
40202  , p_source_80            IN VARCHAR2
40203  , p_source_80_meaning    IN VARCHAR2
40204 --Third Party Type
40205  , p_source_83            IN VARCHAR2
40206 --Invoice Distribution Tax Line Identifier
40207  , p_source_86            IN NUMBER
40208 --Invoice Distribution Tax Distribution Identifier from Tax
40209  , p_source_87            IN NUMBER
40210 --Invoice Distribution Summary Tax Line Identifier
40211  , p_source_88            IN NUMBER
40212 --Business Flow Accounts Payable Application Identifier
40213  , p_source_91            IN NUMBER
40214 --Business Flow Invoice Distribution Type
40215  , p_source_92            IN VARCHAR2
40216 --Business Flow Invoice Entity Code
40217  , p_source_93            IN VARCHAR2
40218 --Business Flow Invoice Distribution Identifier
40219  , p_source_94            IN NUMBER
40220 --Business Flow Invoice Identifier
40221  , p_source_95            IN NUMBER
40222 --When to Account for Payment Option
40223  , p_source_97            IN VARCHAR2
40224 --Payment Distribution Type
40225  , p_source_98            IN VARCHAR2
40226  , p_source_98_meaning    IN VARCHAR2
40227 --Payment Distribution Amount
40228  , p_source_99            IN NUMBER
40229 --Payment Distribution Identifier
40230  , p_source_104            IN NUMBER
40231 --Payment Supplier Identifier
40232  , p_source_110            IN NUMBER
40233 --Payment Supplier Site Identifier
40234  , p_source_111            IN NUMBER
40235 --Payment Distribution Reversed Identifier
40236  , p_source_112            IN NUMBER
40237 --Pooled Bank Account Option
40238  , p_source_113            IN VARCHAR2
40239  , p_source_113_meaning    IN VARCHAR2
40240 --Payment Maturity Date
40241  , p_source_114            IN DATE
40242 --Payment Distribution (Payment Rate) Ledger Amount
40243  , p_source_115            IN NUMBER
40244 --Payment Exchange Date
40245  , p_source_117            IN DATE
40246 --Payment Exchange Rate
40247  , p_source_118            IN NUMBER
40248 --Payment Exchange Rate Type
40249  , p_source_119            IN VARCHAR2
40250 --Payment Type
40251  , p_source_122            IN VARCHAR2
40252  , p_source_122_meaning    IN VARCHAR2
40253 )
40254 IS
40255 
40256 l_component_type              VARCHAR2(80);
40257 l_component_code              VARCHAR2(30);
40258 l_component_type_code         VARCHAR2(1);
40259 l_component_appl_id           INTEGER;
40260 l_amb_context_code            VARCHAR2(30);
40261 l_entity_code                 VARCHAR2(30);
40262 l_event_class_code            VARCHAR2(30);
40263 l_ae_header_id                NUMBER;
40264 l_event_type_code             VARCHAR2(30);
40265 l_line_definition_code        VARCHAR2(30);
40266 l_line_definition_owner_code  VARCHAR2(1);
40267 --
40268 -- adr variables
40269 l_segment                     VARCHAR2(30);
40270 l_ccid                        NUMBER;
40271 l_adr_transaction_coa_id      NUMBER;
40272 l_adr_accounting_coa_id       NUMBER;
40273 l_adr_flexfield_segment_code  VARCHAR2(30);
40274 l_adr_flex_value_set_id       NUMBER;
40275 l_adr_value_type_code         VARCHAR2(30);
40276 l_adr_value_combination_id    NUMBER;
40277 l_adr_value_segment_code      VARCHAR2(30);
40278 
40279 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
40280 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
40281 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
40282 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
40283 
40284 -- 4262811 Variables ------------------------------------------------------------------------------------------
40285 l_entered_amt_idx             NUMBER;
40286 l_accted_amt_idx              NUMBER;
40287 l_acc_rev_flag                VARCHAR2(1);
40288 l_accrual_line_num            NUMBER;
40289 l_tmp_amt                     NUMBER;
40290 l_acc_rev_natural_side_code   VARCHAR2(1);
40291 
40292 l_num_entries                 NUMBER;
40293 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
40294 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
40295 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
40296 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
40297 l_recog_line_1                NUMBER;
40298 l_recog_line_2                NUMBER;
40299 
40300 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
40301 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
40302 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
40303 
40304 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
40305 
40306 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
40307 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
40308 
40312 --
40309 ---------------------------------------------------------------------------------------------------------------
40310 
40311 
40313 -- bulk performance
40314 --
40315 l_balance_type_code           VARCHAR2(1);
40316 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
40317 l_log_module                  VARCHAR2(240);
40318 
40319 --
40320 -- Upgrade strategy
40321 --
40322 l_actual_upg_option           VARCHAR2(1);
40323 l_enc_upg_option           VARCHAR2(1);
40324 
40325 --
40326 BEGIN
40327 --
40328 IF g_log_enabled THEN
40329       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_92';
40330 END IF;
40331 --
40332 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40333 
40334       trace
40335          (p_msg      => 'BEGIN of AcctLineType_92'
40336          ,p_level    => C_LEVEL_PROCEDURE
40337          ,p_module   => l_log_module);
40338 
40339 END IF;
40340 --
40341 l_component_type             := 'AMB_JLT';
40342 l_component_code             := 'AP_CASH_REF_AOS_AS';
40343 l_component_type_code        := 'S';
40344 l_component_appl_id          :=  200;
40345 l_amb_context_code           := 'DEFAULT';
40346 l_entity_code                := 'AP_PAYMENTS';
40347 l_event_class_code           := 'REFUNDS';
40348 l_event_type_code            := 'REFUNDS_ALL';
40349 l_line_definition_owner_code := 'S';
40350 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
40351 --
40352 l_balance_type_code          := 'A';
40353 l_segment                     := NULL;
40354 l_ccid                        := NULL;
40355 l_adr_transaction_coa_id      := NULL;
40356 l_adr_accounting_coa_id       := NULL;
40357 l_adr_flexfield_segment_code  := NULL;
40358 l_adr_flex_value_set_id       := NULL;
40359 l_adr_value_type_code         := NULL;
40360 l_adr_value_combination_id    := NULL;
40361 l_adr_value_segment_code      := NULL;
40362 
40363 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
40364 l_bflow_class_code           := '';    -- 4219869 Business Flow
40365 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
40366 l_budgetary_control_flag     := 'N';
40367 
40368 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
40369 l_bflow_applied_to_amt       := NULL; -- 5132302
40370 l_entered_amt_idx            := NULL;          -- 4262811
40371 l_accted_amt_idx             := NULL;          -- 4262811
40372 l_acc_rev_flag               := NULL;          -- 4262811
40373 l_accrual_line_num           := NULL;          -- 4262811
40374 l_tmp_amt                    := NULL;          -- 4262811
40375 --
40376  
40377 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
40378     l_balance_type_code <> 'B' THEN
40379 IF NVL(p_source_97,'
40380 ') =  'ISSUE_ISSUE' AND 
40381 (NVL(p_source_113,'
40382 ') =  'Y' AND 
40383 NVL(p_source_15,'
40384 ') =  'ACCOUNT_SEGMENT_VALUE') AND 
40385 p_source_114 IS NULL AND 
40386 NVL(p_source_98,'
40387 ') =  'CASH' AND 
40388 NVL(p_source_122,'
40389 ') =  'R'
40390  THEN 
40391 
40392    --
40393    XLA_AE_LINES_PKG.SetNewLine;
40394 
40395    p_balance_type_code          := l_balance_type_code;
40396    -- set the flag so later we will know whether the gain loss line needs to be created
40397    
40398    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
40399      p_actual_flag :='A';
40400    END IF;
40401 
40402    --
40403    -- bulk performance
40404    --
40405    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
40406                                       p_header_num   => 0); -- 4262811
40407    --
40408    -- set accounting line options
40409    --
40410    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
40411            p_natural_side_code          => 'C'
40412          , p_gain_or_loss_flag          => 'N'
40413          , p_gl_transfer_mode_code      => 'S'
40414          , p_acct_entry_type_code       => 'A'
40415          , p_switch_side_flag           => 'Y'
40416          , p_merge_duplicate_code       => 'A'
40417          );
40418    --
40419    l_acc_rev_natural_side_code := 'D';  -- 4262811
40420    -- 
40421    --
40422    -- set accounting line type info
40423    --
40424    xla_ae_lines_pkg.SetAcctLineType
40425       (p_component_type             => l_component_type
40426       ,p_event_type_code            => l_event_type_code
40427       ,p_line_definition_owner_code => l_line_definition_owner_code
40428       ,p_line_definition_code       => l_line_definition_code
40429       ,p_accounting_line_code       => l_component_code
40430       ,p_accounting_line_type_code  => l_component_type_code
40431       ,p_accounting_line_appl_id    => l_component_appl_id
40432       ,p_amb_context_code           => l_amb_context_code
40433       ,p_entity_code                => l_entity_code
40434       ,p_event_class_code           => l_event_class_code);
40435    --
40436    -- set accounting class
40437    --
40438    xla_ae_lines_pkg.SetAcctClass(
40439            p_accounting_class_code  => 'CASH'
40440          , p_ae_header_id           => l_ae_header_id
40441          );
40442 
40443    --
40444    -- set rounding class
40445    --
40446    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
40447                       'CASH';
40448 
40449    --
40453    -- bulk performance
40450    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
40451    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
40452    --
40454    --
40455    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
40456 
40457    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
40458       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
40459 
40460    -- 4955764
40461    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40462       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
40463 
40464    -- 4458381 Public Sector Enh
40465    
40466    --
40467    -- set accounting attributes for the line type
40468    --
40469    l_entered_amt_idx := 9;
40470    l_accted_amt_idx  := 14;
40471    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
40472    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
40473    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
40474    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
40475    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
40476    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
40477    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
40478    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
40479    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
40480    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
40481    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
40482    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
40483    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
40484    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
40485    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
40486    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
40487    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
40488    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
40489    l_rec_acct_attrs.array_num_value(9)  := p_source_99;
40490    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
40491    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
40492    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
40493    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
40494    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
40495    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
40496    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
40497    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
40498    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
40499    l_rec_acct_attrs.array_num_value(14)  := p_source_115;
40500    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
40501    l_rec_acct_attrs.array_char_value(15)  := p_source_80;
40502    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
40503    l_rec_acct_attrs.array_num_value(16)  := p_source_110;
40504    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
40505    l_rec_acct_attrs.array_num_value(17)  := p_source_111;
40506    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
40507    l_rec_acct_attrs.array_char_value(18)  := p_source_83;
40508    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
40509    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_112);
40510    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
40511    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
40512    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
40513    l_rec_acct_attrs.array_num_value(21)  := p_source_86;
40514    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
40515    l_rec_acct_attrs.array_num_value(22)  := p_source_87;
40516    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
40517    l_rec_acct_attrs.array_num_value(23)  := p_source_88;
40518 
40519    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
40520    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
40521 
40522    ---------------------------------------------------------------------------------------------------------------
40523    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
40524    ---------------------------------------------------------------------------------------------------------------
40525    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
40526 
40527    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40528    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40529 
40530    IF xla_accounting_cache_pkg.GetValueChar
40531          (p_source_code         => 'LEDGER_CATEGORY_CODE'
40532          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
40533    AND l_bflow_method_code = 'PRIOR_ENTRY'
40534 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
40535    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
40536          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
40537        )
40538    THEN
40539          xla_ae_lines_pkg.BflowUpgEntry
40543    ELSE
40540            (p_business_method_code    => l_bflow_method_code
40541            ,p_business_class_code     => l_bflow_class_code
40542            ,p_balance_type            => l_balance_type_code);
40544       NULL;
40545 XLA_AE_LINES_PKG.business_flow_validation(
40546                                 p_business_method_code     => l_bflow_method_code
40547                                ,p_business_class_code      => l_bflow_class_code
40548                                ,p_inherit_description_flag => l_inherit_desc_flag);
40549    END IF;
40550 
40551    --
40552    -- call analytical criteria
40553    --
40554    
40555    --
40556    -- call description
40557    --
40558    -- No description or it is inherited.
40559    --
40560    -- call ADRs
40561    -- Bug 4922099
40562    --
40563    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40564         (NVL(l_actual_upg_option, 'N') = 'O') OR
40565         (NVL(l_enc_upg_option, 'N') = 'O')
40566       )
40567    THEN
40568    NULL;
40569    --
40570    --
40571    
40572    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
40573      p_code_combination_id      => TO_NUMBER(C_NUM)
40574    , p_value_type_code          => NULL
40575    , p_transaction_coa_id       => null
40576    , p_accounting_coa_id        => null
40577    , p_adr_code                 => NULL
40578    , p_adr_type_code            => NULL
40579    , p_component_type           => l_component_type
40580    , p_component_code           => l_component_code
40581    , p_component_type_code      => l_component_type_code
40582    , p_component_appl_id        => l_component_appl_id
40583    , p_amb_context_code         => l_amb_context_code
40584    , p_side                     => NULL
40585    );
40586 
40587    
40588   -- initialise segments
40589   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40590   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40591   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40592   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40593   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40594   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40595   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40596   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40597   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40598   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40599   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40600   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40601   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40602   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40603   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40604   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40605   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40606   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40607   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40608   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40609   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40610   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40611   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40612   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40613   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40614   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40615   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40616   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40617   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40618   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40619   --
40620 
40621    --
40622 
40623 
40624    l_segment := AcctDerRule_6(
40625            p_application_id           => p_application_id
40626          , p_ae_header_id             => l_ae_header_id 
40627 , p_source_17 => p_source_17
40628          , x_transaction_coa_id       => l_adr_transaction_coa_id
40629          , x_accounting_coa_id        => l_adr_accounting_coa_id
40630          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
40631          , x_flex_value_set_id        => l_adr_flex_value_set_id
40632          , x_value_type_code          => l_adr_value_type_code
40633          , x_value_combination_id     => l_adr_value_combination_id
40634          , x_value_segment_code       => l_adr_value_segment_code
40635          , p_side                     => 'NA'
40636          , p_override_seg_flag        => 'Y'
40637    );
40638 
40639    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
40640 
40641       xla_ae_lines_pkg.set_segment(
40645         , p_from_combination_id     => l_adr_value_combination_id
40642           p_to_segment_code         => 'GL_ACCOUNT'
40643         , p_segment_value           => l_segment
40644         , p_from_segment_code       => l_adr_value_segment_code
40646         , p_value_type_code         => l_adr_value_type_code
40647         , p_transaction_coa_id      => l_adr_transaction_coa_id
40648         , p_accounting_coa_id       => l_adr_accounting_coa_id
40649         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
40650         , p_flex_value_set_id       => l_adr_flex_value_set_id
40651         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
40652         , p_adr_type_code           => 'S'
40653         , p_component_type          => l_component_type
40654         , p_component_code          => l_component_code
40655         , p_component_type_code     => l_component_type_code
40656         , p_component_appl_id       => l_component_appl_id
40657         , p_amb_context_code        => l_amb_context_code
40658         , p_entity_code             => 'AP_PAYMENTS'
40659         , p_event_class_code        => 'REFUNDS'
40660         , p_side                    => 'NA'
40661         );
40662 
40663   END IF;
40664 
40665    --
40666    --
40667    END IF;
40668    --
40669    -- Bug 4922099
40670    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
40671           (NVL(l_enc_upg_option, 'N') = 'O')
40672         ) AND
40673         (l_bflow_method_code = 'PRIOR_ENTRY')
40674       )
40675    THEN
40676       IF
40677       --
40678       1 = 2
40679       --
40680       THEN
40681       xla_accounting_err_pkg.build_message
40682                                     (p_appli_s_name            => 'XLA'
40683                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40684                                     ,p_token_1                 => 'LINE_NUMBER'
40685                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
40686                                     ,p_token_2                 => 'LINE_TYPE_NAME'
40687                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
40688                                                                              l_component_type
40689                                                                             ,l_component_code
40690                                                                             ,l_component_type_code
40691                                                                             ,l_component_appl_id
40692                                                                             ,l_amb_context_code
40693                                                                             ,l_entity_code
40694                                                                             ,l_event_class_code
40695                                                                            )
40696                                     ,p_token_3                 => 'OWNER'
40697                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
40698                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
40699                                                                           ,p_lookup_code    => l_component_type_code
40700                                                                          )
40701                                     ,p_token_4                 => 'PRODUCT_NAME'
40702                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
40703                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
40704                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
40705                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
40706                                     ,p_ae_header_id            =>  NULL
40707                                        );
40708 
40709         IF (C_LEVEL_ERROR>= g_log_level) THEN
40710                  trace
40711                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40712                       ,p_level    => C_LEVEL_ERROR
40713                       ,p_module   => l_log_module);
40714         END IF;
40715       END IF;
40716    END IF;
40717    --
40718    --
40719    ------------------------------------------------------------------------------------------------
40720    -- 4219869 Business Flow
40721    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
40722    -- Prior Entry.  Currently, the following code is always generated.
40723    ------------------------------------------------------------------------------------------------
40724    XLA_AE_LINES_PKG.ValidateCurrentLine;
40725 
40726    ------------------------------------------------------------------------------------
40727    -- 4219869 Business Flow
40728    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
40729    ------------------------------------------------------------------------------------
40730    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40731 
40732    ----------------------------------------------------------------------------------
40733    -- 4219869 Business Flow
40734    -- Update journal entry status -- Need to generate this within IF <condition>
40735    ----------------------------------------------------------------------------------
40736    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40740 
40737          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
40738          ,p_balance_type_code => l_balance_type_code
40739          );
40741    -------------------------------------------------------------------------------------------
40742    -- 4262811 - Generate the Accrual Reversal lines
40743    -------------------------------------------------------------------------------------------
40744    BEGIN
40745       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
40746                               (g_array_event(p_event_id).array_value_num('header_index'));
40747       IF l_acc_rev_flag IS NULL THEN
40748          l_acc_rev_flag := 'N';
40749       END IF;
40750    EXCEPTION
40751       WHEN OTHERS THEN
40752          l_acc_rev_flag := 'N';
40753    END;
40754    --
40755    IF (l_acc_rev_flag = 'Y') THEN
40756 
40757        -- 4645092  ------------------------------------------------------------------------------
40758        -- To allow MPA report to determine if it should generate report process
40759        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
40760        ------------------------------------------------------------------------------------------
40761 
40762        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
40763        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
40764    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
40765    -- call ADRs
40766    -- Bug 4922099
40767    --
40768    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40769         (NVL(l_actual_upg_option, 'N') = 'O') OR
40770         (NVL(l_enc_upg_option, 'N') = 'O')
40771       )
40772    THEN
40773    NULL;
40774    --
40775    --
40776    
40777    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
40778      p_code_combination_id      => TO_NUMBER(C_NUM)
40779    , p_value_type_code          => NULL
40780    , p_transaction_coa_id       => null
40781    , p_accounting_coa_id        => null
40782    , p_adr_code                 => NULL
40783    , p_adr_type_code            => NULL
40784    , p_component_type           => l_component_type
40785    , p_component_code           => l_component_code
40786    , p_component_type_code      => l_component_type_code
40787    , p_component_appl_id        => l_component_appl_id
40788    , p_amb_context_code         => l_amb_context_code
40789    , p_side                     => NULL
40790    );
40791 
40792    
40793   -- initialise segments
40794   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40795   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40796   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40797   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40798   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40799   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40800   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40801   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40802   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
40803   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40804   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40805   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40806   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40807   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40808   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40809   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40810   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40811   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40812   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40813   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40814   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40815   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40816   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40817   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40818   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40819   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40820   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40821   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40822   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40823   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
40824   --
40825 
40826    --
40827 
40828 
40829    l_segment := AcctDerRule_6(
40830            p_application_id           => p_application_id
40831          , p_ae_header_id             => l_ae_header_id 
40832 , p_source_17 => p_source_17
40833          , x_transaction_coa_id       => l_adr_transaction_coa_id
40837          , x_value_type_code          => l_adr_value_type_code
40834          , x_accounting_coa_id        => l_adr_accounting_coa_id
40835          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
40836          , x_flex_value_set_id        => l_adr_flex_value_set_id
40838          , x_value_combination_id     => l_adr_value_combination_id
40839          , x_value_segment_code       => l_adr_value_segment_code
40840          , p_side                     => 'NA'
40841          , p_override_seg_flag        => 'Y'
40842    );
40843 
40844    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
40845 
40846       xla_ae_lines_pkg.set_segment(
40847           p_to_segment_code         => 'GL_ACCOUNT'
40848         , p_segment_value           => l_segment
40849         , p_from_segment_code       => l_adr_value_segment_code
40850         , p_from_combination_id     => l_adr_value_combination_id
40851         , p_value_type_code         => l_adr_value_type_code
40852         , p_transaction_coa_id      => l_adr_transaction_coa_id
40853         , p_accounting_coa_id       => l_adr_accounting_coa_id
40854         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
40855         , p_flex_value_set_id       => l_adr_flex_value_set_id
40856         , p_adr_code                => 'AP_CASH_NATURAL_ACCT_SEG'
40857         , p_adr_type_code           => 'S'
40858         , p_component_type          => l_component_type
40859         , p_component_code          => l_component_code
40860         , p_component_type_code     => l_component_type_code
40861         , p_component_appl_id       => l_component_appl_id
40862         , p_amb_context_code        => l_amb_context_code
40863         , p_entity_code             => 'AP_PAYMENTS'
40864         , p_event_class_code        => 'REFUNDS'
40865         , p_side                    => 'NA'
40866         );
40867 
40868   END IF;
40869 
40870    --
40871    --
40872    END IF;
40873 
40874        --
40875        -- Update the line information that should be overwritten
40876        --
40877        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
40878                                          p_header_num   => 1);
40879        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
40880 
40881        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
40882 
40883        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
40884           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
40885        END IF;
40886 
40887       --
40888       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
40889       --
40890       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
40891           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
40892       ELSE
40893           ---------------------------------------------------------------------------------------------------
40894           -- 4262811a Switch Sign
40895           ---------------------------------------------------------------------------------------------------
40896           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
40897           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40898                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40899           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40900                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40901           -- 5132302
40902           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
40903                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40904 
40905       END IF;
40906 
40907       -- 4955764
40908       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40909       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
40910 
40911 
40912       XLA_AE_LINES_PKG.ValidateCurrentLine;
40913       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40914 
40915       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40916                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
40917                ,p_balance_type_code => l_balance_type_code);
40918 
40919    END IF;
40920 
40921    -----------------------------------------------------------------------------------------
40922    -- 4262811 Multiperiod Accounting
40923    -----------------------------------------------------------------------------------------
40924      -- No MPA option is assigned.
40925 
40926 
40927 END IF;
40928 END IF;
40929 --
40930 
40931 --
40932 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40933    trace
40934       (p_msg      => 'END of AcctLineType_92'
40935       ,p_level    => C_LEVEL_PROCEDURE
40936       ,p_module   => l_log_module);
40937 END IF;
40938 --
40939 EXCEPTION
40940   WHEN xla_exceptions_pkg.application_exception THEN
40941       RAISE;
40942   WHEN OTHERS THEN
40943        xla_exceptions_pkg.raise_message
40944            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_92');
40945 END AcctLineType_92;
40946 --
40947 
40948 ---------------------------------------
40952 --
40949 --
40950 -- PRIVATE FUNCTION
40951 --         AcctLineType_93
40953 ---------------------------------------
40954 PROCEDURE AcctLineType_93 (
40955   p_application_id        IN NUMBER
40956  ,p_event_id              IN NUMBER
40957  ,p_calculate_acctd_flag  IN VARCHAR2
40958  ,p_calculate_g_l_flag    IN VARCHAR2
40959  ,p_actual_flag           IN OUT VARCHAR2
40960  ,p_balance_type_code     OUT VARCHAR2
40961  ,p_gain_or_loss_ref      OUT VARCHAR2
40962  
40963 --Payment Currency Code
40964  , p_source_13            IN VARCHAR2
40965 --Automatic Offsets Value
40966  , p_source_15            IN VARCHAR2
40967  , p_source_15_meaning    IN VARCHAR2
40968 --Bank Cash Account
40969  , p_source_17            IN NUMBER
40970 --Accounting Reversal Indicator
40971  , p_source_53            IN VARCHAR2
40972 --Distribution Link Type
40973  , p_source_55            IN VARCHAR2
40974 --Override Accounted Amount Indicator
40975  , p_source_80            IN VARCHAR2
40976  , p_source_80_meaning    IN VARCHAR2
40977 --Third Party Type
40978  , p_source_83            IN VARCHAR2
40979 --Invoice Distribution Tax Line Identifier
40980  , p_source_86            IN NUMBER
40981 --Invoice Distribution Tax Distribution Identifier from Tax
40982  , p_source_87            IN NUMBER
40983 --Invoice Distribution Summary Tax Line Identifier
40984  , p_source_88            IN NUMBER
40985 --Business Flow Accounts Payable Application Identifier
40986  , p_source_91            IN NUMBER
40987 --Business Flow Invoice Distribution Type
40988  , p_source_92            IN VARCHAR2
40989 --Business Flow Invoice Entity Code
40990  , p_source_93            IN VARCHAR2
40991 --Business Flow Invoice Distribution Identifier
40992  , p_source_94            IN NUMBER
40993 --Business Flow Invoice Identifier
40994  , p_source_95            IN NUMBER
40995 --When to Account for Payment Option
40996  , p_source_97            IN VARCHAR2
40997 --Payment Distribution Type
40998  , p_source_98            IN VARCHAR2
40999  , p_source_98_meaning    IN VARCHAR2
41000 --Payment Distribution Amount
41001  , p_source_99            IN NUMBER
41002 --Payment Distribution Identifier
41003  , p_source_104            IN NUMBER
41004 --Payment Supplier Identifier
41005  , p_source_110            IN NUMBER
41006 --Payment Supplier Site Identifier
41007  , p_source_111            IN NUMBER
41008 --Payment Distribution Reversed Identifier
41009  , p_source_112            IN NUMBER
41010 --Pooled Bank Account Option
41011  , p_source_113            IN VARCHAR2
41012  , p_source_113_meaning    IN VARCHAR2
41013 --Payment Maturity Date
41014  , p_source_114            IN DATE
41015 --Payment Distribution (Payment Rate) Ledger Amount
41016  , p_source_115            IN NUMBER
41017 --Payment Exchange Date
41018  , p_source_117            IN DATE
41019 --Payment Exchange Rate
41020  , p_source_118            IN NUMBER
41021 --Payment Exchange Rate Type
41022  , p_source_119            IN VARCHAR2
41023 --Payment Type
41024  , p_source_122            IN VARCHAR2
41025  , p_source_122_meaning    IN VARCHAR2
41026 )
41027 IS
41028 
41029 l_component_type              VARCHAR2(80);
41030 l_component_code              VARCHAR2(30);
41031 l_component_type_code         VARCHAR2(1);
41032 l_component_appl_id           INTEGER;
41033 l_amb_context_code            VARCHAR2(30);
41034 l_entity_code                 VARCHAR2(30);
41035 l_event_class_code            VARCHAR2(30);
41036 l_ae_header_id                NUMBER;
41037 l_event_type_code             VARCHAR2(30);
41038 l_line_definition_code        VARCHAR2(30);
41039 l_line_definition_owner_code  VARCHAR2(1);
41040 --
41041 -- adr variables
41042 l_segment                     VARCHAR2(30);
41043 l_ccid                        NUMBER;
41044 l_adr_transaction_coa_id      NUMBER;
41045 l_adr_accounting_coa_id       NUMBER;
41046 l_adr_flexfield_segment_code  VARCHAR2(30);
41047 l_adr_flex_value_set_id       NUMBER;
41048 l_adr_value_type_code         VARCHAR2(30);
41049 l_adr_value_combination_id    NUMBER;
41050 l_adr_value_segment_code      VARCHAR2(30);
41051 
41052 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
41053 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
41054 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
41055 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
41056 
41057 -- 4262811 Variables ------------------------------------------------------------------------------------------
41058 l_entered_amt_idx             NUMBER;
41059 l_accted_amt_idx              NUMBER;
41060 l_acc_rev_flag                VARCHAR2(1);
41061 l_accrual_line_num            NUMBER;
41062 l_tmp_amt                     NUMBER;
41063 l_acc_rev_natural_side_code   VARCHAR2(1);
41064 
41065 l_num_entries                 NUMBER;
41066 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
41067 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
41068 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
41069 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
41070 l_recog_line_1                NUMBER;
41071 l_recog_line_2                NUMBER;
41072 
41073 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
41074 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
41075 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
41076 
41080 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
41077 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
41078 
41079 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
41081 
41082 ---------------------------------------------------------------------------------------------------------------
41083 
41084 
41085 --
41086 -- bulk performance
41087 --
41088 l_balance_type_code           VARCHAR2(1);
41089 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
41090 l_log_module                  VARCHAR2(240);
41091 
41092 --
41093 -- Upgrade strategy
41094 --
41095 l_actual_upg_option           VARCHAR2(1);
41096 l_enc_upg_option           VARCHAR2(1);
41097 
41098 --
41099 BEGIN
41100 --
41101 IF g_log_enabled THEN
41102       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_93';
41103 END IF;
41104 --
41105 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41106 
41107       trace
41108          (p_msg      => 'BEGIN of AcctLineType_93'
41109          ,p_level    => C_LEVEL_PROCEDURE
41110          ,p_module   => l_log_module);
41111 
41112 END IF;
41113 --
41114 l_component_type             := 'AMB_JLT';
41115 l_component_code             := 'AP_CASH_REF_AOS_BS';
41116 l_component_type_code        := 'S';
41117 l_component_appl_id          :=  200;
41118 l_amb_context_code           := 'DEFAULT';
41119 l_entity_code                := 'AP_PAYMENTS';
41120 l_event_class_code           := 'REFUNDS';
41121 l_event_type_code            := 'REFUNDS_ALL';
41122 l_line_definition_owner_code := 'S';
41123 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
41124 --
41125 l_balance_type_code          := 'A';
41126 l_segment                     := NULL;
41127 l_ccid                        := NULL;
41128 l_adr_transaction_coa_id      := NULL;
41129 l_adr_accounting_coa_id       := NULL;
41130 l_adr_flexfield_segment_code  := NULL;
41131 l_adr_flex_value_set_id       := NULL;
41132 l_adr_value_type_code         := NULL;
41133 l_adr_value_combination_id    := NULL;
41134 l_adr_value_segment_code      := NULL;
41135 
41136 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
41137 l_bflow_class_code           := '';    -- 4219869 Business Flow
41138 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
41139 l_budgetary_control_flag     := 'N';
41140 
41141 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
41142 l_bflow_applied_to_amt       := NULL; -- 5132302
41143 l_entered_amt_idx            := NULL;          -- 4262811
41144 l_accted_amt_idx             := NULL;          -- 4262811
41145 l_acc_rev_flag               := NULL;          -- 4262811
41146 l_accrual_line_num           := NULL;          -- 4262811
41147 l_tmp_amt                    := NULL;          -- 4262811
41148 --
41149  
41150 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
41151     l_balance_type_code <> 'B' THEN
41152 IF NVL(p_source_97,'
41153 ') =  'ISSUE_ISSUE' AND 
41154 (NVL(p_source_113,'
41155 ') =  'Y' AND 
41156 NVL(p_source_15,'
41157 ') =  'BALANCING_SEGMENT') AND 
41158 p_source_114 IS NULL AND 
41159 NVL(p_source_98,'
41160 ') =  'CASH' AND 
41161 NVL(p_source_122,'
41162 ') =  'R'
41163  THEN 
41164 
41165    --
41166    XLA_AE_LINES_PKG.SetNewLine;
41167 
41168    p_balance_type_code          := l_balance_type_code;
41169    -- set the flag so later we will know whether the gain loss line needs to be created
41170    
41171    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
41172      p_actual_flag :='A';
41173    END IF;
41174 
41175    --
41176    -- bulk performance
41177    --
41178    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
41179                                       p_header_num   => 0); -- 4262811
41180    --
41181    -- set accounting line options
41182    --
41183    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
41184            p_natural_side_code          => 'C'
41185          , p_gain_or_loss_flag          => 'N'
41186          , p_gl_transfer_mode_code      => 'S'
41187          , p_acct_entry_type_code       => 'A'
41188          , p_switch_side_flag           => 'Y'
41189          , p_merge_duplicate_code       => 'A'
41190          );
41191    --
41192    l_acc_rev_natural_side_code := 'D';  -- 4262811
41193    -- 
41194    --
41195    -- set accounting line type info
41196    --
41197    xla_ae_lines_pkg.SetAcctLineType
41198       (p_component_type             => l_component_type
41199       ,p_event_type_code            => l_event_type_code
41200       ,p_line_definition_owner_code => l_line_definition_owner_code
41201       ,p_line_definition_code       => l_line_definition_code
41202       ,p_accounting_line_code       => l_component_code
41203       ,p_accounting_line_type_code  => l_component_type_code
41204       ,p_accounting_line_appl_id    => l_component_appl_id
41205       ,p_amb_context_code           => l_amb_context_code
41206       ,p_entity_code                => l_entity_code
41207       ,p_event_class_code           => l_event_class_code);
41208    --
41209    -- set accounting class
41210    --
41211    xla_ae_lines_pkg.SetAcctClass(
41212            p_accounting_class_code  => 'CASH'
41216    --
41213          , p_ae_header_id           => l_ae_header_id
41214          );
41215 
41217    -- set rounding class
41218    --
41219    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
41220                       'CASH';
41221 
41222    --
41223    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
41224    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
41225    --
41226    -- bulk performance
41227    --
41228    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
41229 
41230    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
41231       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
41232 
41233    -- 4955764
41234    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41235       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
41236 
41237    -- 4458381 Public Sector Enh
41238    
41239    --
41240    -- set accounting attributes for the line type
41241    --
41242    l_entered_amt_idx := 9;
41243    l_accted_amt_idx  := 14;
41244    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
41245    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
41246    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
41247    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
41248    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
41249    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
41250    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
41251    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
41252    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
41253    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
41254    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
41255    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
41256    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
41257    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
41258    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
41259    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
41260    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
41261    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
41262    l_rec_acct_attrs.array_num_value(9)  := p_source_99;
41263    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
41264    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
41265    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
41266    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
41267    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
41268    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
41269    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
41270    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
41271    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
41272    l_rec_acct_attrs.array_num_value(14)  := p_source_115;
41273    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
41274    l_rec_acct_attrs.array_char_value(15)  := p_source_80;
41275    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
41276    l_rec_acct_attrs.array_num_value(16)  := p_source_110;
41277    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
41278    l_rec_acct_attrs.array_num_value(17)  := p_source_111;
41279    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
41280    l_rec_acct_attrs.array_char_value(18)  := p_source_83;
41281    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
41282    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_112);
41283    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
41284    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
41285    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
41286    l_rec_acct_attrs.array_num_value(21)  := p_source_86;
41287    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
41288    l_rec_acct_attrs.array_num_value(22)  := p_source_87;
41289    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
41290    l_rec_acct_attrs.array_num_value(23)  := p_source_88;
41291 
41292    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
41293    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
41294 
41295    ---------------------------------------------------------------------------------------------------------------
41296    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
41297    ---------------------------------------------------------------------------------------------------------------
41298    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
41299 
41300    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41301    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41302 
41303    IF xla_accounting_cache_pkg.GetValueChar
41304          (p_source_code         => 'LEDGER_CATEGORY_CODE'
41308    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
41305          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
41306    AND l_bflow_method_code = 'PRIOR_ENTRY'
41307 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
41309          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
41310        )
41311    THEN
41312          xla_ae_lines_pkg.BflowUpgEntry
41313            (p_business_method_code    => l_bflow_method_code
41314            ,p_business_class_code     => l_bflow_class_code
41315            ,p_balance_type            => l_balance_type_code);
41316    ELSE
41317       NULL;
41318 XLA_AE_LINES_PKG.business_flow_validation(
41319                                 p_business_method_code     => l_bflow_method_code
41320                                ,p_business_class_code      => l_bflow_class_code
41321                                ,p_inherit_description_flag => l_inherit_desc_flag);
41322    END IF;
41323 
41324    --
41325    -- call analytical criteria
41326    --
41327    
41328    --
41329    -- call description
41330    --
41331    -- No description or it is inherited.
41332    --
41333    -- call ADRs
41334    -- Bug 4922099
41335    --
41336    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41337         (NVL(l_actual_upg_option, 'N') = 'O') OR
41338         (NVL(l_enc_upg_option, 'N') = 'O')
41339       )
41340    THEN
41341    NULL;
41342    --
41343    --
41344    
41345   l_ccid := AcctDerRule_28(
41346            p_application_id           => p_application_id
41347          , p_ae_header_id             => l_ae_header_id 
41348 , p_source_17 => p_source_17
41349          , x_transaction_coa_id       => l_adr_transaction_coa_id
41350          , x_accounting_coa_id        => l_adr_accounting_coa_id
41351          , x_value_type_code          => l_adr_value_type_code
41352          , p_side                     => 'NA'
41353    );
41354 
41355    xla_ae_lines_pkg.set_ccid(
41356     p_code_combination_id          => l_ccid
41357   , p_value_type_code              => l_adr_value_type_code
41358   , p_transaction_coa_id           => l_adr_transaction_coa_id
41359   , p_accounting_coa_id            => l_adr_accounting_coa_id
41360   , p_adr_code                     => 'AP_CASH'
41361   , p_adr_type_code                => 'S'
41362   , p_component_type               => l_component_type
41363   , p_component_code               => l_component_code
41364   , p_component_type_code          => l_component_type_code
41365   , p_component_appl_id            => l_component_appl_id
41366   , p_amb_context_code             => l_amb_context_code
41367   , p_side                         => 'NA'
41368   );
41369 
41370 
41371    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
41372      p_to_segment_code         => 'GL_BALANCING'
41373    , p_segment_value           => C_CHAR
41374    , p_from_segment_code       => NULL
41375    , p_from_combination_id     => NULL
41376    , p_value_type_code         => NULL
41377    , p_transaction_coa_id      => null
41378    , p_accounting_coa_id       => null
41379    , p_flexfield_segment_code  => NULL
41380    , p_flex_value_set_id       => NULL
41381    , p_adr_code                => NULL
41382    , p_adr_type_code           => NULL
41383    , p_component_type          => l_component_type
41384    , p_component_code          => l_component_code
41385    , p_component_type_code     => l_component_type_code
41386    , p_component_appl_id       => l_component_appl_id
41387    , p_amb_context_code        => l_amb_context_code
41388    , p_entity_code             => 'AP_PAYMENTS'
41389    , p_event_class_code        => 'REFUNDS'
41390    , p_side                    => 'NA'
41391    );
41392    --
41393 
41394 
41395    --
41396    --
41397    END IF;
41398    --
41399    -- Bug 4922099
41400    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
41401           (NVL(l_enc_upg_option, 'N') = 'O')
41402         ) AND
41403         (l_bflow_method_code = 'PRIOR_ENTRY')
41404       )
41405    THEN
41406       IF
41407       --
41408       1 = 2
41409       --
41410       THEN
41411       xla_accounting_err_pkg.build_message
41412                                     (p_appli_s_name            => 'XLA'
41413                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41414                                     ,p_token_1                 => 'LINE_NUMBER'
41415                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
41416                                     ,p_token_2                 => 'LINE_TYPE_NAME'
41417                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
41418                                                                              l_component_type
41419                                                                             ,l_component_code
41420                                                                             ,l_component_type_code
41421                                                                             ,l_component_appl_id
41422                                                                             ,l_amb_context_code
41423                                                                             ,l_entity_code
41424                                                                             ,l_event_class_code
41425                                                                            )
41429                                                                           ,p_lookup_code    => l_component_type_code
41426                                     ,p_token_3                 => 'OWNER'
41427                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
41428                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
41430                                                                          )
41431                                     ,p_token_4                 => 'PRODUCT_NAME'
41432                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
41433                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
41434                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
41435                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
41436                                     ,p_ae_header_id            =>  NULL
41437                                        );
41438 
41439         IF (C_LEVEL_ERROR>= g_log_level) THEN
41440                  trace
41441                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41442                       ,p_level    => C_LEVEL_ERROR
41443                       ,p_module   => l_log_module);
41444         END IF;
41445       END IF;
41446    END IF;
41447    --
41448    --
41449    ------------------------------------------------------------------------------------------------
41450    -- 4219869 Business Flow
41451    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
41452    -- Prior Entry.  Currently, the following code is always generated.
41453    ------------------------------------------------------------------------------------------------
41454    XLA_AE_LINES_PKG.ValidateCurrentLine;
41455 
41456    ------------------------------------------------------------------------------------
41457    -- 4219869 Business Flow
41458    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
41459    ------------------------------------------------------------------------------------
41460    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41461 
41462    ----------------------------------------------------------------------------------
41463    -- 4219869 Business Flow
41464    -- Update journal entry status -- Need to generate this within IF <condition>
41465    ----------------------------------------------------------------------------------
41466    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41467          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
41468          ,p_balance_type_code => l_balance_type_code
41469          );
41470 
41471    -------------------------------------------------------------------------------------------
41472    -- 4262811 - Generate the Accrual Reversal lines
41473    -------------------------------------------------------------------------------------------
41474    BEGIN
41475       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
41476                               (g_array_event(p_event_id).array_value_num('header_index'));
41477       IF l_acc_rev_flag IS NULL THEN
41478          l_acc_rev_flag := 'N';
41479       END IF;
41480    EXCEPTION
41481       WHEN OTHERS THEN
41482          l_acc_rev_flag := 'N';
41483    END;
41484    --
41485    IF (l_acc_rev_flag = 'Y') THEN
41486 
41487        -- 4645092  ------------------------------------------------------------------------------
41488        -- To allow MPA report to determine if it should generate report process
41489        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
41490        ------------------------------------------------------------------------------------------
41491 
41492        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
41493        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
41494    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
41495    -- call ADRs
41496    -- Bug 4922099
41497    --
41498    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41499         (NVL(l_actual_upg_option, 'N') = 'O') OR
41500         (NVL(l_enc_upg_option, 'N') = 'O')
41501       )
41502    THEN
41503    NULL;
41504    --
41505    --
41506    
41507   l_ccid := AcctDerRule_28(
41508            p_application_id           => p_application_id
41509          , p_ae_header_id             => l_ae_header_id 
41510 , p_source_17 => p_source_17
41511          , x_transaction_coa_id       => l_adr_transaction_coa_id
41512          , x_accounting_coa_id        => l_adr_accounting_coa_id
41513          , x_value_type_code          => l_adr_value_type_code
41514          , p_side                     => 'NA'
41515    );
41516 
41517    xla_ae_lines_pkg.set_ccid(
41518     p_code_combination_id          => l_ccid
41519   , p_value_type_code              => l_adr_value_type_code
41520   , p_transaction_coa_id           => l_adr_transaction_coa_id
41521   , p_accounting_coa_id            => l_adr_accounting_coa_id
41522   , p_adr_code                     => 'AP_CASH'
41523   , p_adr_type_code                => 'S'
41524   , p_component_type               => l_component_type
41525   , p_component_code               => l_component_code
41526   , p_component_type_code          => l_component_type_code
41527   , p_component_appl_id            => l_component_appl_id
41531 
41528   , p_amb_context_code             => l_amb_context_code
41529   , p_side                         => 'NA'
41530   );
41532 
41533    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
41534      p_to_segment_code         => 'GL_BALANCING'
41535    , p_segment_value           => C_CHAR
41536    , p_from_segment_code       => NULL
41537    , p_from_combination_id     => NULL
41538    , p_value_type_code         => NULL
41539    , p_transaction_coa_id      => null
41540    , p_accounting_coa_id       => null
41541    , p_flexfield_segment_code  => NULL
41542    , p_flex_value_set_id       => NULL
41543    , p_adr_code                => NULL
41544    , p_adr_type_code           => NULL
41545    , p_component_type          => l_component_type
41546    , p_component_code          => l_component_code
41547    , p_component_type_code     => l_component_type_code
41548    , p_component_appl_id       => l_component_appl_id
41549    , p_amb_context_code        => l_amb_context_code
41550    , p_entity_code             => 'AP_PAYMENTS'
41551    , p_event_class_code        => 'REFUNDS'
41552    , p_side                    => 'NA'
41553    );
41554    --
41555 
41556 
41557    --
41558    --
41559    END IF;
41560 
41561        --
41562        -- Update the line information that should be overwritten
41563        --
41564        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
41565                                          p_header_num   => 1);
41566        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
41567 
41568        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
41569 
41570        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
41571           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
41572        END IF;
41573 
41574       --
41575       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
41576       --
41577       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
41578           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
41579       ELSE
41580           ---------------------------------------------------------------------------------------------------
41581           -- 4262811a Switch Sign
41582           ---------------------------------------------------------------------------------------------------
41583           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
41584           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41585                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41586           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41587                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41588           -- 5132302
41589           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
41590                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41591 
41592       END IF;
41593 
41594       -- 4955764
41595       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41596       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
41597 
41598 
41599       XLA_AE_LINES_PKG.ValidateCurrentLine;
41600       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41601 
41602       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41603                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
41604                ,p_balance_type_code => l_balance_type_code);
41605 
41606    END IF;
41607 
41608    -----------------------------------------------------------------------------------------
41609    -- 4262811 Multiperiod Accounting
41610    -----------------------------------------------------------------------------------------
41611      -- No MPA option is assigned.
41612 
41613 
41614 END IF;
41615 END IF;
41616 --
41617 
41618 --
41619 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41620    trace
41621       (p_msg      => 'END of AcctLineType_93'
41622       ,p_level    => C_LEVEL_PROCEDURE
41623       ,p_module   => l_log_module);
41624 END IF;
41625 --
41626 EXCEPTION
41627   WHEN xla_exceptions_pkg.application_exception THEN
41628       RAISE;
41629   WHEN OTHERS THEN
41630        xla_exceptions_pkg.raise_message
41631            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_93');
41632 END AcctLineType_93;
41633 --
41634 
41635 ---------------------------------------
41636 --
41637 -- PRIVATE FUNCTION
41638 --         AcctLineType_94
41639 --
41640 ---------------------------------------
41641 PROCEDURE AcctLineType_94 (
41642   p_application_id        IN NUMBER
41643  ,p_event_id              IN NUMBER
41644  ,p_calculate_acctd_flag  IN VARCHAR2
41645  ,p_calculate_g_l_flag    IN VARCHAR2
41646  ,p_actual_flag           IN OUT VARCHAR2
41647  ,p_balance_type_code     OUT VARCHAR2
41648  ,p_gain_or_loss_ref      OUT VARCHAR2
41649  
41650 --Accounting Reversal Indicator
41651  , p_source_53            IN VARCHAR2
41652 --Distribution Link Type
41653  , p_source_55            IN VARCHAR2
41654 --Invoice Identifier
41658 --Payables Encumbrance Upgrade Credit Amount
41655  , p_source_58            IN NUMBER
41656 --Payables Encumbrance Upgrade Credit Account
41657  , p_source_65            IN NUMBER
41659  , p_source_66            IN NUMBER
41660 --Invoice Currency Code
41661  , p_source_67            IN VARCHAR2
41662 --Payables Encumbrance Upgrade Credit Base Amount
41663  , p_source_68            IN NUMBER
41664 --Payables Encumbrance Upgrade Debit Account
41665  , p_source_69            IN NUMBER
41666 --Payables Encumbrance Upgrade Debit Amount
41667  , p_source_70            IN NUMBER
41668 --Payables Encumbrance Upgrade Debit Base Amount
41669  , p_source_71            IN NUMBER
41670 --Payables Encumbrance Upgrade Option
41671  , p_source_72            IN VARCHAR2
41672 --Deferred Accounting End Date
41673  , p_source_77            IN DATE
41674 --Deferred Accounting Option
41675  , p_source_78            IN VARCHAR2
41676 --Deferred Accounting Start Date
41677  , p_source_79            IN DATE
41678 --Override Accounted Amount Indicator
41679  , p_source_80            IN VARCHAR2
41680  , p_source_80_meaning    IN VARCHAR2
41681 --Third Party Type
41682  , p_source_83            IN VARCHAR2
41683 --Invoice Distribution Tax Line Identifier
41684  , p_source_86            IN NUMBER
41685 --Invoice Distribution Tax Distribution Identifier from Tax
41686  , p_source_87            IN NUMBER
41687 --Invoice Distribution Summary Tax Line Identifier
41688  , p_source_88            IN NUMBER
41689 --Payables Upgrade Credit Encumbrance Type Identifier
41690  , p_source_89            IN NUMBER
41691 --Payables Upgrade Debit Encumbrance Type Identifier
41692  , p_source_90            IN NUMBER
41693 --Business Flow Accounts Payable Application Identifier
41694  , p_source_91            IN NUMBER
41695 --Prepayment Distribution Type
41696  , p_source_125            IN VARCHAR2
41697 --Deferred Prepayment Settlement Option Code
41698  , p_source_126            IN VARCHAR2
41699  , p_source_126_meaning    IN VARCHAR2
41700 --Prepayment Application Distribution Identifier
41701  , p_source_127            IN NUMBER
41702 --Business Flow Prepayment Payment Distribution Type
41703  , p_source_128            IN VARCHAR2
41704 --Business Flow Cash Basis Prepayment Entity Code
41705  , p_source_129            IN VARCHAR2
41706 --Business Flow Prepay Payment Distribution Id
41707  , p_source_130            IN NUMBER
41708 --Business Flow Prepay Payment Id
41709  , p_source_131            IN NUMBER
41710 --Upgrade Encumbrance Credit Account Class
41711  , p_source_132            IN VARCHAR2
41712 --Upgrade Encumbrance Debit Account Class
41713  , p_source_133            IN VARCHAR2
41714 --Prepayment Distribution Amount
41715  , p_source_134            IN NUMBER
41716 --Prepayment Distribution (Prepayment Rate) Ledger Amount
41717  , p_source_135            IN NUMBER
41718 --Identifier of the Prepayment Application Reversed
41719  , p_source_136            IN NUMBER
41720 )
41721 IS
41722 
41723 l_component_type              VARCHAR2(80);
41724 l_component_code              VARCHAR2(30);
41725 l_component_type_code         VARCHAR2(1);
41726 l_component_appl_id           INTEGER;
41727 l_amb_context_code            VARCHAR2(30);
41728 l_entity_code                 VARCHAR2(30);
41729 l_event_class_code            VARCHAR2(30);
41730 l_ae_header_id                NUMBER;
41731 l_event_type_code             VARCHAR2(30);
41732 l_line_definition_code        VARCHAR2(30);
41733 l_line_definition_owner_code  VARCHAR2(1);
41734 --
41735 -- adr variables
41736 l_segment                     VARCHAR2(30);
41737 l_ccid                        NUMBER;
41738 l_adr_transaction_coa_id      NUMBER;
41739 l_adr_accounting_coa_id       NUMBER;
41740 l_adr_flexfield_segment_code  VARCHAR2(30);
41741 l_adr_flex_value_set_id       NUMBER;
41742 l_adr_value_type_code         VARCHAR2(30);
41743 l_adr_value_combination_id    NUMBER;
41744 l_adr_value_segment_code      VARCHAR2(30);
41745 
41746 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
41747 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
41748 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
41749 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
41750 
41751 -- 4262811 Variables ------------------------------------------------------------------------------------------
41752 l_entered_amt_idx             NUMBER;
41753 l_accted_amt_idx              NUMBER;
41754 l_acc_rev_flag                VARCHAR2(1);
41755 l_accrual_line_num            NUMBER;
41756 l_tmp_amt                     NUMBER;
41757 l_acc_rev_natural_side_code   VARCHAR2(1);
41758 
41759 l_num_entries                 NUMBER;
41760 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
41761 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
41762 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
41763 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
41764 l_recog_line_1                NUMBER;
41765 l_recog_line_2                NUMBER;
41766 
41767 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
41768 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
41769 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
41770 
41771 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
41772 
41776 ---------------------------------------------------------------------------------------------------------------
41773 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
41774 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
41775 
41777 
41778 
41779 --
41780 -- bulk performance
41781 --
41782 l_balance_type_code           VARCHAR2(1);
41783 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
41784 l_log_module                  VARCHAR2(240);
41785 
41786 --
41787 -- Upgrade strategy
41788 --
41789 l_actual_upg_option           VARCHAR2(1);
41790 l_enc_upg_option           VARCHAR2(1);
41791 
41792 --
41793 BEGIN
41794 --
41795 IF g_log_enabled THEN
41796       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_94';
41797 END IF;
41798 --
41799 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41800 
41801       trace
41802          (p_msg      => 'BEGIN of AcctLineType_94'
41803          ,p_level    => C_LEVEL_PROCEDURE
41804          ,p_module   => l_log_module);
41805 
41806 END IF;
41807 --
41808 l_component_type             := 'AMB_JLT';
41809 l_component_code             := 'AP_DEF_PP_EXP_ACCR';
41810 l_component_type_code        := 'S';
41811 l_component_appl_id          :=  200;
41812 l_amb_context_code           := 'DEFAULT';
41813 l_entity_code                := 'AP_INVOICES';
41814 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
41815 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
41816 l_line_definition_owner_code := 'S';
41817 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
41818 --
41819 l_balance_type_code          := 'A';
41820 l_segment                     := NULL;
41821 l_ccid                        := NULL;
41822 l_adr_transaction_coa_id      := NULL;
41823 l_adr_accounting_coa_id       := NULL;
41824 l_adr_flexfield_segment_code  := NULL;
41825 l_adr_flex_value_set_id       := NULL;
41826 l_adr_value_type_code         := NULL;
41827 l_adr_value_combination_id    := NULL;
41828 l_adr_value_segment_code      := NULL;
41829 
41830 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
41831 l_bflow_class_code           := 'AP_PP_DEF_TAX';    -- 4219869 Business Flow
41832 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
41833 l_budgetary_control_flag     := 'N';
41834 
41835 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
41836 l_bflow_applied_to_amt       := NULL; -- 5132302
41837 l_entered_amt_idx            := NULL;          -- 4262811
41838 l_accted_amt_idx             := NULL;          -- 4262811
41839 l_acc_rev_flag               := NULL;          -- 4262811
41840 l_accrual_line_num           := NULL;          -- 4262811
41841 l_tmp_amt                    := NULL;          -- 4262811
41842 --
41843  
41844 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
41845     l_balance_type_code <> 'B' THEN
41846 IF NVL(p_source_125,'
41847 ') =  'PREPAY APPL REC TAX' AND 
41848 NVL(p_source_126,'
41849 ') =  'DEFERRED'
41850  THEN 
41851 
41852    --
41853    XLA_AE_LINES_PKG.SetNewLine;
41854 
41855    p_balance_type_code          := l_balance_type_code;
41856    -- set the flag so later we will know whether the gain loss line needs to be created
41857    
41858    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
41859      p_actual_flag :='A';
41860    END IF;
41861 
41862    --
41863    -- bulk performance
41864    --
41865    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
41866                                       p_header_num   => 0); -- 4262811
41867    --
41868    -- set accounting line options
41869    --
41870    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
41871            p_natural_side_code          => 'D'
41872          , p_gain_or_loss_flag          => 'N'
41873          , p_gl_transfer_mode_code      => 'S'
41874          , p_acct_entry_type_code       => 'A'
41875          , p_switch_side_flag           => 'Y'
41876          , p_merge_duplicate_code       => 'A'
41877          );
41878    --
41879    l_acc_rev_natural_side_code := 'C';  -- 4262811
41880    -- 
41881    --
41882    -- set accounting line type info
41883    --
41884    xla_ae_lines_pkg.SetAcctLineType
41885       (p_component_type             => l_component_type
41886       ,p_event_type_code            => l_event_type_code
41887       ,p_line_definition_owner_code => l_line_definition_owner_code
41888       ,p_line_definition_code       => l_line_definition_code
41889       ,p_accounting_line_code       => l_component_code
41890       ,p_accounting_line_type_code  => l_component_type_code
41891       ,p_accounting_line_appl_id    => l_component_appl_id
41892       ,p_amb_context_code           => l_amb_context_code
41893       ,p_entity_code                => l_entity_code
41894       ,p_event_class_code           => l_event_class_code);
41895    --
41896    -- set accounting class
41897    --
41898    xla_ae_lines_pkg.SetAcctClass(
41899            p_accounting_class_code  => 'PREPAID_EXPENSE'
41900          , p_ae_header_id           => l_ae_header_id
41901          );
41902 
41903    --
41904    -- set rounding class
41905    --
41906    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
41907                       'PREPAID_EXPENSE';
41911    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
41908 
41909    --
41910    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
41912    --
41913    -- bulk performance
41914    --
41915    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
41916 
41917    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
41918       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
41919 
41920    -- 4955764
41921    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41922       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
41923 
41924    -- 4458381 Public Sector Enh
41925    
41926    --
41927    -- set accounting attributes for the line type
41928    --
41929    l_entered_amt_idx := 25;
41930    l_accted_amt_idx  := 27;
41931    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
41932    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
41933    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
41934    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
41935    l_rec_acct_attrs.array_num_value(2)  := 
41936 xla_ae_sources_pkg.GetSystemSourceNum(
41937    p_source_code           => 'XLA_EVENT_APPL_ID'
41938  , p_source_type_code      => 'Y'
41939  , p_source_application_id =>  602
41940 );
41941    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
41942    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
41943    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
41944    l_rec_acct_attrs.array_char_value(4)  := 
41945 xla_ae_sources_pkg.GetSystemSourceChar(
41946    p_source_code           => 'XLA_ENTITY_CODE'
41947  , p_source_type_code      => 'Y'
41948  , p_source_application_id =>  602
41949 );
41950    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
41951    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_127);
41952    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
41953    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
41954    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
41955    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
41956    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
41957    l_rec_acct_attrs.array_char_value(8)  := p_source_128;
41958    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
41959    l_rec_acct_attrs.array_char_value(9)  := p_source_129;
41960    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
41961    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_130);
41962    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
41963    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_131);
41964    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
41965    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_127);
41966    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
41967    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
41968    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
41969    l_rec_acct_attrs.array_char_value(14)  := p_source_132;
41970    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
41971    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
41972    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
41973    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
41974    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
41975    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
41976    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
41977    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
41978    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
41979    l_rec_acct_attrs.array_char_value(19)  := p_source_133;
41980    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
41981    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
41982    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
41983    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
41984    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
41985    l_rec_acct_attrs.array_char_value(22)  := p_source_67;
41986    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
41987    l_rec_acct_attrs.array_num_value(23)  := p_source_71;
41988    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
41989    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
41990    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
41991    l_rec_acct_attrs.array_num_value(25)  := p_source_134;
41992    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
41993    l_rec_acct_attrs.array_char_value(26)  := p_source_67;
41994    l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
41995    l_rec_acct_attrs.array_num_value(27)  := p_source_135;
41996    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
41997    l_rec_acct_attrs.array_date_value(28)  := p_source_77;
41998    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
41999    l_rec_acct_attrs.array_char_value(29)  := p_source_78;
42000    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
42004    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
42001    l_rec_acct_attrs.array_date_value(30)  := p_source_79;
42002    l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
42003    l_rec_acct_attrs.array_char_value(31)  := p_source_80;
42005    l_rec_acct_attrs.array_char_value(32)  := p_source_83;
42006    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
42007    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_136);
42008    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
42009    l_rec_acct_attrs.array_char_value(34)  := p_source_55;
42010    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
42011    l_rec_acct_attrs.array_num_value(35)  := p_source_86;
42012    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
42013    l_rec_acct_attrs.array_num_value(36)  := p_source_87;
42014    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
42015    l_rec_acct_attrs.array_num_value(37)  := p_source_88;
42016    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
42017    l_rec_acct_attrs.array_num_value(38)  := p_source_89;
42018    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
42019    l_rec_acct_attrs.array_num_value(39)  := p_source_90;
42020 
42021    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
42022    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
42023 
42024    ---------------------------------------------------------------------------------------------------------------
42025    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
42026    ---------------------------------------------------------------------------------------------------------------
42027    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
42028 
42029    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42030    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42031 
42032    IF xla_accounting_cache_pkg.GetValueChar
42033          (p_source_code         => 'LEDGER_CATEGORY_CODE'
42034          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
42035    AND l_bflow_method_code = 'PRIOR_ENTRY'
42036 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
42037    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
42038          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
42039        )
42040    THEN
42041          xla_ae_lines_pkg.BflowUpgEntry
42042            (p_business_method_code    => l_bflow_method_code
42043            ,p_business_class_code     => l_bflow_class_code
42044            ,p_balance_type            => l_balance_type_code);
42045    ELSE
42046       NULL;
42047 XLA_AE_LINES_PKG.business_flow_validation(
42048                                 p_business_method_code     => l_bflow_method_code
42049                                ,p_business_class_code      => l_bflow_class_code
42050                                ,p_inherit_description_flag => l_inherit_desc_flag);
42051    END IF;
42052 
42053    --
42054    -- call analytical criteria
42055    --
42056    -- Inherited Analytical Criteria for business flow method of Prior Entry.
42057    --
42058    -- call description
42059    --
42060    -- No description or it is inherited.
42061    --
42062    -- call ADRs
42063    -- Bug 4922099
42064    --
42065    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42066         (NVL(l_actual_upg_option, 'N') = 'O') OR
42067         (NVL(l_enc_upg_option, 'N') = 'O')
42068       )
42069    THEN
42070    NULL;
42071    --
42072    --
42073    
42074    --
42075    --
42076    END IF;
42077    --
42078    -- Bug 4922099
42079    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
42080           (NVL(l_enc_upg_option, 'N') = 'O')
42081         ) AND
42082         (l_bflow_method_code = 'PRIOR_ENTRY')
42083       )
42084    THEN
42085       IF
42086       --
42087       1 = 1
42088       --
42089       THEN
42090       xla_accounting_err_pkg.build_message
42091                                     (p_appli_s_name            => 'XLA'
42092                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42093                                     ,p_token_1                 => 'LINE_NUMBER'
42094                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
42095                                     ,p_token_2                 => 'LINE_TYPE_NAME'
42096                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
42097                                                                              l_component_type
42098                                                                             ,l_component_code
42099                                                                             ,l_component_type_code
42100                                                                             ,l_component_appl_id
42101                                                                             ,l_amb_context_code
42102                                                                             ,l_entity_code
42103                                                                             ,l_event_class_code
42104                                                                            )
42105                                     ,p_token_3                 => 'OWNER'
42109                                                                          )
42106                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
42107                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
42108                                                                           ,p_lookup_code    => l_component_type_code
42110                                     ,p_token_4                 => 'PRODUCT_NAME'
42111                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
42112                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
42113                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
42114                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
42115                                     ,p_ae_header_id            =>  NULL
42116                                        );
42117 
42118         IF (C_LEVEL_ERROR>= g_log_level) THEN
42119                  trace
42120                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42121                       ,p_level    => C_LEVEL_ERROR
42122                       ,p_module   => l_log_module);
42123         END IF;
42124       END IF;
42125    END IF;
42126    --
42127    --
42128    ------------------------------------------------------------------------------------------------
42129    -- 4219869 Business Flow
42130    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
42131    -- Prior Entry.  Currently, the following code is always generated.
42132    ------------------------------------------------------------------------------------------------
42133    -- No ValidateCurrentLine for business flow method of Prior Entry
42134 
42135    ------------------------------------------------------------------------------------
42136    -- 4219869 Business Flow
42137    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
42138    ------------------------------------------------------------------------------------
42139    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42140 
42141    ----------------------------------------------------------------------------------
42142    -- 4219869 Business Flow
42143    -- Update journal entry status -- Need to generate this within IF <condition>
42144    ----------------------------------------------------------------------------------
42145    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42146          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
42147          ,p_balance_type_code => l_balance_type_code
42148          );
42149 
42150    -------------------------------------------------------------------------------------------
42151    -- 4262811 - Generate the Accrual Reversal lines
42152    -------------------------------------------------------------------------------------------
42153    BEGIN
42154       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
42155                               (g_array_event(p_event_id).array_value_num('header_index'));
42156       IF l_acc_rev_flag IS NULL THEN
42157          l_acc_rev_flag := 'N';
42158       END IF;
42159    EXCEPTION
42160       WHEN OTHERS THEN
42161          l_acc_rev_flag := 'N';
42162    END;
42163    --
42164    IF (l_acc_rev_flag = 'Y') THEN
42165 
42166        -- 4645092  ------------------------------------------------------------------------------
42167        -- To allow MPA report to determine if it should generate report process
42168        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
42169        ------------------------------------------------------------------------------------------
42170 
42171        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
42172        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
42173    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
42174    -- call ADRs
42175    -- Bug 4922099
42176    --
42177    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42178         (NVL(l_actual_upg_option, 'N') = 'O') OR
42179         (NVL(l_enc_upg_option, 'N') = 'O')
42180       )
42181    THEN
42182    NULL;
42183    --
42184    --
42185    
42186    --
42187    --
42188    END IF;
42189 
42190        --
42191        -- Update the line information that should be overwritten
42192        --
42193        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
42194                                          p_header_num   => 1);
42195        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
42196 
42197        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
42198 
42199        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
42200           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
42201        END IF;
42202 
42203       --
42204       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
42205       --
42206       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
42207           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
42208       ELSE
42212           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
42209           ---------------------------------------------------------------------------------------------------
42210           -- 4262811a Switch Sign
42211           ---------------------------------------------------------------------------------------------------
42213           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42214                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42215           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42216                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42217           -- 5132302
42218           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
42219                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42220 
42221       END IF;
42222 
42223       -- 4955764
42224       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42225       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
42226 
42227 
42228       XLA_AE_LINES_PKG.ValidateCurrentLine;
42229       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42230 
42231       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42232                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
42233                ,p_balance_type_code => l_balance_type_code);
42234 
42235    END IF;
42236 
42237    -----------------------------------------------------------------------------------------
42238    -- 4262811 Multiperiod Accounting
42239    -----------------------------------------------------------------------------------------
42240      -- No MPA option is assigned.
42241 
42242 
42243 END IF;
42244 END IF;
42245 --
42246 
42247 --
42248 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42249    trace
42250       (p_msg      => 'END of AcctLineType_94'
42251       ,p_level    => C_LEVEL_PROCEDURE
42252       ,p_module   => l_log_module);
42253 END IF;
42254 --
42255 EXCEPTION
42256   WHEN xla_exceptions_pkg.application_exception THEN
42257       RAISE;
42258   WHEN OTHERS THEN
42259        xla_exceptions_pkg.raise_message
42260            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_94');
42261 END AcctLineType_94;
42262 --
42263 
42264 ---------------------------------------
42265 --
42266 -- PRIVATE FUNCTION
42267 --         AcctLineType_95
42268 --
42269 ---------------------------------------
42270 PROCEDURE AcctLineType_95 (
42271   p_application_id        IN NUMBER
42272  ,p_event_id              IN NUMBER
42273  ,p_calculate_acctd_flag  IN VARCHAR2
42274  ,p_calculate_g_l_flag    IN VARCHAR2
42275  ,p_actual_flag           IN OUT VARCHAR2
42276  ,p_balance_type_code     OUT VARCHAR2
42277  ,p_gain_or_loss_ref      OUT VARCHAR2
42278  
42279 --Payment Currency Code
42280  , p_source_13            IN VARCHAR2
42281 --Invoice Distribution Type
42282  , p_source_33            IN VARCHAR2
42283  , p_source_33_meaning    IN VARCHAR2
42284 --Recoverable Tax Account
42285  , p_source_52            IN NUMBER
42286 --Accounting Reversal Indicator
42287  , p_source_53            IN VARCHAR2
42288 --Distribution Link Type
42289  , p_source_55            IN VARCHAR2
42290 --Override Accounted Amount Indicator
42291  , p_source_80            IN VARCHAR2
42292  , p_source_80_meaning    IN VARCHAR2
42293 --Third Party Type
42294  , p_source_83            IN VARCHAR2
42295 --Invoice Distribution Tax Line Identifier
42296  , p_source_86            IN NUMBER
42297 --Invoice Distribution Summary Tax Line Identifier
42298  , p_source_88            IN NUMBER
42299 --Business Flow Accounts Payable Application Identifier
42300  , p_source_91            IN NUMBER
42301 --When to Account for Payment Option
42302  , p_source_97            IN VARCHAR2
42303 --Payment Distribution Type
42304  , p_source_98            IN VARCHAR2
42305  , p_source_98_meaning    IN VARCHAR2
42306 --Payment Distribution Amount
42307  , p_source_99            IN NUMBER
42308 --Business Flow Payment Distribution Type
42309  , p_source_100            IN VARCHAR2
42310 --Business Flow Payment Entity Code
42311  , p_source_101            IN VARCHAR2
42312 --Business Flow Payment Distribution Identifier
42313  , p_source_102            IN NUMBER
42314 --Business Flow Payment Identifier
42315  , p_source_103            IN NUMBER
42316 --Payment Distribution Identifier
42317  , p_source_104            IN NUMBER
42318 --Cleared Exchange Date
42319  , p_source_106            IN DATE
42320 --Cleared Exchange Rate
42321  , p_source_107            IN NUMBER
42322 --Cleared Exchange Rate Type
42323  , p_source_108            IN VARCHAR2
42324 --Payment Distribution (Cleared Rate) Ledger Amount
42325  , p_source_109            IN NUMBER
42326 --Payment Supplier Identifier
42327  , p_source_110            IN NUMBER
42328 --Payment Supplier Site Identifier
42329  , p_source_111            IN NUMBER
42330 --Payment Distribution Reversed Identifier
42331  , p_source_112            IN NUMBER
42332 --Payment Type
42333  , p_source_122            IN VARCHAR2
42334  , p_source_122_meaning    IN VARCHAR2
42335 --Deferred Recoverable Tax Option
42336  , p_source_137            IN VARCHAR2
42337  , p_source_137_meaning    IN VARCHAR2
42338 )
42339 IS
42340 
42344 l_component_appl_id           INTEGER;
42341 l_component_type              VARCHAR2(80);
42342 l_component_code              VARCHAR2(30);
42343 l_component_type_code         VARCHAR2(1);
42345 l_amb_context_code            VARCHAR2(30);
42346 l_entity_code                 VARCHAR2(30);
42347 l_event_class_code            VARCHAR2(30);
42348 l_ae_header_id                NUMBER;
42349 l_event_type_code             VARCHAR2(30);
42350 l_line_definition_code        VARCHAR2(30);
42351 l_line_definition_owner_code  VARCHAR2(1);
42352 --
42353 -- adr variables
42354 l_segment                     VARCHAR2(30);
42355 l_ccid                        NUMBER;
42356 l_adr_transaction_coa_id      NUMBER;
42357 l_adr_accounting_coa_id       NUMBER;
42358 l_adr_flexfield_segment_code  VARCHAR2(30);
42359 l_adr_flex_value_set_id       NUMBER;
42360 l_adr_value_type_code         VARCHAR2(30);
42361 l_adr_value_combination_id    NUMBER;
42362 l_adr_value_segment_code      VARCHAR2(30);
42363 
42364 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
42365 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
42366 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
42367 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
42368 
42369 -- 4262811 Variables ------------------------------------------------------------------------------------------
42370 l_entered_amt_idx             NUMBER;
42371 l_accted_amt_idx              NUMBER;
42372 l_acc_rev_flag                VARCHAR2(1);
42373 l_accrual_line_num            NUMBER;
42374 l_tmp_amt                     NUMBER;
42375 l_acc_rev_natural_side_code   VARCHAR2(1);
42376 
42377 l_num_entries                 NUMBER;
42378 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
42379 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
42380 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
42381 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
42382 l_recog_line_1                NUMBER;
42383 l_recog_line_2                NUMBER;
42384 
42385 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
42386 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
42387 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
42388 
42389 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
42390 
42391 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
42392 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
42393 
42394 ---------------------------------------------------------------------------------------------------------------
42395 
42396 
42397 --
42398 -- bulk performance
42399 --
42400 l_balance_type_code           VARCHAR2(1);
42401 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
42402 l_log_module                  VARCHAR2(240);
42403 
42404 --
42405 -- Upgrade strategy
42406 --
42407 l_actual_upg_option           VARCHAR2(1);
42408 l_enc_upg_option           VARCHAR2(1);
42409 
42410 --
42411 BEGIN
42412 --
42413 IF g_log_enabled THEN
42414       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_95';
42415 END IF;
42416 --
42417 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42418 
42419       trace
42420          (p_msg      => 'BEGIN of AcctLineType_95'
42421          ,p_level    => C_LEVEL_PROCEDURE
42422          ,p_module   => l_log_module);
42423 
42424 END IF;
42425 --
42426 l_component_type             := 'AMB_JLT';
42427 l_component_code             := 'AP_DEF_RTAX_CLR';
42428 l_component_type_code        := 'S';
42429 l_component_appl_id          :=  200;
42430 l_amb_context_code           := 'DEFAULT';
42431 l_entity_code                := 'AP_PAYMENTS';
42432 l_event_class_code           := 'RECONCILED PAYMENTS';
42433 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
42434 l_line_definition_owner_code := 'S';
42435 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
42436 --
42437 l_balance_type_code          := 'A';
42438 l_segment                     := NULL;
42439 l_ccid                        := NULL;
42440 l_adr_transaction_coa_id      := NULL;
42441 l_adr_accounting_coa_id       := NULL;
42442 l_adr_flexfield_segment_code  := NULL;
42443 l_adr_flex_value_set_id       := NULL;
42444 l_adr_value_type_code         := NULL;
42445 l_adr_value_combination_id    := NULL;
42446 l_adr_value_segment_code      := NULL;
42447 
42448 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
42449 l_bflow_class_code           := '';    -- 4219869 Business Flow
42450 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
42451 l_budgetary_control_flag     := 'N';
42452 
42453 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
42454 l_bflow_applied_to_amt       := NULL; -- 5132302
42455 l_entered_amt_idx            := NULL;          -- 4262811
42456 l_accted_amt_idx             := NULL;          -- 4262811
42457 l_acc_rev_flag               := NULL;          -- 4262811
42458 l_accrual_line_num           := NULL;          -- 4262811
42459 l_tmp_amt                    := NULL;          -- 4262811
42460 --
42461  
42462 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
42463     l_balance_type_code <> 'B' THEN
42464 IF NVL(p_source_97,'
42468 NVL(p_source_137,'
42465 ') =  'CLEAR_CLEAR' AND 
42466 NVL(p_source_33,'
42467 ') =  'REC_TAX' AND 
42469 ') =  'DEFERRED' AND 
42470 (NVL(p_source_98,'
42471 ') =  'CASH' OR 
42472 NVL(p_source_98,'
42473 ') =  'DISCOUNT') AND 
42474 NVL(p_source_122,'
42475 ') <>  'R'
42476  THEN 
42477 
42478    --
42479    XLA_AE_LINES_PKG.SetNewLine;
42480 
42481    p_balance_type_code          := l_balance_type_code;
42482    -- set the flag so later we will know whether the gain loss line needs to be created
42483    
42484    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
42485      p_actual_flag :='A';
42486    END IF;
42487 
42488    --
42489    -- bulk performance
42490    --
42491    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
42492                                       p_header_num   => 0); -- 4262811
42493    --
42494    -- set accounting line options
42495    --
42496    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
42497            p_natural_side_code          => 'D'
42498          , p_gain_or_loss_flag          => 'N'
42499          , p_gl_transfer_mode_code      => 'S'
42500          , p_acct_entry_type_code       => 'A'
42501          , p_switch_side_flag           => 'Y'
42502          , p_merge_duplicate_code       => 'A'
42503          );
42504    --
42505    l_acc_rev_natural_side_code := 'C';  -- 4262811
42506    -- 
42507    --
42508    -- set accounting line type info
42509    --
42510    xla_ae_lines_pkg.SetAcctLineType
42511       (p_component_type             => l_component_type
42512       ,p_event_type_code            => l_event_type_code
42513       ,p_line_definition_owner_code => l_line_definition_owner_code
42514       ,p_line_definition_code       => l_line_definition_code
42515       ,p_accounting_line_code       => l_component_code
42516       ,p_accounting_line_type_code  => l_component_type_code
42517       ,p_accounting_line_appl_id    => l_component_appl_id
42518       ,p_amb_context_code           => l_amb_context_code
42519       ,p_entity_code                => l_entity_code
42520       ,p_event_class_code           => l_event_class_code);
42521    --
42522    -- set accounting class
42523    --
42524    xla_ae_lines_pkg.SetAcctClass(
42525            p_accounting_class_code  => 'DEF_REC_TAX'
42526          , p_ae_header_id           => l_ae_header_id
42527          );
42528 
42529    --
42530    -- set rounding class
42531    --
42532    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
42533                       'DEF_REC_TAX';
42534 
42535    --
42536    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
42537    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
42538    --
42539    -- bulk performance
42540    --
42541    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
42542 
42543    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
42544       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
42545 
42546    -- 4955764
42547    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42548       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
42549 
42550    -- 4458381 Public Sector Enh
42551    
42552    --
42553    -- set accounting attributes for the line type
42554    --
42555    l_entered_amt_idx := 10;
42556    l_accted_amt_idx  := 15;
42557    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
42558    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
42559    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
42560    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
42561    l_rec_acct_attrs.array_num_value(2)  := p_source_99;
42562    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
42563    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
42564    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
42565    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
42566    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
42567    l_rec_acct_attrs.array_char_value(5)  := p_source_101;
42568    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
42569    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
42570    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
42571    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
42572    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
42573    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
42574    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
42575    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
42576    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
42577    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
42578    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
42579    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
42580    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
42581    l_rec_acct_attrs.array_date_value(12)  := p_source_106;
42582    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
42583    l_rec_acct_attrs.array_num_value(13)  := p_source_107;
42587    l_rec_acct_attrs.array_num_value(15)  := p_source_109;
42584    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
42585    l_rec_acct_attrs.array_char_value(14)  := p_source_108;
42586    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
42588    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
42589    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
42590    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
42591    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
42592    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
42593    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
42594    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
42595    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
42596    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
42597    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
42598    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
42599    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
42600    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
42601    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
42602    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
42603    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
42604    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
42605    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
42606 
42607    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
42608    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
42609 
42610    ---------------------------------------------------------------------------------------------------------------
42611    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
42612    ---------------------------------------------------------------------------------------------------------------
42613    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
42614 
42615    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42616    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42617 
42618    IF xla_accounting_cache_pkg.GetValueChar
42619          (p_source_code         => 'LEDGER_CATEGORY_CODE'
42620          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
42621    AND l_bflow_method_code = 'PRIOR_ENTRY'
42622 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
42623    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
42624          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
42625        )
42626    THEN
42627          xla_ae_lines_pkg.BflowUpgEntry
42628            (p_business_method_code    => l_bflow_method_code
42629            ,p_business_class_code     => l_bflow_class_code
42630            ,p_balance_type            => l_balance_type_code);
42631    ELSE
42632       NULL;
42633 -- No business flow processing for business flow method of NONE.
42634    END IF;
42635 
42636    --
42637    -- call analytical criteria
42638    --
42639    
42640    --
42641    -- call description
42642    --
42643    -- No description or it is inherited.
42644    --
42645    -- call ADRs
42646    -- Bug 4922099
42647    --
42648    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42649         (NVL(l_actual_upg_option, 'N') = 'O') OR
42650         (NVL(l_enc_upg_option, 'N') = 'O')
42651       )
42652    THEN
42653    NULL;
42654    --
42655    --
42656    
42657   l_ccid := AcctDerRule_44(
42658            p_application_id           => p_application_id
42659          , p_ae_header_id             => l_ae_header_id 
42660 , p_source_52 => p_source_52
42661          , x_transaction_coa_id       => l_adr_transaction_coa_id
42662          , x_accounting_coa_id        => l_adr_accounting_coa_id
42663          , x_value_type_code          => l_adr_value_type_code
42664          , p_side                     => 'NA'
42665    );
42666 
42667    xla_ae_lines_pkg.set_ccid(
42668     p_code_combination_id          => l_ccid
42669   , p_value_type_code              => l_adr_value_type_code
42670   , p_transaction_coa_id           => l_adr_transaction_coa_id
42671   , p_accounting_coa_id            => l_adr_accounting_coa_id
42672   , p_adr_code                     => 'AP_TAX_ACCOUNT'
42673   , p_adr_type_code                => 'S'
42674   , p_component_type               => l_component_type
42675   , p_component_code               => l_component_code
42676   , p_component_type_code          => l_component_type_code
42677   , p_component_appl_id            => l_component_appl_id
42678   , p_amb_context_code             => l_amb_context_code
42679   , p_side                         => 'NA'
42680   );
42681 
42682 
42683    --
42684    --
42685    END IF;
42686    --
42687    -- Bug 4922099
42688    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
42689           (NVL(l_enc_upg_option, 'N') = 'O')
42690         ) AND
42691         (l_bflow_method_code = 'PRIOR_ENTRY')
42692       )
42693    THEN
42694       IF
42695       --
42696       1 = 2
42697       --
42698       THEN
42699       xla_accounting_err_pkg.build_message
42700                                     (p_appli_s_name            => 'XLA'
42704                                     ,p_token_2                 => 'LINE_TYPE_NAME'
42701                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42702                                     ,p_token_1                 => 'LINE_NUMBER'
42703                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
42705                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
42706                                                                              l_component_type
42707                                                                             ,l_component_code
42708                                                                             ,l_component_type_code
42709                                                                             ,l_component_appl_id
42710                                                                             ,l_amb_context_code
42711                                                                             ,l_entity_code
42712                                                                             ,l_event_class_code
42713                                                                            )
42714                                     ,p_token_3                 => 'OWNER'
42715                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
42716                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
42717                                                                           ,p_lookup_code    => l_component_type_code
42718                                                                          )
42719                                     ,p_token_4                 => 'PRODUCT_NAME'
42720                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
42721                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
42722                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
42723                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
42724                                     ,p_ae_header_id            =>  NULL
42725                                        );
42726 
42727         IF (C_LEVEL_ERROR>= g_log_level) THEN
42728                  trace
42729                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42730                       ,p_level    => C_LEVEL_ERROR
42731                       ,p_module   => l_log_module);
42732         END IF;
42733       END IF;
42734    END IF;
42735    --
42736    --
42737    ------------------------------------------------------------------------------------------------
42738    -- 4219869 Business Flow
42739    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
42740    -- Prior Entry.  Currently, the following code is always generated.
42741    ------------------------------------------------------------------------------------------------
42742    XLA_AE_LINES_PKG.ValidateCurrentLine;
42743 
42744    ------------------------------------------------------------------------------------
42745    -- 4219869 Business Flow
42746    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
42747    ------------------------------------------------------------------------------------
42748    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42749 
42750    ----------------------------------------------------------------------------------
42751    -- 4219869 Business Flow
42752    -- Update journal entry status -- Need to generate this within IF <condition>
42753    ----------------------------------------------------------------------------------
42754    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42755          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
42756          ,p_balance_type_code => l_balance_type_code
42757          );
42758 
42759    -------------------------------------------------------------------------------------------
42760    -- 4262811 - Generate the Accrual Reversal lines
42761    -------------------------------------------------------------------------------------------
42762    BEGIN
42763       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
42764                               (g_array_event(p_event_id).array_value_num('header_index'));
42765       IF l_acc_rev_flag IS NULL THEN
42766          l_acc_rev_flag := 'N';
42767       END IF;
42768    EXCEPTION
42769       WHEN OTHERS THEN
42770          l_acc_rev_flag := 'N';
42771    END;
42772    --
42773    IF (l_acc_rev_flag = 'Y') THEN
42774 
42775        -- 4645092  ------------------------------------------------------------------------------
42776        -- To allow MPA report to determine if it should generate report process
42777        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
42778        ------------------------------------------------------------------------------------------
42779 
42780        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
42781        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
42782    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
42783    -- call ADRs
42784    -- Bug 4922099
42785    --
42786    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42787         (NVL(l_actual_upg_option, 'N') = 'O') OR
42788         (NVL(l_enc_upg_option, 'N') = 'O')
42789       )
42790    THEN
42791    NULL;
42792    --
42793    --
42794    
42795   l_ccid := AcctDerRule_44(
42799          , x_transaction_coa_id       => l_adr_transaction_coa_id
42796            p_application_id           => p_application_id
42797          , p_ae_header_id             => l_ae_header_id 
42798 , p_source_52 => p_source_52
42800          , x_accounting_coa_id        => l_adr_accounting_coa_id
42801          , x_value_type_code          => l_adr_value_type_code
42802          , p_side                     => 'NA'
42803    );
42804 
42805    xla_ae_lines_pkg.set_ccid(
42806     p_code_combination_id          => l_ccid
42807   , p_value_type_code              => l_adr_value_type_code
42808   , p_transaction_coa_id           => l_adr_transaction_coa_id
42809   , p_accounting_coa_id            => l_adr_accounting_coa_id
42810   , p_adr_code                     => 'AP_TAX_ACCOUNT'
42811   , p_adr_type_code                => 'S'
42812   , p_component_type               => l_component_type
42813   , p_component_code               => l_component_code
42814   , p_component_type_code          => l_component_type_code
42815   , p_component_appl_id            => l_component_appl_id
42816   , p_amb_context_code             => l_amb_context_code
42817   , p_side                         => 'NA'
42818   );
42819 
42820 
42821    --
42822    --
42823    END IF;
42824 
42825        --
42826        -- Update the line information that should be overwritten
42827        --
42828        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
42829                                          p_header_num   => 1);
42830        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
42831 
42832        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
42833 
42834        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
42835           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
42836        END IF;
42837 
42838       --
42839       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
42840       --
42841       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
42842           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
42843       ELSE
42844           ---------------------------------------------------------------------------------------------------
42845           -- 4262811a Switch Sign
42846           ---------------------------------------------------------------------------------------------------
42847           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
42848           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42849                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42850           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42851                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42852           -- 5132302
42853           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
42854                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42855 
42856       END IF;
42857 
42858       -- 4955764
42859       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42860       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
42861 
42862 
42863       XLA_AE_LINES_PKG.ValidateCurrentLine;
42864       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42865 
42866       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42867                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
42868                ,p_balance_type_code => l_balance_type_code);
42869 
42870    END IF;
42871 
42872    -----------------------------------------------------------------------------------------
42873    -- 4262811 Multiperiod Accounting
42874    -----------------------------------------------------------------------------------------
42875      -- No MPA option is assigned.
42876 
42877 
42878 END IF;
42879 END IF;
42880 --
42881 
42882 --
42883 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42884    trace
42885       (p_msg      => 'END of AcctLineType_95'
42886       ,p_level    => C_LEVEL_PROCEDURE
42887       ,p_module   => l_log_module);
42888 END IF;
42889 --
42890 EXCEPTION
42891   WHEN xla_exceptions_pkg.application_exception THEN
42892       RAISE;
42893   WHEN OTHERS THEN
42894        xla_exceptions_pkg.raise_message
42895            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_95');
42896 END AcctLineType_95;
42897 --
42898 
42899 ---------------------------------------
42900 --
42901 -- PRIVATE FUNCTION
42902 --         AcctLineType_96
42903 --
42904 ---------------------------------------
42905 PROCEDURE AcctLineType_96 (
42906   p_application_id        IN NUMBER
42907  ,p_event_id              IN NUMBER
42908  ,p_calculate_acctd_flag  IN VARCHAR2
42909  ,p_calculate_g_l_flag    IN VARCHAR2
42910  ,p_actual_flag           IN OUT VARCHAR2
42911  ,p_balance_type_code     OUT VARCHAR2
42912  ,p_gain_or_loss_ref      OUT VARCHAR2
42913  
42914 --Payment Currency Code
42915  , p_source_13            IN VARCHAR2
42916 --Invoice Distribution Type
42920  , p_source_53            IN VARCHAR2
42917  , p_source_33            IN VARCHAR2
42918  , p_source_33_meaning    IN VARCHAR2
42919 --Accounting Reversal Indicator
42921 --Distribution Link Type
42922  , p_source_55            IN VARCHAR2
42923 --Override Accounted Amount Indicator
42924  , p_source_80            IN VARCHAR2
42925  , p_source_80_meaning    IN VARCHAR2
42926 --Third Party Type
42927  , p_source_83            IN VARCHAR2
42928 --Invoice Distribution Tax Line Identifier
42929  , p_source_86            IN NUMBER
42930 --Invoice Distribution Summary Tax Line Identifier
42931  , p_source_88            IN NUMBER
42932 --Business Flow Accounts Payable Application Identifier
42933  , p_source_91            IN NUMBER
42934 --Business Flow Invoice Distribution Identifier
42935  , p_source_94            IN NUMBER
42936 --Business Flow Invoice Identifier
42937  , p_source_95            IN NUMBER
42938 --When to Account for Payment Option
42939  , p_source_97            IN VARCHAR2
42940 --Payment Distribution Type
42941  , p_source_98            IN VARCHAR2
42942  , p_source_98_meaning    IN VARCHAR2
42943 --Payment Distribution Amount
42944  , p_source_99            IN NUMBER
42945 --Business Flow Payment Distribution Type
42946  , p_source_100            IN VARCHAR2
42947 --Business Flow Payment Entity Code
42948  , p_source_101            IN VARCHAR2
42949 --Payment Distribution Identifier
42950  , p_source_104            IN NUMBER
42951 --Payment Distribution Reversed Identifier
42952  , p_source_112            IN NUMBER
42953 --Payment Distribution (Invoice Rate) Ledger Amount
42954  , p_source_116            IN NUMBER
42955 --Payment Type
42956  , p_source_122            IN VARCHAR2
42957  , p_source_122_meaning    IN VARCHAR2
42958 --Deferred Recoverable Tax Option
42959  , p_source_137            IN VARCHAR2
42960  , p_source_137_meaning    IN VARCHAR2
42961 )
42962 IS
42963 
42964 l_component_type              VARCHAR2(80);
42965 l_component_code              VARCHAR2(30);
42966 l_component_type_code         VARCHAR2(1);
42967 l_component_appl_id           INTEGER;
42968 l_amb_context_code            VARCHAR2(30);
42969 l_entity_code                 VARCHAR2(30);
42970 l_event_class_code            VARCHAR2(30);
42971 l_ae_header_id                NUMBER;
42972 l_event_type_code             VARCHAR2(30);
42973 l_line_definition_code        VARCHAR2(30);
42974 l_line_definition_owner_code  VARCHAR2(1);
42975 --
42976 -- adr variables
42977 l_segment                     VARCHAR2(30);
42978 l_ccid                        NUMBER;
42979 l_adr_transaction_coa_id      NUMBER;
42980 l_adr_accounting_coa_id       NUMBER;
42981 l_adr_flexfield_segment_code  VARCHAR2(30);
42982 l_adr_flex_value_set_id       NUMBER;
42983 l_adr_value_type_code         VARCHAR2(30);
42984 l_adr_value_combination_id    NUMBER;
42985 l_adr_value_segment_code      VARCHAR2(30);
42986 
42987 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
42988 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
42989 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
42990 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
42991 
42992 -- 4262811 Variables ------------------------------------------------------------------------------------------
42993 l_entered_amt_idx             NUMBER;
42994 l_accted_amt_idx              NUMBER;
42995 l_acc_rev_flag                VARCHAR2(1);
42996 l_accrual_line_num            NUMBER;
42997 l_tmp_amt                     NUMBER;
42998 l_acc_rev_natural_side_code   VARCHAR2(1);
42999 
43000 l_num_entries                 NUMBER;
43001 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
43002 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
43003 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
43004 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
43005 l_recog_line_1                NUMBER;
43006 l_recog_line_2                NUMBER;
43007 
43008 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
43009 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
43010 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
43011 
43012 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
43013 
43014 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
43015 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
43016 
43017 ---------------------------------------------------------------------------------------------------------------
43018 
43019 
43020 --
43021 -- bulk performance
43022 --
43023 l_balance_type_code           VARCHAR2(1);
43024 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
43025 l_log_module                  VARCHAR2(240);
43026 
43027 --
43028 -- Upgrade strategy
43029 --
43030 l_actual_upg_option           VARCHAR2(1);
43031 l_enc_upg_option           VARCHAR2(1);
43032 
43033 --
43034 BEGIN
43035 --
43036 IF g_log_enabled THEN
43037       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_96';
43038 END IF;
43039 --
43040 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43041 
43042       trace
43043          (p_msg      => 'BEGIN of AcctLineType_96'
43044          ,p_level    => C_LEVEL_PROCEDURE
43045          ,p_module   => l_log_module);
43046 
43047 END IF;
43048 --
43049 l_component_type             := 'AMB_JLT';
43053 l_amb_context_code           := 'DEFAULT';
43050 l_component_code             := 'AP_DEF_RTAX_INTERIM_CLR';
43051 l_component_type_code        := 'S';
43052 l_component_appl_id          :=  200;
43054 l_entity_code                := 'AP_PAYMENTS';
43055 l_event_class_code           := 'RECONCILED PAYMENTS';
43056 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
43057 l_line_definition_owner_code := 'S';
43058 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
43059 --
43060 l_balance_type_code          := 'A';
43061 l_segment                     := NULL;
43062 l_ccid                        := NULL;
43063 l_adr_transaction_coa_id      := NULL;
43064 l_adr_accounting_coa_id       := NULL;
43065 l_adr_flexfield_segment_code  := NULL;
43066 l_adr_flex_value_set_id       := NULL;
43067 l_adr_value_type_code         := NULL;
43068 l_adr_value_combination_id    := NULL;
43069 l_adr_value_segment_code      := NULL;
43070 
43071 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
43072 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
43073 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
43074 l_budgetary_control_flag     := 'N';
43075 
43076 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
43077 l_bflow_applied_to_amt       := NULL; -- 5132302
43078 l_entered_amt_idx            := NULL;          -- 4262811
43079 l_accted_amt_idx             := NULL;          -- 4262811
43080 l_acc_rev_flag               := NULL;          -- 4262811
43081 l_accrual_line_num           := NULL;          -- 4262811
43082 l_tmp_amt                    := NULL;          -- 4262811
43083 --
43084  
43085 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
43086     l_balance_type_code <> 'B' THEN
43087 IF NVL(p_source_97,'
43088 ') =  'CLEAR_CLEAR' AND 
43089 NVL(p_source_33,'
43090 ') =  'REC_TAX' AND 
43091 NVL(p_source_137,'
43092 ') =  'DEFERRED' AND 
43093 (NVL(p_source_98,'
43094 ') =  'CASH' OR 
43095 NVL(p_source_98,'
43096 ') =  'DISCOUNT') AND 
43097 NVL(p_source_122,'
43098 ') <>  'R'
43099  THEN 
43100 
43101    --
43102    XLA_AE_LINES_PKG.SetNewLine;
43103 
43104    p_balance_type_code          := l_balance_type_code;
43105    -- set the flag so later we will know whether the gain loss line needs to be created
43106    
43107    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
43108      p_actual_flag :='A';
43109    END IF;
43110 
43111    --
43112    -- bulk performance
43113    --
43114    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
43115                                       p_header_num   => 0); -- 4262811
43116    --
43117    -- set accounting line options
43118    --
43119    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
43120            p_natural_side_code          => 'C'
43121          , p_gain_or_loss_flag          => 'N'
43122          , p_gl_transfer_mode_code      => 'S'
43123          , p_acct_entry_type_code       => 'A'
43124          , p_switch_side_flag           => 'Y'
43125          , p_merge_duplicate_code       => 'A'
43126          );
43127    --
43128    l_acc_rev_natural_side_code := 'D';  -- 4262811
43129    -- 
43130    --
43131    -- set accounting line type info
43132    --
43133    xla_ae_lines_pkg.SetAcctLineType
43134       (p_component_type             => l_component_type
43135       ,p_event_type_code            => l_event_type_code
43136       ,p_line_definition_owner_code => l_line_definition_owner_code
43137       ,p_line_definition_code       => l_line_definition_code
43138       ,p_accounting_line_code       => l_component_code
43139       ,p_accounting_line_type_code  => l_component_type_code
43140       ,p_accounting_line_appl_id    => l_component_appl_id
43141       ,p_amb_context_code           => l_amb_context_code
43142       ,p_entity_code                => l_entity_code
43143       ,p_event_class_code           => l_event_class_code);
43144    --
43145    -- set accounting class
43146    --
43147    xla_ae_lines_pkg.SetAcctClass(
43148            p_accounting_class_code  => 'DEF_REC_TAX'
43149          , p_ae_header_id           => l_ae_header_id
43150          );
43151 
43152    --
43153    -- set rounding class
43154    --
43155    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
43156                       'DEF_REC_TAX';
43157 
43158    --
43159    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
43160    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
43161    --
43162    -- bulk performance
43163    --
43164    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
43165 
43166    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
43167       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
43168 
43169    -- 4955764
43170    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43171       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
43172 
43173    -- 4458381 Public Sector Enh
43174    
43175    --
43176    -- set accounting attributes for the line type
43177    --
43178    l_entered_amt_idx := 10;
43182    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
43179    l_accted_amt_idx  := 12;
43180    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
43181    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
43183    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
43184    l_rec_acct_attrs.array_num_value(2)  := p_source_99;
43185    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
43186    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
43187    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
43188    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
43189    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
43190    l_rec_acct_attrs.array_char_value(5)  := p_source_101;
43191    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
43192    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
43193    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
43194    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
43195    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
43196    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
43197    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
43198    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
43199    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
43200    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
43201    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
43202    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
43203    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
43204    l_rec_acct_attrs.array_num_value(12)  := p_source_116;
43205    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
43206    l_rec_acct_attrs.array_char_value(13)  := p_source_80;
43207    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
43208    l_rec_acct_attrs.array_char_value(14)  := p_source_83;
43209    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
43210    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_112);
43211    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
43212    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
43213    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
43214    l_rec_acct_attrs.array_num_value(17)  := p_source_86;
43215    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
43216    l_rec_acct_attrs.array_num_value(18)  := p_source_86;
43217    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
43218    l_rec_acct_attrs.array_num_value(19)  := p_source_88;
43219 
43220    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
43221    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
43222 
43223    ---------------------------------------------------------------------------------------------------------------
43224    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
43225    ---------------------------------------------------------------------------------------------------------------
43226    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
43227 
43228    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43229    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43230 
43231    IF xla_accounting_cache_pkg.GetValueChar
43232          (p_source_code         => 'LEDGER_CATEGORY_CODE'
43233          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
43234    AND l_bflow_method_code = 'PRIOR_ENTRY'
43235 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
43236    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
43237          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
43238        )
43239    THEN
43240          xla_ae_lines_pkg.BflowUpgEntry
43241            (p_business_method_code    => l_bflow_method_code
43242            ,p_business_class_code     => l_bflow_class_code
43243            ,p_balance_type            => l_balance_type_code);
43244    ELSE
43245       NULL;
43246 XLA_AE_LINES_PKG.business_flow_validation(
43247                                 p_business_method_code     => l_bflow_method_code
43248                                ,p_business_class_code      => l_bflow_class_code
43249                                ,p_inherit_description_flag => l_inherit_desc_flag);
43250    END IF;
43251 
43252    --
43253    -- call analytical criteria
43254    --
43255    -- Inherited Analytical Criteria for business flow method of Prior Entry.
43256    --
43257    -- call description
43258    --
43259    -- No description or it is inherited.
43260    --
43261    -- call ADRs
43262    -- Bug 4922099
43263    --
43264    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43265         (NVL(l_actual_upg_option, 'N') = 'O') OR
43266         (NVL(l_enc_upg_option, 'N') = 'O')
43267       )
43268    THEN
43269    NULL;
43270    --
43271    --
43272    
43273    --
43274    --
43275    END IF;
43276    --
43277    -- Bug 4922099
43278    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
43279           (NVL(l_enc_upg_option, 'N') = 'O')
43280         ) AND
43284       IF
43281         (l_bflow_method_code = 'PRIOR_ENTRY')
43282       )
43283    THEN
43285       --
43286       1 = 1
43287       --
43288       THEN
43289       xla_accounting_err_pkg.build_message
43290                                     (p_appli_s_name            => 'XLA'
43291                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43292                                     ,p_token_1                 => 'LINE_NUMBER'
43293                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
43294                                     ,p_token_2                 => 'LINE_TYPE_NAME'
43295                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
43296                                                                              l_component_type
43297                                                                             ,l_component_code
43298                                                                             ,l_component_type_code
43299                                                                             ,l_component_appl_id
43300                                                                             ,l_amb_context_code
43301                                                                             ,l_entity_code
43302                                                                             ,l_event_class_code
43303                                                                            )
43304                                     ,p_token_3                 => 'OWNER'
43305                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
43306                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
43307                                                                           ,p_lookup_code    => l_component_type_code
43308                                                                          )
43309                                     ,p_token_4                 => 'PRODUCT_NAME'
43310                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
43311                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
43312                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
43313                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
43314                                     ,p_ae_header_id            =>  NULL
43315                                        );
43316 
43317         IF (C_LEVEL_ERROR>= g_log_level) THEN
43318                  trace
43319                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43320                       ,p_level    => C_LEVEL_ERROR
43321                       ,p_module   => l_log_module);
43322         END IF;
43323       END IF;
43324    END IF;
43325    --
43326    --
43327    ------------------------------------------------------------------------------------------------
43328    -- 4219869 Business Flow
43329    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
43330    -- Prior Entry.  Currently, the following code is always generated.
43331    ------------------------------------------------------------------------------------------------
43332    -- No ValidateCurrentLine for business flow method of Prior Entry
43333 
43334    ------------------------------------------------------------------------------------
43335    -- 4219869 Business Flow
43336    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
43337    ------------------------------------------------------------------------------------
43338    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43339 
43340    ----------------------------------------------------------------------------------
43341    -- 4219869 Business Flow
43342    -- Update journal entry status -- Need to generate this within IF <condition>
43343    ----------------------------------------------------------------------------------
43344    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43345          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
43346          ,p_balance_type_code => l_balance_type_code
43347          );
43348 
43349    -------------------------------------------------------------------------------------------
43350    -- 4262811 - Generate the Accrual Reversal lines
43351    -------------------------------------------------------------------------------------------
43352    BEGIN
43353       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
43354                               (g_array_event(p_event_id).array_value_num('header_index'));
43355       IF l_acc_rev_flag IS NULL THEN
43356          l_acc_rev_flag := 'N';
43357       END IF;
43358    EXCEPTION
43359       WHEN OTHERS THEN
43360          l_acc_rev_flag := 'N';
43361    END;
43362    --
43363    IF (l_acc_rev_flag = 'Y') THEN
43364 
43365        -- 4645092  ------------------------------------------------------------------------------
43366        -- To allow MPA report to determine if it should generate report process
43367        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
43368        ------------------------------------------------------------------------------------------
43369 
43370        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
43371        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
43375    --
43372    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
43373    -- call ADRs
43374    -- Bug 4922099
43376    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43377         (NVL(l_actual_upg_option, 'N') = 'O') OR
43378         (NVL(l_enc_upg_option, 'N') = 'O')
43379       )
43380    THEN
43381    NULL;
43382    --
43383    --
43384    
43385    --
43386    --
43387    END IF;
43388 
43389        --
43390        -- Update the line information that should be overwritten
43391        --
43392        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
43393                                          p_header_num   => 1);
43394        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
43395 
43396        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
43397 
43398        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
43399           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
43400        END IF;
43401 
43402       --
43403       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
43404       --
43405       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
43406           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
43407       ELSE
43408           ---------------------------------------------------------------------------------------------------
43409           -- 4262811a Switch Sign
43410           ---------------------------------------------------------------------------------------------------
43411           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
43412           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43413                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43414           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43415                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43416           -- 5132302
43417           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
43418                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43419 
43420       END IF;
43421 
43422       -- 4955764
43423       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43424       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
43425 
43426 
43427       XLA_AE_LINES_PKG.ValidateCurrentLine;
43428       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43429 
43430       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43431                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
43432                ,p_balance_type_code => l_balance_type_code);
43433 
43434    END IF;
43435 
43436    -----------------------------------------------------------------------------------------
43437    -- 4262811 Multiperiod Accounting
43438    -----------------------------------------------------------------------------------------
43439      -- No MPA option is assigned.
43440 
43441 
43442 END IF;
43443 END IF;
43444 --
43445 
43446 --
43447 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43448    trace
43449       (p_msg      => 'END of AcctLineType_96'
43450       ,p_level    => C_LEVEL_PROCEDURE
43451       ,p_module   => l_log_module);
43452 END IF;
43453 --
43454 EXCEPTION
43455   WHEN xla_exceptions_pkg.application_exception THEN
43456       RAISE;
43457   WHEN OTHERS THEN
43458        xla_exceptions_pkg.raise_message
43459            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_96');
43460 END AcctLineType_96;
43461 --
43462 
43463 ---------------------------------------
43464 --
43465 -- PRIVATE FUNCTION
43466 --         AcctLineType_97
43467 --
43468 ---------------------------------------
43469 PROCEDURE AcctLineType_97 (
43470   p_application_id        IN NUMBER
43471  ,p_event_id              IN NUMBER
43472  ,p_calculate_acctd_flag  IN VARCHAR2
43473  ,p_calculate_g_l_flag    IN VARCHAR2
43474  ,p_actual_flag           IN OUT VARCHAR2
43475  ,p_balance_type_code     OUT VARCHAR2
43476  ,p_gain_or_loss_ref      OUT VARCHAR2
43477  
43478 --Payment Currency Code
43479  , p_source_13            IN VARCHAR2
43480 --Invoice Distribution Type
43481  , p_source_33            IN VARCHAR2
43482  , p_source_33_meaning    IN VARCHAR2
43483 --Accounting Reversal Indicator
43484  , p_source_53            IN VARCHAR2
43485 --Distribution Link Type
43486  , p_source_55            IN VARCHAR2
43487 --Override Accounted Amount Indicator
43488  , p_source_80            IN VARCHAR2
43489  , p_source_80_meaning    IN VARCHAR2
43490 --Third Party Type
43491  , p_source_83            IN VARCHAR2
43492 --Business Flow Accounts Payable Application Identifier
43493  , p_source_91            IN NUMBER
43494 --Business Flow Invoice Distribution Type
43495  , p_source_92            IN VARCHAR2
43496 --Business Flow Invoice Entity Code
43497  , p_source_93            IN VARCHAR2
43498 --Business Flow Invoice Distribution Identifier
43499  , p_source_94            IN NUMBER
43500 --Business Flow Invoice Identifier
43504 --Payment Distribution Type
43501  , p_source_95            IN NUMBER
43502 --When to Account for Payment Option
43503  , p_source_97            IN VARCHAR2
43505  , p_source_98            IN VARCHAR2
43506  , p_source_98_meaning    IN VARCHAR2
43507 --Payment Distribution Amount
43508  , p_source_99            IN NUMBER
43509 --Payment Distribution Identifier
43510  , p_source_104            IN NUMBER
43511 --Payment Distribution Reversed Identifier
43512  , p_source_112            IN NUMBER
43513 --Payment Maturity Date
43514  , p_source_114            IN DATE
43515 --Payment Distribution (Matured Rate) Ledger Amount
43516  , p_source_121            IN NUMBER
43517 --Deferred Recoverable Tax Option
43518  , p_source_137            IN VARCHAR2
43519  , p_source_137_meaning    IN VARCHAR2
43520 )
43521 IS
43522 
43523 l_component_type              VARCHAR2(80);
43524 l_component_code              VARCHAR2(30);
43525 l_component_type_code         VARCHAR2(1);
43526 l_component_appl_id           INTEGER;
43527 l_amb_context_code            VARCHAR2(30);
43528 l_entity_code                 VARCHAR2(30);
43529 l_event_class_code            VARCHAR2(30);
43530 l_ae_header_id                NUMBER;
43531 l_event_type_code             VARCHAR2(30);
43532 l_line_definition_code        VARCHAR2(30);
43533 l_line_definition_owner_code  VARCHAR2(1);
43534 --
43535 -- adr variables
43536 l_segment                     VARCHAR2(30);
43537 l_ccid                        NUMBER;
43538 l_adr_transaction_coa_id      NUMBER;
43539 l_adr_accounting_coa_id       NUMBER;
43540 l_adr_flexfield_segment_code  VARCHAR2(30);
43541 l_adr_flex_value_set_id       NUMBER;
43542 l_adr_value_type_code         VARCHAR2(30);
43543 l_adr_value_combination_id    NUMBER;
43544 l_adr_value_segment_code      VARCHAR2(30);
43545 
43546 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
43547 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
43548 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
43549 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
43550 
43551 -- 4262811 Variables ------------------------------------------------------------------------------------------
43552 l_entered_amt_idx             NUMBER;
43553 l_accted_amt_idx              NUMBER;
43554 l_acc_rev_flag                VARCHAR2(1);
43555 l_accrual_line_num            NUMBER;
43556 l_tmp_amt                     NUMBER;
43557 l_acc_rev_natural_side_code   VARCHAR2(1);
43558 
43559 l_num_entries                 NUMBER;
43560 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
43561 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
43562 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
43563 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
43564 l_recog_line_1                NUMBER;
43565 l_recog_line_2                NUMBER;
43566 
43567 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
43568 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
43569 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
43570 
43571 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
43572 
43573 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
43574 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
43575 
43576 ---------------------------------------------------------------------------------------------------------------
43577 
43578 
43579 --
43580 -- bulk performance
43581 --
43582 l_balance_type_code           VARCHAR2(1);
43583 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
43584 l_log_module                  VARCHAR2(240);
43585 
43586 --
43587 -- Upgrade strategy
43588 --
43589 l_actual_upg_option           VARCHAR2(1);
43590 l_enc_upg_option           VARCHAR2(1);
43591 
43592 --
43593 BEGIN
43594 --
43595 IF g_log_enabled THEN
43596       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_97';
43597 END IF;
43598 --
43599 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43600 
43601       trace
43602          (p_msg      => 'BEGIN of AcctLineType_97'
43603          ,p_level    => C_LEVEL_PROCEDURE
43604          ,p_module   => l_log_module);
43605 
43606 END IF;
43607 --
43608 l_component_type             := 'AMB_JLT';
43609 l_component_code             := 'AP_DEF_RTAX_INTERIM_MAT';
43610 l_component_type_code        := 'S';
43611 l_component_appl_id          :=  200;
43612 l_amb_context_code           := 'DEFAULT';
43613 l_entity_code                := 'AP_PAYMENTS';
43614 l_event_class_code           := 'FUTURE DATED PAYMENTS';
43615 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
43616 l_line_definition_owner_code := 'S';
43617 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
43618 --
43619 l_balance_type_code          := 'A';
43620 l_segment                     := NULL;
43621 l_ccid                        := NULL;
43622 l_adr_transaction_coa_id      := NULL;
43623 l_adr_accounting_coa_id       := NULL;
43624 l_adr_flexfield_segment_code  := NULL;
43625 l_adr_flex_value_set_id       := NULL;
43626 l_adr_value_type_code         := NULL;
43627 l_adr_value_combination_id    := NULL;
43628 l_adr_value_segment_code      := NULL;
43629 
43633 l_budgetary_control_flag     := 'N';
43630 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
43631 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
43632 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
43634 
43635 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
43636 l_bflow_applied_to_amt       := NULL; -- 5132302
43637 l_entered_amt_idx            := NULL;          -- 4262811
43638 l_accted_amt_idx             := NULL;          -- 4262811
43639 l_acc_rev_flag               := NULL;          -- 4262811
43640 l_accrual_line_num           := NULL;          -- 4262811
43641 l_tmp_amt                    := NULL;          -- 4262811
43642 --
43643  
43644 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
43645     l_balance_type_code <> 'B' THEN
43646 IF NVL(p_source_97,'
43647 ') <>  'CLEAR_CLEAR' AND 
43648 NVL(p_source_33,'
43649 ') =  'REC_TAX' AND 
43650 p_source_114 IS NOT NULL AND 
43651 NVL(p_source_137,'
43652 ') =  'DEFERRED' AND 
43653 (NVL(p_source_98,'
43654 ') =  'DISCOUNT' OR 
43655 NVL(p_source_98,'
43656 ') =  'CASH')
43657  THEN 
43658 
43659    --
43660    XLA_AE_LINES_PKG.SetNewLine;
43661 
43662    p_balance_type_code          := l_balance_type_code;
43663    -- set the flag so later we will know whether the gain loss line needs to be created
43664    
43665    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
43666      p_actual_flag :='A';
43667    END IF;
43668 
43669    --
43670    -- bulk performance
43671    --
43672    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
43673                                       p_header_num   => 0); -- 4262811
43674    --
43675    -- set accounting line options
43676    --
43677    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
43678            p_natural_side_code          => 'C'
43679          , p_gain_or_loss_flag          => 'N'
43680          , p_gl_transfer_mode_code      => 'S'
43681          , p_acct_entry_type_code       => 'A'
43682          , p_switch_side_flag           => 'Y'
43683          , p_merge_duplicate_code       => 'A'
43684          );
43685    --
43686    l_acc_rev_natural_side_code := 'D';  -- 4262811
43687    -- 
43688    --
43689    -- set accounting line type info
43690    --
43691    xla_ae_lines_pkg.SetAcctLineType
43692       (p_component_type             => l_component_type
43693       ,p_event_type_code            => l_event_type_code
43694       ,p_line_definition_owner_code => l_line_definition_owner_code
43695       ,p_line_definition_code       => l_line_definition_code
43696       ,p_accounting_line_code       => l_component_code
43697       ,p_accounting_line_type_code  => l_component_type_code
43698       ,p_accounting_line_appl_id    => l_component_appl_id
43699       ,p_amb_context_code           => l_amb_context_code
43700       ,p_entity_code                => l_entity_code
43701       ,p_event_class_code           => l_event_class_code);
43702    --
43703    -- set accounting class
43704    --
43705    xla_ae_lines_pkg.SetAcctClass(
43706            p_accounting_class_code  => 'DEF_REC_TAX'
43707          , p_ae_header_id           => l_ae_header_id
43708          );
43709 
43710    --
43711    -- set rounding class
43712    --
43713    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
43714                       'DEF_REC_TAX';
43715 
43716    --
43717    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
43718    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
43719    --
43720    -- bulk performance
43721    --
43722    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
43723 
43724    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
43725       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
43726 
43727    -- 4955764
43728    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43729       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
43730 
43731    -- 4458381 Public Sector Enh
43732    
43733    --
43734    -- set accounting attributes for the line type
43735    --
43736    l_entered_amt_idx := 9;
43737    l_accted_amt_idx  := 11;
43738    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
43739    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
43740    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
43741    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
43742    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
43743    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
43744    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
43745    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
43746    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
43747    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
43748    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
43749    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
43750    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
43751    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
43752    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
43756    l_rec_acct_attrs.array_num_value(9)  := p_source_99;
43753    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
43754    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
43755    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
43757    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
43758    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
43759    l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
43760    l_rec_acct_attrs.array_num_value(11)  := p_source_121;
43761    l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
43762    l_rec_acct_attrs.array_char_value(12)  := p_source_80;
43763    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
43764    l_rec_acct_attrs.array_char_value(13)  := p_source_83;
43765    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
43766    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_112);
43767    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
43768    l_rec_acct_attrs.array_char_value(15)  := p_source_55;
43769 
43770    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
43771    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
43772 
43773    ---------------------------------------------------------------------------------------------------------------
43774    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
43775    ---------------------------------------------------------------------------------------------------------------
43776    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
43777 
43778    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43779    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43780 
43781    IF xla_accounting_cache_pkg.GetValueChar
43782          (p_source_code         => 'LEDGER_CATEGORY_CODE'
43783          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
43784    AND l_bflow_method_code = 'PRIOR_ENTRY'
43785 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
43786    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
43787          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
43788        )
43789    THEN
43790          xla_ae_lines_pkg.BflowUpgEntry
43791            (p_business_method_code    => l_bflow_method_code
43792            ,p_business_class_code     => l_bflow_class_code
43793            ,p_balance_type            => l_balance_type_code);
43794    ELSE
43795       NULL;
43796 XLA_AE_LINES_PKG.business_flow_validation(
43797                                 p_business_method_code     => l_bflow_method_code
43798                                ,p_business_class_code      => l_bflow_class_code
43799                                ,p_inherit_description_flag => l_inherit_desc_flag);
43800    END IF;
43801 
43802    --
43803    -- call analytical criteria
43804    --
43805    -- Inherited Analytical Criteria for business flow method of Prior Entry.
43806    --
43807    -- call description
43808    --
43809    -- No description or it is inherited.
43810    --
43811    -- call ADRs
43812    -- Bug 4922099
43813    --
43814    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43815         (NVL(l_actual_upg_option, 'N') = 'O') OR
43816         (NVL(l_enc_upg_option, 'N') = 'O')
43817       )
43818    THEN
43819    NULL;
43820    --
43821    --
43822    
43823    --
43824    --
43825    END IF;
43826    --
43827    -- Bug 4922099
43828    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
43829           (NVL(l_enc_upg_option, 'N') = 'O')
43830         ) AND
43831         (l_bflow_method_code = 'PRIOR_ENTRY')
43832       )
43833    THEN
43834       IF
43835       --
43836       1 = 1
43837       --
43838       THEN
43839       xla_accounting_err_pkg.build_message
43840                                     (p_appli_s_name            => 'XLA'
43841                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43842                                     ,p_token_1                 => 'LINE_NUMBER'
43843                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
43844                                     ,p_token_2                 => 'LINE_TYPE_NAME'
43845                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
43846                                                                              l_component_type
43847                                                                             ,l_component_code
43848                                                                             ,l_component_type_code
43849                                                                             ,l_component_appl_id
43850                                                                             ,l_amb_context_code
43851                                                                             ,l_entity_code
43852                                                                             ,l_event_class_code
43853                                                                            )
43854                                     ,p_token_3                 => 'OWNER'
43858                                                                          )
43855                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
43856                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
43857                                                                           ,p_lookup_code    => l_component_type_code
43859                                     ,p_token_4                 => 'PRODUCT_NAME'
43860                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
43861                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
43862                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
43863                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
43864                                     ,p_ae_header_id            =>  NULL
43865                                        );
43866 
43867         IF (C_LEVEL_ERROR>= g_log_level) THEN
43868                  trace
43869                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43870                       ,p_level    => C_LEVEL_ERROR
43871                       ,p_module   => l_log_module);
43872         END IF;
43873       END IF;
43874    END IF;
43875    --
43876    --
43877    ------------------------------------------------------------------------------------------------
43878    -- 4219869 Business Flow
43879    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
43880    -- Prior Entry.  Currently, the following code is always generated.
43881    ------------------------------------------------------------------------------------------------
43882    -- No ValidateCurrentLine for business flow method of Prior Entry
43883 
43884    ------------------------------------------------------------------------------------
43885    -- 4219869 Business Flow
43886    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
43887    ------------------------------------------------------------------------------------
43888    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43889 
43890    ----------------------------------------------------------------------------------
43891    -- 4219869 Business Flow
43892    -- Update journal entry status -- Need to generate this within IF <condition>
43893    ----------------------------------------------------------------------------------
43894    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43895          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
43896          ,p_balance_type_code => l_balance_type_code
43897          );
43898 
43899    -------------------------------------------------------------------------------------------
43900    -- 4262811 - Generate the Accrual Reversal lines
43901    -------------------------------------------------------------------------------------------
43902    BEGIN
43903       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
43904                               (g_array_event(p_event_id).array_value_num('header_index'));
43905       IF l_acc_rev_flag IS NULL THEN
43906          l_acc_rev_flag := 'N';
43907       END IF;
43908    EXCEPTION
43909       WHEN OTHERS THEN
43910          l_acc_rev_flag := 'N';
43911    END;
43912    --
43913    IF (l_acc_rev_flag = 'Y') THEN
43914 
43915        -- 4645092  ------------------------------------------------------------------------------
43916        -- To allow MPA report to determine if it should generate report process
43917        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
43918        ------------------------------------------------------------------------------------------
43919 
43920        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
43921        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
43922    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
43923    -- call ADRs
43924    -- Bug 4922099
43925    --
43926    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43927         (NVL(l_actual_upg_option, 'N') = 'O') OR
43928         (NVL(l_enc_upg_option, 'N') = 'O')
43929       )
43930    THEN
43931    NULL;
43932    --
43933    --
43934    
43935    --
43936    --
43937    END IF;
43938 
43939        --
43940        -- Update the line information that should be overwritten
43941        --
43942        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
43943                                          p_header_num   => 1);
43944        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
43945 
43946        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
43947 
43948        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
43949           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
43950        END IF;
43951 
43952       --
43953       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
43954       --
43955       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
43956           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
43957       ELSE
43961           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
43958           ---------------------------------------------------------------------------------------------------
43959           -- 4262811a Switch Sign
43960           ---------------------------------------------------------------------------------------------------
43962           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43963                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43964           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43965                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43966           -- 5132302
43967           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
43968                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43969 
43970       END IF;
43971 
43972       -- 4955764
43973       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43974       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
43975 
43976 
43977       XLA_AE_LINES_PKG.ValidateCurrentLine;
43978       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43979 
43980       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43981                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
43982                ,p_balance_type_code => l_balance_type_code);
43983 
43984    END IF;
43985 
43986    -----------------------------------------------------------------------------------------
43987    -- 4262811 Multiperiod Accounting
43988    -----------------------------------------------------------------------------------------
43989      -- No MPA option is assigned.
43990 
43991 
43992 END IF;
43993 END IF;
43994 --
43995 
43996 --
43997 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43998    trace
43999       (p_msg      => 'END of AcctLineType_97'
44000       ,p_level    => C_LEVEL_PROCEDURE
44001       ,p_module   => l_log_module);
44002 END IF;
44003 --
44004 EXCEPTION
44005   WHEN xla_exceptions_pkg.application_exception THEN
44006       RAISE;
44007   WHEN OTHERS THEN
44008        xla_exceptions_pkg.raise_message
44009            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_97');
44010 END AcctLineType_97;
44011 --
44012 
44013 ---------------------------------------
44014 --
44015 -- PRIVATE FUNCTION
44016 --         AcctLineType_98
44017 --
44018 ---------------------------------------
44019 PROCEDURE AcctLineType_98 (
44020   p_application_id        IN NUMBER
44021  ,p_event_id              IN NUMBER
44022  ,p_calculate_acctd_flag  IN VARCHAR2
44023  ,p_calculate_g_l_flag    IN VARCHAR2
44024  ,p_actual_flag           IN OUT VARCHAR2
44025  ,p_balance_type_code     OUT VARCHAR2
44026  ,p_gain_or_loss_ref      OUT VARCHAR2
44027  
44028 --Payment Currency Code
44029  , p_source_13            IN VARCHAR2
44030 --Invoice Distribution Type
44031  , p_source_33            IN VARCHAR2
44032  , p_source_33_meaning    IN VARCHAR2
44033 --Accounting Reversal Indicator
44034  , p_source_53            IN VARCHAR2
44035 --Distribution Link Type
44036  , p_source_55            IN VARCHAR2
44037 --Override Accounted Amount Indicator
44038  , p_source_80            IN VARCHAR2
44039  , p_source_80_meaning    IN VARCHAR2
44040 --Third Party Type
44041  , p_source_83            IN VARCHAR2
44042 --Invoice Distribution Tax Line Identifier
44043  , p_source_86            IN NUMBER
44044 --Invoice Distribution Tax Distribution Identifier from Tax
44045  , p_source_87            IN NUMBER
44046 --Invoice Distribution Summary Tax Line Identifier
44047  , p_source_88            IN NUMBER
44048 --Business Flow Accounts Payable Application Identifier
44049  , p_source_91            IN NUMBER
44050 --Business Flow Invoice Distribution Type
44051  , p_source_92            IN VARCHAR2
44052 --Business Flow Invoice Entity Code
44053  , p_source_93            IN VARCHAR2
44054 --Business Flow Invoice Distribution Identifier
44055  , p_source_94            IN NUMBER
44056 --Business Flow Invoice Identifier
44057  , p_source_95            IN NUMBER
44058 --When to Account for Payment Option
44059  , p_source_97            IN VARCHAR2
44060 --Payment Distribution Type
44061  , p_source_98            IN VARCHAR2
44062  , p_source_98_meaning    IN VARCHAR2
44063 --Payment Distribution Amount
44064  , p_source_99            IN NUMBER
44065 --Payment Distribution Identifier
44066  , p_source_104            IN NUMBER
44067 --Payment Distribution Reversed Identifier
44068  , p_source_112            IN NUMBER
44069 --Payment Maturity Date
44070  , p_source_114            IN DATE
44071 --Payment Distribution (Invoice Rate) Ledger Amount
44072  , p_source_116            IN NUMBER
44073 --Payment Type
44074  , p_source_122            IN VARCHAR2
44075  , p_source_122_meaning    IN VARCHAR2
44076 --Payment Processing Type
44077  , p_source_123            IN VARCHAR2
44078 --Invoice Distribution Amount of the Payment Distribution
44079  , p_source_124            IN NUMBER
44080 --Deferred Recoverable Tax Option
44081  , p_source_137            IN VARCHAR2
44082  , p_source_137_meaning    IN VARCHAR2
44086 IS
44083 --AWT Related Distribution Type Lookup code
44084  , p_source_138            IN VARCHAR2
44085 )
44087 
44088 l_component_type              VARCHAR2(80);
44089 l_component_code              VARCHAR2(30);
44090 l_component_type_code         VARCHAR2(1);
44091 l_component_appl_id           INTEGER;
44092 l_amb_context_code            VARCHAR2(30);
44093 l_entity_code                 VARCHAR2(30);
44094 l_event_class_code            VARCHAR2(30);
44095 l_ae_header_id                NUMBER;
44096 l_event_type_code             VARCHAR2(30);
44097 l_line_definition_code        VARCHAR2(30);
44098 l_line_definition_owner_code  VARCHAR2(1);
44099 --
44100 -- adr variables
44101 l_segment                     VARCHAR2(30);
44102 l_ccid                        NUMBER;
44103 l_adr_transaction_coa_id      NUMBER;
44104 l_adr_accounting_coa_id       NUMBER;
44105 l_adr_flexfield_segment_code  VARCHAR2(30);
44106 l_adr_flex_value_set_id       NUMBER;
44107 l_adr_value_type_code         VARCHAR2(30);
44108 l_adr_value_combination_id    NUMBER;
44109 l_adr_value_segment_code      VARCHAR2(30);
44110 
44111 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
44112 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
44113 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
44114 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
44115 
44116 -- 4262811 Variables ------------------------------------------------------------------------------------------
44117 l_entered_amt_idx             NUMBER;
44118 l_accted_amt_idx              NUMBER;
44119 l_acc_rev_flag                VARCHAR2(1);
44120 l_accrual_line_num            NUMBER;
44121 l_tmp_amt                     NUMBER;
44122 l_acc_rev_natural_side_code   VARCHAR2(1);
44123 
44124 l_num_entries                 NUMBER;
44125 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
44126 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
44127 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
44128 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
44129 l_recog_line_1                NUMBER;
44130 l_recog_line_2                NUMBER;
44131 
44132 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
44133 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
44134 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
44135 
44136 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
44137 
44138 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
44139 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
44140 
44141 ---------------------------------------------------------------------------------------------------------------
44142 
44143 
44144 --
44145 -- bulk performance
44146 --
44147 l_balance_type_code           VARCHAR2(1);
44148 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
44149 l_log_module                  VARCHAR2(240);
44150 
44151 --
44152 -- Upgrade strategy
44153 --
44154 l_actual_upg_option           VARCHAR2(1);
44155 l_enc_upg_option           VARCHAR2(1);
44156 
44157 --
44158 BEGIN
44159 --
44160 IF g_log_enabled THEN
44161       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_98';
44162 END IF;
44163 --
44164 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44165 
44166       trace
44167          (p_msg      => 'BEGIN of AcctLineType_98'
44168          ,p_level    => C_LEVEL_PROCEDURE
44169          ,p_module   => l_log_module);
44170 
44171 END IF;
44172 --
44173 l_component_type             := 'AMB_JLT';
44174 l_component_code             := 'AP_DEF_RTAX_INTERIM_PMT';
44175 l_component_type_code        := 'S';
44176 l_component_appl_id          :=  200;
44177 l_amb_context_code           := 'DEFAULT';
44178 l_entity_code                := 'AP_PAYMENTS';
44179 l_event_class_code           := 'PAYMENTS';
44180 l_event_type_code            := 'PAYMENTS_ALL';
44181 l_line_definition_owner_code := 'S';
44182 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
44183 --
44184 l_balance_type_code          := 'A';
44185 l_segment                     := NULL;
44186 l_ccid                        := NULL;
44187 l_adr_transaction_coa_id      := NULL;
44188 l_adr_accounting_coa_id       := NULL;
44189 l_adr_flexfield_segment_code  := NULL;
44190 l_adr_flex_value_set_id       := NULL;
44191 l_adr_value_type_code         := NULL;
44192 l_adr_value_combination_id    := NULL;
44193 l_adr_value_segment_code      := NULL;
44194 
44195 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
44196 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
44197 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
44198 l_budgetary_control_flag     := 'N';
44199 
44200 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
44201 l_bflow_applied_to_amt       := NULL; -- 5132302
44202 l_entered_amt_idx            := NULL;          -- 4262811
44203 l_accted_amt_idx             := NULL;          -- 4262811
44204 l_acc_rev_flag               := NULL;          -- 4262811
44205 l_accrual_line_num           := NULL;          -- 4262811
44206 l_tmp_amt                    := NULL;          -- 4262811
44207 --
44208  
44209 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
44210     l_balance_type_code <> 'B' THEN
44214 ') =  'REC_TAX' AND 
44211 IF NVL(p_source_97,'
44212 ') <>  'CLEAR_CLEAR' AND 
44213 ((NVL(p_source_33,'
44215 NVL(p_source_137,'
44216 ') =  'DEFERRED') OR 
44217 (NVL(p_source_33,'
44218 ') =  'AWT' AND 
44219 NVL(p_source_138,'
44220 ') =  'AWT_DEFERRED')
44221 ) AND (NVL(p_source_98,'
44222 ') =  'CASH' OR 
44223 NVL(p_source_98,'
44224 ') =  'AWT' OR 
44225 NVL(p_source_98,'
44226 ') =  'DISCOUNT') AND 
44227 p_source_114 IS NULL AND 
44228 NVL(p_source_122,'
44229 ') <>  'R' AND 
44230 NVL(p_source_123,'
44231 ') <>  'PAYMENTCARD'
44232  THEN 
44233 
44234    --
44235    XLA_AE_LINES_PKG.SetNewLine;
44236 
44237    p_balance_type_code          := l_balance_type_code;
44238    -- set the flag so later we will know whether the gain loss line needs to be created
44239    
44240    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
44241      p_actual_flag :='A';
44242    END IF;
44243 
44244    --
44245    -- bulk performance
44246    --
44247    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
44248                                       p_header_num   => 0); -- 4262811
44249    --
44250    -- set accounting line options
44251    --
44252    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
44253            p_natural_side_code          => 'C'
44254          , p_gain_or_loss_flag          => 'N'
44255          , p_gl_transfer_mode_code      => 'S'
44256          , p_acct_entry_type_code       => 'A'
44257          , p_switch_side_flag           => 'Y'
44258          , p_merge_duplicate_code       => 'A'
44259          );
44260    --
44261    l_acc_rev_natural_side_code := 'D';  -- 4262811
44262    -- 
44263    --
44264    -- set accounting line type info
44265    --
44266    xla_ae_lines_pkg.SetAcctLineType
44267       (p_component_type             => l_component_type
44268       ,p_event_type_code            => l_event_type_code
44269       ,p_line_definition_owner_code => l_line_definition_owner_code
44270       ,p_line_definition_code       => l_line_definition_code
44271       ,p_accounting_line_code       => l_component_code
44272       ,p_accounting_line_type_code  => l_component_type_code
44273       ,p_accounting_line_appl_id    => l_component_appl_id
44274       ,p_amb_context_code           => l_amb_context_code
44275       ,p_entity_code                => l_entity_code
44276       ,p_event_class_code           => l_event_class_code);
44277    --
44278    -- set accounting class
44279    --
44280    xla_ae_lines_pkg.SetAcctClass(
44281            p_accounting_class_code  => 'DEF_REC_TAX'
44282          , p_ae_header_id           => l_ae_header_id
44283          );
44284 
44285    --
44286    -- set rounding class
44287    --
44288    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
44289                       'DEF_REC_TAX';
44290 
44291    --
44292    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
44293    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
44294    --
44295    -- bulk performance
44296    --
44297    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
44298 
44299    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
44300       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
44301 
44302    -- 4955764
44303    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44304       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
44305 
44306    -- 4458381 Public Sector Enh
44307    
44308    --
44309    -- set accounting attributes for the line type
44310    --
44311    l_entered_amt_idx := 10;
44312    l_accted_amt_idx  := 12;
44313    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
44314    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
44315    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
44316    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
44317    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
44318    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
44319    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
44320    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
44321    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
44322    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
44323    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
44324    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
44325    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
44326    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
44327    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
44328    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
44329    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
44330    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
44331    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
44332    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
44333    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
44334    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
44335    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
44339    l_rec_acct_attrs.array_char_value(13)  := p_source_80;
44336    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
44337    l_rec_acct_attrs.array_num_value(12)  := p_source_116;
44338    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
44340    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
44341    l_rec_acct_attrs.array_char_value(14)  := p_source_83;
44342    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
44343    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_112);
44344    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
44345    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
44346    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
44347    l_rec_acct_attrs.array_num_value(17)  := p_source_86;
44348    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
44349    l_rec_acct_attrs.array_num_value(18)  := p_source_87;
44350    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
44351    l_rec_acct_attrs.array_num_value(19)  := p_source_88;
44352 
44353    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
44354    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
44355 
44356    ---------------------------------------------------------------------------------------------------------------
44357    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
44358    ---------------------------------------------------------------------------------------------------------------
44359    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
44360 
44361    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44362    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44363 
44364    IF xla_accounting_cache_pkg.GetValueChar
44365          (p_source_code         => 'LEDGER_CATEGORY_CODE'
44366          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
44367    AND l_bflow_method_code = 'PRIOR_ENTRY'
44368 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
44369    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
44370          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
44371        )
44372    THEN
44373          xla_ae_lines_pkg.BflowUpgEntry
44374            (p_business_method_code    => l_bflow_method_code
44375            ,p_business_class_code     => l_bflow_class_code
44376            ,p_balance_type            => l_balance_type_code);
44377    ELSE
44378       NULL;
44379 XLA_AE_LINES_PKG.business_flow_validation(
44380                                 p_business_method_code     => l_bflow_method_code
44381                                ,p_business_class_code      => l_bflow_class_code
44382                                ,p_inherit_description_flag => l_inherit_desc_flag);
44383    END IF;
44384 
44385    --
44386    -- call analytical criteria
44387    --
44388    -- Inherited Analytical Criteria for business flow method of Prior Entry.
44389    --
44390    -- call description
44391    --
44392    -- No description or it is inherited.
44393    --
44394    -- call ADRs
44395    -- Bug 4922099
44396    --
44397    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44398         (NVL(l_actual_upg_option, 'N') = 'O') OR
44399         (NVL(l_enc_upg_option, 'N') = 'O')
44400       )
44401    THEN
44402    NULL;
44403    --
44404    --
44405    
44406    --
44407    --
44408    END IF;
44409    --
44410    -- Bug 4922099
44411    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
44412           (NVL(l_enc_upg_option, 'N') = 'O')
44413         ) AND
44414         (l_bflow_method_code = 'PRIOR_ENTRY')
44415       )
44416    THEN
44417       IF
44418       --
44419       1 = 1
44420       --
44421       THEN
44422       xla_accounting_err_pkg.build_message
44423                                     (p_appli_s_name            => 'XLA'
44424                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44425                                     ,p_token_1                 => 'LINE_NUMBER'
44426                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
44427                                     ,p_token_2                 => 'LINE_TYPE_NAME'
44428                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
44429                                                                              l_component_type
44430                                                                             ,l_component_code
44431                                                                             ,l_component_type_code
44432                                                                             ,l_component_appl_id
44433                                                                             ,l_amb_context_code
44434                                                                             ,l_entity_code
44435                                                                             ,l_event_class_code
44436                                                                            )
44437                                     ,p_token_3                 => 'OWNER'
44438                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
44439                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
44443                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
44440                                                                           ,p_lookup_code    => l_component_type_code
44441                                                                          )
44442                                     ,p_token_4                 => 'PRODUCT_NAME'
44444                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
44445                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
44446                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
44447                                     ,p_ae_header_id            =>  NULL
44448                                        );
44449 
44450         IF (C_LEVEL_ERROR>= g_log_level) THEN
44451                  trace
44452                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44453                       ,p_level    => C_LEVEL_ERROR
44454                       ,p_module   => l_log_module);
44455         END IF;
44456       END IF;
44457    END IF;
44458    --
44459    --
44460    ------------------------------------------------------------------------------------------------
44461    -- 4219869 Business Flow
44462    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
44463    -- Prior Entry.  Currently, the following code is always generated.
44464    ------------------------------------------------------------------------------------------------
44465    -- No ValidateCurrentLine for business flow method of Prior Entry
44466 
44467    ------------------------------------------------------------------------------------
44468    -- 4219869 Business Flow
44469    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
44470    ------------------------------------------------------------------------------------
44471    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44472 
44473    ----------------------------------------------------------------------------------
44474    -- 4219869 Business Flow
44475    -- Update journal entry status -- Need to generate this within IF <condition>
44476    ----------------------------------------------------------------------------------
44477    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44478          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
44479          ,p_balance_type_code => l_balance_type_code
44480          );
44481 
44482    -------------------------------------------------------------------------------------------
44483    -- 4262811 - Generate the Accrual Reversal lines
44484    -------------------------------------------------------------------------------------------
44485    BEGIN
44486       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
44487                               (g_array_event(p_event_id).array_value_num('header_index'));
44488       IF l_acc_rev_flag IS NULL THEN
44489          l_acc_rev_flag := 'N';
44490       END IF;
44491    EXCEPTION
44492       WHEN OTHERS THEN
44493          l_acc_rev_flag := 'N';
44494    END;
44495    --
44496    IF (l_acc_rev_flag = 'Y') THEN
44497 
44498        -- 4645092  ------------------------------------------------------------------------------
44499        -- To allow MPA report to determine if it should generate report process
44500        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
44501        ------------------------------------------------------------------------------------------
44502 
44503        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
44504        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
44505    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
44506    -- call ADRs
44507    -- Bug 4922099
44508    --
44509    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44510         (NVL(l_actual_upg_option, 'N') = 'O') OR
44511         (NVL(l_enc_upg_option, 'N') = 'O')
44512       )
44513    THEN
44514    NULL;
44515    --
44516    --
44517    
44518    --
44519    --
44520    END IF;
44521 
44522        --
44523        -- Update the line information that should be overwritten
44524        --
44525        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
44526                                          p_header_num   => 1);
44527        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
44528 
44529        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
44530 
44531        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
44532           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
44533        END IF;
44534 
44535       --
44536       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
44537       --
44538       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
44539           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
44540       ELSE
44541           ---------------------------------------------------------------------------------------------------
44542           -- 4262811a Switch Sign
44546                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44543           ---------------------------------------------------------------------------------------------------
44544           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
44545           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44547           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44548                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44549           -- 5132302
44550           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
44551                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44552 
44553       END IF;
44554 
44555       -- 4955764
44556       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44557       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
44558 
44559 
44560       XLA_AE_LINES_PKG.ValidateCurrentLine;
44561       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44562 
44563       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44564                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
44565                ,p_balance_type_code => l_balance_type_code);
44566 
44567    END IF;
44568 
44569    -----------------------------------------------------------------------------------------
44570    -- 4262811 Multiperiod Accounting
44571    -----------------------------------------------------------------------------------------
44572      -- No MPA option is assigned.
44573 
44574 
44575 END IF;
44576 END IF;
44577 --
44578 
44579 --
44580 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44581    trace
44582       (p_msg      => 'END of AcctLineType_98'
44583       ,p_level    => C_LEVEL_PROCEDURE
44584       ,p_module   => l_log_module);
44585 END IF;
44586 --
44587 EXCEPTION
44588   WHEN xla_exceptions_pkg.application_exception THEN
44589       RAISE;
44590   WHEN OTHERS THEN
44591        xla_exceptions_pkg.raise_message
44592            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_98');
44593 END AcctLineType_98;
44594 --
44595 
44596 ---------------------------------------
44597 --
44598 -- PRIVATE FUNCTION
44599 --         AcctLineType_99
44600 --
44601 ---------------------------------------
44602 PROCEDURE AcctLineType_99 (
44603   p_application_id        IN NUMBER
44604  ,p_event_id              IN NUMBER
44605  ,p_calculate_acctd_flag  IN VARCHAR2
44606  ,p_calculate_g_l_flag    IN VARCHAR2
44607  ,p_actual_flag           IN OUT VARCHAR2
44608  ,p_balance_type_code     OUT VARCHAR2
44609  ,p_gain_or_loss_ref      OUT VARCHAR2
44610  
44611 --Accounting Reversal Indicator
44612  , p_source_53            IN VARCHAR2
44613 --Distribution Link Type
44614  , p_source_55            IN VARCHAR2
44615 --Invoice Identifier
44616  , p_source_58            IN NUMBER
44617 --Payables Encumbrance Upgrade Credit Account
44618  , p_source_65            IN NUMBER
44619 --Payables Encumbrance Upgrade Credit Amount
44620  , p_source_66            IN NUMBER
44621 --Invoice Currency Code
44622  , p_source_67            IN VARCHAR2
44623 --Payables Encumbrance Upgrade Credit Base Amount
44624  , p_source_68            IN NUMBER
44625 --Payables Encumbrance Upgrade Debit Account
44626  , p_source_69            IN NUMBER
44627 --Payables Encumbrance Upgrade Debit Amount
44628  , p_source_70            IN NUMBER
44629 --Payables Encumbrance Upgrade Debit Base Amount
44630  , p_source_71            IN NUMBER
44631 --Payables Encumbrance Upgrade Option
44632  , p_source_72            IN VARCHAR2
44633 --Deferred Accounting End Date
44634  , p_source_77            IN DATE
44635 --Deferred Accounting Option
44636  , p_source_78            IN VARCHAR2
44637 --Deferred Accounting Start Date
44638  , p_source_79            IN DATE
44639 --Override Accounted Amount Indicator
44640  , p_source_80            IN VARCHAR2
44641  , p_source_80_meaning    IN VARCHAR2
44642 --Third Party Type
44643  , p_source_83            IN VARCHAR2
44644 --Invoice Distribution Tax Line Identifier
44645  , p_source_86            IN NUMBER
44646 --Invoice Distribution Tax Distribution Identifier from Tax
44647  , p_source_87            IN NUMBER
44648 --Invoice Distribution Summary Tax Line Identifier
44649  , p_source_88            IN NUMBER
44650 --Payables Upgrade Credit Encumbrance Type Identifier
44651  , p_source_89            IN NUMBER
44652 --Payables Upgrade Debit Encumbrance Type Identifier
44653  , p_source_90            IN NUMBER
44654 --Business Flow Accounts Payable Application Identifier
44655  , p_source_91            IN NUMBER
44656 --Business Flow Invoice Distribution Type
44657  , p_source_92            IN VARCHAR2
44658 --Business Flow Invoice Entity Code
44659  , p_source_93            IN VARCHAR2
44660 --Prepayment Application Distribution Identifier
44661  , p_source_127            IN NUMBER
44662 --Upgrade Encumbrance Credit Account Class
44663  , p_source_132            IN VARCHAR2
44664 --Upgrade Encumbrance Debit Account Class
44665  , p_source_133            IN VARCHAR2
44666 --Prepayment Distribution Amount
44667  , p_source_134            IN NUMBER
44671  , p_source_137            IN VARCHAR2
44668 --Identifier of the Prepayment Application Reversed
44669  , p_source_136            IN NUMBER
44670 --Deferred Recoverable Tax Option
44672  , p_source_137_meaning    IN VARCHAR2
44673 --Business Flow Recipient Invoice Distribution Identifier
44674  , p_source_139            IN NUMBER
44675 --Business Flow Recipient Invoice Identifier
44676  , p_source_140            IN NUMBER
44677 --Prepayment Distribution (Invoice Rate) Ledger Amount
44678  , p_source_141            IN NUMBER
44679 )
44680 IS
44681 
44682 l_component_type              VARCHAR2(80);
44683 l_component_code              VARCHAR2(30);
44684 l_component_type_code         VARCHAR2(1);
44685 l_component_appl_id           INTEGER;
44686 l_amb_context_code            VARCHAR2(30);
44687 l_entity_code                 VARCHAR2(30);
44688 l_event_class_code            VARCHAR2(30);
44689 l_ae_header_id                NUMBER;
44690 l_event_type_code             VARCHAR2(30);
44691 l_line_definition_code        VARCHAR2(30);
44692 l_line_definition_owner_code  VARCHAR2(1);
44693 --
44694 -- adr variables
44695 l_segment                     VARCHAR2(30);
44696 l_ccid                        NUMBER;
44697 l_adr_transaction_coa_id      NUMBER;
44698 l_adr_accounting_coa_id       NUMBER;
44699 l_adr_flexfield_segment_code  VARCHAR2(30);
44700 l_adr_flex_value_set_id       NUMBER;
44701 l_adr_value_type_code         VARCHAR2(30);
44702 l_adr_value_combination_id    NUMBER;
44703 l_adr_value_segment_code      VARCHAR2(30);
44704 
44705 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
44706 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
44707 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
44708 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
44709 
44710 -- 4262811 Variables ------------------------------------------------------------------------------------------
44711 l_entered_amt_idx             NUMBER;
44712 l_accted_amt_idx              NUMBER;
44713 l_acc_rev_flag                VARCHAR2(1);
44714 l_accrual_line_num            NUMBER;
44715 l_tmp_amt                     NUMBER;
44716 l_acc_rev_natural_side_code   VARCHAR2(1);
44717 
44718 l_num_entries                 NUMBER;
44719 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
44720 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
44721 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
44722 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
44723 l_recog_line_1                NUMBER;
44724 l_recog_line_2                NUMBER;
44725 
44726 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
44727 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
44728 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
44729 
44730 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
44731 
44732 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
44733 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
44734 
44735 ---------------------------------------------------------------------------------------------------------------
44736 
44737 
44738 --
44739 -- bulk performance
44740 --
44741 l_balance_type_code           VARCHAR2(1);
44742 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
44743 l_log_module                  VARCHAR2(240);
44744 
44745 --
44746 -- Upgrade strategy
44747 --
44748 l_actual_upg_option           VARCHAR2(1);
44749 l_enc_upg_option           VARCHAR2(1);
44750 
44751 --
44752 BEGIN
44753 --
44754 IF g_log_enabled THEN
44755       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_99';
44756 END IF;
44757 --
44758 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44759 
44760       trace
44761          (p_msg      => 'BEGIN of AcctLineType_99'
44762          ,p_level    => C_LEVEL_PROCEDURE
44763          ,p_module   => l_log_module);
44764 
44765 END IF;
44766 --
44767 l_component_type             := 'AMB_JLT';
44768 l_component_code             := 'AP_DEF_RTAX_INTERIM_PREPAY';
44769 l_component_type_code        := 'S';
44770 l_component_appl_id          :=  200;
44771 l_amb_context_code           := 'DEFAULT';
44772 l_entity_code                := 'AP_INVOICES';
44773 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
44774 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
44775 l_line_definition_owner_code := 'S';
44776 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
44777 --
44778 l_balance_type_code          := 'A';
44779 l_segment                     := NULL;
44780 l_ccid                        := NULL;
44781 l_adr_transaction_coa_id      := NULL;
44782 l_adr_accounting_coa_id       := NULL;
44783 l_adr_flexfield_segment_code  := NULL;
44784 l_adr_flex_value_set_id       := NULL;
44785 l_adr_value_type_code         := NULL;
44786 l_adr_value_combination_id    := NULL;
44787 l_adr_value_segment_code      := NULL;
44788 
44789 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
44790 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
44791 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
44792 l_budgetary_control_flag     := 'N';
44793 
44794 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
44798 l_acc_rev_flag               := NULL;          -- 4262811
44795 l_bflow_applied_to_amt       := NULL; -- 5132302
44796 l_entered_amt_idx            := NULL;          -- 4262811
44797 l_accted_amt_idx             := NULL;          -- 4262811
44799 l_accrual_line_num           := NULL;          -- 4262811
44800 l_tmp_amt                    := NULL;          -- 4262811
44801 --
44802  
44803 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
44804     l_balance_type_code <> 'B' THEN
44805 IF NVL(p_source_137,'
44806 ') =  'DEFERRED'
44807  THEN 
44808 
44809    --
44810    XLA_AE_LINES_PKG.SetNewLine;
44811 
44812    p_balance_type_code          := l_balance_type_code;
44813    -- set the flag so later we will know whether the gain loss line needs to be created
44814    
44815    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
44816      p_actual_flag :='A';
44817    END IF;
44818 
44819    --
44820    -- bulk performance
44821    --
44822    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
44823                                       p_header_num   => 0); -- 4262811
44824    --
44825    -- set accounting line options
44826    --
44827    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
44828            p_natural_side_code          => 'D'
44829          , p_gain_or_loss_flag          => 'N'
44830          , p_gl_transfer_mode_code      => 'S'
44831          , p_acct_entry_type_code       => 'A'
44832          , p_switch_side_flag           => 'Y'
44833          , p_merge_duplicate_code       => 'A'
44834          );
44835    --
44836    l_acc_rev_natural_side_code := 'C';  -- 4262811
44837    -- 
44838    --
44839    -- set accounting line type info
44840    --
44841    xla_ae_lines_pkg.SetAcctLineType
44842       (p_component_type             => l_component_type
44843       ,p_event_type_code            => l_event_type_code
44844       ,p_line_definition_owner_code => l_line_definition_owner_code
44845       ,p_line_definition_code       => l_line_definition_code
44846       ,p_accounting_line_code       => l_component_code
44847       ,p_accounting_line_type_code  => l_component_type_code
44848       ,p_accounting_line_appl_id    => l_component_appl_id
44849       ,p_amb_context_code           => l_amb_context_code
44850       ,p_entity_code                => l_entity_code
44851       ,p_event_class_code           => l_event_class_code);
44852    --
44853    -- set accounting class
44854    --
44855    xla_ae_lines_pkg.SetAcctClass(
44856            p_accounting_class_code  => 'DEF_REC_TAX'
44857          , p_ae_header_id           => l_ae_header_id
44858          );
44859 
44860    --
44861    -- set rounding class
44862    --
44863    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
44864                       'DEF_REC_TAX';
44865 
44866    --
44867    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
44868    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
44869    --
44870    -- bulk performance
44871    --
44872    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
44873 
44874    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
44875       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
44876 
44877    -- 4955764
44878    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44879       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
44880 
44881    -- 4458381 Public Sector Enh
44882    
44883    --
44884    -- set accounting attributes for the line type
44885    --
44886    l_entered_amt_idx := 25;
44887    l_accted_amt_idx  := 27;
44888    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
44889    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
44890    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
44891    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
44892    l_rec_acct_attrs.array_num_value(2)  := 
44893 xla_ae_sources_pkg.GetSystemSourceNum(
44894    p_source_code           => 'XLA_EVENT_APPL_ID'
44895  , p_source_type_code      => 'Y'
44896  , p_source_application_id =>  602
44897 );
44898    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
44899    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
44900    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
44901    l_rec_acct_attrs.array_char_value(4)  := 
44902 xla_ae_sources_pkg.GetSystemSourceChar(
44903    p_source_code           => 'XLA_ENTITY_CODE'
44904  , p_source_type_code      => 'Y'
44905  , p_source_application_id =>  602
44906 );
44907    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
44908    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_127);
44909    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
44910    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
44911    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
44912    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
44913    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
44914    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
44915    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
44919    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
44916    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
44917    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
44918    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_139);
44920    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_140);
44921    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
44922    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_127);
44923    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
44924    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
44925    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
44926    l_rec_acct_attrs.array_char_value(14)  := p_source_132;
44927    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
44928    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
44929    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
44930    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
44931    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
44932    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
44933    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
44934    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
44935    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
44936    l_rec_acct_attrs.array_char_value(19)  := p_source_133;
44937    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
44938    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
44939    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
44940    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
44941    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
44942    l_rec_acct_attrs.array_char_value(22)  := p_source_67;
44943    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
44944    l_rec_acct_attrs.array_num_value(23)  := p_source_71;
44945    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
44946    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
44947    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
44948    l_rec_acct_attrs.array_num_value(25)  := p_source_134;
44949    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
44950    l_rec_acct_attrs.array_char_value(26)  := p_source_67;
44951    l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
44952    l_rec_acct_attrs.array_num_value(27)  := p_source_141;
44953    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
44954    l_rec_acct_attrs.array_date_value(28)  := p_source_77;
44955    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
44956    l_rec_acct_attrs.array_char_value(29)  := p_source_78;
44957    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
44958    l_rec_acct_attrs.array_date_value(30)  := p_source_79;
44959    l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
44960    l_rec_acct_attrs.array_char_value(31)  := p_source_80;
44961    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
44962    l_rec_acct_attrs.array_char_value(32)  := p_source_83;
44963    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
44964    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_136);
44965    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
44966    l_rec_acct_attrs.array_char_value(34)  := p_source_55;
44967    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
44968    l_rec_acct_attrs.array_num_value(35)  := p_source_86;
44969    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
44970    l_rec_acct_attrs.array_num_value(36)  := p_source_87;
44971    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
44972    l_rec_acct_attrs.array_num_value(37)  := p_source_88;
44973    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
44974    l_rec_acct_attrs.array_num_value(38)  := p_source_89;
44975    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
44976    l_rec_acct_attrs.array_num_value(39)  := p_source_90;
44977 
44978    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
44979    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
44980 
44981    ---------------------------------------------------------------------------------------------------------------
44982    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
44983    ---------------------------------------------------------------------------------------------------------------
44984    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
44985 
44986    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44987    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44988 
44989    IF xla_accounting_cache_pkg.GetValueChar
44990          (p_source_code         => 'LEDGER_CATEGORY_CODE'
44991          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
44992    AND l_bflow_method_code = 'PRIOR_ENTRY'
44993 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
44994    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
44995          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
44996        )
44997    THEN
44998          xla_ae_lines_pkg.BflowUpgEntry
44999            (p_business_method_code    => l_bflow_method_code
45003       NULL;
45000            ,p_business_class_code     => l_bflow_class_code
45001            ,p_balance_type            => l_balance_type_code);
45002    ELSE
45004 XLA_AE_LINES_PKG.business_flow_validation(
45005                                 p_business_method_code     => l_bflow_method_code
45006                                ,p_business_class_code      => l_bflow_class_code
45007                                ,p_inherit_description_flag => l_inherit_desc_flag);
45008    END IF;
45009 
45010    --
45011    -- call analytical criteria
45012    --
45013    -- Inherited Analytical Criteria for business flow method of Prior Entry.
45014    --
45015    -- call description
45016    --
45017    -- No description or it is inherited.
45018    --
45019    -- call ADRs
45020    -- Bug 4922099
45021    --
45022    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45023         (NVL(l_actual_upg_option, 'N') = 'O') OR
45024         (NVL(l_enc_upg_option, 'N') = 'O')
45025       )
45026    THEN
45027    NULL;
45028    --
45029    --
45030    
45031    --
45032    --
45033    END IF;
45034    --
45035    -- Bug 4922099
45036    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
45037           (NVL(l_enc_upg_option, 'N') = 'O')
45038         ) AND
45039         (l_bflow_method_code = 'PRIOR_ENTRY')
45040       )
45041    THEN
45042       IF
45043       --
45044       1 = 1
45045       --
45046       THEN
45047       xla_accounting_err_pkg.build_message
45048                                     (p_appli_s_name            => 'XLA'
45049                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45050                                     ,p_token_1                 => 'LINE_NUMBER'
45051                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
45052                                     ,p_token_2                 => 'LINE_TYPE_NAME'
45053                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
45054                                                                              l_component_type
45055                                                                             ,l_component_code
45056                                                                             ,l_component_type_code
45057                                                                             ,l_component_appl_id
45058                                                                             ,l_amb_context_code
45059                                                                             ,l_entity_code
45060                                                                             ,l_event_class_code
45061                                                                            )
45062                                     ,p_token_3                 => 'OWNER'
45063                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
45064                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
45065                                                                           ,p_lookup_code    => l_component_type_code
45066                                                                          )
45067                                     ,p_token_4                 => 'PRODUCT_NAME'
45068                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
45069                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
45070                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
45071                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
45072                                     ,p_ae_header_id            =>  NULL
45073                                        );
45074 
45075         IF (C_LEVEL_ERROR>= g_log_level) THEN
45076                  trace
45077                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45078                       ,p_level    => C_LEVEL_ERROR
45079                       ,p_module   => l_log_module);
45080         END IF;
45081       END IF;
45082    END IF;
45083    --
45084    --
45085    ------------------------------------------------------------------------------------------------
45086    -- 4219869 Business Flow
45087    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
45088    -- Prior Entry.  Currently, the following code is always generated.
45089    ------------------------------------------------------------------------------------------------
45090    -- No ValidateCurrentLine for business flow method of Prior Entry
45091 
45092    ------------------------------------------------------------------------------------
45093    -- 4219869 Business Flow
45094    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
45095    ------------------------------------------------------------------------------------
45096    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45097 
45098    ----------------------------------------------------------------------------------
45099    -- 4219869 Business Flow
45100    -- Update journal entry status -- Need to generate this within IF <condition>
45101    ----------------------------------------------------------------------------------
45102    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45103          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
45107    -------------------------------------------------------------------------------------------
45104          ,p_balance_type_code => l_balance_type_code
45105          );
45106 
45108    -- 4262811 - Generate the Accrual Reversal lines
45109    -------------------------------------------------------------------------------------------
45110    BEGIN
45111       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
45112                               (g_array_event(p_event_id).array_value_num('header_index'));
45113       IF l_acc_rev_flag IS NULL THEN
45114          l_acc_rev_flag := 'N';
45115       END IF;
45116    EXCEPTION
45117       WHEN OTHERS THEN
45118          l_acc_rev_flag := 'N';
45119    END;
45120    --
45121    IF (l_acc_rev_flag = 'Y') THEN
45122 
45123        -- 4645092  ------------------------------------------------------------------------------
45124        -- To allow MPA report to determine if it should generate report process
45125        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
45126        ------------------------------------------------------------------------------------------
45127 
45128        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
45129        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
45130    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
45131    -- call ADRs
45132    -- Bug 4922099
45133    --
45134    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45135         (NVL(l_actual_upg_option, 'N') = 'O') OR
45136         (NVL(l_enc_upg_option, 'N') = 'O')
45137       )
45138    THEN
45139    NULL;
45140    --
45141    --
45142    
45143    --
45144    --
45145    END IF;
45146 
45147        --
45148        -- Update the line information that should be overwritten
45149        --
45150        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
45151                                          p_header_num   => 1);
45152        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
45153 
45154        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
45155 
45156        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
45157           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
45158        END IF;
45159 
45160       --
45161       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
45162       --
45163       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
45164           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
45165       ELSE
45166           ---------------------------------------------------------------------------------------------------
45167           -- 4262811a Switch Sign
45168           ---------------------------------------------------------------------------------------------------
45169           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
45170           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45171                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45172           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45173                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45174           -- 5132302
45175           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
45176                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45177 
45178       END IF;
45179 
45180       -- 4955764
45181       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45182       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
45183 
45184 
45185       XLA_AE_LINES_PKG.ValidateCurrentLine;
45186       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45187 
45188       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45189                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
45190                ,p_balance_type_code => l_balance_type_code);
45191 
45192    END IF;
45193 
45194    -----------------------------------------------------------------------------------------
45195    -- 4262811 Multiperiod Accounting
45196    -----------------------------------------------------------------------------------------
45197      -- No MPA option is assigned.
45198 
45199 
45200 END IF;
45201 END IF;
45202 --
45203 
45204 --
45205 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45206    trace
45207       (p_msg      => 'END of AcctLineType_99'
45208       ,p_level    => C_LEVEL_PROCEDURE
45209       ,p_module   => l_log_module);
45210 END IF;
45211 --
45212 EXCEPTION
45213   WHEN xla_exceptions_pkg.application_exception THEN
45214       RAISE;
45215   WHEN OTHERS THEN
45216        xla_exceptions_pkg.raise_message
45217            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_99');
45218 END AcctLineType_99;
45219 --
45220 
45221 ---------------------------------------
45222 --
45223 -- PRIVATE FUNCTION
45224 --         AcctLineType_100
45228   p_application_id        IN NUMBER
45225 --
45226 ---------------------------------------
45227 PROCEDURE AcctLineType_100 (
45229  ,p_event_id              IN NUMBER
45230  ,p_calculate_acctd_flag  IN VARCHAR2
45231  ,p_calculate_g_l_flag    IN VARCHAR2
45232  ,p_actual_flag           IN OUT VARCHAR2
45233  ,p_balance_type_code     OUT VARCHAR2
45234  ,p_gain_or_loss_ref      OUT VARCHAR2
45235  
45236 --Invoice Distribution Description
45237  , p_source_1            IN VARCHAR2
45238 --Invoice Distribution Ledger Amount
45239  , p_source_21            IN NUMBER
45240 --Invoice Distribution Account
45241  , p_source_30            IN NUMBER
45242 --Invoice Distribution Type
45243  , p_source_33            IN VARCHAR2
45244  , p_source_33_meaning    IN VARCHAR2
45245 --Accounting Reversal Indicator
45246  , p_source_53            IN VARCHAR2
45247 --Distribution Link Type
45248  , p_source_55            IN VARCHAR2
45249 --Allocation to Main Distribution Identifier
45250  , p_source_57            IN NUMBER
45251 --Invoice Identifier
45252  , p_source_58            IN NUMBER
45253 --Invoice Distribution Identifier
45254  , p_source_64            IN NUMBER
45255 --Payables Encumbrance Upgrade Credit Account
45256  , p_source_65            IN NUMBER
45257 --Payables Encumbrance Upgrade Credit Amount
45258  , p_source_66            IN NUMBER
45259 --Invoice Currency Code
45260  , p_source_67            IN VARCHAR2
45261 --Payables Encumbrance Upgrade Credit Base Amount
45262  , p_source_68            IN NUMBER
45263 --Payables Encumbrance Upgrade Debit Account
45264  , p_source_69            IN NUMBER
45265 --Payables Encumbrance Upgrade Debit Amount
45266  , p_source_70            IN NUMBER
45267 --Payables Encumbrance Upgrade Debit Base Amount
45268  , p_source_71            IN NUMBER
45269 --Payables Encumbrance Upgrade Option
45270  , p_source_72            IN VARCHAR2
45271 --Invoice Distribution Amount
45272  , p_source_73            IN NUMBER
45273 --Deferred Accounting End Date
45274  , p_source_77            IN DATE
45275 --Deferred Accounting Option
45276  , p_source_78            IN VARCHAR2
45277 --Deferred Accounting Start Date
45278  , p_source_79            IN DATE
45279 --Override Accounted Amount Indicator
45280  , p_source_80            IN VARCHAR2
45281  , p_source_80_meaning    IN VARCHAR2
45282 --Invoice Supplier Identifier
45283  , p_source_81            IN NUMBER
45284 --Invoice Supplier Site Identifier
45285  , p_source_82            IN NUMBER
45286 --Third Party Type
45287  , p_source_83            IN VARCHAR2
45288 --Parent Reversal Identifier
45289  , p_source_84            IN NUMBER
45290 --Invoice Distribution Statistical Amount
45291  , p_source_85            IN NUMBER
45292 --Invoice Distribution Tax Line Identifier
45293  , p_source_86            IN NUMBER
45294 --Invoice Distribution Tax Distribution Identifier from Tax
45295  , p_source_87            IN NUMBER
45296 --Invoice Distribution Summary Tax Line Identifier
45297  , p_source_88            IN NUMBER
45298 --Payables Upgrade Credit Encumbrance Type Identifier
45299  , p_source_89            IN NUMBER
45300 --Payables Upgrade Debit Encumbrance Type Identifier
45301  , p_source_90            IN NUMBER
45302 --Business Flow Accounts Payable Application Identifier
45303  , p_source_91            IN NUMBER
45304 --Business Flow Invoice Distribution Type
45305  , p_source_92            IN VARCHAR2
45306 --Business Flow Invoice Entity Code
45307  , p_source_93            IN VARCHAR2
45308 --Business Flow Invoice Distribution Identifier
45309  , p_source_94            IN NUMBER
45310 --Business Flow Invoice Identifier
45311  , p_source_95            IN NUMBER
45312 --Deferred Recoverable Tax Option
45313  , p_source_137            IN VARCHAR2
45314  , p_source_137_meaning    IN VARCHAR2
45315 --Self-Assessed Tax Flag
45316  , p_source_142            IN VARCHAR2
45317  , p_source_142_meaning    IN VARCHAR2
45318 --Invoice Exchange Date
45319  , p_source_143            IN DATE
45320 --Invoice Exchange Rate
45321  , p_source_144            IN NUMBER
45322 --Invoice Exchange Rate Type
45323  , p_source_145            IN VARCHAR2
45324 )
45325 IS
45326 
45327 l_component_type              VARCHAR2(80);
45328 l_component_code              VARCHAR2(30);
45329 l_component_type_code         VARCHAR2(1);
45330 l_component_appl_id           INTEGER;
45331 l_amb_context_code            VARCHAR2(30);
45332 l_entity_code                 VARCHAR2(30);
45333 l_event_class_code            VARCHAR2(30);
45334 l_ae_header_id                NUMBER;
45335 l_event_type_code             VARCHAR2(30);
45336 l_line_definition_code        VARCHAR2(30);
45337 l_line_definition_owner_code  VARCHAR2(1);
45338 --
45339 -- adr variables
45340 l_segment                     VARCHAR2(30);
45341 l_ccid                        NUMBER;
45342 l_adr_transaction_coa_id      NUMBER;
45343 l_adr_accounting_coa_id       NUMBER;
45344 l_adr_flexfield_segment_code  VARCHAR2(30);
45345 l_adr_flex_value_set_id       NUMBER;
45346 l_adr_value_type_code         VARCHAR2(30);
45347 l_adr_value_combination_id    NUMBER;
45348 l_adr_value_segment_code      VARCHAR2(30);
45349 
45350 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
45351 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
45352 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
45356 l_entered_amt_idx             NUMBER;
45353 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
45354 
45355 -- 4262811 Variables ------------------------------------------------------------------------------------------
45357 l_accted_amt_idx              NUMBER;
45358 l_acc_rev_flag                VARCHAR2(1);
45359 l_accrual_line_num            NUMBER;
45360 l_tmp_amt                     NUMBER;
45361 l_acc_rev_natural_side_code   VARCHAR2(1);
45362 
45363 l_num_entries                 NUMBER;
45364 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
45365 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
45366 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
45367 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
45368 l_recog_line_1                NUMBER;
45369 l_recog_line_2                NUMBER;
45370 
45371 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
45372 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
45373 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
45374 
45375 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
45376 
45377 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
45378 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
45379 
45380 ---------------------------------------------------------------------------------------------------------------
45381 
45382 
45383 --
45384 -- bulk performance
45385 --
45386 l_balance_type_code           VARCHAR2(1);
45387 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
45388 l_log_module                  VARCHAR2(240);
45389 
45390 --
45391 -- Upgrade strategy
45392 --
45393 l_actual_upg_option           VARCHAR2(1);
45394 l_enc_upg_option           VARCHAR2(1);
45395 
45396 --
45397 BEGIN
45398 --
45399 IF g_log_enabled THEN
45400       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_100';
45401 END IF;
45402 --
45403 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45404 
45405       trace
45406          (p_msg      => 'BEGIN of AcctLineType_100'
45407          ,p_level    => C_LEVEL_PROCEDURE
45408          ,p_module   => l_log_module);
45409 
45410 END IF;
45411 --
45412 l_component_type             := 'AMB_JLT';
45413 l_component_code             := 'AP_DEF_RTAX_INTERIM_PREPAYMENT';
45414 l_component_type_code        := 'S';
45415 l_component_appl_id          :=  200;
45416 l_amb_context_code           := 'DEFAULT';
45417 l_entity_code                := 'AP_INVOICES';
45418 l_event_class_code           := 'PREPAYMENTS';
45419 l_event_type_code            := 'PREPAYMENTS_ALL';
45420 l_line_definition_owner_code := 'S';
45421 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
45422 --
45423 l_balance_type_code          := 'A';
45424 l_segment                     := NULL;
45425 l_ccid                        := NULL;
45426 l_adr_transaction_coa_id      := NULL;
45427 l_adr_accounting_coa_id       := NULL;
45428 l_adr_flexfield_segment_code  := NULL;
45429 l_adr_flex_value_set_id       := NULL;
45430 l_adr_value_type_code         := NULL;
45431 l_adr_value_combination_id    := NULL;
45432 l_adr_value_segment_code      := NULL;
45433 
45434 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
45435 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
45436 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
45437 l_budgetary_control_flag     := 'N';
45438 
45439 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
45440 l_bflow_applied_to_amt       := NULL; -- 5132302
45441 l_entered_amt_idx            := NULL;          -- 4262811
45442 l_accted_amt_idx             := NULL;          -- 4262811
45443 l_acc_rev_flag               := NULL;          -- 4262811
45444 l_accrual_line_num           := NULL;          -- 4262811
45445 l_tmp_amt                    := NULL;          -- 4262811
45446 --
45447  
45448 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
45449     l_balance_type_code <> 'B' THEN
45450 IF NVL(p_source_33,'
45451 ') =  'REC_TAX' AND 
45452 NVL(p_source_137,'
45453 ') =  'DEFERRED' AND 
45454 NVL(p_source_142,'
45455 ') <>  'Y'
45456  THEN 
45457 
45458    --
45459    XLA_AE_LINES_PKG.SetNewLine;
45460 
45461    p_balance_type_code          := l_balance_type_code;
45462    -- set the flag so later we will know whether the gain loss line needs to be created
45463    
45464    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
45465      p_actual_flag :='A';
45466    END IF;
45467 
45468    --
45469    -- bulk performance
45470    --
45471    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
45472                                       p_header_num   => 0); -- 4262811
45473    --
45474    -- set accounting line options
45475    --
45476    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
45477            p_natural_side_code          => 'D'
45478          , p_gain_or_loss_flag          => 'N'
45479          , p_gl_transfer_mode_code      => 'S'
45480          , p_acct_entry_type_code       => 'A'
45481          , p_switch_side_flag           => 'Y'
45482          , p_merge_duplicate_code       => 'A'
45483          );
45484    --
45485    l_acc_rev_natural_side_code := 'C';  -- 4262811
45486    -- 
45490    xla_ae_lines_pkg.SetAcctLineType
45487    --
45488    -- set accounting line type info
45489    --
45491       (p_component_type             => l_component_type
45492       ,p_event_type_code            => l_event_type_code
45493       ,p_line_definition_owner_code => l_line_definition_owner_code
45494       ,p_line_definition_code       => l_line_definition_code
45495       ,p_accounting_line_code       => l_component_code
45496       ,p_accounting_line_type_code  => l_component_type_code
45497       ,p_accounting_line_appl_id    => l_component_appl_id
45498       ,p_amb_context_code           => l_amb_context_code
45499       ,p_entity_code                => l_entity_code
45500       ,p_event_class_code           => l_event_class_code);
45501    --
45502    -- set accounting class
45503    --
45504    xla_ae_lines_pkg.SetAcctClass(
45505            p_accounting_class_code  => 'DEF_REC_TAX'
45506          , p_ae_header_id           => l_ae_header_id
45507          );
45508 
45509    --
45510    -- set rounding class
45511    --
45512    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
45513                       'DEF_REC_TAX';
45514 
45515    --
45516    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
45517    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
45518    --
45519    -- bulk performance
45520    --
45521    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
45522 
45523    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
45524       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
45525 
45526    -- 4955764
45527    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45528       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
45529 
45530    -- 4458381 Public Sector Enh
45531    
45532    --
45533    -- set accounting attributes for the line type
45534    --
45535    l_entered_amt_idx := 23;
45536    l_accted_amt_idx  := 28;
45537    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
45538    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
45539    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
45540    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
45541    l_rec_acct_attrs.array_num_value(2)  := 
45542 xla_ae_sources_pkg.GetSystemSourceNum(
45543    p_source_code           => 'XLA_EVENT_APPL_ID'
45544  , p_source_type_code      => 'Y'
45545  , p_source_application_id =>  602
45546 );
45547    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
45548    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
45549    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
45550    l_rec_acct_attrs.array_char_value(4)  := 
45551 xla_ae_sources_pkg.GetSystemSourceChar(
45552    p_source_code           => 'XLA_ENTITY_CODE'
45553  , p_source_type_code      => 'Y'
45554  , p_source_application_id =>  602
45555 );
45556    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
45557    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
45558    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
45559    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
45560    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
45561    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
45562    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
45563    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
45564    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
45565    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
45566    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
45567    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
45568    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
45569    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
45570    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
45571    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
45572    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
45573    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
45574    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
45575    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
45576    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
45577    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
45578    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
45579    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
45580    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
45581    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
45582    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
45583    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
45584    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
45585    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
45586    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
45587    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
45588    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
45589    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
45593    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
45590    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
45591    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
45592    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
45594    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
45595    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
45596    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
45597    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
45598    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
45599    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
45600    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
45601    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
45602    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
45603    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
45604    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
45605    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
45606    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
45607    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
45608    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
45609    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
45610    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
45611    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
45612    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
45613    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
45614    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
45615    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
45616    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
45617    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
45618    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
45619    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
45620    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
45621    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
45622    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
45623    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
45624    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
45625    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
45626    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
45627    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
45628    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
45629    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
45630    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
45631    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
45632    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
45633    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
45634 
45635    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
45636    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
45637 
45638    ---------------------------------------------------------------------------------------------------------------
45639    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
45640    ---------------------------------------------------------------------------------------------------------------
45641    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
45642 
45643    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45644    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45645 
45646    IF xla_accounting_cache_pkg.GetValueChar
45647          (p_source_code         => 'LEDGER_CATEGORY_CODE'
45648          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
45649    AND l_bflow_method_code = 'PRIOR_ENTRY'
45650 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
45651    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
45652          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
45653        )
45654    THEN
45655          xla_ae_lines_pkg.BflowUpgEntry
45656            (p_business_method_code    => l_bflow_method_code
45657            ,p_business_class_code     => l_bflow_class_code
45658            ,p_balance_type            => l_balance_type_code);
45659    ELSE
45660       NULL;
45661 -- No business flow processing for business flow method of NONE.
45662    END IF;
45663 
45664    --
45665    -- call analytical criteria
45666    --
45667    
45668    --
45669    -- call description
45670    --
45671    
45672 xla_ae_lines_pkg.SetLineDescription(
45673    p_ae_header_id => l_ae_header_id
45674   ,p_description  => Description_1 (
45675      p_application_id         => p_application_id
45676    , p_ae_header_id           => l_ae_header_id 
45677 , p_source_1 => p_source_1
45678    )
45679 );
45680 
45681 
45682    --
45683    -- call ADRs
45684    -- Bug 4922099
45685    --
45686    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45687         (NVL(l_actual_upg_option, 'N') = 'O') OR
45688         (NVL(l_enc_upg_option, 'N') = 'O')
45689       )
45690    THEN
45691    NULL;
45692    --
45693    --
45694    
45695   l_ccid := AcctDerRule_33(
45696            p_application_id           => p_application_id
45697          , p_ae_header_id             => l_ae_header_id 
45698 , p_source_30 => p_source_30
45702          , p_side                     => 'NA'
45699          , x_transaction_coa_id       => l_adr_transaction_coa_id
45700          , x_accounting_coa_id        => l_adr_accounting_coa_id
45701          , x_value_type_code          => l_adr_value_type_code
45703    );
45704 
45705    xla_ae_lines_pkg.set_ccid(
45706     p_code_combination_id          => l_ccid
45707   , p_value_type_code              => l_adr_value_type_code
45708   , p_transaction_coa_id           => l_adr_transaction_coa_id
45709   , p_accounting_coa_id            => l_adr_accounting_coa_id
45710   , p_adr_code                     => 'AP_INVOICE_DIST'
45711   , p_adr_type_code                => 'S'
45712   , p_component_type               => l_component_type
45713   , p_component_code               => l_component_code
45714   , p_component_type_code          => l_component_type_code
45715   , p_component_appl_id            => l_component_appl_id
45716   , p_amb_context_code             => l_amb_context_code
45717   , p_side                         => 'NA'
45718   );
45719 
45720 
45721    --
45722    --
45723    END IF;
45724    --
45725    -- Bug 4922099
45726    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
45727           (NVL(l_enc_upg_option, 'N') = 'O')
45728         ) AND
45729         (l_bflow_method_code = 'PRIOR_ENTRY')
45730       )
45731    THEN
45732       IF
45733       --
45734       1 = 2
45735       --
45736       THEN
45737       xla_accounting_err_pkg.build_message
45738                                     (p_appli_s_name            => 'XLA'
45739                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45740                                     ,p_token_1                 => 'LINE_NUMBER'
45741                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
45742                                     ,p_token_2                 => 'LINE_TYPE_NAME'
45743                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
45744                                                                              l_component_type
45745                                                                             ,l_component_code
45746                                                                             ,l_component_type_code
45747                                                                             ,l_component_appl_id
45748                                                                             ,l_amb_context_code
45749                                                                             ,l_entity_code
45750                                                                             ,l_event_class_code
45751                                                                            )
45752                                     ,p_token_3                 => 'OWNER'
45753                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
45754                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
45755                                                                           ,p_lookup_code    => l_component_type_code
45756                                                                          )
45757                                     ,p_token_4                 => 'PRODUCT_NAME'
45758                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
45759                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
45760                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
45761                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
45762                                     ,p_ae_header_id            =>  NULL
45763                                        );
45764 
45765         IF (C_LEVEL_ERROR>= g_log_level) THEN
45766                  trace
45767                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45768                       ,p_level    => C_LEVEL_ERROR
45769                       ,p_module   => l_log_module);
45770         END IF;
45771       END IF;
45772    END IF;
45773    --
45774    --
45775    ------------------------------------------------------------------------------------------------
45776    -- 4219869 Business Flow
45777    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
45778    -- Prior Entry.  Currently, the following code is always generated.
45779    ------------------------------------------------------------------------------------------------
45780    XLA_AE_LINES_PKG.ValidateCurrentLine;
45781 
45782    ------------------------------------------------------------------------------------
45783    -- 4219869 Business Flow
45784    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
45785    ------------------------------------------------------------------------------------
45786    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45787 
45788    ----------------------------------------------------------------------------------
45789    -- 4219869 Business Flow
45790    -- Update journal entry status -- Need to generate this within IF <condition>
45791    ----------------------------------------------------------------------------------
45792    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45793          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
45794          ,p_balance_type_code => l_balance_type_code
45795          );
45796 
45800    BEGIN
45797    -------------------------------------------------------------------------------------------
45798    -- 4262811 - Generate the Accrual Reversal lines
45799    -------------------------------------------------------------------------------------------
45801       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
45802                               (g_array_event(p_event_id).array_value_num('header_index'));
45803       IF l_acc_rev_flag IS NULL THEN
45804          l_acc_rev_flag := 'N';
45805       END IF;
45806    EXCEPTION
45807       WHEN OTHERS THEN
45808          l_acc_rev_flag := 'N';
45809    END;
45810    --
45811    IF (l_acc_rev_flag = 'Y') THEN
45812 
45813        -- 4645092  ------------------------------------------------------------------------------
45814        -- To allow MPA report to determine if it should generate report process
45815        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
45816        ------------------------------------------------------------------------------------------
45817 
45818        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
45819        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
45820    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
45821    -- call ADRs
45822    -- Bug 4922099
45823    --
45824    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45825         (NVL(l_actual_upg_option, 'N') = 'O') OR
45826         (NVL(l_enc_upg_option, 'N') = 'O')
45827       )
45828    THEN
45829    NULL;
45830    --
45831    --
45832    
45833   l_ccid := AcctDerRule_33(
45834            p_application_id           => p_application_id
45835          , p_ae_header_id             => l_ae_header_id 
45836 , p_source_30 => p_source_30
45837          , x_transaction_coa_id       => l_adr_transaction_coa_id
45838          , x_accounting_coa_id        => l_adr_accounting_coa_id
45839          , x_value_type_code          => l_adr_value_type_code
45840          , p_side                     => 'NA'
45841    );
45842 
45843    xla_ae_lines_pkg.set_ccid(
45844     p_code_combination_id          => l_ccid
45845   , p_value_type_code              => l_adr_value_type_code
45846   , p_transaction_coa_id           => l_adr_transaction_coa_id
45847   , p_accounting_coa_id            => l_adr_accounting_coa_id
45848   , p_adr_code                     => 'AP_INVOICE_DIST'
45849   , p_adr_type_code                => 'S'
45850   , p_component_type               => l_component_type
45851   , p_component_code               => l_component_code
45852   , p_component_type_code          => l_component_type_code
45853   , p_component_appl_id            => l_component_appl_id
45854   , p_amb_context_code             => l_amb_context_code
45855   , p_side                         => 'NA'
45856   );
45857 
45858 
45859    --
45860    --
45861    END IF;
45862 
45863        --
45864        -- Update the line information that should be overwritten
45865        --
45866        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
45867                                          p_header_num   => 1);
45868        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
45869 
45870        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
45871 
45872        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
45873           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
45874        END IF;
45875 
45876       --
45877       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
45878       --
45879       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
45880           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
45881       ELSE
45882           ---------------------------------------------------------------------------------------------------
45883           -- 4262811a Switch Sign
45884           ---------------------------------------------------------------------------------------------------
45885           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
45886           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45887                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45888           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45889                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45890           -- 5132302
45891           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
45892                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45893 
45894       END IF;
45895 
45896       -- 4955764
45897       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45898       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
45899 
45900 
45901       XLA_AE_LINES_PKG.ValidateCurrentLine;
45902       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45903 
45904       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45908    END IF;
45905                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
45906                ,p_balance_type_code => l_balance_type_code);
45907 
45909 
45910    -----------------------------------------------------------------------------------------
45911    -- 4262811 Multiperiod Accounting
45912    -----------------------------------------------------------------------------------------
45913      -- No MPA option is assigned.
45914 
45915 
45916 END IF;
45917 END IF;
45918 --
45919 
45920 --
45921 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45922    trace
45923       (p_msg      => 'END of AcctLineType_100'
45924       ,p_level    => C_LEVEL_PROCEDURE
45925       ,p_module   => l_log_module);
45926 END IF;
45927 --
45928 EXCEPTION
45929   WHEN xla_exceptions_pkg.application_exception THEN
45930       RAISE;
45931   WHEN OTHERS THEN
45932        xla_exceptions_pkg.raise_message
45933            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_100');
45934 END AcctLineType_100;
45935 --
45936 
45937 ---------------------------------------
45938 --
45939 -- PRIVATE FUNCTION
45940 --         AcctLineType_101
45941 --
45942 ---------------------------------------
45943 PROCEDURE AcctLineType_101 (
45944   p_application_id        IN NUMBER
45945  ,p_event_id              IN NUMBER
45946  ,p_calculate_acctd_flag  IN VARCHAR2
45947  ,p_calculate_g_l_flag    IN VARCHAR2
45948  ,p_actual_flag           IN OUT VARCHAR2
45949  ,p_balance_type_code     OUT VARCHAR2
45950  ,p_gain_or_loss_ref      OUT VARCHAR2
45951  
45952 --Payment Currency Code
45953  , p_source_13            IN VARCHAR2
45954 --Invoice Distribution Type
45955  , p_source_33            IN VARCHAR2
45956  , p_source_33_meaning    IN VARCHAR2
45957 --Recoverable Tax Account
45958  , p_source_52            IN NUMBER
45959 --Accounting Reversal Indicator
45960  , p_source_53            IN VARCHAR2
45961 --Distribution Link Type
45962  , p_source_55            IN VARCHAR2
45963 --Override Accounted Amount Indicator
45964  , p_source_80            IN VARCHAR2
45965  , p_source_80_meaning    IN VARCHAR2
45966 --Third Party Type
45967  , p_source_83            IN VARCHAR2
45968 --Business Flow Accounts Payable Application Identifier
45969  , p_source_91            IN NUMBER
45970 --When to Account for Payment Option
45971  , p_source_97            IN VARCHAR2
45972 --Payment Distribution Type
45973  , p_source_98            IN VARCHAR2
45974  , p_source_98_meaning    IN VARCHAR2
45975 --Payment Distribution Amount
45976  , p_source_99            IN NUMBER
45977 --Business Flow Payment Distribution Type
45978  , p_source_100            IN VARCHAR2
45979 --Business Flow Payment Entity Code
45980  , p_source_101            IN VARCHAR2
45981 --Business Flow Payment Distribution Identifier
45982  , p_source_102            IN NUMBER
45983 --Business Flow Payment Identifier
45984  , p_source_103            IN NUMBER
45985 --Payment Distribution Identifier
45986  , p_source_104            IN NUMBER
45987 --Payment Supplier Identifier
45988  , p_source_110            IN NUMBER
45989 --Payment Supplier Site Identifier
45990  , p_source_111            IN NUMBER
45991 --Payment Distribution Reversed Identifier
45992  , p_source_112            IN NUMBER
45993 --Payment Maturity Date
45994  , p_source_114            IN DATE
45995 --Payment Exchange Date
45996  , p_source_117            IN DATE
45997 --Payment Exchange Rate
45998  , p_source_118            IN NUMBER
45999 --Payment Exchange Rate Type
46000  , p_source_119            IN VARCHAR2
46001 --Payment Distribution (Matured Rate) Ledger Amount
46002  , p_source_121            IN NUMBER
46003 --Deferred Recoverable Tax Option
46004  , p_source_137            IN VARCHAR2
46005  , p_source_137_meaning    IN VARCHAR2
46006 )
46007 IS
46008 
46009 l_component_type              VARCHAR2(80);
46010 l_component_code              VARCHAR2(30);
46011 l_component_type_code         VARCHAR2(1);
46012 l_component_appl_id           INTEGER;
46013 l_amb_context_code            VARCHAR2(30);
46014 l_entity_code                 VARCHAR2(30);
46015 l_event_class_code            VARCHAR2(30);
46016 l_ae_header_id                NUMBER;
46017 l_event_type_code             VARCHAR2(30);
46018 l_line_definition_code        VARCHAR2(30);
46019 l_line_definition_owner_code  VARCHAR2(1);
46020 --
46021 -- adr variables
46022 l_segment                     VARCHAR2(30);
46023 l_ccid                        NUMBER;
46024 l_adr_transaction_coa_id      NUMBER;
46025 l_adr_accounting_coa_id       NUMBER;
46026 l_adr_flexfield_segment_code  VARCHAR2(30);
46027 l_adr_flex_value_set_id       NUMBER;
46028 l_adr_value_type_code         VARCHAR2(30);
46029 l_adr_value_combination_id    NUMBER;
46030 l_adr_value_segment_code      VARCHAR2(30);
46031 
46032 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
46033 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
46034 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
46035 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
46036 
46037 -- 4262811 Variables ------------------------------------------------------------------------------------------
46038 l_entered_amt_idx             NUMBER;
46039 l_accted_amt_idx              NUMBER;
46043 l_acc_rev_natural_side_code   VARCHAR2(1);
46040 l_acc_rev_flag                VARCHAR2(1);
46041 l_accrual_line_num            NUMBER;
46042 l_tmp_amt                     NUMBER;
46044 
46045 l_num_entries                 NUMBER;
46046 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
46047 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
46048 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
46049 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
46050 l_recog_line_1                NUMBER;
46051 l_recog_line_2                NUMBER;
46052 
46053 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
46054 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
46055 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
46056 
46057 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
46058 
46059 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
46060 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
46061 
46062 ---------------------------------------------------------------------------------------------------------------
46063 
46064 
46065 --
46066 -- bulk performance
46067 --
46068 l_balance_type_code           VARCHAR2(1);
46069 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
46070 l_log_module                  VARCHAR2(240);
46071 
46072 --
46073 -- Upgrade strategy
46074 --
46075 l_actual_upg_option           VARCHAR2(1);
46076 l_enc_upg_option           VARCHAR2(1);
46077 
46078 --
46079 BEGIN
46080 --
46081 IF g_log_enabled THEN
46082       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_101';
46083 END IF;
46084 --
46085 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46086 
46087       trace
46088          (p_msg      => 'BEGIN of AcctLineType_101'
46089          ,p_level    => C_LEVEL_PROCEDURE
46090          ,p_module   => l_log_module);
46091 
46092 END IF;
46093 --
46094 l_component_type             := 'AMB_JLT';
46095 l_component_code             := 'AP_DEF_RTAX_MAT';
46096 l_component_type_code        := 'S';
46097 l_component_appl_id          :=  200;
46098 l_amb_context_code           := 'DEFAULT';
46099 l_entity_code                := 'AP_PAYMENTS';
46100 l_event_class_code           := 'FUTURE DATED PAYMENTS';
46101 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
46102 l_line_definition_owner_code := 'S';
46103 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
46104 --
46105 l_balance_type_code          := 'A';
46106 l_segment                     := NULL;
46107 l_ccid                        := NULL;
46108 l_adr_transaction_coa_id      := NULL;
46109 l_adr_accounting_coa_id       := NULL;
46110 l_adr_flexfield_segment_code  := NULL;
46111 l_adr_flex_value_set_id       := NULL;
46112 l_adr_value_type_code         := NULL;
46113 l_adr_value_combination_id    := NULL;
46114 l_adr_value_segment_code      := NULL;
46115 
46116 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
46117 l_bflow_class_code           := '';    -- 4219869 Business Flow
46118 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
46119 l_budgetary_control_flag     := 'N';
46120 
46121 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
46122 l_bflow_applied_to_amt       := NULL; -- 5132302
46123 l_entered_amt_idx            := NULL;          -- 4262811
46124 l_accted_amt_idx             := NULL;          -- 4262811
46125 l_acc_rev_flag               := NULL;          -- 4262811
46126 l_accrual_line_num           := NULL;          -- 4262811
46127 l_tmp_amt                    := NULL;          -- 4262811
46128 --
46129  
46130 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
46131     l_balance_type_code <> 'B' THEN
46132 IF NVL(p_source_97,'
46133 ') <>  'CLEAR_CLEAR' AND 
46134 NVL(p_source_33,'
46135 ') =  'REC_TAX' AND 
46136 p_source_114 IS NOT NULL AND 
46137 NVL(p_source_137,'
46138 ') =  'DEFERRED' AND 
46139 (NVL(p_source_98,'
46140 ') =  'DISCOUNT' OR 
46141 NVL(p_source_98,'
46142 ') =  'CASH')
46143  THEN 
46144 
46145    --
46146    XLA_AE_LINES_PKG.SetNewLine;
46147 
46148    p_balance_type_code          := l_balance_type_code;
46149    -- set the flag so later we will know whether the gain loss line needs to be created
46150    
46151    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
46152      p_actual_flag :='A';
46153    END IF;
46154 
46155    --
46156    -- bulk performance
46157    --
46158    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
46159                                       p_header_num   => 0); -- 4262811
46160    --
46161    -- set accounting line options
46162    --
46163    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
46164            p_natural_side_code          => 'D'
46165          , p_gain_or_loss_flag          => 'N'
46166          , p_gl_transfer_mode_code      => 'S'
46167          , p_acct_entry_type_code       => 'A'
46168          , p_switch_side_flag           => 'Y'
46169          , p_merge_duplicate_code       => 'A'
46170          );
46171    --
46172    l_acc_rev_natural_side_code := 'C';  -- 4262811
46173    -- 
46174    --
46175    -- set accounting line type info
46176    --
46177    xla_ae_lines_pkg.SetAcctLineType
46181       ,p_line_definition_code       => l_line_definition_code
46178       (p_component_type             => l_component_type
46179       ,p_event_type_code            => l_event_type_code
46180       ,p_line_definition_owner_code => l_line_definition_owner_code
46182       ,p_accounting_line_code       => l_component_code
46183       ,p_accounting_line_type_code  => l_component_type_code
46184       ,p_accounting_line_appl_id    => l_component_appl_id
46185       ,p_amb_context_code           => l_amb_context_code
46186       ,p_entity_code                => l_entity_code
46187       ,p_event_class_code           => l_event_class_code);
46188    --
46189    -- set accounting class
46190    --
46191    xla_ae_lines_pkg.SetAcctClass(
46192            p_accounting_class_code  => 'DEF_REC_TAX'
46193          , p_ae_header_id           => l_ae_header_id
46194          );
46195 
46196    --
46197    -- set rounding class
46198    --
46199    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
46200                       'DEF_REC_TAX';
46201 
46202    --
46203    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
46204    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
46205    --
46206    -- bulk performance
46207    --
46208    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
46209 
46210    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
46211       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
46212 
46213    -- 4955764
46214    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46215       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
46216 
46217    -- 4458381 Public Sector Enh
46218    
46219    --
46220    -- set accounting attributes for the line type
46221    --
46222    l_entered_amt_idx := 9;
46223    l_accted_amt_idx  := 14;
46224    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
46225    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
46226    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
46227    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
46228    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
46229    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
46230    l_rec_acct_attrs.array_char_value(3)  := p_source_100;
46231    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
46232    l_rec_acct_attrs.array_char_value(4)  := p_source_101;
46233    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
46234    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_102);
46235    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
46236    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_103);
46237    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
46238    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
46239    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
46240    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
46241    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
46242    l_rec_acct_attrs.array_num_value(9)  := p_source_99;
46243    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
46244    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
46245    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
46246    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
46247    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
46248    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
46249    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
46250    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
46251    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
46252    l_rec_acct_attrs.array_num_value(14)  := p_source_121;
46253    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
46254    l_rec_acct_attrs.array_char_value(15)  := p_source_80;
46255    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
46256    l_rec_acct_attrs.array_num_value(16)  := p_source_110;
46257    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
46258    l_rec_acct_attrs.array_num_value(17)  := p_source_111;
46259    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
46260    l_rec_acct_attrs.array_char_value(18)  := p_source_83;
46261    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
46262    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_112);
46263    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
46264    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
46265 
46266    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
46267    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
46268 
46269    ---------------------------------------------------------------------------------------------------------------
46270    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
46271    ---------------------------------------------------------------------------------------------------------------
46272    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
46273 
46274    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46278          (p_source_code         => 'LEDGER_CATEGORY_CODE'
46275    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46276 
46277    IF xla_accounting_cache_pkg.GetValueChar
46279          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
46280    AND l_bflow_method_code = 'PRIOR_ENTRY'
46281 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
46282    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
46283          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
46284        )
46285    THEN
46286          xla_ae_lines_pkg.BflowUpgEntry
46287            (p_business_method_code    => l_bflow_method_code
46288            ,p_business_class_code     => l_bflow_class_code
46289            ,p_balance_type            => l_balance_type_code);
46290    ELSE
46291       NULL;
46292 -- No business flow processing for business flow method of NONE.
46293    END IF;
46294 
46295    --
46296    -- call analytical criteria
46297    --
46298    
46299    --
46300    -- call description
46301    --
46302    -- No description or it is inherited.
46303    --
46304    -- call ADRs
46305    -- Bug 4922099
46306    --
46307    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46308         (NVL(l_actual_upg_option, 'N') = 'O') OR
46309         (NVL(l_enc_upg_option, 'N') = 'O')
46310       )
46311    THEN
46312    NULL;
46313    --
46314    --
46315    
46316   l_ccid := AcctDerRule_44(
46317            p_application_id           => p_application_id
46318          , p_ae_header_id             => l_ae_header_id 
46319 , p_source_52 => p_source_52
46320          , x_transaction_coa_id       => l_adr_transaction_coa_id
46321          , x_accounting_coa_id        => l_adr_accounting_coa_id
46322          , x_value_type_code          => l_adr_value_type_code
46323          , p_side                     => 'NA'
46324    );
46325 
46326    xla_ae_lines_pkg.set_ccid(
46327     p_code_combination_id          => l_ccid
46328   , p_value_type_code              => l_adr_value_type_code
46329   , p_transaction_coa_id           => l_adr_transaction_coa_id
46330   , p_accounting_coa_id            => l_adr_accounting_coa_id
46331   , p_adr_code                     => 'AP_TAX_ACCOUNT'
46332   , p_adr_type_code                => 'S'
46333   , p_component_type               => l_component_type
46334   , p_component_code               => l_component_code
46335   , p_component_type_code          => l_component_type_code
46336   , p_component_appl_id            => l_component_appl_id
46337   , p_amb_context_code             => l_amb_context_code
46338   , p_side                         => 'NA'
46339   );
46340 
46341 
46342    --
46343    --
46344    END IF;
46345    --
46346    -- Bug 4922099
46347    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
46348           (NVL(l_enc_upg_option, 'N') = 'O')
46349         ) AND
46350         (l_bflow_method_code = 'PRIOR_ENTRY')
46351       )
46352    THEN
46353       IF
46354       --
46355       1 = 2
46356       --
46357       THEN
46358       xla_accounting_err_pkg.build_message
46359                                     (p_appli_s_name            => 'XLA'
46360                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46361                                     ,p_token_1                 => 'LINE_NUMBER'
46362                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
46363                                     ,p_token_2                 => 'LINE_TYPE_NAME'
46364                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
46365                                                                              l_component_type
46366                                                                             ,l_component_code
46367                                                                             ,l_component_type_code
46368                                                                             ,l_component_appl_id
46369                                                                             ,l_amb_context_code
46370                                                                             ,l_entity_code
46371                                                                             ,l_event_class_code
46372                                                                            )
46373                                     ,p_token_3                 => 'OWNER'
46374                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
46375                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
46376                                                                           ,p_lookup_code    => l_component_type_code
46377                                                                          )
46378                                     ,p_token_4                 => 'PRODUCT_NAME'
46379                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
46380                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
46381                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
46382                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
46383                                     ,p_ae_header_id            =>  NULL
46384                                        );
46385 
46386         IF (C_LEVEL_ERROR>= g_log_level) THEN
46390                       ,p_module   => l_log_module);
46387                  trace
46388                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46389                       ,p_level    => C_LEVEL_ERROR
46391         END IF;
46392       END IF;
46393    END IF;
46394    --
46395    --
46396    ------------------------------------------------------------------------------------------------
46397    -- 4219869 Business Flow
46398    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
46399    -- Prior Entry.  Currently, the following code is always generated.
46400    ------------------------------------------------------------------------------------------------
46401    XLA_AE_LINES_PKG.ValidateCurrentLine;
46402 
46403    ------------------------------------------------------------------------------------
46404    -- 4219869 Business Flow
46405    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
46406    ------------------------------------------------------------------------------------
46407    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46408 
46409    ----------------------------------------------------------------------------------
46410    -- 4219869 Business Flow
46411    -- Update journal entry status -- Need to generate this within IF <condition>
46412    ----------------------------------------------------------------------------------
46413    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46414          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
46415          ,p_balance_type_code => l_balance_type_code
46416          );
46417 
46418    -------------------------------------------------------------------------------------------
46419    -- 4262811 - Generate the Accrual Reversal lines
46420    -------------------------------------------------------------------------------------------
46421    BEGIN
46422       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
46423                               (g_array_event(p_event_id).array_value_num('header_index'));
46424       IF l_acc_rev_flag IS NULL THEN
46425          l_acc_rev_flag := 'N';
46426       END IF;
46427    EXCEPTION
46428       WHEN OTHERS THEN
46429          l_acc_rev_flag := 'N';
46430    END;
46431    --
46432    IF (l_acc_rev_flag = 'Y') THEN
46433 
46434        -- 4645092  ------------------------------------------------------------------------------
46435        -- To allow MPA report to determine if it should generate report process
46436        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
46437        ------------------------------------------------------------------------------------------
46438 
46439        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
46440        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
46441    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
46442    -- call ADRs
46443    -- Bug 4922099
46444    --
46445    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46446         (NVL(l_actual_upg_option, 'N') = 'O') OR
46447         (NVL(l_enc_upg_option, 'N') = 'O')
46448       )
46449    THEN
46450    NULL;
46451    --
46452    --
46453    
46454   l_ccid := AcctDerRule_44(
46455            p_application_id           => p_application_id
46456          , p_ae_header_id             => l_ae_header_id 
46457 , p_source_52 => p_source_52
46458          , x_transaction_coa_id       => l_adr_transaction_coa_id
46459          , x_accounting_coa_id        => l_adr_accounting_coa_id
46460          , x_value_type_code          => l_adr_value_type_code
46461          , p_side                     => 'NA'
46462    );
46463 
46464    xla_ae_lines_pkg.set_ccid(
46465     p_code_combination_id          => l_ccid
46466   , p_value_type_code              => l_adr_value_type_code
46467   , p_transaction_coa_id           => l_adr_transaction_coa_id
46468   , p_accounting_coa_id            => l_adr_accounting_coa_id
46469   , p_adr_code                     => 'AP_TAX_ACCOUNT'
46470   , p_adr_type_code                => 'S'
46471   , p_component_type               => l_component_type
46472   , p_component_code               => l_component_code
46473   , p_component_type_code          => l_component_type_code
46474   , p_component_appl_id            => l_component_appl_id
46475   , p_amb_context_code             => l_amb_context_code
46476   , p_side                         => 'NA'
46477   );
46478 
46479 
46480    --
46481    --
46482    END IF;
46483 
46484        --
46485        -- Update the line information that should be overwritten
46486        --
46487        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
46488                                          p_header_num   => 1);
46489        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
46490 
46491        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
46492 
46493        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
46494           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
46495        END IF;
46496 
46497       --
46498       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
46499       --
46500       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
46504           -- 4262811a Switch Sign
46501           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
46502       ELSE
46503           ---------------------------------------------------------------------------------------------------
46505           ---------------------------------------------------------------------------------------------------
46506           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
46507           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46508                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46509           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46510                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46511           -- 5132302
46512           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
46513                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46514 
46515       END IF;
46516 
46517       -- 4955764
46518       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46519       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
46520 
46521 
46522       XLA_AE_LINES_PKG.ValidateCurrentLine;
46523       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46524 
46525       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46526                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
46527                ,p_balance_type_code => l_balance_type_code);
46528 
46529    END IF;
46530 
46531    -----------------------------------------------------------------------------------------
46532    -- 4262811 Multiperiod Accounting
46533    -----------------------------------------------------------------------------------------
46534      -- No MPA option is assigned.
46535 
46536 
46537 END IF;
46538 END IF;
46539 --
46540 
46541 --
46542 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46543    trace
46544       (p_msg      => 'END of AcctLineType_101'
46545       ,p_level    => C_LEVEL_PROCEDURE
46546       ,p_module   => l_log_module);
46547 END IF;
46548 --
46549 EXCEPTION
46550   WHEN xla_exceptions_pkg.application_exception THEN
46551       RAISE;
46552   WHEN OTHERS THEN
46553        xla_exceptions_pkg.raise_message
46554            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_101');
46555 END AcctLineType_101;
46556 --
46557 
46558 ---------------------------------------
46559 --
46560 -- PRIVATE FUNCTION
46561 --         AcctLineType_102
46562 --
46563 ---------------------------------------
46564 PROCEDURE AcctLineType_102 (
46565   p_application_id        IN NUMBER
46566  ,p_event_id              IN NUMBER
46567  ,p_calculate_acctd_flag  IN VARCHAR2
46568  ,p_calculate_g_l_flag    IN VARCHAR2
46569  ,p_actual_flag           IN OUT VARCHAR2
46570  ,p_balance_type_code     OUT VARCHAR2
46571  ,p_gain_or_loss_ref      OUT VARCHAR2
46572  
46573 --Payment Currency Code
46574  , p_source_13            IN VARCHAR2
46575 --Invoice Distribution Type
46576  , p_source_33            IN VARCHAR2
46577  , p_source_33_meaning    IN VARCHAR2
46578 --Recoverable Tax Account
46579  , p_source_52            IN NUMBER
46580 --Accounting Reversal Indicator
46581  , p_source_53            IN VARCHAR2
46582 --Distribution Link Type
46583  , p_source_55            IN VARCHAR2
46584 --Override Accounted Amount Indicator
46585  , p_source_80            IN VARCHAR2
46586  , p_source_80_meaning    IN VARCHAR2
46587 --Third Party Type
46588  , p_source_83            IN VARCHAR2
46589 --Invoice Distribution Tax Line Identifier
46590  , p_source_86            IN NUMBER
46591 --Invoice Distribution Tax Distribution Identifier from Tax
46592  , p_source_87            IN NUMBER
46593 --Invoice Distribution Summary Tax Line Identifier
46594  , p_source_88            IN NUMBER
46595 --Business Flow Accounts Payable Application Identifier
46596  , p_source_91            IN NUMBER
46597 --Business Flow Invoice Distribution Type
46598  , p_source_92            IN VARCHAR2
46599 --Business Flow Invoice Entity Code
46600  , p_source_93            IN VARCHAR2
46601 --Business Flow Invoice Distribution Identifier
46602  , p_source_94            IN NUMBER
46603 --Business Flow Invoice Identifier
46604  , p_source_95            IN NUMBER
46605 --When to Account for Payment Option
46606  , p_source_97            IN VARCHAR2
46607 --Payment Distribution Type
46608  , p_source_98            IN VARCHAR2
46609  , p_source_98_meaning    IN VARCHAR2
46610 --Payment Distribution Amount
46611  , p_source_99            IN NUMBER
46612 --Payment Distribution Identifier
46613  , p_source_104            IN NUMBER
46614 --Payment Supplier Identifier
46615  , p_source_110            IN NUMBER
46616 --Payment Supplier Site Identifier
46617  , p_source_111            IN NUMBER
46618 --Payment Distribution Reversed Identifier
46619  , p_source_112            IN NUMBER
46620 --Payment Maturity Date
46621  , p_source_114            IN DATE
46622 --Payment Distribution (Invoice Rate) Ledger Amount
46623  , p_source_116            IN NUMBER
46624 --Payment Type
46628  , p_source_123            IN VARCHAR2
46625  , p_source_122            IN VARCHAR2
46626  , p_source_122_meaning    IN VARCHAR2
46627 --Payment Processing Type
46629 --Invoice Distribution Amount of the Payment Distribution
46630  , p_source_124            IN NUMBER
46631 --Deferred Recoverable Tax Option
46632  , p_source_137            IN VARCHAR2
46633  , p_source_137_meaning    IN VARCHAR2
46634 --AWT Related Distribution Type Lookup code
46635  , p_source_138            IN VARCHAR2
46636 --Invoice Exchange Date
46637  , p_source_143            IN DATE
46638 --Invoice Exchange Rate
46639  , p_source_144            IN NUMBER
46640 --Invoice Exchange Rate Type
46641  , p_source_145            IN VARCHAR2
46642 )
46643 IS
46644 
46645 l_component_type              VARCHAR2(80);
46646 l_component_code              VARCHAR2(30);
46647 l_component_type_code         VARCHAR2(1);
46648 l_component_appl_id           INTEGER;
46649 l_amb_context_code            VARCHAR2(30);
46650 l_entity_code                 VARCHAR2(30);
46651 l_event_class_code            VARCHAR2(30);
46652 l_ae_header_id                NUMBER;
46653 l_event_type_code             VARCHAR2(30);
46654 l_line_definition_code        VARCHAR2(30);
46655 l_line_definition_owner_code  VARCHAR2(1);
46656 --
46657 -- adr variables
46658 l_segment                     VARCHAR2(30);
46659 l_ccid                        NUMBER;
46660 l_adr_transaction_coa_id      NUMBER;
46661 l_adr_accounting_coa_id       NUMBER;
46662 l_adr_flexfield_segment_code  VARCHAR2(30);
46663 l_adr_flex_value_set_id       NUMBER;
46664 l_adr_value_type_code         VARCHAR2(30);
46665 l_adr_value_combination_id    NUMBER;
46666 l_adr_value_segment_code      VARCHAR2(30);
46667 
46668 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
46669 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
46670 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
46671 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
46672 
46673 -- 4262811 Variables ------------------------------------------------------------------------------------------
46674 l_entered_amt_idx             NUMBER;
46675 l_accted_amt_idx              NUMBER;
46676 l_acc_rev_flag                VARCHAR2(1);
46677 l_accrual_line_num            NUMBER;
46678 l_tmp_amt                     NUMBER;
46679 l_acc_rev_natural_side_code   VARCHAR2(1);
46680 
46681 l_num_entries                 NUMBER;
46682 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
46683 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
46684 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
46685 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
46686 l_recog_line_1                NUMBER;
46687 l_recog_line_2                NUMBER;
46688 
46689 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
46690 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
46691 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
46692 
46693 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
46694 
46695 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
46696 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
46697 
46698 ---------------------------------------------------------------------------------------------------------------
46699 
46700 
46701 --
46702 -- bulk performance
46703 --
46704 l_balance_type_code           VARCHAR2(1);
46705 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
46706 l_log_module                  VARCHAR2(240);
46707 
46708 --
46709 -- Upgrade strategy
46710 --
46711 l_actual_upg_option           VARCHAR2(1);
46712 l_enc_upg_option           VARCHAR2(1);
46713 
46714 --
46715 BEGIN
46716 --
46717 IF g_log_enabled THEN
46718       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_102';
46719 END IF;
46720 --
46721 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46722 
46723       trace
46724          (p_msg      => 'BEGIN of AcctLineType_102'
46725          ,p_level    => C_LEVEL_PROCEDURE
46726          ,p_module   => l_log_module);
46727 
46728 END IF;
46729 --
46730 l_component_type             := 'AMB_JLT';
46731 l_component_code             := 'AP_DEF_RTAX_PMT';
46732 l_component_type_code        := 'S';
46733 l_component_appl_id          :=  200;
46734 l_amb_context_code           := 'DEFAULT';
46735 l_entity_code                := 'AP_PAYMENTS';
46736 l_event_class_code           := 'PAYMENTS';
46737 l_event_type_code            := 'PAYMENTS_ALL';
46738 l_line_definition_owner_code := 'S';
46739 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
46740 --
46741 l_balance_type_code          := 'A';
46742 l_segment                     := NULL;
46743 l_ccid                        := NULL;
46744 l_adr_transaction_coa_id      := NULL;
46745 l_adr_accounting_coa_id       := NULL;
46746 l_adr_flexfield_segment_code  := NULL;
46747 l_adr_flex_value_set_id       := NULL;
46748 l_adr_value_type_code         := NULL;
46749 l_adr_value_combination_id    := NULL;
46750 l_adr_value_segment_code      := NULL;
46751 
46752 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
46756 
46753 l_bflow_class_code           := 'AP_PP_DEF_TAX';    -- 4219869 Business Flow
46754 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
46755 l_budgetary_control_flag     := 'N';
46757 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
46758 l_bflow_applied_to_amt       := NULL; -- 5132302
46759 l_entered_amt_idx            := NULL;          -- 4262811
46760 l_accted_amt_idx             := NULL;          -- 4262811
46761 l_acc_rev_flag               := NULL;          -- 4262811
46762 l_accrual_line_num           := NULL;          -- 4262811
46763 l_tmp_amt                    := NULL;          -- 4262811
46764 --
46765  
46766 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
46767     l_balance_type_code <> 'B' THEN
46768 IF NVL(p_source_97,'
46769 ') <>  'CLEAR_CLEAR' AND 
46770 ((NVL(p_source_33,'
46771 ') =  'REC_TAX' AND 
46772 NVL(p_source_137,'
46773 ') =  'DEFERRED') OR 
46774 (NVL(p_source_33,'
46775 ') =  'AWT' AND 
46776 NVL(p_source_138,'
46777 ') =  'AWT_DEFERRED')
46778 ) AND (NVL(p_source_98,'
46779 ') =  'CASH' OR 
46780 NVL(p_source_98,'
46781 ') =  'AWT' OR 
46782 NVL(p_source_98,'
46783 ') =  'DISCOUNT') AND 
46784 p_source_114 IS NULL AND 
46785 NVL(p_source_122,'
46786 ') <>  'R' AND 
46787 NVL(p_source_123,'
46788 ') <>  'PAYMENTCARD'
46789  THEN 
46790 
46791    --
46792    XLA_AE_LINES_PKG.SetNewLine;
46793 
46794    p_balance_type_code          := l_balance_type_code;
46795    -- set the flag so later we will know whether the gain loss line needs to be created
46796    
46797    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
46798      p_actual_flag :='A';
46799    END IF;
46800 
46801    --
46802    -- bulk performance
46803    --
46804    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
46805                                       p_header_num   => 0); -- 4262811
46806    --
46807    -- set accounting line options
46808    --
46809    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
46810            p_natural_side_code          => 'D'
46811          , p_gain_or_loss_flag          => 'N'
46812          , p_gl_transfer_mode_code      => 'S'
46813          , p_acct_entry_type_code       => 'A'
46814          , p_switch_side_flag           => 'Y'
46815          , p_merge_duplicate_code       => 'A'
46816          );
46817    --
46818    l_acc_rev_natural_side_code := 'C';  -- 4262811
46819    -- 
46820    --
46821    -- set accounting line type info
46822    --
46823    xla_ae_lines_pkg.SetAcctLineType
46824       (p_component_type             => l_component_type
46825       ,p_event_type_code            => l_event_type_code
46826       ,p_line_definition_owner_code => l_line_definition_owner_code
46827       ,p_line_definition_code       => l_line_definition_code
46828       ,p_accounting_line_code       => l_component_code
46829       ,p_accounting_line_type_code  => l_component_type_code
46830       ,p_accounting_line_appl_id    => l_component_appl_id
46831       ,p_amb_context_code           => l_amb_context_code
46832       ,p_entity_code                => l_entity_code
46833       ,p_event_class_code           => l_event_class_code);
46834    --
46835    -- set accounting class
46836    --
46837    xla_ae_lines_pkg.SetAcctClass(
46838            p_accounting_class_code  => 'DEF_REC_TAX'
46839          , p_ae_header_id           => l_ae_header_id
46840          );
46841 
46842    --
46843    -- set rounding class
46844    --
46845    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
46846                       'DEF_REC_TAX';
46847 
46848    --
46849    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
46850    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
46851    --
46852    -- bulk performance
46853    --
46854    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
46855 
46856    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
46857       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
46858 
46859    -- 4955764
46860    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46861       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
46862 
46863    -- 4458381 Public Sector Enh
46864    
46865    --
46866    -- set accounting attributes for the line type
46867    --
46868    l_entered_amt_idx := 10;
46869    l_accted_amt_idx  := 15;
46870    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
46871    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
46872    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
46873    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
46874    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
46875    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
46876    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
46877    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
46878    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
46879    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
46880    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
46881    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
46885    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
46882    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
46883    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
46884    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
46886    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
46887    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
46888    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
46889    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
46890    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
46891    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
46892    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
46893    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
46894    l_rec_acct_attrs.array_date_value(12)  := p_source_143;
46895    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
46896    l_rec_acct_attrs.array_num_value(13)  := p_source_144;
46897    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
46898    l_rec_acct_attrs.array_char_value(14)  := p_source_145;
46899    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
46900    l_rec_acct_attrs.array_num_value(15)  := p_source_116;
46901    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
46902    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
46903    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
46904    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
46905    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
46906    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
46907    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
46908    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
46909    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
46910    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
46911    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
46912    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
46913    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
46914    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
46915    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
46916    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
46917    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
46918    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
46919 
46920    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
46921    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
46922 
46923    ---------------------------------------------------------------------------------------------------------------
46924    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
46925    ---------------------------------------------------------------------------------------------------------------
46926    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
46927 
46928    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46929    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46930 
46931    IF xla_accounting_cache_pkg.GetValueChar
46932          (p_source_code         => 'LEDGER_CATEGORY_CODE'
46933          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
46934    AND l_bflow_method_code = 'PRIOR_ENTRY'
46935 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
46936    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
46937          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
46938        )
46939    THEN
46940          xla_ae_lines_pkg.BflowUpgEntry
46941            (p_business_method_code    => l_bflow_method_code
46942            ,p_business_class_code     => l_bflow_class_code
46943            ,p_balance_type            => l_balance_type_code);
46944    ELSE
46945       NULL;
46946 -- No business flow processing for business flow method of NONE.
46947    END IF;
46948 
46949    --
46950    -- call analytical criteria
46951    --
46952    
46953    --
46954    -- call description
46955    --
46956    -- No description or it is inherited.
46957    --
46958    -- call ADRs
46959    -- Bug 4922099
46960    --
46961    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46962         (NVL(l_actual_upg_option, 'N') = 'O') OR
46963         (NVL(l_enc_upg_option, 'N') = 'O')
46964       )
46965    THEN
46966    NULL;
46967    --
46968    --
46969    
46970   l_ccid := AcctDerRule_44(
46971            p_application_id           => p_application_id
46972          , p_ae_header_id             => l_ae_header_id 
46973 , p_source_52 => p_source_52
46974          , x_transaction_coa_id       => l_adr_transaction_coa_id
46975          , x_accounting_coa_id        => l_adr_accounting_coa_id
46976          , x_value_type_code          => l_adr_value_type_code
46977          , p_side                     => 'NA'
46978    );
46979 
46980    xla_ae_lines_pkg.set_ccid(
46981     p_code_combination_id          => l_ccid
46982   , p_value_type_code              => l_adr_value_type_code
46983   , p_transaction_coa_id           => l_adr_transaction_coa_id
46984   , p_accounting_coa_id            => l_adr_accounting_coa_id
46985   , p_adr_code                     => 'AP_TAX_ACCOUNT'
46989   , p_component_type_code          => l_component_type_code
46986   , p_adr_type_code                => 'S'
46987   , p_component_type               => l_component_type
46988   , p_component_code               => l_component_code
46990   , p_component_appl_id            => l_component_appl_id
46991   , p_amb_context_code             => l_amb_context_code
46992   , p_side                         => 'NA'
46993   );
46994 
46995 
46996    --
46997    --
46998    END IF;
46999    --
47000    -- Bug 4922099
47001    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
47002           (NVL(l_enc_upg_option, 'N') = 'O')
47003         ) AND
47004         (l_bflow_method_code = 'PRIOR_ENTRY')
47005       )
47006    THEN
47007       IF
47008       --
47009       1 = 2
47010       --
47011       THEN
47012       xla_accounting_err_pkg.build_message
47013                                     (p_appli_s_name            => 'XLA'
47014                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47015                                     ,p_token_1                 => 'LINE_NUMBER'
47016                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
47017                                     ,p_token_2                 => 'LINE_TYPE_NAME'
47018                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
47019                                                                              l_component_type
47020                                                                             ,l_component_code
47021                                                                             ,l_component_type_code
47022                                                                             ,l_component_appl_id
47023                                                                             ,l_amb_context_code
47024                                                                             ,l_entity_code
47025                                                                             ,l_event_class_code
47026                                                                            )
47027                                     ,p_token_3                 => 'OWNER'
47028                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
47029                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
47030                                                                           ,p_lookup_code    => l_component_type_code
47031                                                                          )
47032                                     ,p_token_4                 => 'PRODUCT_NAME'
47033                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
47034                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
47035                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
47036                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
47037                                     ,p_ae_header_id            =>  NULL
47038                                        );
47039 
47040         IF (C_LEVEL_ERROR>= g_log_level) THEN
47041                  trace
47042                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47043                       ,p_level    => C_LEVEL_ERROR
47044                       ,p_module   => l_log_module);
47045         END IF;
47046       END IF;
47047    END IF;
47048    --
47049    --
47050    ------------------------------------------------------------------------------------------------
47051    -- 4219869 Business Flow
47052    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
47053    -- Prior Entry.  Currently, the following code is always generated.
47054    ------------------------------------------------------------------------------------------------
47055    XLA_AE_LINES_PKG.ValidateCurrentLine;
47056 
47057    ------------------------------------------------------------------------------------
47058    -- 4219869 Business Flow
47059    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
47060    ------------------------------------------------------------------------------------
47061    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47062 
47063    ----------------------------------------------------------------------------------
47064    -- 4219869 Business Flow
47065    -- Update journal entry status -- Need to generate this within IF <condition>
47066    ----------------------------------------------------------------------------------
47067    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47068          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
47069          ,p_balance_type_code => l_balance_type_code
47070          );
47071 
47072    -------------------------------------------------------------------------------------------
47073    -- 4262811 - Generate the Accrual Reversal lines
47074    -------------------------------------------------------------------------------------------
47075    BEGIN
47076       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
47077                               (g_array_event(p_event_id).array_value_num('header_index'));
47078       IF l_acc_rev_flag IS NULL THEN
47079          l_acc_rev_flag := 'N';
47080       END IF;
47081    EXCEPTION
47082       WHEN OTHERS THEN
47083          l_acc_rev_flag := 'N';
47084    END;
47085    --
47089        -- To allow MPA report to determine if it should generate report process
47086    IF (l_acc_rev_flag = 'Y') THEN
47087 
47088        -- 4645092  ------------------------------------------------------------------------------
47090        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
47091        ------------------------------------------------------------------------------------------
47092 
47093        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
47094        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
47095    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
47096    -- call ADRs
47097    -- Bug 4922099
47098    --
47099    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47100         (NVL(l_actual_upg_option, 'N') = 'O') OR
47101         (NVL(l_enc_upg_option, 'N') = 'O')
47102       )
47103    THEN
47104    NULL;
47105    --
47106    --
47107    
47108   l_ccid := AcctDerRule_44(
47109            p_application_id           => p_application_id
47110          , p_ae_header_id             => l_ae_header_id 
47111 , p_source_52 => p_source_52
47112          , x_transaction_coa_id       => l_adr_transaction_coa_id
47113          , x_accounting_coa_id        => l_adr_accounting_coa_id
47114          , x_value_type_code          => l_adr_value_type_code
47115          , p_side                     => 'NA'
47116    );
47117 
47118    xla_ae_lines_pkg.set_ccid(
47119     p_code_combination_id          => l_ccid
47120   , p_value_type_code              => l_adr_value_type_code
47121   , p_transaction_coa_id           => l_adr_transaction_coa_id
47122   , p_accounting_coa_id            => l_adr_accounting_coa_id
47123   , p_adr_code                     => 'AP_TAX_ACCOUNT'
47124   , p_adr_type_code                => 'S'
47125   , p_component_type               => l_component_type
47126   , p_component_code               => l_component_code
47127   , p_component_type_code          => l_component_type_code
47128   , p_component_appl_id            => l_component_appl_id
47129   , p_amb_context_code             => l_amb_context_code
47130   , p_side                         => 'NA'
47131   );
47132 
47133 
47134    --
47135    --
47136    END IF;
47137 
47138        --
47139        -- Update the line information that should be overwritten
47140        --
47141        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
47142                                          p_header_num   => 1);
47143        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
47144 
47145        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
47146 
47147        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
47148           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
47149        END IF;
47150 
47151       --
47152       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
47153       --
47154       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47155           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
47156       ELSE
47157           ---------------------------------------------------------------------------------------------------
47158           -- 4262811a Switch Sign
47159           ---------------------------------------------------------------------------------------------------
47160           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
47161           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47162                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47163           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47164                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47165           -- 5132302
47166           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47167                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47168 
47169       END IF;
47170 
47171       -- 4955764
47172       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47173       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47174 
47175 
47176       XLA_AE_LINES_PKG.ValidateCurrentLine;
47177       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47178 
47179       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47180                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47181                ,p_balance_type_code => l_balance_type_code);
47182 
47183    END IF;
47184 
47185    -----------------------------------------------------------------------------------------
47186    -- 4262811 Multiperiod Accounting
47187    -----------------------------------------------------------------------------------------
47188      -- No MPA option is assigned.
47189 
47190 
47191 END IF;
47192 END IF;
47193 --
47194 
47195 --
47196 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47197    trace
47198       (p_msg      => 'END of AcctLineType_102'
47202 --
47199       ,p_level    => C_LEVEL_PROCEDURE
47200       ,p_module   => l_log_module);
47201 END IF;
47203 EXCEPTION
47204   WHEN xla_exceptions_pkg.application_exception THEN
47205       RAISE;
47206   WHEN OTHERS THEN
47207        xla_exceptions_pkg.raise_message
47208            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_102');
47209 END AcctLineType_102;
47210 --
47211 
47212 ---------------------------------------
47213 --
47214 -- PRIVATE FUNCTION
47215 --         AcctLineType_103
47216 --
47217 ---------------------------------------
47218 PROCEDURE AcctLineType_103 (
47219   p_application_id        IN NUMBER
47220  ,p_event_id              IN NUMBER
47221  ,p_calculate_acctd_flag  IN VARCHAR2
47222  ,p_calculate_g_l_flag    IN VARCHAR2
47223  ,p_actual_flag           IN OUT VARCHAR2
47224  ,p_balance_type_code     OUT VARCHAR2
47225  ,p_gain_or_loss_ref      OUT VARCHAR2
47226  
47227 --Recoverable Tax Account
47228  , p_source_52            IN NUMBER
47229 --Accounting Reversal Indicator
47230  , p_source_53            IN VARCHAR2
47231 --Distribution Link Type
47232  , p_source_55            IN VARCHAR2
47233 --Invoice Identifier
47234  , p_source_58            IN NUMBER
47235 --Payables Encumbrance Upgrade Credit Account
47236  , p_source_65            IN NUMBER
47237 --Payables Encumbrance Upgrade Credit Amount
47238  , p_source_66            IN NUMBER
47239 --Invoice Currency Code
47240  , p_source_67            IN VARCHAR2
47241 --Payables Encumbrance Upgrade Credit Base Amount
47242  , p_source_68            IN NUMBER
47243 --Payables Encumbrance Upgrade Debit Account
47244  , p_source_69            IN NUMBER
47245 --Payables Encumbrance Upgrade Debit Amount
47246  , p_source_70            IN NUMBER
47247 --Payables Encumbrance Upgrade Debit Base Amount
47248  , p_source_71            IN NUMBER
47249 --Payables Encumbrance Upgrade Option
47250  , p_source_72            IN VARCHAR2
47251 --Deferred Accounting End Date
47252  , p_source_77            IN DATE
47253 --Deferred Accounting Option
47254  , p_source_78            IN VARCHAR2
47255 --Deferred Accounting Start Date
47256  , p_source_79            IN DATE
47257 --Override Accounted Amount Indicator
47258  , p_source_80            IN VARCHAR2
47259  , p_source_80_meaning    IN VARCHAR2
47260 --Invoice Supplier Identifier
47261  , p_source_81            IN NUMBER
47262 --Invoice Supplier Site Identifier
47263  , p_source_82            IN NUMBER
47264 --Third Party Type
47265  , p_source_83            IN VARCHAR2
47266 --Invoice Distribution Tax Line Identifier
47267  , p_source_86            IN NUMBER
47268 --Invoice Distribution Tax Distribution Identifier from Tax
47269  , p_source_87            IN NUMBER
47270 --Invoice Distribution Summary Tax Line Identifier
47271  , p_source_88            IN NUMBER
47272 --Payables Upgrade Credit Encumbrance Type Identifier
47273  , p_source_89            IN NUMBER
47274 --Payables Upgrade Debit Encumbrance Type Identifier
47275  , p_source_90            IN NUMBER
47276 --Business Flow Accounts Payable Application Identifier
47277  , p_source_91            IN NUMBER
47278 --Prepayment Application Distribution Identifier
47279  , p_source_127            IN NUMBER
47280 --Upgrade Encumbrance Credit Account Class
47281  , p_source_132            IN VARCHAR2
47282 --Upgrade Encumbrance Debit Account Class
47283  , p_source_133            IN VARCHAR2
47284 --Prepayment Distribution Amount
47285  , p_source_134            IN NUMBER
47286 --Identifier of the Prepayment Application Reversed
47287  , p_source_136            IN NUMBER
47288 --Deferred Recoverable Tax Option
47289  , p_source_137            IN VARCHAR2
47290  , p_source_137_meaning    IN VARCHAR2
47291 --Prepayment Distribution (Invoice Rate) Ledger Amount
47292  , p_source_141            IN NUMBER
47293 --Invoice Exchange Date
47294  , p_source_143            IN DATE
47295 --Invoice Exchange Rate
47296  , p_source_144            IN NUMBER
47297 --Invoice Exchange Rate Type
47298  , p_source_145            IN VARCHAR2
47299 --Business Flow Prepayment Invoice Distribution Type
47300  , p_source_146            IN VARCHAR2
47301 --Business Flow Prepayment Invoice Entity Code
47302  , p_source_147            IN VARCHAR2
47303 --Business Flow Prepayment Invoice Distribution Identifier
47304  , p_source_148            IN NUMBER
47305 --Business Flow Prepayment Invoice Identifier
47306  , p_source_149            IN NUMBER
47307 )
47308 IS
47309 
47310 l_component_type              VARCHAR2(80);
47311 l_component_code              VARCHAR2(30);
47312 l_component_type_code         VARCHAR2(1);
47313 l_component_appl_id           INTEGER;
47314 l_amb_context_code            VARCHAR2(30);
47315 l_entity_code                 VARCHAR2(30);
47316 l_event_class_code            VARCHAR2(30);
47317 l_ae_header_id                NUMBER;
47318 l_event_type_code             VARCHAR2(30);
47319 l_line_definition_code        VARCHAR2(30);
47320 l_line_definition_owner_code  VARCHAR2(1);
47321 --
47322 -- adr variables
47323 l_segment                     VARCHAR2(30);
47324 l_ccid                        NUMBER;
47325 l_adr_transaction_coa_id      NUMBER;
47326 l_adr_accounting_coa_id       NUMBER;
47327 l_adr_flexfield_segment_code  VARCHAR2(30);
47328 l_adr_flex_value_set_id       NUMBER;
47329 l_adr_value_type_code         VARCHAR2(30);
47330 l_adr_value_combination_id    NUMBER;
47334 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
47331 l_adr_value_segment_code      VARCHAR2(30);
47332 
47333 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
47335 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
47336 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
47337 
47338 -- 4262811 Variables ------------------------------------------------------------------------------------------
47339 l_entered_amt_idx             NUMBER;
47340 l_accted_amt_idx              NUMBER;
47341 l_acc_rev_flag                VARCHAR2(1);
47342 l_accrual_line_num            NUMBER;
47343 l_tmp_amt                     NUMBER;
47344 l_acc_rev_natural_side_code   VARCHAR2(1);
47345 
47346 l_num_entries                 NUMBER;
47347 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
47348 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
47349 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
47350 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
47351 l_recog_line_1                NUMBER;
47352 l_recog_line_2                NUMBER;
47353 
47354 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
47355 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
47356 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
47357 
47358 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
47359 
47360 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
47361 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
47362 
47363 ---------------------------------------------------------------------------------------------------------------
47364 
47365 
47366 --
47367 -- bulk performance
47368 --
47369 l_balance_type_code           VARCHAR2(1);
47370 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
47371 l_log_module                  VARCHAR2(240);
47372 
47373 --
47374 -- Upgrade strategy
47375 --
47376 l_actual_upg_option           VARCHAR2(1);
47377 l_enc_upg_option           VARCHAR2(1);
47378 
47379 --
47380 BEGIN
47381 --
47382 IF g_log_enabled THEN
47383       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_103';
47384 END IF;
47385 --
47386 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47387 
47388       trace
47389          (p_msg      => 'BEGIN of AcctLineType_103'
47390          ,p_level    => C_LEVEL_PROCEDURE
47391          ,p_module   => l_log_module);
47392 
47393 END IF;
47394 --
47395 l_component_type             := 'AMB_JLT';
47396 l_component_code             := 'AP_DEF_RTAX_PREPAY';
47397 l_component_type_code        := 'S';
47398 l_component_appl_id          :=  200;
47399 l_amb_context_code           := 'DEFAULT';
47400 l_entity_code                := 'AP_INVOICES';
47401 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
47402 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
47403 l_line_definition_owner_code := 'S';
47404 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
47405 --
47406 l_balance_type_code          := 'A';
47407 l_segment                     := NULL;
47408 l_ccid                        := NULL;
47409 l_adr_transaction_coa_id      := NULL;
47410 l_adr_accounting_coa_id       := NULL;
47411 l_adr_flexfield_segment_code  := NULL;
47412 l_adr_flex_value_set_id       := NULL;
47413 l_adr_value_type_code         := NULL;
47414 l_adr_value_combination_id    := NULL;
47415 l_adr_value_segment_code      := NULL;
47416 
47417 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
47418 l_bflow_class_code           := '';    -- 4219869 Business Flow
47419 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
47420 l_budgetary_control_flag     := 'N';
47421 
47422 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
47423 l_bflow_applied_to_amt       := NULL; -- 5132302
47424 l_entered_amt_idx            := NULL;          -- 4262811
47425 l_accted_amt_idx             := NULL;          -- 4262811
47426 l_acc_rev_flag               := NULL;          -- 4262811
47427 l_accrual_line_num           := NULL;          -- 4262811
47428 l_tmp_amt                    := NULL;          -- 4262811
47429 --
47430  
47431 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
47432     l_balance_type_code <> 'B' THEN
47433 IF NVL(p_source_137,'
47434 ') =  'DEFERRED'
47435  THEN 
47436 
47437    --
47438    XLA_AE_LINES_PKG.SetNewLine;
47439 
47440    p_balance_type_code          := l_balance_type_code;
47441    -- set the flag so later we will know whether the gain loss line needs to be created
47442    
47443    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
47444      p_actual_flag :='A';
47445    END IF;
47446 
47447    --
47448    -- bulk performance
47449    --
47450    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
47451                                       p_header_num   => 0); -- 4262811
47452    --
47453    -- set accounting line options
47454    --
47455    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
47456            p_natural_side_code          => 'C'
47457          , p_gain_or_loss_flag          => 'N'
47458          , p_gl_transfer_mode_code      => 'S'
47462          );
47459          , p_acct_entry_type_code       => 'A'
47460          , p_switch_side_flag           => 'Y'
47461          , p_merge_duplicate_code       => 'A'
47463    --
47464    l_acc_rev_natural_side_code := 'D';  -- 4262811
47465    -- 
47466    --
47467    -- set accounting line type info
47468    --
47469    xla_ae_lines_pkg.SetAcctLineType
47470       (p_component_type             => l_component_type
47471       ,p_event_type_code            => l_event_type_code
47472       ,p_line_definition_owner_code => l_line_definition_owner_code
47473       ,p_line_definition_code       => l_line_definition_code
47474       ,p_accounting_line_code       => l_component_code
47475       ,p_accounting_line_type_code  => l_component_type_code
47476       ,p_accounting_line_appl_id    => l_component_appl_id
47477       ,p_amb_context_code           => l_amb_context_code
47478       ,p_entity_code                => l_entity_code
47479       ,p_event_class_code           => l_event_class_code);
47480    --
47481    -- set accounting class
47482    --
47483    xla_ae_lines_pkg.SetAcctClass(
47484            p_accounting_class_code  => 'DEF_REC_TAX'
47485          , p_ae_header_id           => l_ae_header_id
47486          );
47487 
47488    --
47489    -- set rounding class
47490    --
47491    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
47492                       'DEF_REC_TAX';
47493 
47494    --
47495    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
47496    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
47497    --
47498    -- bulk performance
47499    --
47500    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
47501 
47502    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
47503       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
47504 
47505    -- 4955764
47506    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47507       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
47508 
47509    -- 4458381 Public Sector Enh
47510    
47511    --
47512    -- set accounting attributes for the line type
47513    --
47514    l_entered_amt_idx := 25;
47515    l_accted_amt_idx  := 30;
47516    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
47517    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
47518    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
47519    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
47520    l_rec_acct_attrs.array_num_value(2)  := 
47521 xla_ae_sources_pkg.GetSystemSourceNum(
47522    p_source_code           => 'XLA_EVENT_APPL_ID'
47523  , p_source_type_code      => 'Y'
47524  , p_source_application_id =>  602
47525 );
47526    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
47527    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
47528    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
47529    l_rec_acct_attrs.array_char_value(4)  := 
47530 xla_ae_sources_pkg.GetSystemSourceChar(
47531    p_source_code           => 'XLA_ENTITY_CODE'
47532  , p_source_type_code      => 'Y'
47533  , p_source_application_id =>  602
47534 );
47535    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
47536    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_127);
47537    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
47538    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
47539    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
47540    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
47541    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
47542    l_rec_acct_attrs.array_char_value(8)  := p_source_146;
47543    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
47544    l_rec_acct_attrs.array_char_value(9)  := p_source_147;
47545    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
47546    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_148);
47547    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
47548    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_149);
47549    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
47550    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_127);
47551    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
47552    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
47553    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
47554    l_rec_acct_attrs.array_char_value(14)  := p_source_132;
47555    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
47556    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
47557    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
47558    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
47559    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
47560    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
47561    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
47562    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
47563    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
47564    l_rec_acct_attrs.array_char_value(19)  := p_source_133;
47565    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
47566    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
47570    l_rec_acct_attrs.array_char_value(22)  := p_source_67;
47567    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
47568    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
47569    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
47571    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
47572    l_rec_acct_attrs.array_num_value(23)  := p_source_71;
47573    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
47574    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
47575    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
47576    l_rec_acct_attrs.array_num_value(25)  := p_source_134;
47577    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
47578    l_rec_acct_attrs.array_char_value(26)  := p_source_67;
47579    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
47580    l_rec_acct_attrs.array_date_value(27)  := p_source_143;
47581    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
47582    l_rec_acct_attrs.array_num_value(28)  := p_source_144;
47583    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
47584    l_rec_acct_attrs.array_char_value(29)  := p_source_145;
47585    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
47586    l_rec_acct_attrs.array_num_value(30)  := p_source_141;
47587    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
47588    l_rec_acct_attrs.array_date_value(31)  := p_source_77;
47589    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
47590    l_rec_acct_attrs.array_char_value(32)  := p_source_78;
47591    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
47592    l_rec_acct_attrs.array_date_value(33)  := p_source_79;
47593    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
47594    l_rec_acct_attrs.array_char_value(34)  := p_source_80;
47595    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
47596    l_rec_acct_attrs.array_num_value(35)  := p_source_81;
47597    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
47598    l_rec_acct_attrs.array_num_value(36)  := p_source_82;
47599    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
47600    l_rec_acct_attrs.array_char_value(37)  := p_source_83;
47601    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
47602    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_136);
47603    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
47604    l_rec_acct_attrs.array_char_value(39)  := p_source_55;
47605    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
47606    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
47607    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
47608    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
47609    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
47610    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
47611    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
47612    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
47613    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
47614    l_rec_acct_attrs.array_num_value(44)  := p_source_90;
47615 
47616    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
47617    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
47618 
47619    ---------------------------------------------------------------------------------------------------------------
47620    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
47621    ---------------------------------------------------------------------------------------------------------------
47622    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
47623 
47624    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47625    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47626 
47627    IF xla_accounting_cache_pkg.GetValueChar
47628          (p_source_code         => 'LEDGER_CATEGORY_CODE'
47629          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
47630    AND l_bflow_method_code = 'PRIOR_ENTRY'
47631 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
47632    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
47633          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
47634        )
47635    THEN
47636          xla_ae_lines_pkg.BflowUpgEntry
47637            (p_business_method_code    => l_bflow_method_code
47638            ,p_business_class_code     => l_bflow_class_code
47639            ,p_balance_type            => l_balance_type_code);
47640    ELSE
47641       NULL;
47642 -- No business flow processing for business flow method of NONE.
47643    END IF;
47644 
47645    --
47646    -- call analytical criteria
47647    --
47648    
47649    --
47650    -- call description
47651    --
47652    -- No description or it is inherited.
47653    --
47654    -- call ADRs
47655    -- Bug 4922099
47656    --
47657    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47658         (NVL(l_actual_upg_option, 'N') = 'O') OR
47659         (NVL(l_enc_upg_option, 'N') = 'O')
47660       )
47661    THEN
47662    NULL;
47663    --
47664    --
47665    
47666   l_ccid := AcctDerRule_44(
47667            p_application_id           => p_application_id
47671          , x_accounting_coa_id        => l_adr_accounting_coa_id
47668          , p_ae_header_id             => l_ae_header_id 
47669 , p_source_52 => p_source_52
47670          , x_transaction_coa_id       => l_adr_transaction_coa_id
47672          , x_value_type_code          => l_adr_value_type_code
47673          , p_side                     => 'NA'
47674    );
47675 
47676    xla_ae_lines_pkg.set_ccid(
47677     p_code_combination_id          => l_ccid
47678   , p_value_type_code              => l_adr_value_type_code
47679   , p_transaction_coa_id           => l_adr_transaction_coa_id
47680   , p_accounting_coa_id            => l_adr_accounting_coa_id
47681   , p_adr_code                     => 'AP_TAX_ACCOUNT'
47682   , p_adr_type_code                => 'S'
47683   , p_component_type               => l_component_type
47684   , p_component_code               => l_component_code
47685   , p_component_type_code          => l_component_type_code
47686   , p_component_appl_id            => l_component_appl_id
47687   , p_amb_context_code             => l_amb_context_code
47688   , p_side                         => 'NA'
47689   );
47690 
47691 
47692    --
47693    --
47694    END IF;
47695    --
47696    -- Bug 4922099
47697    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
47698           (NVL(l_enc_upg_option, 'N') = 'O')
47699         ) AND
47700         (l_bflow_method_code = 'PRIOR_ENTRY')
47701       )
47702    THEN
47703       IF
47704       --
47705       1 = 2
47706       --
47707       THEN
47708       xla_accounting_err_pkg.build_message
47709                                     (p_appli_s_name            => 'XLA'
47710                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47711                                     ,p_token_1                 => 'LINE_NUMBER'
47712                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
47713                                     ,p_token_2                 => 'LINE_TYPE_NAME'
47714                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
47715                                                                              l_component_type
47716                                                                             ,l_component_code
47717                                                                             ,l_component_type_code
47718                                                                             ,l_component_appl_id
47719                                                                             ,l_amb_context_code
47720                                                                             ,l_entity_code
47721                                                                             ,l_event_class_code
47722                                                                            )
47723                                     ,p_token_3                 => 'OWNER'
47724                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
47725                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
47726                                                                           ,p_lookup_code    => l_component_type_code
47727                                                                          )
47728                                     ,p_token_4                 => 'PRODUCT_NAME'
47729                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
47730                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
47731                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
47732                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
47733                                     ,p_ae_header_id            =>  NULL
47734                                        );
47735 
47736         IF (C_LEVEL_ERROR>= g_log_level) THEN
47737                  trace
47738                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47739                       ,p_level    => C_LEVEL_ERROR
47740                       ,p_module   => l_log_module);
47741         END IF;
47742       END IF;
47743    END IF;
47744    --
47745    --
47746    ------------------------------------------------------------------------------------------------
47747    -- 4219869 Business Flow
47748    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
47749    -- Prior Entry.  Currently, the following code is always generated.
47750    ------------------------------------------------------------------------------------------------
47751    XLA_AE_LINES_PKG.ValidateCurrentLine;
47752 
47753    ------------------------------------------------------------------------------------
47754    -- 4219869 Business Flow
47755    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
47756    ------------------------------------------------------------------------------------
47757    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47758 
47759    ----------------------------------------------------------------------------------
47760    -- 4219869 Business Flow
47761    -- Update journal entry status -- Need to generate this within IF <condition>
47762    ----------------------------------------------------------------------------------
47763    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47764          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
47768    -------------------------------------------------------------------------------------------
47765          ,p_balance_type_code => l_balance_type_code
47766          );
47767 
47769    -- 4262811 - Generate the Accrual Reversal lines
47770    -------------------------------------------------------------------------------------------
47771    BEGIN
47772       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
47773                               (g_array_event(p_event_id).array_value_num('header_index'));
47774       IF l_acc_rev_flag IS NULL THEN
47775          l_acc_rev_flag := 'N';
47776       END IF;
47777    EXCEPTION
47778       WHEN OTHERS THEN
47779          l_acc_rev_flag := 'N';
47780    END;
47781    --
47782    IF (l_acc_rev_flag = 'Y') THEN
47783 
47784        -- 4645092  ------------------------------------------------------------------------------
47785        -- To allow MPA report to determine if it should generate report process
47786        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
47787        ------------------------------------------------------------------------------------------
47788 
47789        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
47790        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
47791    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
47792    -- call ADRs
47793    -- Bug 4922099
47794    --
47795    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47796         (NVL(l_actual_upg_option, 'N') = 'O') OR
47797         (NVL(l_enc_upg_option, 'N') = 'O')
47798       )
47799    THEN
47800    NULL;
47801    --
47802    --
47803    
47804   l_ccid := AcctDerRule_44(
47805            p_application_id           => p_application_id
47806          , p_ae_header_id             => l_ae_header_id 
47807 , p_source_52 => p_source_52
47808          , x_transaction_coa_id       => l_adr_transaction_coa_id
47809          , x_accounting_coa_id        => l_adr_accounting_coa_id
47810          , x_value_type_code          => l_adr_value_type_code
47811          , p_side                     => 'NA'
47812    );
47813 
47814    xla_ae_lines_pkg.set_ccid(
47815     p_code_combination_id          => l_ccid
47816   , p_value_type_code              => l_adr_value_type_code
47817   , p_transaction_coa_id           => l_adr_transaction_coa_id
47818   , p_accounting_coa_id            => l_adr_accounting_coa_id
47819   , p_adr_code                     => 'AP_TAX_ACCOUNT'
47820   , p_adr_type_code                => 'S'
47821   , p_component_type               => l_component_type
47822   , p_component_code               => l_component_code
47823   , p_component_type_code          => l_component_type_code
47824   , p_component_appl_id            => l_component_appl_id
47825   , p_amb_context_code             => l_amb_context_code
47826   , p_side                         => 'NA'
47827   );
47828 
47829 
47830    --
47831    --
47832    END IF;
47833 
47834        --
47835        -- Update the line information that should be overwritten
47836        --
47837        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
47838                                          p_header_num   => 1);
47839        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
47840 
47841        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
47842 
47843        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
47844           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
47845        END IF;
47846 
47847       --
47848       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
47849       --
47850       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47851           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
47852       ELSE
47853           ---------------------------------------------------------------------------------------------------
47854           -- 4262811a Switch Sign
47855           ---------------------------------------------------------------------------------------------------
47856           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
47857           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47858                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47859           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47860                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47861           -- 5132302
47862           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47863                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47864 
47865       END IF;
47866 
47867       -- 4955764
47868       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47869       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47870 
47871 
47872       XLA_AE_LINES_PKG.ValidateCurrentLine;
47873       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47874 
47878 
47875       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47876                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47877                ,p_balance_type_code => l_balance_type_code);
47879    END IF;
47880 
47881    -----------------------------------------------------------------------------------------
47882    -- 4262811 Multiperiod Accounting
47883    -----------------------------------------------------------------------------------------
47884      -- No MPA option is assigned.
47885 
47886 
47887 END IF;
47888 END IF;
47889 --
47890 
47891 --
47892 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47893    trace
47894       (p_msg      => 'END of AcctLineType_103'
47895       ,p_level    => C_LEVEL_PROCEDURE
47896       ,p_module   => l_log_module);
47897 END IF;
47898 --
47899 EXCEPTION
47900   WHEN xla_exceptions_pkg.application_exception THEN
47901       RAISE;
47902   WHEN OTHERS THEN
47903        xla_exceptions_pkg.raise_message
47904            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_103');
47905 END AcctLineType_103;
47906 --
47907 
47908 ---------------------------------------
47909 --
47910 -- PRIVATE FUNCTION
47911 --         AcctLineType_104
47912 --
47913 ---------------------------------------
47914 PROCEDURE AcctLineType_104 (
47915   p_application_id        IN NUMBER
47916  ,p_event_id              IN NUMBER
47917  ,p_calculate_acctd_flag  IN VARCHAR2
47918  ,p_calculate_g_l_flag    IN VARCHAR2
47919  ,p_actual_flag           IN OUT VARCHAR2
47920  ,p_balance_type_code     OUT VARCHAR2
47921  ,p_gain_or_loss_ref      OUT VARCHAR2
47922  
47923 --Automatic Offsets Value
47924  , p_source_15            IN VARCHAR2
47925  , p_source_15_meaning    IN VARCHAR2
47926 --System Discount Account
47927  , p_source_18            IN NUMBER
47928 --Discount Distribution Method
47929  , p_source_19            IN VARCHAR2
47930  , p_source_19_meaning    IN VARCHAR2
47931 --Invoice Distribution Account
47932  , p_source_30            IN NUMBER
47933 --Invoice Distribution Type
47934  , p_source_33            IN VARCHAR2
47935  , p_source_33_meaning    IN VARCHAR2
47936 --Discount Account
47937  , p_source_44            IN NUMBER
47938 --Purchase Order Charge Account
47939  , p_source_45            IN NUMBER
47940 --Purchase Order Variance Account
47941  , p_source_46            IN NUMBER
47942 --Accounting Reversal Indicator
47943  , p_source_53            IN VARCHAR2
47944 --Distribution Link Type
47945  , p_source_55            IN VARCHAR2
47946 --Invoice Currency Code
47947  , p_source_67            IN VARCHAR2
47948 --Override Accounted Amount Indicator
47949  , p_source_80            IN VARCHAR2
47950  , p_source_80_meaning    IN VARCHAR2
47951 --Third Party Type
47952  , p_source_83            IN VARCHAR2
47953 --Invoice Distribution Tax Line Identifier
47954  , p_source_86            IN NUMBER
47955 --Invoice Distribution Summary Tax Line Identifier
47956  , p_source_88            IN NUMBER
47957 --Business Flow Accounts Payable Application Identifier
47958  , p_source_91            IN NUMBER
47959 --When to Account for Payment Option
47960  , p_source_97            IN VARCHAR2
47961 --Payment Distribution Type
47962  , p_source_98            IN VARCHAR2
47963  , p_source_98_meaning    IN VARCHAR2
47964 --Payment Distribution Amount
47965  , p_source_99            IN NUMBER
47966 --Business Flow Payment Distribution Type
47967  , p_source_100            IN VARCHAR2
47968 --Business Flow Payment Entity Code
47969  , p_source_101            IN VARCHAR2
47970 --Business Flow Payment Distribution Identifier
47971  , p_source_102            IN NUMBER
47972 --Business Flow Payment Identifier
47973  , p_source_103            IN NUMBER
47974 --Payment Distribution Identifier
47975  , p_source_104            IN NUMBER
47976 --Payment Distribution (Cleared Rate) Ledger Amount
47977  , p_source_109            IN NUMBER
47978 --Payment Supplier Identifier
47979  , p_source_110            IN NUMBER
47980 --Payment Supplier Site Identifier
47981  , p_source_111            IN NUMBER
47982 --Payment Distribution Reversed Identifier
47983  , p_source_112            IN NUMBER
47984 --Invoice Exchange Date
47985  , p_source_143            IN DATE
47986 --Invoice Exchange Rate
47987  , p_source_144            IN NUMBER
47988 --Invoice Exchange Rate Type
47989  , p_source_145            IN VARCHAR2
47990 )
47991 IS
47992 
47993 l_component_type              VARCHAR2(80);
47994 l_component_code              VARCHAR2(30);
47995 l_component_type_code         VARCHAR2(1);
47996 l_component_appl_id           INTEGER;
47997 l_amb_context_code            VARCHAR2(30);
47998 l_entity_code                 VARCHAR2(30);
47999 l_event_class_code            VARCHAR2(30);
48000 l_ae_header_id                NUMBER;
48001 l_event_type_code             VARCHAR2(30);
48002 l_line_definition_code        VARCHAR2(30);
48003 l_line_definition_owner_code  VARCHAR2(1);
48004 --
48005 -- adr variables
48006 l_segment                     VARCHAR2(30);
48007 l_ccid                        NUMBER;
48008 l_adr_transaction_coa_id      NUMBER;
48009 l_adr_accounting_coa_id       NUMBER;
48010 l_adr_flexfield_segment_code  VARCHAR2(30);
48011 l_adr_flex_value_set_id       NUMBER;
48012 l_adr_value_type_code         VARCHAR2(30);
48013 l_adr_value_combination_id    NUMBER;
48017 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
48014 l_adr_value_segment_code      VARCHAR2(30);
48015 
48016 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
48018 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
48019 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
48020 
48021 -- 4262811 Variables ------------------------------------------------------------------------------------------
48022 l_entered_amt_idx             NUMBER;
48023 l_accted_amt_idx              NUMBER;
48024 l_acc_rev_flag                VARCHAR2(1);
48025 l_accrual_line_num            NUMBER;
48026 l_tmp_amt                     NUMBER;
48027 l_acc_rev_natural_side_code   VARCHAR2(1);
48028 
48029 l_num_entries                 NUMBER;
48030 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
48031 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
48032 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
48033 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
48034 l_recog_line_1                NUMBER;
48035 l_recog_line_2                NUMBER;
48036 
48037 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
48038 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
48039 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
48040 
48041 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
48042 
48043 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
48044 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
48045 
48046 ---------------------------------------------------------------------------------------------------------------
48047 
48048 
48049 --
48050 -- bulk performance
48051 --
48052 l_balance_type_code           VARCHAR2(1);
48053 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
48054 l_log_module                  VARCHAR2(240);
48055 
48056 --
48057 -- Upgrade strategy
48058 --
48059 l_actual_upg_option           VARCHAR2(1);
48060 l_enc_upg_option           VARCHAR2(1);
48061 
48062 --
48063 BEGIN
48064 --
48065 IF g_log_enabled THEN
48066       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_104';
48067 END IF;
48068 --
48069 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48070 
48071       trace
48072          (p_msg      => 'BEGIN of AcctLineType_104'
48073          ,p_level    => C_LEVEL_PROCEDURE
48074          ,p_module   => l_log_module);
48075 
48076 END IF;
48077 --
48078 l_component_type             := 'AMB_JLT';
48079 l_component_code             := 'AP_DISCOUNT_ACCR_CLEAR';
48080 l_component_type_code        := 'S';
48081 l_component_appl_id          :=  200;
48082 l_amb_context_code           := 'DEFAULT';
48083 l_entity_code                := 'AP_PAYMENTS';
48084 l_event_class_code           := 'RECONCILED PAYMENTS';
48085 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
48086 l_line_definition_owner_code := 'S';
48087 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
48088 --
48089 l_balance_type_code          := 'A';
48090 l_segment                     := NULL;
48091 l_ccid                        := NULL;
48092 l_adr_transaction_coa_id      := NULL;
48093 l_adr_accounting_coa_id       := NULL;
48094 l_adr_flexfield_segment_code  := NULL;
48095 l_adr_flex_value_set_id       := NULL;
48096 l_adr_value_type_code         := NULL;
48097 l_adr_value_combination_id    := NULL;
48098 l_adr_value_segment_code      := NULL;
48099 
48100 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
48101 l_bflow_class_code           := '';    -- 4219869 Business Flow
48102 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
48103 l_budgetary_control_flag     := 'N';
48104 
48105 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
48106 l_bflow_applied_to_amt       := NULL; -- 5132302
48107 l_entered_amt_idx            := NULL;          -- 4262811
48108 l_accted_amt_idx             := NULL;          -- 4262811
48109 l_acc_rev_flag               := NULL;          -- 4262811
48110 l_accrual_line_num           := NULL;          -- 4262811
48111 l_tmp_amt                    := NULL;          -- 4262811
48112 --
48113  
48114 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
48115     l_balance_type_code <> 'B' THEN
48116 IF NVL(p_source_97,'
48117 ') =  'CLEAR_CLEAR' AND 
48118 NVL(p_source_98,'
48119 ') =  'DISCOUNT' AND 
48120 (NVL(p_source_33,'
48121 ') =  'ITEM' OR 
48122 NVL(p_source_33,'
48123 ') =  'MISCELLANEOUS' OR 
48124 NVL(p_source_33,'
48125 ') =  'FREIGHT' OR 
48126 NVL(p_source_33,'
48127 ') =  'REC_TAX' OR 
48128 NVL(p_source_33,'
48129 ') =  'NONREC_TAX' OR 
48130 NVL(p_source_33,'
48131 ') =  'TIPV' OR 
48132 NVL(p_source_33,'
48133 ') =  'TRV' OR 
48134 NVL(p_source_33,'
48135 ') =  'IPV' OR 
48136 NVL(p_source_33,'
48137 ') =  'ACCRUAL')
48138  THEN 
48139 
48140    --
48141    XLA_AE_LINES_PKG.SetNewLine;
48142 
48143    p_balance_type_code          := l_balance_type_code;
48144    -- set the flag so later we will know whether the gain loss line needs to be created
48145    
48146    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
48147      p_actual_flag :='A';
48151    -- bulk performance
48148    END IF;
48149 
48150    --
48152    --
48153    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
48154                                       p_header_num   => 0); -- 4262811
48155    --
48156    -- set accounting line options
48157    --
48158    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
48159            p_natural_side_code          => 'C'
48160          , p_gain_or_loss_flag          => 'N'
48161          , p_gl_transfer_mode_code      => 'S'
48162          , p_acct_entry_type_code       => 'A'
48163          , p_switch_side_flag           => 'Y'
48164          , p_merge_duplicate_code       => 'A'
48165          );
48166    --
48167    l_acc_rev_natural_side_code := 'D';  -- 4262811
48168    -- 
48169    --
48170    -- set accounting line type info
48171    --
48172    xla_ae_lines_pkg.SetAcctLineType
48173       (p_component_type             => l_component_type
48174       ,p_event_type_code            => l_event_type_code
48175       ,p_line_definition_owner_code => l_line_definition_owner_code
48176       ,p_line_definition_code       => l_line_definition_code
48177       ,p_accounting_line_code       => l_component_code
48178       ,p_accounting_line_type_code  => l_component_type_code
48179       ,p_accounting_line_appl_id    => l_component_appl_id
48180       ,p_amb_context_code           => l_amb_context_code
48181       ,p_entity_code                => l_entity_code
48182       ,p_event_class_code           => l_event_class_code);
48183    --
48184    -- set accounting class
48185    --
48186    xla_ae_lines_pkg.SetAcctClass(
48187            p_accounting_class_code  => 'DISCOUNT'
48188          , p_ae_header_id           => l_ae_header_id
48189          );
48190 
48191    --
48192    -- set rounding class
48193    --
48194    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
48195                       'DISCOUNT';
48196 
48197    --
48198    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
48199    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
48200    --
48201    -- bulk performance
48202    --
48203    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
48204 
48205    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
48206       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
48207 
48208    -- 4955764
48209    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48210       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
48211 
48212    -- 4458381 Public Sector Enh
48213    
48214    --
48215    -- set accounting attributes for the line type
48216    --
48217    l_entered_amt_idx := 10;
48218    l_accted_amt_idx  := 15;
48219    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
48220    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
48221    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
48222    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
48223    l_rec_acct_attrs.array_num_value(2)  := p_source_99;
48224    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
48225    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
48226    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
48227    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
48228    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
48229    l_rec_acct_attrs.array_char_value(5)  := p_source_101;
48230    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
48231    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
48232    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
48233    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
48234    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
48235    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
48236    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
48237    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
48238    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
48239    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
48240    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
48241    l_rec_acct_attrs.array_char_value(11)  := p_source_67;
48242    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
48243    l_rec_acct_attrs.array_date_value(12)  := p_source_143;
48244    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
48245    l_rec_acct_attrs.array_num_value(13)  := p_source_144;
48246    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
48247    l_rec_acct_attrs.array_char_value(14)  := p_source_145;
48248    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
48249    l_rec_acct_attrs.array_num_value(15)  := p_source_109;
48250    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
48251    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
48252    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
48253    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
48254    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
48255    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
48256    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
48260    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
48257    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
48258    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
48259    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
48261    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
48262    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
48263    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
48264    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
48265    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
48266    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
48267    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
48268 
48269    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
48270    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
48271 
48272    ---------------------------------------------------------------------------------------------------------------
48273    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
48274    ---------------------------------------------------------------------------------------------------------------
48275    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
48276 
48277    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48278    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48279 
48280    IF xla_accounting_cache_pkg.GetValueChar
48281          (p_source_code         => 'LEDGER_CATEGORY_CODE'
48282          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
48283    AND l_bflow_method_code = 'PRIOR_ENTRY'
48284 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
48285    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
48286          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
48287        )
48288    THEN
48289          xla_ae_lines_pkg.BflowUpgEntry
48290            (p_business_method_code    => l_bflow_method_code
48291            ,p_business_class_code     => l_bflow_class_code
48292            ,p_balance_type            => l_balance_type_code);
48293    ELSE
48294       NULL;
48295 -- No business flow processing for business flow method of NONE.
48296    END IF;
48297 
48298    --
48299    -- call analytical criteria
48300    --
48301    
48302    --
48303    -- call description
48304    --
48305    -- No description or it is inherited.
48306    --
48307    -- call ADRs
48308    -- Bug 4922099
48309    --
48310    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48311         (NVL(l_actual_upg_option, 'N') = 'O') OR
48312         (NVL(l_enc_upg_option, 'N') = 'O')
48313       )
48314    THEN
48315    NULL;
48316    --
48317    --
48318    
48319   l_ccid := AcctDerRule_29(
48320            p_application_id           => p_application_id
48321          , p_ae_header_id             => l_ae_header_id 
48322 , p_source_15 => p_source_15
48323 , p_source_15_meaning => p_source_15_meaning
48324 , p_source_18 => p_source_18
48325 , p_source_19 => p_source_19
48326 , p_source_19_meaning => p_source_19_meaning
48327 , p_source_30 => p_source_30
48328 , p_source_33 => p_source_33
48329 , p_source_33_meaning => p_source_33_meaning
48330 , p_source_44 => p_source_44
48331 , p_source_45 => p_source_45
48332 , p_source_46 => p_source_46
48333          , x_transaction_coa_id       => l_adr_transaction_coa_id
48334          , x_accounting_coa_id        => l_adr_accounting_coa_id
48335          , x_value_type_code          => l_adr_value_type_code
48336          , p_side                     => 'NA'
48337    );
48338 
48339    xla_ae_lines_pkg.set_ccid(
48340     p_code_combination_id          => l_ccid
48341   , p_value_type_code              => l_adr_value_type_code
48342   , p_transaction_coa_id           => l_adr_transaction_coa_id
48343   , p_accounting_coa_id            => l_adr_accounting_coa_id
48344   , p_adr_code                     => 'AP_DISCOUNT'
48345   , p_adr_type_code                => 'S'
48346   , p_component_type               => l_component_type
48347   , p_component_code               => l_component_code
48348   , p_component_type_code          => l_component_type_code
48349   , p_component_appl_id            => l_component_appl_id
48350   , p_amb_context_code             => l_amb_context_code
48351   , p_side                         => 'NA'
48352   );
48353 
48354 
48355    l_segment := AcctDerRule_21(
48356            p_application_id           => p_application_id
48357          , p_ae_header_id             => l_ae_header_id 
48358 , p_source_15 => p_source_15
48359 , p_source_15_meaning => p_source_15_meaning
48360 , p_source_19 => p_source_19
48361 , p_source_19_meaning => p_source_19_meaning
48362 , p_source_30 => p_source_30
48363          , x_transaction_coa_id       => l_adr_transaction_coa_id
48364          , x_accounting_coa_id        => l_adr_accounting_coa_id
48365          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
48366          , x_flex_value_set_id        => l_adr_flex_value_set_id
48367          , x_value_type_code          => l_adr_value_type_code
48368          , x_value_combination_id     => l_adr_value_combination_id
48369          , x_value_segment_code       => l_adr_value_segment_code
48370          , p_side                     => 'NA'
48374    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
48371          , p_override_seg_flag        => 'Y'
48372    );
48373 
48375 
48376       xla_ae_lines_pkg.set_segment(
48377           p_to_segment_code         => 'GL_BALANCING'
48378         , p_segment_value           => l_segment
48379         , p_from_segment_code       => l_adr_value_segment_code
48380         , p_from_combination_id     => l_adr_value_combination_id
48381         , p_value_type_code         => l_adr_value_type_code
48382         , p_transaction_coa_id      => l_adr_transaction_coa_id
48383         , p_accounting_coa_id       => l_adr_accounting_coa_id
48384         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
48385         , p_flex_value_set_id       => l_adr_flex_value_set_id
48386         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
48387         , p_adr_type_code           => 'S'
48388         , p_component_type          => l_component_type
48389         , p_component_code          => l_component_code
48390         , p_component_type_code     => l_component_type_code
48391         , p_component_appl_id       => l_component_appl_id
48392         , p_amb_context_code        => l_amb_context_code
48393         , p_entity_code             => 'AP_PAYMENTS'
48394         , p_event_class_code        => 'RECONCILED PAYMENTS'
48395         , p_side                    => 'NA'
48396         );
48397 
48398   END IF;
48399 
48400    l_segment := AcctDerRule_7(
48401            p_application_id           => p_application_id
48402          , p_ae_header_id             => l_ae_header_id 
48403 , p_source_15 => p_source_15
48404 , p_source_15_meaning => p_source_15_meaning
48405 , p_source_18 => p_source_18
48406 , p_source_19 => p_source_19
48407 , p_source_19_meaning => p_source_19_meaning
48408          , x_transaction_coa_id       => l_adr_transaction_coa_id
48409          , x_accounting_coa_id        => l_adr_accounting_coa_id
48410          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
48411          , x_flex_value_set_id        => l_adr_flex_value_set_id
48412          , x_value_type_code          => l_adr_value_type_code
48413          , x_value_combination_id     => l_adr_value_combination_id
48414          , x_value_segment_code       => l_adr_value_segment_code
48415          , p_side                     => 'NA'
48416          , p_override_seg_flag        => 'Y'
48417    );
48418 
48419    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
48420 
48421       xla_ae_lines_pkg.set_segment(
48422           p_to_segment_code         => 'GL_ACCOUNT'
48423         , p_segment_value           => l_segment
48424         , p_from_segment_code       => l_adr_value_segment_code
48425         , p_from_combination_id     => l_adr_value_combination_id
48426         , p_value_type_code         => l_adr_value_type_code
48427         , p_transaction_coa_id      => l_adr_transaction_coa_id
48428         , p_accounting_coa_id       => l_adr_accounting_coa_id
48429         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
48430         , p_flex_value_set_id       => l_adr_flex_value_set_id
48431         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
48432         , p_adr_type_code           => 'S'
48433         , p_component_type          => l_component_type
48434         , p_component_code          => l_component_code
48435         , p_component_type_code     => l_component_type_code
48436         , p_component_appl_id       => l_component_appl_id
48437         , p_amb_context_code        => l_amb_context_code
48438         , p_entity_code             => 'AP_PAYMENTS'
48439         , p_event_class_code        => 'RECONCILED PAYMENTS'
48440         , p_side                    => 'NA'
48441         );
48442 
48443   END IF;
48444 
48445    --
48446    --
48447    END IF;
48448    --
48449    -- Bug 4922099
48450    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
48451           (NVL(l_enc_upg_option, 'N') = 'O')
48452         ) AND
48453         (l_bflow_method_code = 'PRIOR_ENTRY')
48454       )
48455    THEN
48456       IF
48457       --
48458       1 = 2
48459       --
48460       THEN
48461       xla_accounting_err_pkg.build_message
48462                                     (p_appli_s_name            => 'XLA'
48463                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48464                                     ,p_token_1                 => 'LINE_NUMBER'
48465                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
48466                                     ,p_token_2                 => 'LINE_TYPE_NAME'
48467                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
48468                                                                              l_component_type
48469                                                                             ,l_component_code
48470                                                                             ,l_component_type_code
48471                                                                             ,l_component_appl_id
48472                                                                             ,l_amb_context_code
48473                                                                             ,l_entity_code
48474                                                                             ,l_event_class_code
48475                                                                            )
48476                                     ,p_token_3                 => 'OWNER'
48477                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
48481                                     ,p_token_4                 => 'PRODUCT_NAME'
48478                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
48479                                                                           ,p_lookup_code    => l_component_type_code
48480                                                                          )
48482                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
48483                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
48484                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
48485                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
48486                                     ,p_ae_header_id            =>  NULL
48487                                        );
48488 
48489         IF (C_LEVEL_ERROR>= g_log_level) THEN
48490                  trace
48491                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48492                       ,p_level    => C_LEVEL_ERROR
48493                       ,p_module   => l_log_module);
48494         END IF;
48495       END IF;
48496    END IF;
48497    --
48498    --
48499    ------------------------------------------------------------------------------------------------
48500    -- 4219869 Business Flow
48501    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
48502    -- Prior Entry.  Currently, the following code is always generated.
48503    ------------------------------------------------------------------------------------------------
48504    XLA_AE_LINES_PKG.ValidateCurrentLine;
48505 
48506    ------------------------------------------------------------------------------------
48507    -- 4219869 Business Flow
48508    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
48509    ------------------------------------------------------------------------------------
48510    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48511 
48512    ----------------------------------------------------------------------------------
48513    -- 4219869 Business Flow
48514    -- Update journal entry status -- Need to generate this within IF <condition>
48515    ----------------------------------------------------------------------------------
48516    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48517          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
48518          ,p_balance_type_code => l_balance_type_code
48519          );
48520 
48521    -------------------------------------------------------------------------------------------
48522    -- 4262811 - Generate the Accrual Reversal lines
48523    -------------------------------------------------------------------------------------------
48524    BEGIN
48525       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
48526                               (g_array_event(p_event_id).array_value_num('header_index'));
48527       IF l_acc_rev_flag IS NULL THEN
48528          l_acc_rev_flag := 'N';
48529       END IF;
48530    EXCEPTION
48531       WHEN OTHERS THEN
48532          l_acc_rev_flag := 'N';
48533    END;
48534    --
48535    IF (l_acc_rev_flag = 'Y') THEN
48536 
48537        -- 4645092  ------------------------------------------------------------------------------
48538        -- To allow MPA report to determine if it should generate report process
48539        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
48540        ------------------------------------------------------------------------------------------
48541 
48542        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
48543        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
48544    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
48545    -- call ADRs
48546    -- Bug 4922099
48547    --
48548    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48549         (NVL(l_actual_upg_option, 'N') = 'O') OR
48550         (NVL(l_enc_upg_option, 'N') = 'O')
48551       )
48552    THEN
48553    NULL;
48554    --
48555    --
48556    
48557   l_ccid := AcctDerRule_29(
48558            p_application_id           => p_application_id
48559          , p_ae_header_id             => l_ae_header_id 
48560 , p_source_15 => p_source_15
48561 , p_source_15_meaning => p_source_15_meaning
48562 , p_source_18 => p_source_18
48563 , p_source_19 => p_source_19
48564 , p_source_19_meaning => p_source_19_meaning
48565 , p_source_30 => p_source_30
48566 , p_source_33 => p_source_33
48567 , p_source_33_meaning => p_source_33_meaning
48568 , p_source_44 => p_source_44
48569 , p_source_45 => p_source_45
48570 , p_source_46 => p_source_46
48571          , x_transaction_coa_id       => l_adr_transaction_coa_id
48572          , x_accounting_coa_id        => l_adr_accounting_coa_id
48573          , x_value_type_code          => l_adr_value_type_code
48574          , p_side                     => 'NA'
48575    );
48576 
48577    xla_ae_lines_pkg.set_ccid(
48578     p_code_combination_id          => l_ccid
48579   , p_value_type_code              => l_adr_value_type_code
48580   , p_transaction_coa_id           => l_adr_transaction_coa_id
48581   , p_accounting_coa_id            => l_adr_accounting_coa_id
48582   , p_adr_code                     => 'AP_DISCOUNT'
48583   , p_adr_type_code                => 'S'
48587   , p_component_appl_id            => l_component_appl_id
48584   , p_component_type               => l_component_type
48585   , p_component_code               => l_component_code
48586   , p_component_type_code          => l_component_type_code
48588   , p_amb_context_code             => l_amb_context_code
48589   , p_side                         => 'NA'
48590   );
48591 
48592 
48593    l_segment := AcctDerRule_21(
48594            p_application_id           => p_application_id
48595          , p_ae_header_id             => l_ae_header_id 
48596 , p_source_15 => p_source_15
48597 , p_source_15_meaning => p_source_15_meaning
48598 , p_source_19 => p_source_19
48599 , p_source_19_meaning => p_source_19_meaning
48600 , p_source_30 => p_source_30
48601          , x_transaction_coa_id       => l_adr_transaction_coa_id
48602          , x_accounting_coa_id        => l_adr_accounting_coa_id
48603          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
48604          , x_flex_value_set_id        => l_adr_flex_value_set_id
48605          , x_value_type_code          => l_adr_value_type_code
48606          , x_value_combination_id     => l_adr_value_combination_id
48607          , x_value_segment_code       => l_adr_value_segment_code
48608          , p_side                     => 'NA'
48609          , p_override_seg_flag        => 'Y'
48610    );
48611 
48612    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
48613 
48614       xla_ae_lines_pkg.set_segment(
48615           p_to_segment_code         => 'GL_BALANCING'
48616         , p_segment_value           => l_segment
48617         , p_from_segment_code       => l_adr_value_segment_code
48618         , p_from_combination_id     => l_adr_value_combination_id
48619         , p_value_type_code         => l_adr_value_type_code
48620         , p_transaction_coa_id      => l_adr_transaction_coa_id
48621         , p_accounting_coa_id       => l_adr_accounting_coa_id
48622         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
48623         , p_flex_value_set_id       => l_adr_flex_value_set_id
48624         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
48625         , p_adr_type_code           => 'S'
48626         , p_component_type          => l_component_type
48627         , p_component_code          => l_component_code
48628         , p_component_type_code     => l_component_type_code
48629         , p_component_appl_id       => l_component_appl_id
48630         , p_amb_context_code        => l_amb_context_code
48631         , p_entity_code             => 'AP_PAYMENTS'
48632         , p_event_class_code        => 'RECONCILED PAYMENTS'
48633         , p_side                    => 'NA'
48634         );
48635 
48636   END IF;
48637 
48638    l_segment := AcctDerRule_7(
48639            p_application_id           => p_application_id
48640          , p_ae_header_id             => l_ae_header_id 
48641 , p_source_15 => p_source_15
48642 , p_source_15_meaning => p_source_15_meaning
48643 , p_source_18 => p_source_18
48644 , p_source_19 => p_source_19
48645 , p_source_19_meaning => p_source_19_meaning
48646          , x_transaction_coa_id       => l_adr_transaction_coa_id
48647          , x_accounting_coa_id        => l_adr_accounting_coa_id
48648          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
48649          , x_flex_value_set_id        => l_adr_flex_value_set_id
48650          , x_value_type_code          => l_adr_value_type_code
48651          , x_value_combination_id     => l_adr_value_combination_id
48652          , x_value_segment_code       => l_adr_value_segment_code
48653          , p_side                     => 'NA'
48654          , p_override_seg_flag        => 'Y'
48655    );
48656 
48657    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
48658 
48659       xla_ae_lines_pkg.set_segment(
48660           p_to_segment_code         => 'GL_ACCOUNT'
48661         , p_segment_value           => l_segment
48662         , p_from_segment_code       => l_adr_value_segment_code
48663         , p_from_combination_id     => l_adr_value_combination_id
48664         , p_value_type_code         => l_adr_value_type_code
48665         , p_transaction_coa_id      => l_adr_transaction_coa_id
48666         , p_accounting_coa_id       => l_adr_accounting_coa_id
48667         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
48668         , p_flex_value_set_id       => l_adr_flex_value_set_id
48669         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
48670         , p_adr_type_code           => 'S'
48671         , p_component_type          => l_component_type
48672         , p_component_code          => l_component_code
48673         , p_component_type_code     => l_component_type_code
48674         , p_component_appl_id       => l_component_appl_id
48675         , p_amb_context_code        => l_amb_context_code
48676         , p_entity_code             => 'AP_PAYMENTS'
48677         , p_event_class_code        => 'RECONCILED PAYMENTS'
48678         , p_side                    => 'NA'
48679         );
48680 
48681   END IF;
48682 
48683    --
48684    --
48685    END IF;
48686 
48687        --
48688        -- Update the line information that should be overwritten
48689        --
48690        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
48691                                          p_header_num   => 1);
48692        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
48693 
48697           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
48694        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
48695 
48696        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
48698        END IF;
48699 
48700       --
48701       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
48702       --
48703       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
48704           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
48705       ELSE
48706           ---------------------------------------------------------------------------------------------------
48707           -- 4262811a Switch Sign
48708           ---------------------------------------------------------------------------------------------------
48709           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
48710           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48711                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48712           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48713                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48714           -- 5132302
48715           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
48716                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48717 
48718       END IF;
48719 
48720       -- 4955764
48721       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48722       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
48723 
48724 
48725       XLA_AE_LINES_PKG.ValidateCurrentLine;
48726       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48727 
48728       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48729                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
48730                ,p_balance_type_code => l_balance_type_code);
48731 
48732    END IF;
48733 
48734    -----------------------------------------------------------------------------------------
48735    -- 4262811 Multiperiod Accounting
48736    -----------------------------------------------------------------------------------------
48737      -- No MPA option is assigned.
48738 
48739 
48740 END IF;
48741 END IF;
48742 --
48743 
48744 --
48745 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48746    trace
48747       (p_msg      => 'END of AcctLineType_104'
48748       ,p_level    => C_LEVEL_PROCEDURE
48749       ,p_module   => l_log_module);
48750 END IF;
48751 --
48752 EXCEPTION
48753   WHEN xla_exceptions_pkg.application_exception THEN
48754       RAISE;
48755   WHEN OTHERS THEN
48756        xla_exceptions_pkg.raise_message
48757            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_104');
48758 END AcctLineType_104;
48759 --
48760 
48761 ---------------------------------------
48762 --
48763 -- PRIVATE FUNCTION
48764 --         AcctLineType_105
48765 --
48766 ---------------------------------------
48767 PROCEDURE AcctLineType_105 (
48768   p_application_id        IN NUMBER
48769  ,p_event_id              IN NUMBER
48770  ,p_calculate_acctd_flag  IN VARCHAR2
48771  ,p_calculate_g_l_flag    IN VARCHAR2
48772  ,p_actual_flag           IN OUT VARCHAR2
48773  ,p_balance_type_code     OUT VARCHAR2
48774  ,p_gain_or_loss_ref      OUT VARCHAR2
48775  
48776 --Payment Currency Code
48777  , p_source_13            IN VARCHAR2
48778 --Automatic Offsets Value
48779  , p_source_15            IN VARCHAR2
48780  , p_source_15_meaning    IN VARCHAR2
48781 --System Discount Account
48782  , p_source_18            IN NUMBER
48783 --Discount Distribution Method
48784  , p_source_19            IN VARCHAR2
48785  , p_source_19_meaning    IN VARCHAR2
48786 --Invoice Distribution Account
48787  , p_source_30            IN NUMBER
48788 --Invoice Distribution Type
48789  , p_source_33            IN VARCHAR2
48790  , p_source_33_meaning    IN VARCHAR2
48791 --Discount Account
48792  , p_source_44            IN NUMBER
48793 --Purchase Order Charge Account
48794  , p_source_45            IN NUMBER
48795 --Purchase Order Variance Account
48796  , p_source_46            IN NUMBER
48797 --Accounting Reversal Indicator
48798  , p_source_53            IN VARCHAR2
48799 --Distribution Link Type
48800  , p_source_55            IN VARCHAR2
48801 --Override Accounted Amount Indicator
48802  , p_source_80            IN VARCHAR2
48803  , p_source_80_meaning    IN VARCHAR2
48804 --Third Party Type
48805  , p_source_83            IN VARCHAR2
48806 --Invoice Distribution Tax Line Identifier
48807  , p_source_86            IN NUMBER
48808 --Invoice Distribution Tax Distribution Identifier from Tax
48809  , p_source_87            IN NUMBER
48810 --Invoice Distribution Summary Tax Line Identifier
48811  , p_source_88            IN NUMBER
48812 --Business Flow Accounts Payable Application Identifier
48813  , p_source_91            IN NUMBER
48814 --Business Flow Invoice Distribution Type
48815  , p_source_92            IN VARCHAR2
48819  , p_source_94            IN NUMBER
48816 --Business Flow Invoice Entity Code
48817  , p_source_93            IN VARCHAR2
48818 --Business Flow Invoice Distribution Identifier
48820 --Business Flow Invoice Identifier
48821  , p_source_95            IN NUMBER
48822 --When to Account for Payment Option
48823  , p_source_97            IN VARCHAR2
48824 --Payment Distribution Type
48825  , p_source_98            IN VARCHAR2
48826  , p_source_98_meaning    IN VARCHAR2
48827 --Payment Distribution Amount
48828  , p_source_99            IN NUMBER
48829 --Payment Distribution Identifier
48830  , p_source_104            IN NUMBER
48831 --Payment Supplier Identifier
48832  , p_source_110            IN NUMBER
48833 --Payment Supplier Site Identifier
48834  , p_source_111            IN NUMBER
48835 --Payment Distribution Reversed Identifier
48836  , p_source_112            IN NUMBER
48837 --Payment Distribution (Payment Rate) Ledger Amount
48838  , p_source_115            IN NUMBER
48839 --Payment Type
48840  , p_source_122            IN VARCHAR2
48841  , p_source_122_meaning    IN VARCHAR2
48842 --Payment Processing Type
48843  , p_source_123            IN VARCHAR2
48844 --Invoice Distribution Amount of the Payment Distribution
48845  , p_source_124            IN NUMBER
48846 --Invoice Exchange Date
48847  , p_source_143            IN DATE
48848 --Invoice Exchange Rate
48849  , p_source_144            IN NUMBER
48850 --Invoice Exchange Rate Type
48851  , p_source_145            IN VARCHAR2
48852 )
48853 IS
48854 
48855 l_component_type              VARCHAR2(80);
48856 l_component_code              VARCHAR2(30);
48857 l_component_type_code         VARCHAR2(1);
48858 l_component_appl_id           INTEGER;
48859 l_amb_context_code            VARCHAR2(30);
48860 l_entity_code                 VARCHAR2(30);
48861 l_event_class_code            VARCHAR2(30);
48862 l_ae_header_id                NUMBER;
48863 l_event_type_code             VARCHAR2(30);
48864 l_line_definition_code        VARCHAR2(30);
48865 l_line_definition_owner_code  VARCHAR2(1);
48866 --
48867 -- adr variables
48868 l_segment                     VARCHAR2(30);
48869 l_ccid                        NUMBER;
48870 l_adr_transaction_coa_id      NUMBER;
48871 l_adr_accounting_coa_id       NUMBER;
48872 l_adr_flexfield_segment_code  VARCHAR2(30);
48873 l_adr_flex_value_set_id       NUMBER;
48874 l_adr_value_type_code         VARCHAR2(30);
48875 l_adr_value_combination_id    NUMBER;
48876 l_adr_value_segment_code      VARCHAR2(30);
48877 
48878 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
48879 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
48880 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
48881 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
48882 
48883 -- 4262811 Variables ------------------------------------------------------------------------------------------
48884 l_entered_amt_idx             NUMBER;
48885 l_accted_amt_idx              NUMBER;
48886 l_acc_rev_flag                VARCHAR2(1);
48887 l_accrual_line_num            NUMBER;
48888 l_tmp_amt                     NUMBER;
48889 l_acc_rev_natural_side_code   VARCHAR2(1);
48890 
48891 l_num_entries                 NUMBER;
48892 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
48893 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
48894 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
48895 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
48896 l_recog_line_1                NUMBER;
48897 l_recog_line_2                NUMBER;
48898 
48899 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
48900 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
48901 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
48902 
48903 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
48904 
48905 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
48906 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
48907 
48908 ---------------------------------------------------------------------------------------------------------------
48909 
48910 
48911 --
48912 -- bulk performance
48913 --
48914 l_balance_type_code           VARCHAR2(1);
48915 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
48916 l_log_module                  VARCHAR2(240);
48917 
48918 --
48919 -- Upgrade strategy
48920 --
48921 l_actual_upg_option           VARCHAR2(1);
48922 l_enc_upg_option           VARCHAR2(1);
48923 
48924 --
48925 BEGIN
48926 --
48927 IF g_log_enabled THEN
48928       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_105';
48929 END IF;
48930 --
48931 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48932 
48933       trace
48934          (p_msg      => 'BEGIN of AcctLineType_105'
48935          ,p_level    => C_LEVEL_PROCEDURE
48936          ,p_module   => l_log_module);
48937 
48938 END IF;
48939 --
48940 l_component_type             := 'AMB_JLT';
48941 l_component_code             := 'AP_DISCOUNT_ACCR_PMT';
48942 l_component_type_code        := 'S';
48943 l_component_appl_id          :=  200;
48944 l_amb_context_code           := 'DEFAULT';
48945 l_entity_code                := 'AP_PAYMENTS';
48946 l_event_class_code           := 'PAYMENTS';
48947 l_event_type_code            := 'PAYMENTS_ALL';
48951 l_balance_type_code          := 'A';
48948 l_line_definition_owner_code := 'S';
48949 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
48950 --
48952 l_segment                     := NULL;
48953 l_ccid                        := NULL;
48954 l_adr_transaction_coa_id      := NULL;
48955 l_adr_accounting_coa_id       := NULL;
48956 l_adr_flexfield_segment_code  := NULL;
48957 l_adr_flex_value_set_id       := NULL;
48958 l_adr_value_type_code         := NULL;
48959 l_adr_value_combination_id    := NULL;
48960 l_adr_value_segment_code      := NULL;
48961 
48962 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
48963 l_bflow_class_code           := '';    -- 4219869 Business Flow
48964 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
48965 l_budgetary_control_flag     := 'N';
48966 
48967 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
48968 l_bflow_applied_to_amt       := NULL; -- 5132302
48969 l_entered_amt_idx            := NULL;          -- 4262811
48970 l_accted_amt_idx             := NULL;          -- 4262811
48971 l_acc_rev_flag               := NULL;          -- 4262811
48972 l_accrual_line_num           := NULL;          -- 4262811
48973 l_tmp_amt                    := NULL;          -- 4262811
48974 --
48975  
48976 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
48977     l_balance_type_code <> 'B' THEN
48978 IF NVL(p_source_97,'
48979 ') <>  'CLEAR_CLEAR' AND 
48980 NVL(p_source_98,'
48981 ') =  'DISCOUNT' AND 
48982 NVL(p_source_122,'
48983 ') <>  'R' AND 
48984 NVL(p_source_123,'
48985 ') <>  'PAYMENTCARD'
48986  THEN 
48987 
48988    --
48989    XLA_AE_LINES_PKG.SetNewLine;
48990 
48991    p_balance_type_code          := l_balance_type_code;
48992    -- set the flag so later we will know whether the gain loss line needs to be created
48993    
48994    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
48995      p_actual_flag :='A';
48996    END IF;
48997 
48998    --
48999    -- bulk performance
49000    --
49001    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
49002                                       p_header_num   => 0); -- 4262811
49003    --
49004    -- set accounting line options
49005    --
49006    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
49007            p_natural_side_code          => 'C'
49008          , p_gain_or_loss_flag          => 'N'
49009          , p_gl_transfer_mode_code      => 'S'
49010          , p_acct_entry_type_code       => 'A'
49011          , p_switch_side_flag           => 'Y'
49012          , p_merge_duplicate_code       => 'A'
49013          );
49014    --
49015    l_acc_rev_natural_side_code := 'D';  -- 4262811
49016    -- 
49017    --
49018    -- set accounting line type info
49019    --
49020    xla_ae_lines_pkg.SetAcctLineType
49021       (p_component_type             => l_component_type
49022       ,p_event_type_code            => l_event_type_code
49023       ,p_line_definition_owner_code => l_line_definition_owner_code
49024       ,p_line_definition_code       => l_line_definition_code
49025       ,p_accounting_line_code       => l_component_code
49026       ,p_accounting_line_type_code  => l_component_type_code
49027       ,p_accounting_line_appl_id    => l_component_appl_id
49028       ,p_amb_context_code           => l_amb_context_code
49029       ,p_entity_code                => l_entity_code
49030       ,p_event_class_code           => l_event_class_code);
49031    --
49032    -- set accounting class
49033    --
49034    xla_ae_lines_pkg.SetAcctClass(
49035            p_accounting_class_code  => 'DISCOUNT'
49036          , p_ae_header_id           => l_ae_header_id
49037          );
49038 
49039    --
49040    -- set rounding class
49041    --
49042    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
49043                       'DISCOUNT';
49044 
49045    --
49046    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
49047    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
49048    --
49049    -- bulk performance
49050    --
49051    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
49052 
49053    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
49054       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
49055 
49056    -- 4955764
49057    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49058       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
49059 
49060    -- 4458381 Public Sector Enh
49061    
49062    --
49063    -- set accounting attributes for the line type
49064    --
49065    l_entered_amt_idx := 10;
49066    l_accted_amt_idx  := 15;
49067    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
49068    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
49069    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
49070    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
49071    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
49072    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
49073    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
49074    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
49078    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
49075    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
49076    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
49077    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
49079    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
49080    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
49081    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
49082    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
49083    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
49084    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
49085    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
49086    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
49087    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
49088    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
49089    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
49090    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
49091    l_rec_acct_attrs.array_date_value(12)  := p_source_143;
49092    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
49093    l_rec_acct_attrs.array_num_value(13)  := p_source_144;
49094    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
49095    l_rec_acct_attrs.array_char_value(14)  := p_source_145;
49096    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
49097    l_rec_acct_attrs.array_num_value(15)  := p_source_115;
49098    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
49099    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
49100    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
49101    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
49102    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
49103    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
49104    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
49105    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
49106    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
49107    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
49108    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
49109    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
49110    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
49111    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
49112    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
49113    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
49114    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
49115    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
49116 
49117    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
49118    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
49119 
49120    ---------------------------------------------------------------------------------------------------------------
49121    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
49122    ---------------------------------------------------------------------------------------------------------------
49123    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
49124 
49125    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49126    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49127 
49128    IF xla_accounting_cache_pkg.GetValueChar
49129          (p_source_code         => 'LEDGER_CATEGORY_CODE'
49130          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
49131    AND l_bflow_method_code = 'PRIOR_ENTRY'
49132 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
49133    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
49134          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
49135        )
49136    THEN
49137          xla_ae_lines_pkg.BflowUpgEntry
49138            (p_business_method_code    => l_bflow_method_code
49139            ,p_business_class_code     => l_bflow_class_code
49140            ,p_balance_type            => l_balance_type_code);
49141    ELSE
49142       NULL;
49143 -- No business flow processing for business flow method of NONE.
49144    END IF;
49145 
49146    --
49147    -- call analytical criteria
49148    --
49149    
49150    --
49151    -- call description
49152    --
49153    -- No description or it is inherited.
49154    --
49155    -- call ADRs
49156    -- Bug 4922099
49157    --
49158    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49159         (NVL(l_actual_upg_option, 'N') = 'O') OR
49160         (NVL(l_enc_upg_option, 'N') = 'O')
49161       )
49162    THEN
49163    NULL;
49164    --
49165    --
49166    
49167   l_ccid := AcctDerRule_29(
49168            p_application_id           => p_application_id
49169          , p_ae_header_id             => l_ae_header_id 
49170 , p_source_15 => p_source_15
49171 , p_source_15_meaning => p_source_15_meaning
49172 , p_source_18 => p_source_18
49173 , p_source_19 => p_source_19
49174 , p_source_19_meaning => p_source_19_meaning
49175 , p_source_30 => p_source_30
49176 , p_source_33 => p_source_33
49177 , p_source_33_meaning => p_source_33_meaning
49178 , p_source_44 => p_source_44
49179 , p_source_45 => p_source_45
49183          , x_value_type_code          => l_adr_value_type_code
49180 , p_source_46 => p_source_46
49181          , x_transaction_coa_id       => l_adr_transaction_coa_id
49182          , x_accounting_coa_id        => l_adr_accounting_coa_id
49184          , p_side                     => 'NA'
49185    );
49186 
49187    xla_ae_lines_pkg.set_ccid(
49188     p_code_combination_id          => l_ccid
49189   , p_value_type_code              => l_adr_value_type_code
49190   , p_transaction_coa_id           => l_adr_transaction_coa_id
49191   , p_accounting_coa_id            => l_adr_accounting_coa_id
49192   , p_adr_code                     => 'AP_DISCOUNT'
49193   , p_adr_type_code                => 'S'
49194   , p_component_type               => l_component_type
49195   , p_component_code               => l_component_code
49196   , p_component_type_code          => l_component_type_code
49197   , p_component_appl_id            => l_component_appl_id
49198   , p_amb_context_code             => l_amb_context_code
49199   , p_side                         => 'NA'
49200   );
49201 
49202 
49203    l_segment := AcctDerRule_21(
49204            p_application_id           => p_application_id
49205          , p_ae_header_id             => l_ae_header_id 
49206 , p_source_15 => p_source_15
49207 , p_source_15_meaning => p_source_15_meaning
49208 , p_source_19 => p_source_19
49209 , p_source_19_meaning => p_source_19_meaning
49210 , p_source_30 => p_source_30
49211          , x_transaction_coa_id       => l_adr_transaction_coa_id
49212          , x_accounting_coa_id        => l_adr_accounting_coa_id
49213          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
49214          , x_flex_value_set_id        => l_adr_flex_value_set_id
49215          , x_value_type_code          => l_adr_value_type_code
49216          , x_value_combination_id     => l_adr_value_combination_id
49217          , x_value_segment_code       => l_adr_value_segment_code
49218          , p_side                     => 'NA'
49219          , p_override_seg_flag        => 'Y'
49220    );
49221 
49222    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
49223 
49224       xla_ae_lines_pkg.set_segment(
49225           p_to_segment_code         => 'GL_BALANCING'
49226         , p_segment_value           => l_segment
49227         , p_from_segment_code       => l_adr_value_segment_code
49228         , p_from_combination_id     => l_adr_value_combination_id
49229         , p_value_type_code         => l_adr_value_type_code
49230         , p_transaction_coa_id      => l_adr_transaction_coa_id
49231         , p_accounting_coa_id       => l_adr_accounting_coa_id
49232         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
49233         , p_flex_value_set_id       => l_adr_flex_value_set_id
49234         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
49235         , p_adr_type_code           => 'S'
49236         , p_component_type          => l_component_type
49237         , p_component_code          => l_component_code
49238         , p_component_type_code     => l_component_type_code
49239         , p_component_appl_id       => l_component_appl_id
49240         , p_amb_context_code        => l_amb_context_code
49241         , p_entity_code             => 'AP_PAYMENTS'
49242         , p_event_class_code        => 'PAYMENTS'
49243         , p_side                    => 'NA'
49244         );
49245 
49246   END IF;
49247 
49248    l_segment := AcctDerRule_7(
49249            p_application_id           => p_application_id
49250          , p_ae_header_id             => l_ae_header_id 
49251 , p_source_15 => p_source_15
49252 , p_source_15_meaning => p_source_15_meaning
49253 , p_source_18 => p_source_18
49254 , p_source_19 => p_source_19
49255 , p_source_19_meaning => p_source_19_meaning
49256          , x_transaction_coa_id       => l_adr_transaction_coa_id
49257          , x_accounting_coa_id        => l_adr_accounting_coa_id
49258          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
49259          , x_flex_value_set_id        => l_adr_flex_value_set_id
49260          , x_value_type_code          => l_adr_value_type_code
49261          , x_value_combination_id     => l_adr_value_combination_id
49262          , x_value_segment_code       => l_adr_value_segment_code
49263          , p_side                     => 'NA'
49264          , p_override_seg_flag        => 'Y'
49265    );
49266 
49267    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
49268 
49269       xla_ae_lines_pkg.set_segment(
49270           p_to_segment_code         => 'GL_ACCOUNT'
49271         , p_segment_value           => l_segment
49272         , p_from_segment_code       => l_adr_value_segment_code
49273         , p_from_combination_id     => l_adr_value_combination_id
49274         , p_value_type_code         => l_adr_value_type_code
49275         , p_transaction_coa_id      => l_adr_transaction_coa_id
49276         , p_accounting_coa_id       => l_adr_accounting_coa_id
49277         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
49278         , p_flex_value_set_id       => l_adr_flex_value_set_id
49279         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
49280         , p_adr_type_code           => 'S'
49281         , p_component_type          => l_component_type
49282         , p_component_code          => l_component_code
49283         , p_component_type_code     => l_component_type_code
49284         , p_component_appl_id       => l_component_appl_id
49288         , p_side                    => 'NA'
49285         , p_amb_context_code        => l_amb_context_code
49286         , p_entity_code             => 'AP_PAYMENTS'
49287         , p_event_class_code        => 'PAYMENTS'
49289         );
49290 
49291   END IF;
49292 
49293    --
49294    --
49295    END IF;
49296    --
49297    -- Bug 4922099
49298    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
49299           (NVL(l_enc_upg_option, 'N') = 'O')
49300         ) AND
49301         (l_bflow_method_code = 'PRIOR_ENTRY')
49302       )
49303    THEN
49304       IF
49305       --
49306       1 = 2
49307       --
49308       THEN
49309       xla_accounting_err_pkg.build_message
49310                                     (p_appli_s_name            => 'XLA'
49311                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49312                                     ,p_token_1                 => 'LINE_NUMBER'
49313                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
49314                                     ,p_token_2                 => 'LINE_TYPE_NAME'
49315                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
49316                                                                              l_component_type
49317                                                                             ,l_component_code
49318                                                                             ,l_component_type_code
49319                                                                             ,l_component_appl_id
49320                                                                             ,l_amb_context_code
49321                                                                             ,l_entity_code
49322                                                                             ,l_event_class_code
49323                                                                            )
49324                                     ,p_token_3                 => 'OWNER'
49325                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
49326                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
49327                                                                           ,p_lookup_code    => l_component_type_code
49328                                                                          )
49329                                     ,p_token_4                 => 'PRODUCT_NAME'
49330                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
49331                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
49332                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
49333                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
49334                                     ,p_ae_header_id            =>  NULL
49335                                        );
49336 
49337         IF (C_LEVEL_ERROR>= g_log_level) THEN
49338                  trace
49339                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49340                       ,p_level    => C_LEVEL_ERROR
49341                       ,p_module   => l_log_module);
49342         END IF;
49343       END IF;
49344    END IF;
49345    --
49346    --
49347    ------------------------------------------------------------------------------------------------
49348    -- 4219869 Business Flow
49349    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
49350    -- Prior Entry.  Currently, the following code is always generated.
49351    ------------------------------------------------------------------------------------------------
49352    XLA_AE_LINES_PKG.ValidateCurrentLine;
49353 
49354    ------------------------------------------------------------------------------------
49355    -- 4219869 Business Flow
49356    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
49357    ------------------------------------------------------------------------------------
49358    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49359 
49360    ----------------------------------------------------------------------------------
49361    -- 4219869 Business Flow
49362    -- Update journal entry status -- Need to generate this within IF <condition>
49363    ----------------------------------------------------------------------------------
49364    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49365          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
49366          ,p_balance_type_code => l_balance_type_code
49367          );
49368 
49369    -------------------------------------------------------------------------------------------
49370    -- 4262811 - Generate the Accrual Reversal lines
49371    -------------------------------------------------------------------------------------------
49372    BEGIN
49373       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
49374                               (g_array_event(p_event_id).array_value_num('header_index'));
49375       IF l_acc_rev_flag IS NULL THEN
49376          l_acc_rev_flag := 'N';
49377       END IF;
49378    EXCEPTION
49379       WHEN OTHERS THEN
49380          l_acc_rev_flag := 'N';
49381    END;
49382    --
49386        -- To allow MPA report to determine if it should generate report process
49383    IF (l_acc_rev_flag = 'Y') THEN
49384 
49385        -- 4645092  ------------------------------------------------------------------------------
49387        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
49388        ------------------------------------------------------------------------------------------
49389 
49390        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
49391        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
49392    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
49393    -- call ADRs
49394    -- Bug 4922099
49395    --
49396    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49397         (NVL(l_actual_upg_option, 'N') = 'O') OR
49398         (NVL(l_enc_upg_option, 'N') = 'O')
49399       )
49400    THEN
49401    NULL;
49402    --
49403    --
49404    
49405   l_ccid := AcctDerRule_29(
49406            p_application_id           => p_application_id
49407          , p_ae_header_id             => l_ae_header_id 
49408 , p_source_15 => p_source_15
49409 , p_source_15_meaning => p_source_15_meaning
49410 , p_source_18 => p_source_18
49411 , p_source_19 => p_source_19
49412 , p_source_19_meaning => p_source_19_meaning
49413 , p_source_30 => p_source_30
49414 , p_source_33 => p_source_33
49415 , p_source_33_meaning => p_source_33_meaning
49416 , p_source_44 => p_source_44
49417 , p_source_45 => p_source_45
49418 , p_source_46 => p_source_46
49419          , x_transaction_coa_id       => l_adr_transaction_coa_id
49420          , x_accounting_coa_id        => l_adr_accounting_coa_id
49421          , x_value_type_code          => l_adr_value_type_code
49422          , p_side                     => 'NA'
49423    );
49424 
49425    xla_ae_lines_pkg.set_ccid(
49426     p_code_combination_id          => l_ccid
49427   , p_value_type_code              => l_adr_value_type_code
49428   , p_transaction_coa_id           => l_adr_transaction_coa_id
49429   , p_accounting_coa_id            => l_adr_accounting_coa_id
49430   , p_adr_code                     => 'AP_DISCOUNT'
49431   , p_adr_type_code                => 'S'
49432   , p_component_type               => l_component_type
49433   , p_component_code               => l_component_code
49434   , p_component_type_code          => l_component_type_code
49435   , p_component_appl_id            => l_component_appl_id
49436   , p_amb_context_code             => l_amb_context_code
49437   , p_side                         => 'NA'
49438   );
49439 
49440 
49441    l_segment := AcctDerRule_21(
49442            p_application_id           => p_application_id
49443          , p_ae_header_id             => l_ae_header_id 
49444 , p_source_15 => p_source_15
49445 , p_source_15_meaning => p_source_15_meaning
49446 , p_source_19 => p_source_19
49447 , p_source_19_meaning => p_source_19_meaning
49448 , p_source_30 => p_source_30
49449          , x_transaction_coa_id       => l_adr_transaction_coa_id
49450          , x_accounting_coa_id        => l_adr_accounting_coa_id
49451          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
49452          , x_flex_value_set_id        => l_adr_flex_value_set_id
49453          , x_value_type_code          => l_adr_value_type_code
49454          , x_value_combination_id     => l_adr_value_combination_id
49455          , x_value_segment_code       => l_adr_value_segment_code
49456          , p_side                     => 'NA'
49457          , p_override_seg_flag        => 'Y'
49458    );
49459 
49460    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
49461 
49462       xla_ae_lines_pkg.set_segment(
49463           p_to_segment_code         => 'GL_BALANCING'
49464         , p_segment_value           => l_segment
49465         , p_from_segment_code       => l_adr_value_segment_code
49466         , p_from_combination_id     => l_adr_value_combination_id
49467         , p_value_type_code         => l_adr_value_type_code
49468         , p_transaction_coa_id      => l_adr_transaction_coa_id
49469         , p_accounting_coa_id       => l_adr_accounting_coa_id
49470         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
49471         , p_flex_value_set_id       => l_adr_flex_value_set_id
49472         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
49473         , p_adr_type_code           => 'S'
49474         , p_component_type          => l_component_type
49475         , p_component_code          => l_component_code
49476         , p_component_type_code     => l_component_type_code
49477         , p_component_appl_id       => l_component_appl_id
49478         , p_amb_context_code        => l_amb_context_code
49479         , p_entity_code             => 'AP_PAYMENTS'
49480         , p_event_class_code        => 'PAYMENTS'
49481         , p_side                    => 'NA'
49482         );
49483 
49484   END IF;
49485 
49486    l_segment := AcctDerRule_7(
49487            p_application_id           => p_application_id
49488          , p_ae_header_id             => l_ae_header_id 
49489 , p_source_15 => p_source_15
49490 , p_source_15_meaning => p_source_15_meaning
49491 , p_source_18 => p_source_18
49492 , p_source_19 => p_source_19
49493 , p_source_19_meaning => p_source_19_meaning
49494          , x_transaction_coa_id       => l_adr_transaction_coa_id
49495          , x_accounting_coa_id        => l_adr_accounting_coa_id
49496          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
49497          , x_flex_value_set_id        => l_adr_flex_value_set_id
49501          , p_side                     => 'NA'
49498          , x_value_type_code          => l_adr_value_type_code
49499          , x_value_combination_id     => l_adr_value_combination_id
49500          , x_value_segment_code       => l_adr_value_segment_code
49502          , p_override_seg_flag        => 'Y'
49503    );
49504 
49505    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
49506 
49507       xla_ae_lines_pkg.set_segment(
49508           p_to_segment_code         => 'GL_ACCOUNT'
49509         , p_segment_value           => l_segment
49510         , p_from_segment_code       => l_adr_value_segment_code
49511         , p_from_combination_id     => l_adr_value_combination_id
49512         , p_value_type_code         => l_adr_value_type_code
49513         , p_transaction_coa_id      => l_adr_transaction_coa_id
49514         , p_accounting_coa_id       => l_adr_accounting_coa_id
49515         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
49516         , p_flex_value_set_id       => l_adr_flex_value_set_id
49517         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
49518         , p_adr_type_code           => 'S'
49519         , p_component_type          => l_component_type
49520         , p_component_code          => l_component_code
49521         , p_component_type_code     => l_component_type_code
49522         , p_component_appl_id       => l_component_appl_id
49523         , p_amb_context_code        => l_amb_context_code
49524         , p_entity_code             => 'AP_PAYMENTS'
49525         , p_event_class_code        => 'PAYMENTS'
49526         , p_side                    => 'NA'
49527         );
49528 
49529   END IF;
49530 
49531    --
49532    --
49533    END IF;
49534 
49535        --
49536        -- Update the line information that should be overwritten
49537        --
49538        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
49539                                          p_header_num   => 1);
49540        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
49541 
49542        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
49543 
49544        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
49545           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
49546        END IF;
49547 
49548       --
49549       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
49550       --
49551       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
49552           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
49553       ELSE
49554           ---------------------------------------------------------------------------------------------------
49555           -- 4262811a Switch Sign
49556           ---------------------------------------------------------------------------------------------------
49557           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
49558           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49559                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49560           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49561                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49562           -- 5132302
49563           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
49564                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49565 
49566       END IF;
49567 
49568       -- 4955764
49569       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49570       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
49571 
49572 
49573       XLA_AE_LINES_PKG.ValidateCurrentLine;
49574       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49575 
49576       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49577                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
49578                ,p_balance_type_code => l_balance_type_code);
49579 
49580    END IF;
49581 
49582    -----------------------------------------------------------------------------------------
49583    -- 4262811 Multiperiod Accounting
49584    -----------------------------------------------------------------------------------------
49585      -- No MPA option is assigned.
49586 
49587 
49588 END IF;
49589 END IF;
49590 --
49591 
49592 --
49593 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49594    trace
49595       (p_msg      => 'END of AcctLineType_105'
49596       ,p_level    => C_LEVEL_PROCEDURE
49597       ,p_module   => l_log_module);
49598 END IF;
49599 --
49600 EXCEPTION
49601   WHEN xla_exceptions_pkg.application_exception THEN
49602       RAISE;
49603   WHEN OTHERS THEN
49604        xla_exceptions_pkg.raise_message
49605            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_105');
49606 END AcctLineType_105;
49607 --
49608 
49609 ---------------------------------------
49610 --
49611 -- PRIVATE FUNCTION
49612 --         AcctLineType_106
49613 --
49614 ---------------------------------------
49615 PROCEDURE AcctLineType_106 (
49619  ,p_calculate_g_l_flag    IN VARCHAR2
49616   p_application_id        IN NUMBER
49617  ,p_event_id              IN NUMBER
49618  ,p_calculate_acctd_flag  IN VARCHAR2
49620  ,p_actual_flag           IN OUT VARCHAR2
49621  ,p_balance_type_code     OUT VARCHAR2
49622  ,p_gain_or_loss_ref      OUT VARCHAR2
49623  
49624 --Payment Currency Code
49625  , p_source_13            IN VARCHAR2
49626 --Automatic Offsets Value
49627  , p_source_15            IN VARCHAR2
49628  , p_source_15_meaning    IN VARCHAR2
49629 --System Discount Account
49630  , p_source_18            IN NUMBER
49631 --Discount Distribution Method
49632  , p_source_19            IN VARCHAR2
49633  , p_source_19_meaning    IN VARCHAR2
49634 --Invoice Distribution Account
49635  , p_source_30            IN NUMBER
49636 --Invoice Distribution Type
49637  , p_source_33            IN VARCHAR2
49638  , p_source_33_meaning    IN VARCHAR2
49639 --Discount Account
49640  , p_source_44            IN NUMBER
49641 --Purchase Order Charge Account
49642  , p_source_45            IN NUMBER
49643 --Purchase Order Variance Account
49644  , p_source_46            IN NUMBER
49645 --Accounting Reversal Indicator
49646  , p_source_53            IN VARCHAR2
49647 --Distribution Link Type
49648  , p_source_55            IN VARCHAR2
49649 --Override Accounted Amount Indicator
49650  , p_source_80            IN VARCHAR2
49651  , p_source_80_meaning    IN VARCHAR2
49652 --Third Party Type
49653  , p_source_83            IN VARCHAR2
49654 --Invoice Distribution Tax Line Identifier
49655  , p_source_86            IN NUMBER
49656 --Invoice Distribution Tax Distribution Identifier from Tax
49657  , p_source_87            IN NUMBER
49658 --Invoice Distribution Summary Tax Line Identifier
49659  , p_source_88            IN NUMBER
49660 --Business Flow Accounts Payable Application Identifier
49661  , p_source_91            IN NUMBER
49662 --Business Flow Invoice Distribution Type
49663  , p_source_92            IN VARCHAR2
49664 --Business Flow Invoice Entity Code
49665  , p_source_93            IN VARCHAR2
49666 --Business Flow Invoice Distribution Identifier
49667  , p_source_94            IN NUMBER
49668 --Business Flow Invoice Identifier
49669  , p_source_95            IN NUMBER
49670 --When to Account for Payment Option
49671  , p_source_97            IN VARCHAR2
49672 --Payment Distribution Type
49673  , p_source_98            IN VARCHAR2
49674  , p_source_98_meaning    IN VARCHAR2
49675 --Payment Distribution Amount
49676  , p_source_99            IN NUMBER
49677 --Payment Distribution Identifier
49678  , p_source_104            IN NUMBER
49679 --Payment Supplier Identifier
49680  , p_source_110            IN NUMBER
49681 --Payment Supplier Site Identifier
49682  , p_source_111            IN NUMBER
49683 --Payment Distribution Reversed Identifier
49684  , p_source_112            IN NUMBER
49685 --Payment Distribution (Invoice Rate) Ledger Amount
49686  , p_source_116            IN NUMBER
49687 --Payment Type
49688  , p_source_122            IN VARCHAR2
49689  , p_source_122_meaning    IN VARCHAR2
49690 --Invoice Exchange Date
49691  , p_source_143            IN DATE
49692 --Invoice Exchange Rate
49693  , p_source_144            IN NUMBER
49694 --Invoice Exchange Rate Type
49695  , p_source_145            IN VARCHAR2
49696 )
49697 IS
49698 
49699 l_component_type              VARCHAR2(80);
49700 l_component_code              VARCHAR2(30);
49701 l_component_type_code         VARCHAR2(1);
49702 l_component_appl_id           INTEGER;
49703 l_amb_context_code            VARCHAR2(30);
49704 l_entity_code                 VARCHAR2(30);
49705 l_event_class_code            VARCHAR2(30);
49706 l_ae_header_id                NUMBER;
49707 l_event_type_code             VARCHAR2(30);
49708 l_line_definition_code        VARCHAR2(30);
49709 l_line_definition_owner_code  VARCHAR2(1);
49710 --
49711 -- adr variables
49712 l_segment                     VARCHAR2(30);
49713 l_ccid                        NUMBER;
49714 l_adr_transaction_coa_id      NUMBER;
49715 l_adr_accounting_coa_id       NUMBER;
49716 l_adr_flexfield_segment_code  VARCHAR2(30);
49717 l_adr_flex_value_set_id       NUMBER;
49718 l_adr_value_type_code         VARCHAR2(30);
49719 l_adr_value_combination_id    NUMBER;
49720 l_adr_value_segment_code      VARCHAR2(30);
49721 
49722 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
49723 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
49724 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
49725 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
49726 
49727 -- 4262811 Variables ------------------------------------------------------------------------------------------
49728 l_entered_amt_idx             NUMBER;
49729 l_accted_amt_idx              NUMBER;
49730 l_acc_rev_flag                VARCHAR2(1);
49731 l_accrual_line_num            NUMBER;
49732 l_tmp_amt                     NUMBER;
49733 l_acc_rev_natural_side_code   VARCHAR2(1);
49734 
49735 l_num_entries                 NUMBER;
49736 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
49737 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
49738 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
49739 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
49740 l_recog_line_1                NUMBER;
49741 l_recog_line_2                NUMBER;
49742 
49743 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
49747 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
49744 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
49745 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
49746 
49748 
49749 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
49750 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
49751 
49752 ---------------------------------------------------------------------------------------------------------------
49753 
49754 
49755 --
49756 -- bulk performance
49757 --
49758 l_balance_type_code           VARCHAR2(1);
49759 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
49760 l_log_module                  VARCHAR2(240);
49761 
49762 --
49763 -- Upgrade strategy
49764 --
49765 l_actual_upg_option           VARCHAR2(1);
49766 l_enc_upg_option           VARCHAR2(1);
49767 
49768 --
49769 BEGIN
49770 --
49771 IF g_log_enabled THEN
49772       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_106';
49773 END IF;
49774 --
49775 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49776 
49777       trace
49778          (p_msg      => 'BEGIN of AcctLineType_106'
49779          ,p_level    => C_LEVEL_PROCEDURE
49780          ,p_module   => l_log_module);
49781 
49782 END IF;
49783 --
49784 l_component_type             := 'AMB_JLT';
49785 l_component_code             := 'AP_DISCOUNT_ACCR_REF';
49786 l_component_type_code        := 'S';
49787 l_component_appl_id          :=  200;
49788 l_amb_context_code           := 'DEFAULT';
49789 l_entity_code                := 'AP_PAYMENTS';
49790 l_event_class_code           := 'REFUNDS';
49791 l_event_type_code            := 'REFUNDS_ALL';
49792 l_line_definition_owner_code := 'S';
49793 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
49794 --
49795 l_balance_type_code          := 'A';
49796 l_segment                     := NULL;
49797 l_ccid                        := NULL;
49798 l_adr_transaction_coa_id      := NULL;
49799 l_adr_accounting_coa_id       := NULL;
49800 l_adr_flexfield_segment_code  := NULL;
49801 l_adr_flex_value_set_id       := NULL;
49802 l_adr_value_type_code         := NULL;
49803 l_adr_value_combination_id    := NULL;
49804 l_adr_value_segment_code      := NULL;
49805 
49806 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
49807 l_bflow_class_code           := '';    -- 4219869 Business Flow
49808 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
49809 l_budgetary_control_flag     := 'N';
49810 
49811 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
49812 l_bflow_applied_to_amt       := NULL; -- 5132302
49813 l_entered_amt_idx            := NULL;          -- 4262811
49814 l_accted_amt_idx             := NULL;          -- 4262811
49815 l_acc_rev_flag               := NULL;          -- 4262811
49816 l_accrual_line_num           := NULL;          -- 4262811
49817 l_tmp_amt                    := NULL;          -- 4262811
49818 --
49819  
49820 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
49821     l_balance_type_code <> 'B' THEN
49822 IF NVL(p_source_97,'
49823 ') <>  'CLEAR_CLEAR' AND 
49824 NVL(p_source_98,'
49825 ') =  'DISCOUNT' AND 
49826 NVL(p_source_122,'
49827 ') =  'R'
49828  THEN 
49829 
49830    --
49831    XLA_AE_LINES_PKG.SetNewLine;
49832 
49833    p_balance_type_code          := l_balance_type_code;
49834    -- set the flag so later we will know whether the gain loss line needs to be created
49835    
49836    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
49837      p_actual_flag :='A';
49838    END IF;
49839 
49840    --
49841    -- bulk performance
49842    --
49843    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
49844                                       p_header_num   => 0); -- 4262811
49845    --
49846    -- set accounting line options
49847    --
49848    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
49849            p_natural_side_code          => 'C'
49850          , p_gain_or_loss_flag          => 'N'
49851          , p_gl_transfer_mode_code      => 'S'
49852          , p_acct_entry_type_code       => 'A'
49853          , p_switch_side_flag           => 'Y'
49854          , p_merge_duplicate_code       => 'A'
49855          );
49856    --
49857    l_acc_rev_natural_side_code := 'D';  -- 4262811
49858    -- 
49859    --
49860    -- set accounting line type info
49861    --
49862    xla_ae_lines_pkg.SetAcctLineType
49863       (p_component_type             => l_component_type
49864       ,p_event_type_code            => l_event_type_code
49865       ,p_line_definition_owner_code => l_line_definition_owner_code
49866       ,p_line_definition_code       => l_line_definition_code
49867       ,p_accounting_line_code       => l_component_code
49868       ,p_accounting_line_type_code  => l_component_type_code
49869       ,p_accounting_line_appl_id    => l_component_appl_id
49870       ,p_amb_context_code           => l_amb_context_code
49871       ,p_entity_code                => l_entity_code
49872       ,p_event_class_code           => l_event_class_code);
49873    --
49874    -- set accounting class
49875    --
49876    xla_ae_lines_pkg.SetAcctClass(
49877            p_accounting_class_code  => 'DISCOUNT'
49878          , p_ae_header_id           => l_ae_header_id
49879          );
49883    --
49880 
49881    --
49882    -- set rounding class
49884    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
49885                       'DISCOUNT';
49886 
49887    --
49888    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
49889    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
49890    --
49891    -- bulk performance
49892    --
49893    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
49894 
49895    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
49896       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
49897 
49898    -- 4955764
49899    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49900       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
49901 
49902    -- 4458381 Public Sector Enh
49903    
49904    --
49905    -- set accounting attributes for the line type
49906    --
49907    l_entered_amt_idx := 9;
49908    l_accted_amt_idx  := 14;
49909    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
49910    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
49911    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
49912    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
49913    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
49914    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
49915    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
49916    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
49917    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
49918    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
49919    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
49920    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
49921    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
49922    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
49923    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
49924    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
49925    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
49926    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
49927    l_rec_acct_attrs.array_num_value(9)  := p_source_99;
49928    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
49929    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
49930    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
49931    l_rec_acct_attrs.array_date_value(11)  := p_source_143;
49932    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
49933    l_rec_acct_attrs.array_num_value(12)  := p_source_144;
49934    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
49935    l_rec_acct_attrs.array_char_value(13)  := p_source_145;
49936    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
49937    l_rec_acct_attrs.array_num_value(14)  := p_source_116;
49938    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
49939    l_rec_acct_attrs.array_char_value(15)  := p_source_80;
49940    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
49941    l_rec_acct_attrs.array_num_value(16)  := p_source_110;
49942    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
49943    l_rec_acct_attrs.array_num_value(17)  := p_source_111;
49944    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
49945    l_rec_acct_attrs.array_char_value(18)  := p_source_83;
49946    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
49947    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_112);
49948    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
49949    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
49950    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
49951    l_rec_acct_attrs.array_num_value(21)  := p_source_86;
49952    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
49953    l_rec_acct_attrs.array_num_value(22)  := p_source_87;
49954    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
49955    l_rec_acct_attrs.array_num_value(23)  := p_source_88;
49956 
49957    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
49958    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
49959 
49960    ---------------------------------------------------------------------------------------------------------------
49961    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
49962    ---------------------------------------------------------------------------------------------------------------
49963    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
49964 
49965    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49966    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49967 
49968    IF xla_accounting_cache_pkg.GetValueChar
49969          (p_source_code         => 'LEDGER_CATEGORY_CODE'
49970          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
49971    AND l_bflow_method_code = 'PRIOR_ENTRY'
49975        )
49972 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
49973    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
49974          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
49976    THEN
49977          xla_ae_lines_pkg.BflowUpgEntry
49978            (p_business_method_code    => l_bflow_method_code
49979            ,p_business_class_code     => l_bflow_class_code
49980            ,p_balance_type            => l_balance_type_code);
49981    ELSE
49982       NULL;
49983 -- No business flow processing for business flow method of NONE.
49984    END IF;
49985 
49986    --
49987    -- call analytical criteria
49988    --
49989    
49990    --
49991    -- call description
49992    --
49993    -- No description or it is inherited.
49994    --
49995    -- call ADRs
49996    -- Bug 4922099
49997    --
49998    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49999         (NVL(l_actual_upg_option, 'N') = 'O') OR
50000         (NVL(l_enc_upg_option, 'N') = 'O')
50001       )
50002    THEN
50003    NULL;
50004    --
50005    --
50006    
50007   l_ccid := AcctDerRule_29(
50008            p_application_id           => p_application_id
50009          , p_ae_header_id             => l_ae_header_id 
50010 , p_source_15 => p_source_15
50011 , p_source_15_meaning => p_source_15_meaning
50012 , p_source_18 => p_source_18
50013 , p_source_19 => p_source_19
50014 , p_source_19_meaning => p_source_19_meaning
50015 , p_source_30 => p_source_30
50016 , p_source_33 => p_source_33
50017 , p_source_33_meaning => p_source_33_meaning
50018 , p_source_44 => p_source_44
50019 , p_source_45 => p_source_45
50020 , p_source_46 => p_source_46
50021          , x_transaction_coa_id       => l_adr_transaction_coa_id
50022          , x_accounting_coa_id        => l_adr_accounting_coa_id
50023          , x_value_type_code          => l_adr_value_type_code
50024          , p_side                     => 'NA'
50025    );
50026 
50027    xla_ae_lines_pkg.set_ccid(
50028     p_code_combination_id          => l_ccid
50029   , p_value_type_code              => l_adr_value_type_code
50030   , p_transaction_coa_id           => l_adr_transaction_coa_id
50031   , p_accounting_coa_id            => l_adr_accounting_coa_id
50032   , p_adr_code                     => 'AP_DISCOUNT'
50033   , p_adr_type_code                => 'S'
50034   , p_component_type               => l_component_type
50035   , p_component_code               => l_component_code
50036   , p_component_type_code          => l_component_type_code
50037   , p_component_appl_id            => l_component_appl_id
50038   , p_amb_context_code             => l_amb_context_code
50039   , p_side                         => 'NA'
50040   );
50041 
50042 
50043    l_segment := AcctDerRule_21(
50044            p_application_id           => p_application_id
50045          , p_ae_header_id             => l_ae_header_id 
50046 , p_source_15 => p_source_15
50047 , p_source_15_meaning => p_source_15_meaning
50048 , p_source_19 => p_source_19
50049 , p_source_19_meaning => p_source_19_meaning
50050 , p_source_30 => p_source_30
50051          , x_transaction_coa_id       => l_adr_transaction_coa_id
50052          , x_accounting_coa_id        => l_adr_accounting_coa_id
50053          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
50054          , x_flex_value_set_id        => l_adr_flex_value_set_id
50055          , x_value_type_code          => l_adr_value_type_code
50056          , x_value_combination_id     => l_adr_value_combination_id
50057          , x_value_segment_code       => l_adr_value_segment_code
50058          , p_side                     => 'NA'
50059          , p_override_seg_flag        => 'Y'
50060    );
50061 
50062    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
50063 
50064       xla_ae_lines_pkg.set_segment(
50065           p_to_segment_code         => 'GL_BALANCING'
50066         , p_segment_value           => l_segment
50067         , p_from_segment_code       => l_adr_value_segment_code
50068         , p_from_combination_id     => l_adr_value_combination_id
50069         , p_value_type_code         => l_adr_value_type_code
50070         , p_transaction_coa_id      => l_adr_transaction_coa_id
50071         , p_accounting_coa_id       => l_adr_accounting_coa_id
50072         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
50073         , p_flex_value_set_id       => l_adr_flex_value_set_id
50074         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
50075         , p_adr_type_code           => 'S'
50076         , p_component_type          => l_component_type
50077         , p_component_code          => l_component_code
50078         , p_component_type_code     => l_component_type_code
50079         , p_component_appl_id       => l_component_appl_id
50080         , p_amb_context_code        => l_amb_context_code
50081         , p_entity_code             => 'AP_PAYMENTS'
50082         , p_event_class_code        => 'REFUNDS'
50083         , p_side                    => 'NA'
50084         );
50085 
50086   END IF;
50087 
50088    l_segment := AcctDerRule_7(
50089            p_application_id           => p_application_id
50090          , p_ae_header_id             => l_ae_header_id 
50091 , p_source_15 => p_source_15
50092 , p_source_15_meaning => p_source_15_meaning
50093 , p_source_18 => p_source_18
50094 , p_source_19 => p_source_19
50095 , p_source_19_meaning => p_source_19_meaning
50099          , x_flex_value_set_id        => l_adr_flex_value_set_id
50096          , x_transaction_coa_id       => l_adr_transaction_coa_id
50097          , x_accounting_coa_id        => l_adr_accounting_coa_id
50098          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
50100          , x_value_type_code          => l_adr_value_type_code
50101          , x_value_combination_id     => l_adr_value_combination_id
50102          , x_value_segment_code       => l_adr_value_segment_code
50103          , p_side                     => 'NA'
50104          , p_override_seg_flag        => 'Y'
50105    );
50106 
50107    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
50108 
50109       xla_ae_lines_pkg.set_segment(
50110           p_to_segment_code         => 'GL_ACCOUNT'
50111         , p_segment_value           => l_segment
50112         , p_from_segment_code       => l_adr_value_segment_code
50113         , p_from_combination_id     => l_adr_value_combination_id
50114         , p_value_type_code         => l_adr_value_type_code
50115         , p_transaction_coa_id      => l_adr_transaction_coa_id
50116         , p_accounting_coa_id       => l_adr_accounting_coa_id
50117         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
50118         , p_flex_value_set_id       => l_adr_flex_value_set_id
50119         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
50120         , p_adr_type_code           => 'S'
50121         , p_component_type          => l_component_type
50122         , p_component_code          => l_component_code
50123         , p_component_type_code     => l_component_type_code
50124         , p_component_appl_id       => l_component_appl_id
50125         , p_amb_context_code        => l_amb_context_code
50126         , p_entity_code             => 'AP_PAYMENTS'
50127         , p_event_class_code        => 'REFUNDS'
50128         , p_side                    => 'NA'
50129         );
50130 
50131   END IF;
50132 
50133    --
50134    --
50135    END IF;
50136    --
50137    -- Bug 4922099
50138    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
50139           (NVL(l_enc_upg_option, 'N') = 'O')
50140         ) AND
50141         (l_bflow_method_code = 'PRIOR_ENTRY')
50142       )
50143    THEN
50144       IF
50145       --
50146       1 = 2
50147       --
50148       THEN
50149       xla_accounting_err_pkg.build_message
50150                                     (p_appli_s_name            => 'XLA'
50151                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50152                                     ,p_token_1                 => 'LINE_NUMBER'
50153                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
50154                                     ,p_token_2                 => 'LINE_TYPE_NAME'
50155                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
50156                                                                              l_component_type
50157                                                                             ,l_component_code
50158                                                                             ,l_component_type_code
50159                                                                             ,l_component_appl_id
50160                                                                             ,l_amb_context_code
50161                                                                             ,l_entity_code
50162                                                                             ,l_event_class_code
50163                                                                            )
50164                                     ,p_token_3                 => 'OWNER'
50165                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
50166                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
50167                                                                           ,p_lookup_code    => l_component_type_code
50168                                                                          )
50169                                     ,p_token_4                 => 'PRODUCT_NAME'
50170                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
50171                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
50172                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
50173                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
50174                                     ,p_ae_header_id            =>  NULL
50175                                        );
50176 
50177         IF (C_LEVEL_ERROR>= g_log_level) THEN
50178                  trace
50179                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50180                       ,p_level    => C_LEVEL_ERROR
50181                       ,p_module   => l_log_module);
50182         END IF;
50183       END IF;
50184    END IF;
50185    --
50186    --
50187    ------------------------------------------------------------------------------------------------
50188    -- 4219869 Business Flow
50189    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
50190    -- Prior Entry.  Currently, the following code is always generated.
50191    ------------------------------------------------------------------------------------------------
50192    XLA_AE_LINES_PKG.ValidateCurrentLine;
50193 
50197    ------------------------------------------------------------------------------------
50194    ------------------------------------------------------------------------------------
50195    -- 4219869 Business Flow
50196    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
50198    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50199 
50200    ----------------------------------------------------------------------------------
50201    -- 4219869 Business Flow
50202    -- Update journal entry status -- Need to generate this within IF <condition>
50203    ----------------------------------------------------------------------------------
50204    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50205          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
50206          ,p_balance_type_code => l_balance_type_code
50207          );
50208 
50209    -------------------------------------------------------------------------------------------
50210    -- 4262811 - Generate the Accrual Reversal lines
50211    -------------------------------------------------------------------------------------------
50212    BEGIN
50213       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
50214                               (g_array_event(p_event_id).array_value_num('header_index'));
50215       IF l_acc_rev_flag IS NULL THEN
50216          l_acc_rev_flag := 'N';
50217       END IF;
50218    EXCEPTION
50219       WHEN OTHERS THEN
50220          l_acc_rev_flag := 'N';
50221    END;
50222    --
50223    IF (l_acc_rev_flag = 'Y') THEN
50224 
50225        -- 4645092  ------------------------------------------------------------------------------
50226        -- To allow MPA report to determine if it should generate report process
50227        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
50228        ------------------------------------------------------------------------------------------
50229 
50230        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
50231        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
50232    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
50233    -- call ADRs
50234    -- Bug 4922099
50235    --
50236    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50237         (NVL(l_actual_upg_option, 'N') = 'O') OR
50238         (NVL(l_enc_upg_option, 'N') = 'O')
50239       )
50240    THEN
50241    NULL;
50242    --
50243    --
50244    
50245   l_ccid := AcctDerRule_29(
50246            p_application_id           => p_application_id
50247          , p_ae_header_id             => l_ae_header_id 
50248 , p_source_15 => p_source_15
50249 , p_source_15_meaning => p_source_15_meaning
50250 , p_source_18 => p_source_18
50251 , p_source_19 => p_source_19
50252 , p_source_19_meaning => p_source_19_meaning
50253 , p_source_30 => p_source_30
50254 , p_source_33 => p_source_33
50255 , p_source_33_meaning => p_source_33_meaning
50256 , p_source_44 => p_source_44
50257 , p_source_45 => p_source_45
50258 , p_source_46 => p_source_46
50259          , x_transaction_coa_id       => l_adr_transaction_coa_id
50260          , x_accounting_coa_id        => l_adr_accounting_coa_id
50261          , x_value_type_code          => l_adr_value_type_code
50262          , p_side                     => 'NA'
50263    );
50264 
50265    xla_ae_lines_pkg.set_ccid(
50266     p_code_combination_id          => l_ccid
50267   , p_value_type_code              => l_adr_value_type_code
50268   , p_transaction_coa_id           => l_adr_transaction_coa_id
50269   , p_accounting_coa_id            => l_adr_accounting_coa_id
50270   , p_adr_code                     => 'AP_DISCOUNT'
50271   , p_adr_type_code                => 'S'
50272   , p_component_type               => l_component_type
50273   , p_component_code               => l_component_code
50274   , p_component_type_code          => l_component_type_code
50275   , p_component_appl_id            => l_component_appl_id
50276   , p_amb_context_code             => l_amb_context_code
50277   , p_side                         => 'NA'
50278   );
50279 
50280 
50281    l_segment := AcctDerRule_21(
50282            p_application_id           => p_application_id
50283          , p_ae_header_id             => l_ae_header_id 
50284 , p_source_15 => p_source_15
50285 , p_source_15_meaning => p_source_15_meaning
50286 , p_source_19 => p_source_19
50287 , p_source_19_meaning => p_source_19_meaning
50288 , p_source_30 => p_source_30
50289          , x_transaction_coa_id       => l_adr_transaction_coa_id
50290          , x_accounting_coa_id        => l_adr_accounting_coa_id
50291          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
50292          , x_flex_value_set_id        => l_adr_flex_value_set_id
50293          , x_value_type_code          => l_adr_value_type_code
50294          , x_value_combination_id     => l_adr_value_combination_id
50295          , x_value_segment_code       => l_adr_value_segment_code
50296          , p_side                     => 'NA'
50297          , p_override_seg_flag        => 'Y'
50298    );
50299 
50300    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
50301 
50302       xla_ae_lines_pkg.set_segment(
50303           p_to_segment_code         => 'GL_BALANCING'
50304         , p_segment_value           => l_segment
50305         , p_from_segment_code       => l_adr_value_segment_code
50306         , p_from_combination_id     => l_adr_value_combination_id
50307         , p_value_type_code         => l_adr_value_type_code
50311         , p_flex_value_set_id       => l_adr_flex_value_set_id
50308         , p_transaction_coa_id      => l_adr_transaction_coa_id
50309         , p_accounting_coa_id       => l_adr_accounting_coa_id
50310         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
50312         , p_adr_code                => 'AP_DISCOUNT_BAL_ACCT_SEG'
50313         , p_adr_type_code           => 'S'
50314         , p_component_type          => l_component_type
50315         , p_component_code          => l_component_code
50316         , p_component_type_code     => l_component_type_code
50317         , p_component_appl_id       => l_component_appl_id
50318         , p_amb_context_code        => l_amb_context_code
50319         , p_entity_code             => 'AP_PAYMENTS'
50320         , p_event_class_code        => 'REFUNDS'
50321         , p_side                    => 'NA'
50322         );
50323 
50324   END IF;
50325 
50326    l_segment := AcctDerRule_7(
50327            p_application_id           => p_application_id
50328          , p_ae_header_id             => l_ae_header_id 
50329 , p_source_15 => p_source_15
50330 , p_source_15_meaning => p_source_15_meaning
50331 , p_source_18 => p_source_18
50332 , p_source_19 => p_source_19
50333 , p_source_19_meaning => p_source_19_meaning
50334          , x_transaction_coa_id       => l_adr_transaction_coa_id
50335          , x_accounting_coa_id        => l_adr_accounting_coa_id
50336          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
50337          , x_flex_value_set_id        => l_adr_flex_value_set_id
50338          , x_value_type_code          => l_adr_value_type_code
50339          , x_value_combination_id     => l_adr_value_combination_id
50340          , x_value_segment_code       => l_adr_value_segment_code
50341          , p_side                     => 'NA'
50342          , p_override_seg_flag        => 'Y'
50343    );
50344 
50345    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
50346 
50347       xla_ae_lines_pkg.set_segment(
50348           p_to_segment_code         => 'GL_ACCOUNT'
50349         , p_segment_value           => l_segment
50350         , p_from_segment_code       => l_adr_value_segment_code
50351         , p_from_combination_id     => l_adr_value_combination_id
50352         , p_value_type_code         => l_adr_value_type_code
50353         , p_transaction_coa_id      => l_adr_transaction_coa_id
50354         , p_accounting_coa_id       => l_adr_accounting_coa_id
50355         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
50356         , p_flex_value_set_id       => l_adr_flex_value_set_id
50357         , p_adr_code                => 'AP_DISCOUNT_NAT_ACCT_SEG'
50358         , p_adr_type_code           => 'S'
50359         , p_component_type          => l_component_type
50360         , p_component_code          => l_component_code
50361         , p_component_type_code     => l_component_type_code
50362         , p_component_appl_id       => l_component_appl_id
50363         , p_amb_context_code        => l_amb_context_code
50364         , p_entity_code             => 'AP_PAYMENTS'
50365         , p_event_class_code        => 'REFUNDS'
50366         , p_side                    => 'NA'
50367         );
50368 
50369   END IF;
50370 
50371    --
50372    --
50373    END IF;
50374 
50375        --
50376        -- Update the line information that should be overwritten
50377        --
50378        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
50379                                          p_header_num   => 1);
50380        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
50381 
50382        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
50383 
50384        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
50385           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
50386        END IF;
50387 
50388       --
50389       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
50390       --
50391       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
50392           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
50393       ELSE
50394           ---------------------------------------------------------------------------------------------------
50395           -- 4262811a Switch Sign
50396           ---------------------------------------------------------------------------------------------------
50397           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
50398           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50399                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50400           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50401                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50402           -- 5132302
50403           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
50404                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50405 
50406       END IF;
50407 
50408       -- 4955764
50409       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50410       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
50411 
50412 
50416       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50413       XLA_AE_LINES_PKG.ValidateCurrentLine;
50414       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50415 
50417                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
50418                ,p_balance_type_code => l_balance_type_code);
50419 
50420    END IF;
50421 
50422    -----------------------------------------------------------------------------------------
50423    -- 4262811 Multiperiod Accounting
50424    -----------------------------------------------------------------------------------------
50425      -- No MPA option is assigned.
50426 
50427 
50428 END IF;
50429 END IF;
50430 --
50431 
50432 --
50433 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50434    trace
50435       (p_msg      => 'END of AcctLineType_106'
50436       ,p_level    => C_LEVEL_PROCEDURE
50437       ,p_module   => l_log_module);
50438 END IF;
50439 --
50440 EXCEPTION
50441   WHEN xla_exceptions_pkg.application_exception THEN
50442       RAISE;
50443   WHEN OTHERS THEN
50444        xla_exceptions_pkg.raise_message
50445            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_106');
50446 END AcctLineType_106;
50447 --
50448 
50449 ---------------------------------------
50450 --
50451 -- PRIVATE FUNCTION
50452 --         AcctLineType_107
50453 --
50454 ---------------------------------------
50455 PROCEDURE AcctLineType_107 (
50456   p_application_id        IN NUMBER
50457  ,p_event_id              IN NUMBER
50458  ,p_calculate_acctd_flag  IN VARCHAR2
50459  ,p_calculate_g_l_flag    IN VARCHAR2
50460  ,p_actual_flag           IN OUT VARCHAR2
50461  ,p_balance_type_code     OUT VARCHAR2
50462  ,p_gain_or_loss_ref      OUT VARCHAR2
50463  
50464 --Invoice Distribution Description
50465  , p_source_1            IN VARCHAR2
50466 --Automatic Offsets Value
50467  , p_source_15            IN VARCHAR2
50468  , p_source_15_meaning    IN VARCHAR2
50469 --Purchase Order Rate Variance Gain Account
50470  , p_source_20            IN NUMBER
50471 --Invoice Distribution Ledger Amount
50472  , p_source_21            IN NUMBER
50473 --Destination Type of the PO Distribution
50474  , p_source_22            IN VARCHAR2
50475  , p_source_22_meaning    IN VARCHAR2
50476 --Purchase Order Rate Variance Loss Account
50477  , p_source_23            IN NUMBER
50478 --Invoice Distribution Account
50479  , p_source_30            IN NUMBER
50480 --Invoice Distribution Type
50481  , p_source_33            IN VARCHAR2
50482  , p_source_33_meaning    IN VARCHAR2
50483 --Automatic Offsets Flag
50484  , p_source_47            IN VARCHAR2
50485  , p_source_47_meaning    IN VARCHAR2
50486 --Accounting Reversal Indicator
50487  , p_source_53            IN VARCHAR2
50488 --Distribution Link Type
50489  , p_source_55            IN VARCHAR2
50490 --Allocation to Main Distribution Identifier
50491  , p_source_57            IN NUMBER
50492 --Invoice Identifier
50493  , p_source_58            IN NUMBER
50494 --Invoice Distribution Identifier
50495  , p_source_64            IN NUMBER
50496 --Payables Encumbrance Upgrade Credit Account
50497  , p_source_65            IN NUMBER
50498 --Payables Encumbrance Upgrade Credit Amount
50499  , p_source_66            IN NUMBER
50500 --Invoice Currency Code
50501  , p_source_67            IN VARCHAR2
50502 --Payables Encumbrance Upgrade Credit Base Amount
50503  , p_source_68            IN NUMBER
50504 --Payables Encumbrance Upgrade Debit Account
50505  , p_source_69            IN NUMBER
50506 --Payables Encumbrance Upgrade Debit Amount
50507  , p_source_70            IN NUMBER
50508 --Payables Encumbrance Upgrade Debit Base Amount
50509  , p_source_71            IN NUMBER
50510 --Payables Encumbrance Upgrade Option
50511  , p_source_72            IN VARCHAR2
50512 --Invoice Distribution Amount
50513  , p_source_73            IN NUMBER
50514 --Deferred Accounting End Date
50515  , p_source_77            IN DATE
50516 --Deferred Accounting Option
50517  , p_source_78            IN VARCHAR2
50518 --Deferred Accounting Start Date
50519  , p_source_79            IN DATE
50520 --Override Accounted Amount Indicator
50521  , p_source_80            IN VARCHAR2
50522  , p_source_80_meaning    IN VARCHAR2
50523 --Invoice Supplier Identifier
50524  , p_source_81            IN NUMBER
50525 --Invoice Supplier Site Identifier
50526  , p_source_82            IN NUMBER
50527 --Third Party Type
50528  , p_source_83            IN VARCHAR2
50529 --Parent Reversal Identifier
50530  , p_source_84            IN NUMBER
50531 --Invoice Distribution Statistical Amount
50532  , p_source_85            IN NUMBER
50533 --Invoice Distribution Tax Line Identifier
50534  , p_source_86            IN NUMBER
50535 --Invoice Distribution Tax Distribution Identifier from Tax
50536  , p_source_87            IN NUMBER
50537 --Invoice Distribution Summary Tax Line Identifier
50538  , p_source_88            IN NUMBER
50539 --Payables Upgrade Credit Encumbrance Type Identifier
50540  , p_source_89            IN NUMBER
50541 --Payables Upgrade Debit Encumbrance Type Identifier
50542  , p_source_90            IN NUMBER
50543 --Business Flow Accounts Payable Application Identifier
50544  , p_source_91            IN NUMBER
50545 --Business Flow Invoice Distribution Type
50546  , p_source_92            IN VARCHAR2
50547 --Business Flow Invoice Entity Code
50551 --Business Flow Invoice Identifier
50548  , p_source_93            IN VARCHAR2
50549 --Business Flow Invoice Distribution Identifier
50550  , p_source_94            IN NUMBER
50552  , p_source_95            IN NUMBER
50553 --Accrue on Receipt Option
50554  , p_source_96            IN VARCHAR2
50555  , p_source_96_meaning    IN VARCHAR2
50556 --Invoice Exchange Date
50557  , p_source_143            IN DATE
50558 --Invoice Exchange Rate
50559  , p_source_144            IN NUMBER
50560 --Invoice Exchange Rate Type
50561  , p_source_145            IN VARCHAR2
50562 )
50563 IS
50564 
50565 l_component_type              VARCHAR2(80);
50566 l_component_code              VARCHAR2(30);
50567 l_component_type_code         VARCHAR2(1);
50568 l_component_appl_id           INTEGER;
50569 l_amb_context_code            VARCHAR2(30);
50570 l_entity_code                 VARCHAR2(30);
50571 l_event_class_code            VARCHAR2(30);
50572 l_ae_header_id                NUMBER;
50573 l_event_type_code             VARCHAR2(30);
50574 l_line_definition_code        VARCHAR2(30);
50575 l_line_definition_owner_code  VARCHAR2(1);
50576 --
50577 -- adr variables
50578 l_segment                     VARCHAR2(30);
50579 l_ccid                        NUMBER;
50580 l_adr_transaction_coa_id      NUMBER;
50581 l_adr_accounting_coa_id       NUMBER;
50582 l_adr_flexfield_segment_code  VARCHAR2(30);
50583 l_adr_flex_value_set_id       NUMBER;
50584 l_adr_value_type_code         VARCHAR2(30);
50585 l_adr_value_combination_id    NUMBER;
50586 l_adr_value_segment_code      VARCHAR2(30);
50587 
50588 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
50589 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
50590 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
50591 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
50592 
50593 -- 4262811 Variables ------------------------------------------------------------------------------------------
50594 l_entered_amt_idx             NUMBER;
50595 l_accted_amt_idx              NUMBER;
50596 l_acc_rev_flag                VARCHAR2(1);
50597 l_accrual_line_num            NUMBER;
50598 l_tmp_amt                     NUMBER;
50599 l_acc_rev_natural_side_code   VARCHAR2(1);
50600 
50601 l_num_entries                 NUMBER;
50602 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
50603 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
50604 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
50605 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
50606 l_recog_line_1                NUMBER;
50607 l_recog_line_2                NUMBER;
50608 
50609 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
50610 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
50611 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
50612 
50613 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
50614 
50615 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
50616 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
50617 
50618 ---------------------------------------------------------------------------------------------------------------
50619 
50620 
50621 --
50622 -- bulk performance
50623 --
50624 l_balance_type_code           VARCHAR2(1);
50625 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
50626 l_log_module                  VARCHAR2(240);
50627 
50628 --
50629 -- Upgrade strategy
50630 --
50631 l_actual_upg_option           VARCHAR2(1);
50632 l_enc_upg_option           VARCHAR2(1);
50633 
50634 --
50635 BEGIN
50636 --
50637 IF g_log_enabled THEN
50638       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_107';
50639 END IF;
50640 --
50641 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50642 
50643       trace
50644          (p_msg      => 'BEGIN of AcctLineType_107'
50645          ,p_level    => C_LEVEL_PROCEDURE
50646          ,p_module   => l_log_module);
50647 
50648 END IF;
50649 --
50650 l_component_type             := 'AMB_JLT';
50651 l_component_code             := 'AP_EX_RATE_VAR_CM';
50652 l_component_type_code        := 'S';
50653 l_component_appl_id          :=  200;
50654 l_amb_context_code           := 'DEFAULT';
50655 l_entity_code                := 'AP_INVOICES';
50656 l_event_class_code           := 'CREDIT MEMOS';
50657 l_event_type_code            := 'CREDIT MEMOS_ALL';
50658 l_line_definition_owner_code := 'S';
50659 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
50660 --
50661 l_balance_type_code          := 'A';
50662 l_segment                     := NULL;
50663 l_ccid                        := NULL;
50664 l_adr_transaction_coa_id      := NULL;
50665 l_adr_accounting_coa_id       := NULL;
50666 l_adr_flexfield_segment_code  := NULL;
50667 l_adr_flex_value_set_id       := NULL;
50668 l_adr_value_type_code         := NULL;
50669 l_adr_value_combination_id    := NULL;
50670 l_adr_value_segment_code      := NULL;
50671 
50672 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
50673 l_bflow_class_code           := '';    -- 4219869 Business Flow
50674 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
50675 l_budgetary_control_flag     := 'N';
50676 
50680 l_accted_amt_idx             := NULL;          -- 4262811
50677 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
50678 l_bflow_applied_to_amt       := NULL; -- 5132302
50679 l_entered_amt_idx            := NULL;          -- 4262811
50681 l_acc_rev_flag               := NULL;          -- 4262811
50682 l_accrual_line_num           := NULL;          -- 4262811
50683 l_tmp_amt                    := NULL;          -- 4262811
50684 --
50685 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
50686             (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
50687                return;
50688   END IF;
50689   
50690 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
50691     l_balance_type_code <> 'B' THEN
50692 IF NVL(p_source_33,'
50693 ') =  'ERV' AND 
50694 NVL(p_source_96,'
50695 ') =  'Y'
50696  THEN 
50697 
50698    --
50699    XLA_AE_LINES_PKG.SetNewLine;
50700 
50701    p_balance_type_code          := l_balance_type_code;
50702    -- set the flag so later we will know whether the gain loss line needs to be created
50703    
50704    IF(l_balance_type_code = 'A' ) THEN
50705      p_actual_flag :='G';
50706    END IF;
50707 
50708    --
50709    -- bulk performance
50710    --
50711    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
50712                                       p_header_num   => 0); -- 4262811
50713    --
50714    -- set accounting line options
50715    --
50716    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
50717            p_natural_side_code          => 'D'
50718          , p_gain_or_loss_flag          => 'Y'
50719          , p_gl_transfer_mode_code      => 'S'
50720          , p_acct_entry_type_code       => 'A'
50721          , p_switch_side_flag           => 'Y'
50722          , p_merge_duplicate_code       => 'A'
50723          );
50724    --
50725    l_acc_rev_natural_side_code := 'C';  -- 4262811
50726    -- 
50727    --
50728    -- set accounting line type info
50729    --
50730    xla_ae_lines_pkg.SetAcctLineType
50731       (p_component_type             => l_component_type
50732       ,p_event_type_code            => l_event_type_code
50733       ,p_line_definition_owner_code => l_line_definition_owner_code
50734       ,p_line_definition_code       => l_line_definition_code
50735       ,p_accounting_line_code       => l_component_code
50736       ,p_accounting_line_type_code  => l_component_type_code
50737       ,p_accounting_line_appl_id    => l_component_appl_id
50738       ,p_amb_context_code           => l_amb_context_code
50739       ,p_entity_code                => l_entity_code
50740       ,p_event_class_code           => l_event_class_code);
50741    --
50742    -- set accounting class
50743    --
50744    xla_ae_lines_pkg.SetAcctClass(
50745            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
50746          , p_ae_header_id           => l_ae_header_id
50747          );
50748 
50749    --
50750    -- set rounding class
50751    --
50752    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
50753                       'EXCHANGE_RATE_VARIANCE';
50754 
50755    --
50756    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
50757    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
50758    --
50759    -- bulk performance
50760    --
50761    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
50762 
50763    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
50764       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
50765 
50766    -- 4955764
50767    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50768       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
50769 
50770    -- 4458381 Public Sector Enh
50771    
50772    --
50773    -- set accounting attributes for the line type
50774    --
50775    l_entered_amt_idx := 23;
50776    l_accted_amt_idx  := 28;
50777    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
50778    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
50779    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
50780    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
50781    l_rec_acct_attrs.array_num_value(2)  := 
50782 xla_ae_sources_pkg.GetSystemSourceNum(
50783    p_source_code           => 'XLA_EVENT_APPL_ID'
50784  , p_source_type_code      => 'Y'
50785  , p_source_application_id =>  602
50786 );
50787    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
50788    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
50789    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
50790    l_rec_acct_attrs.array_char_value(4)  := 
50791 xla_ae_sources_pkg.GetSystemSourceChar(
50792    p_source_code           => 'XLA_ENTITY_CODE'
50793  , p_source_type_code      => 'Y'
50794  , p_source_application_id =>  602
50795 );
50796    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
50797    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
50801    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
50798    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
50799    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
50800    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
50802    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
50803    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
50804    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
50805    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
50806    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
50807    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
50808    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
50809    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
50810    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
50811    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
50812    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
50813    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
50814    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
50815    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
50816    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
50817    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
50818    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
50819    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
50820    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
50821    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
50822    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
50823    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
50824    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
50825    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
50826    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
50827    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
50828    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
50829    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
50830    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
50831    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
50832    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
50833    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
50834    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
50835    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
50836    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
50837    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
50838    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
50839    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
50840    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
50841    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
50842    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
50843    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
50844    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
50845    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
50846    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
50847    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
50848    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
50849    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
50850    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
50851    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
50852    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
50853    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
50854    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
50855    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
50856    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
50857    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
50858    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
50859    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
50860    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
50861    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
50862    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
50863    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
50864    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
50865    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
50866    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
50867    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
50868    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
50869    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
50870    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
50871    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
50872    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
50873    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
50874 
50875    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
50876    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
50877 
50878    ---------------------------------------------------------------------------------------------------------------
50879    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
50880    ---------------------------------------------------------------------------------------------------------------
50884    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50881    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
50882 
50883    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50885 
50886    IF xla_accounting_cache_pkg.GetValueChar
50887          (p_source_code         => 'LEDGER_CATEGORY_CODE'
50888          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
50889    AND l_bflow_method_code = 'PRIOR_ENTRY'
50890 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
50891    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
50892          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
50893        )
50894    THEN
50895          xla_ae_lines_pkg.BflowUpgEntry
50896            (p_business_method_code    => l_bflow_method_code
50897            ,p_business_class_code     => l_bflow_class_code
50898            ,p_balance_type            => l_balance_type_code);
50899    ELSE
50900       NULL;
50901 -- No business flow processing for business flow method of NONE.
50902    END IF;
50903 
50904    --
50905    -- call analytical criteria
50906    --
50907    
50908    --
50909    -- call description
50910    --
50911    
50912 xla_ae_lines_pkg.SetLineDescription(
50913    p_ae_header_id => l_ae_header_id
50914   ,p_description  => Description_1 (
50915      p_application_id         => p_application_id
50916    , p_ae_header_id           => l_ae_header_id 
50917 , p_source_1 => p_source_1
50918    )
50919 );
50920 
50921 
50922    --
50923    -- call ADRs
50924    -- Bug 4922099
50925    --
50926    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50927         (NVL(l_actual_upg_option, 'N') = 'O') OR
50928         (NVL(l_enc_upg_option, 'N') = 'O')
50929       )
50930    THEN
50931    NULL;
50932    --
50933    --
50934    
50935   l_ccid := AcctDerRule_30(
50936            p_application_id           => p_application_id
50937          , p_ae_header_id             => l_ae_header_id 
50938 , p_source_15 => p_source_15
50939 , p_source_15_meaning => p_source_15_meaning
50940 , p_source_20 => p_source_20
50941 , p_source_21 => p_source_21
50942 , p_source_22 => p_source_22
50943 , p_source_22_meaning => p_source_22_meaning
50944 , p_source_23 => p_source_23
50945 , p_source_30 => p_source_30
50946 , p_source_47 => p_source_47
50947 , p_source_47_meaning => p_source_47_meaning
50948          , x_transaction_coa_id       => l_adr_transaction_coa_id
50949          , x_accounting_coa_id        => l_adr_accounting_coa_id
50950          , x_value_type_code          => l_adr_value_type_code
50951          , p_side                     => 'NA'
50952    );
50953 
50954    xla_ae_lines_pkg.set_ccid(
50955     p_code_combination_id          => l_ccid
50956   , p_value_type_code              => l_adr_value_type_code
50957   , p_transaction_coa_id           => l_adr_transaction_coa_id
50958   , p_accounting_coa_id            => l_adr_accounting_coa_id
50959   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
50960   , p_adr_type_code                => 'S'
50961   , p_component_type               => l_component_type
50962   , p_component_code               => l_component_code
50963   , p_component_type_code          => l_component_type_code
50964   , p_component_appl_id            => l_component_appl_id
50965   , p_amb_context_code             => l_amb_context_code
50966   , p_side                         => 'NA'
50967   );
50968 
50969 
50970    l_segment := AcctDerRule_8(
50971            p_application_id           => p_application_id
50972          , p_ae_header_id             => l_ae_header_id 
50973 , p_source_15 => p_source_15
50974 , p_source_15_meaning => p_source_15_meaning
50975 , p_source_20 => p_source_20
50976 , p_source_21 => p_source_21
50977 , p_source_22 => p_source_22
50978 , p_source_22_meaning => p_source_22_meaning
50979 , p_source_23 => p_source_23
50980          , x_transaction_coa_id       => l_adr_transaction_coa_id
50981          , x_accounting_coa_id        => l_adr_accounting_coa_id
50982          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
50983          , x_flex_value_set_id        => l_adr_flex_value_set_id
50984          , x_value_type_code          => l_adr_value_type_code
50985          , x_value_combination_id     => l_adr_value_combination_id
50986          , x_value_segment_code       => l_adr_value_segment_code
50987          , p_side                     => 'NA'
50988          , p_override_seg_flag        => 'Y'
50989    );
50990 
50991    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
50992 
50993       xla_ae_lines_pkg.set_segment(
50994           p_to_segment_code         => 'GL_ACCOUNT'
50995         , p_segment_value           => l_segment
50996         , p_from_segment_code       => l_adr_value_segment_code
50997         , p_from_combination_id     => l_adr_value_combination_id
50998         , p_value_type_code         => l_adr_value_type_code
50999         , p_transaction_coa_id      => l_adr_transaction_coa_id
51000         , p_accounting_coa_id       => l_adr_accounting_coa_id
51001         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
51002         , p_flex_value_set_id       => l_adr_flex_value_set_id
51003         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
51004         , p_adr_type_code           => 'S'
51008         , p_component_appl_id       => l_component_appl_id
51005         , p_component_type          => l_component_type
51006         , p_component_code          => l_component_code
51007         , p_component_type_code     => l_component_type_code
51009         , p_amb_context_code        => l_amb_context_code
51010         , p_entity_code             => 'AP_INVOICES'
51011         , p_event_class_code        => 'CREDIT MEMOS'
51012         , p_side                    => 'NA'
51013         );
51014 
51015   END IF;
51016 
51017    l_segment := AcctDerRule_23(
51018            p_application_id           => p_application_id
51019          , p_ae_header_id             => l_ae_header_id 
51020 , p_source_15 => p_source_15
51021 , p_source_15_meaning => p_source_15_meaning
51022 , p_source_22 => p_source_22
51023 , p_source_22_meaning => p_source_22_meaning
51024 , p_source_30 => p_source_30
51025          , x_transaction_coa_id       => l_adr_transaction_coa_id
51026          , x_accounting_coa_id        => l_adr_accounting_coa_id
51027          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
51028          , x_flex_value_set_id        => l_adr_flex_value_set_id
51029          , x_value_type_code          => l_adr_value_type_code
51030          , x_value_combination_id     => l_adr_value_combination_id
51031          , x_value_segment_code       => l_adr_value_segment_code
51032          , p_side                     => 'NA'
51033          , p_override_seg_flag        => 'Y'
51034    );
51035 
51036    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
51037 
51038       xla_ae_lines_pkg.set_segment(
51039           p_to_segment_code         => 'GL_BALANCING'
51040         , p_segment_value           => l_segment
51041         , p_from_segment_code       => l_adr_value_segment_code
51042         , p_from_combination_id     => l_adr_value_combination_id
51043         , p_value_type_code         => l_adr_value_type_code
51044         , p_transaction_coa_id      => l_adr_transaction_coa_id
51045         , p_accounting_coa_id       => l_adr_accounting_coa_id
51046         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
51047         , p_flex_value_set_id       => l_adr_flex_value_set_id
51048         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
51049         , p_adr_type_code           => 'S'
51050         , p_component_type          => l_component_type
51051         , p_component_code          => l_component_code
51052         , p_component_type_code     => l_component_type_code
51053         , p_component_appl_id       => l_component_appl_id
51054         , p_amb_context_code        => l_amb_context_code
51055         , p_entity_code             => 'AP_INVOICES'
51056         , p_event_class_code        => 'CREDIT MEMOS'
51057         , p_side                    => 'NA'
51058         );
51059 
51060   END IF;
51061 
51062    --
51063    --
51064    END IF;
51065    --
51066    -- Bug 4922099
51067    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
51068           (NVL(l_enc_upg_option, 'N') = 'O')
51069         ) AND
51070         (l_bflow_method_code = 'PRIOR_ENTRY')
51071       )
51072    THEN
51073       IF
51074       --
51075       1 = 2
51076       --
51077       THEN
51078       xla_accounting_err_pkg.build_message
51079                                     (p_appli_s_name            => 'XLA'
51080                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51081                                     ,p_token_1                 => 'LINE_NUMBER'
51082                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
51083                                     ,p_token_2                 => 'LINE_TYPE_NAME'
51084                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
51085                                                                              l_component_type
51086                                                                             ,l_component_code
51087                                                                             ,l_component_type_code
51088                                                                             ,l_component_appl_id
51089                                                                             ,l_amb_context_code
51090                                                                             ,l_entity_code
51091                                                                             ,l_event_class_code
51092                                                                            )
51093                                     ,p_token_3                 => 'OWNER'
51094                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
51095                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
51096                                                                           ,p_lookup_code    => l_component_type_code
51097                                                                          )
51098                                     ,p_token_4                 => 'PRODUCT_NAME'
51099                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
51100                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
51101                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
51102                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
51106         IF (C_LEVEL_ERROR>= g_log_level) THEN
51103                                     ,p_ae_header_id            =>  NULL
51104                                        );
51105 
51107                  trace
51108                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51109                       ,p_level    => C_LEVEL_ERROR
51110                       ,p_module   => l_log_module);
51111         END IF;
51112       END IF;
51113    END IF;
51114    --
51115    --
51116    ------------------------------------------------------------------------------------------------
51117    -- 4219869 Business Flow
51118    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
51119    -- Prior Entry.  Currently, the following code is always generated.
51120    ------------------------------------------------------------------------------------------------
51121    XLA_AE_LINES_PKG.ValidateCurrentLine;
51122 
51123    ------------------------------------------------------------------------------------
51124    -- 4219869 Business Flow
51125    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
51126    ------------------------------------------------------------------------------------
51127    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51128 
51129    ----------------------------------------------------------------------------------
51130    -- 4219869 Business Flow
51131    -- Update journal entry status -- Need to generate this within IF <condition>
51132    ----------------------------------------------------------------------------------
51133    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51134          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
51135          ,p_balance_type_code => l_balance_type_code
51136          );
51137 
51138    -------------------------------------------------------------------------------------------
51139    -- 4262811 - Generate the Accrual Reversal lines
51140    -------------------------------------------------------------------------------------------
51141    BEGIN
51142       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
51143                               (g_array_event(p_event_id).array_value_num('header_index'));
51144       IF l_acc_rev_flag IS NULL THEN
51145          l_acc_rev_flag := 'N';
51146       END IF;
51147    EXCEPTION
51148       WHEN OTHERS THEN
51149          l_acc_rev_flag := 'N';
51150    END;
51151    --
51152    IF (l_acc_rev_flag = 'Y') THEN
51153 
51154        -- 4645092  ------------------------------------------------------------------------------
51155        -- To allow MPA report to determine if it should generate report process
51156        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
51157        ------------------------------------------------------------------------------------------
51158 
51159        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
51160        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
51161    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
51162    -- call ADRs
51163    -- Bug 4922099
51164    --
51165    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51166         (NVL(l_actual_upg_option, 'N') = 'O') OR
51167         (NVL(l_enc_upg_option, 'N') = 'O')
51168       )
51169    THEN
51170    NULL;
51171    --
51172    --
51173    
51174   l_ccid := AcctDerRule_30(
51175            p_application_id           => p_application_id
51176          , p_ae_header_id             => l_ae_header_id 
51177 , p_source_15 => p_source_15
51178 , p_source_15_meaning => p_source_15_meaning
51179 , p_source_20 => p_source_20
51180 , p_source_21 => p_source_21
51181 , p_source_22 => p_source_22
51182 , p_source_22_meaning => p_source_22_meaning
51183 , p_source_23 => p_source_23
51184 , p_source_30 => p_source_30
51185 , p_source_47 => p_source_47
51186 , p_source_47_meaning => p_source_47_meaning
51187          , x_transaction_coa_id       => l_adr_transaction_coa_id
51188          , x_accounting_coa_id        => l_adr_accounting_coa_id
51189          , x_value_type_code          => l_adr_value_type_code
51190          , p_side                     => 'NA'
51191    );
51192 
51193    xla_ae_lines_pkg.set_ccid(
51194     p_code_combination_id          => l_ccid
51195   , p_value_type_code              => l_adr_value_type_code
51196   , p_transaction_coa_id           => l_adr_transaction_coa_id
51197   , p_accounting_coa_id            => l_adr_accounting_coa_id
51198   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
51199   , p_adr_type_code                => 'S'
51200   , p_component_type               => l_component_type
51201   , p_component_code               => l_component_code
51202   , p_component_type_code          => l_component_type_code
51203   , p_component_appl_id            => l_component_appl_id
51204   , p_amb_context_code             => l_amb_context_code
51205   , p_side                         => 'NA'
51206   );
51207 
51208 
51209    l_segment := AcctDerRule_8(
51210            p_application_id           => p_application_id
51211          , p_ae_header_id             => l_ae_header_id 
51212 , p_source_15 => p_source_15
51213 , p_source_15_meaning => p_source_15_meaning
51214 , p_source_20 => p_source_20
51215 , p_source_21 => p_source_21
51216 , p_source_22 => p_source_22
51217 , p_source_22_meaning => p_source_22_meaning
51218 , p_source_23 => p_source_23
51219          , x_transaction_coa_id       => l_adr_transaction_coa_id
51223          , x_value_type_code          => l_adr_value_type_code
51220          , x_accounting_coa_id        => l_adr_accounting_coa_id
51221          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
51222          , x_flex_value_set_id        => l_adr_flex_value_set_id
51224          , x_value_combination_id     => l_adr_value_combination_id
51225          , x_value_segment_code       => l_adr_value_segment_code
51226          , p_side                     => 'NA'
51227          , p_override_seg_flag        => 'Y'
51228    );
51229 
51230    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
51231 
51232       xla_ae_lines_pkg.set_segment(
51233           p_to_segment_code         => 'GL_ACCOUNT'
51234         , p_segment_value           => l_segment
51235         , p_from_segment_code       => l_adr_value_segment_code
51236         , p_from_combination_id     => l_adr_value_combination_id
51237         , p_value_type_code         => l_adr_value_type_code
51238         , p_transaction_coa_id      => l_adr_transaction_coa_id
51239         , p_accounting_coa_id       => l_adr_accounting_coa_id
51240         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
51241         , p_flex_value_set_id       => l_adr_flex_value_set_id
51242         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
51243         , p_adr_type_code           => 'S'
51244         , p_component_type          => l_component_type
51245         , p_component_code          => l_component_code
51246         , p_component_type_code     => l_component_type_code
51247         , p_component_appl_id       => l_component_appl_id
51248         , p_amb_context_code        => l_amb_context_code
51249         , p_entity_code             => 'AP_INVOICES'
51250         , p_event_class_code        => 'CREDIT MEMOS'
51251         , p_side                    => 'NA'
51252         );
51253 
51254   END IF;
51255 
51256    l_segment := AcctDerRule_23(
51257            p_application_id           => p_application_id
51258          , p_ae_header_id             => l_ae_header_id 
51259 , p_source_15 => p_source_15
51260 , p_source_15_meaning => p_source_15_meaning
51261 , p_source_22 => p_source_22
51262 , p_source_22_meaning => p_source_22_meaning
51263 , p_source_30 => p_source_30
51264          , x_transaction_coa_id       => l_adr_transaction_coa_id
51265          , x_accounting_coa_id        => l_adr_accounting_coa_id
51266          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
51267          , x_flex_value_set_id        => l_adr_flex_value_set_id
51268          , x_value_type_code          => l_adr_value_type_code
51269          , x_value_combination_id     => l_adr_value_combination_id
51270          , x_value_segment_code       => l_adr_value_segment_code
51271          , p_side                     => 'NA'
51272          , p_override_seg_flag        => 'Y'
51273    );
51274 
51275    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
51276 
51277       xla_ae_lines_pkg.set_segment(
51278           p_to_segment_code         => 'GL_BALANCING'
51279         , p_segment_value           => l_segment
51280         , p_from_segment_code       => l_adr_value_segment_code
51281         , p_from_combination_id     => l_adr_value_combination_id
51282         , p_value_type_code         => l_adr_value_type_code
51283         , p_transaction_coa_id      => l_adr_transaction_coa_id
51284         , p_accounting_coa_id       => l_adr_accounting_coa_id
51285         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
51286         , p_flex_value_set_id       => l_adr_flex_value_set_id
51287         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
51288         , p_adr_type_code           => 'S'
51289         , p_component_type          => l_component_type
51290         , p_component_code          => l_component_code
51291         , p_component_type_code     => l_component_type_code
51292         , p_component_appl_id       => l_component_appl_id
51293         , p_amb_context_code        => l_amb_context_code
51294         , p_entity_code             => 'AP_INVOICES'
51295         , p_event_class_code        => 'CREDIT MEMOS'
51296         , p_side                    => 'NA'
51297         );
51298 
51299   END IF;
51300 
51301    --
51302    --
51303    END IF;
51304 
51305        --
51306        -- Update the line information that should be overwritten
51307        --
51308        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
51309                                          p_header_num   => 1);
51310        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
51311 
51312        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
51313 
51314        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
51315           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
51316        END IF;
51317 
51318       --
51319       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
51320       --
51321       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
51322           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
51323       ELSE
51324           ---------------------------------------------------------------------------------------------------
51325           -- 4262811a Switch Sign
51329                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51326           ---------------------------------------------------------------------------------------------------
51327           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
51328           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51330           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51331                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51332           -- 5132302
51333           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
51334                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51335 
51336       END IF;
51337 
51338       -- 4955764
51339       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51340       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
51341 
51342 
51343       XLA_AE_LINES_PKG.ValidateCurrentLine;
51344       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51345 
51346       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51347                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
51348                ,p_balance_type_code => l_balance_type_code);
51349 
51350    END IF;
51351 
51352    -----------------------------------------------------------------------------------------
51353    -- 4262811 Multiperiod Accounting
51354    -----------------------------------------------------------------------------------------
51355      -- No MPA option is assigned.
51356 
51357 
51358 END IF;
51359 END IF;
51360 --
51361 
51362 --
51363 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51364    trace
51365       (p_msg      => 'END of AcctLineType_107'
51366       ,p_level    => C_LEVEL_PROCEDURE
51367       ,p_module   => l_log_module);
51368 END IF;
51369 --
51370 EXCEPTION
51371   WHEN xla_exceptions_pkg.application_exception THEN
51372       RAISE;
51373   WHEN OTHERS THEN
51374        xla_exceptions_pkg.raise_message
51375            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_107');
51376 END AcctLineType_107;
51377 --
51378 
51379 ---------------------------------------
51380 --
51381 -- PRIVATE FUNCTION
51382 --         AcctLineType_108
51383 --
51384 ---------------------------------------
51385 PROCEDURE AcctLineType_108 (
51386   p_application_id        IN NUMBER
51387  ,p_event_id              IN NUMBER
51388  ,p_calculate_acctd_flag  IN VARCHAR2
51389  ,p_calculate_g_l_flag    IN VARCHAR2
51390  ,p_actual_flag           IN OUT VARCHAR2
51391  ,p_balance_type_code     OUT VARCHAR2
51392  ,p_gain_or_loss_ref      OUT VARCHAR2
51393  
51394 --Invoice Distribution Description
51395  , p_source_1            IN VARCHAR2
51396 --Automatic Offsets Value
51397  , p_source_15            IN VARCHAR2
51398  , p_source_15_meaning    IN VARCHAR2
51399 --Purchase Order Rate Variance Gain Account
51400  , p_source_20            IN NUMBER
51401 --Invoice Distribution Ledger Amount
51402  , p_source_21            IN NUMBER
51403 --Destination Type of the PO Distribution
51404  , p_source_22            IN VARCHAR2
51405  , p_source_22_meaning    IN VARCHAR2
51406 --Purchase Order Rate Variance Loss Account
51407  , p_source_23            IN NUMBER
51408 --Invoice Distribution Account
51409  , p_source_30            IN NUMBER
51410 --Invoice Distribution Type
51411  , p_source_33            IN VARCHAR2
51412  , p_source_33_meaning    IN VARCHAR2
51413 --Automatic Offsets Flag
51414  , p_source_47            IN VARCHAR2
51415  , p_source_47_meaning    IN VARCHAR2
51416 --Accounting Reversal Indicator
51417  , p_source_53            IN VARCHAR2
51418 --Distribution Link Type
51419  , p_source_55            IN VARCHAR2
51420 --Allocation to Main Distribution Identifier
51421  , p_source_57            IN NUMBER
51422 --Invoice Identifier
51423  , p_source_58            IN NUMBER
51424 --Invoice Distribution Identifier
51425  , p_source_64            IN NUMBER
51426 --Payables Encumbrance Upgrade Credit Account
51427  , p_source_65            IN NUMBER
51428 --Payables Encumbrance Upgrade Credit Amount
51429  , p_source_66            IN NUMBER
51430 --Invoice Currency Code
51431  , p_source_67            IN VARCHAR2
51432 --Payables Encumbrance Upgrade Credit Base Amount
51433  , p_source_68            IN NUMBER
51434 --Payables Encumbrance Upgrade Debit Account
51435  , p_source_69            IN NUMBER
51436 --Payables Encumbrance Upgrade Debit Amount
51437  , p_source_70            IN NUMBER
51438 --Payables Encumbrance Upgrade Debit Base Amount
51439  , p_source_71            IN NUMBER
51440 --Payables Encumbrance Upgrade Option
51441  , p_source_72            IN VARCHAR2
51442 --Invoice Distribution Amount
51443  , p_source_73            IN NUMBER
51444 --Deferred Accounting End Date
51445  , p_source_77            IN DATE
51446 --Deferred Accounting Option
51447  , p_source_78            IN VARCHAR2
51448 --Deferred Accounting Start Date
51449  , p_source_79            IN DATE
51450 --Override Accounted Amount Indicator
51451  , p_source_80            IN VARCHAR2
51452  , p_source_80_meaning    IN VARCHAR2
51456  , p_source_82            IN NUMBER
51453 --Invoice Supplier Identifier
51454  , p_source_81            IN NUMBER
51455 --Invoice Supplier Site Identifier
51457 --Third Party Type
51458  , p_source_83            IN VARCHAR2
51459 --Parent Reversal Identifier
51460  , p_source_84            IN NUMBER
51461 --Invoice Distribution Tax Line Identifier
51462  , p_source_86            IN NUMBER
51463 --Invoice Distribution Tax Distribution Identifier from Tax
51464  , p_source_87            IN NUMBER
51465 --Invoice Distribution Summary Tax Line Identifier
51466  , p_source_88            IN NUMBER
51467 --Payables Upgrade Credit Encumbrance Type Identifier
51468  , p_source_89            IN NUMBER
51469 --Payables Upgrade Debit Encumbrance Type Identifier
51470  , p_source_90            IN NUMBER
51471 --Business Flow Accounts Payable Application Identifier
51472  , p_source_91            IN NUMBER
51473 --Business Flow Invoice Distribution Type
51474  , p_source_92            IN VARCHAR2
51475 --Business Flow Invoice Entity Code
51476  , p_source_93            IN VARCHAR2
51477 --Business Flow Invoice Distribution Identifier
51478  , p_source_94            IN NUMBER
51479 --Business Flow Invoice Identifier
51480  , p_source_95            IN NUMBER
51481 --Accrue on Receipt Option
51482  , p_source_96            IN VARCHAR2
51483  , p_source_96_meaning    IN VARCHAR2
51484 --Invoice Exchange Date
51485  , p_source_143            IN DATE
51486 --Invoice Exchange Rate
51487  , p_source_144            IN NUMBER
51488 --Invoice Exchange Rate Type
51489  , p_source_145            IN VARCHAR2
51490 )
51491 IS
51492 
51493 l_component_type              VARCHAR2(80);
51494 l_component_code              VARCHAR2(30);
51495 l_component_type_code         VARCHAR2(1);
51496 l_component_appl_id           INTEGER;
51497 l_amb_context_code            VARCHAR2(30);
51498 l_entity_code                 VARCHAR2(30);
51499 l_event_class_code            VARCHAR2(30);
51500 l_ae_header_id                NUMBER;
51501 l_event_type_code             VARCHAR2(30);
51502 l_line_definition_code        VARCHAR2(30);
51503 l_line_definition_owner_code  VARCHAR2(1);
51504 --
51505 -- adr variables
51506 l_segment                     VARCHAR2(30);
51507 l_ccid                        NUMBER;
51508 l_adr_transaction_coa_id      NUMBER;
51509 l_adr_accounting_coa_id       NUMBER;
51510 l_adr_flexfield_segment_code  VARCHAR2(30);
51511 l_adr_flex_value_set_id       NUMBER;
51512 l_adr_value_type_code         VARCHAR2(30);
51513 l_adr_value_combination_id    NUMBER;
51514 l_adr_value_segment_code      VARCHAR2(30);
51515 
51516 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
51517 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
51518 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
51519 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
51520 
51521 -- 4262811 Variables ------------------------------------------------------------------------------------------
51522 l_entered_amt_idx             NUMBER;
51523 l_accted_amt_idx              NUMBER;
51524 l_acc_rev_flag                VARCHAR2(1);
51525 l_accrual_line_num            NUMBER;
51526 l_tmp_amt                     NUMBER;
51527 l_acc_rev_natural_side_code   VARCHAR2(1);
51528 
51529 l_num_entries                 NUMBER;
51530 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
51531 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
51532 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
51533 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
51534 l_recog_line_1                NUMBER;
51535 l_recog_line_2                NUMBER;
51536 
51537 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
51538 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
51539 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
51540 
51541 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
51542 
51543 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
51544 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
51545 
51546 ---------------------------------------------------------------------------------------------------------------
51547 
51548 
51549 --
51550 -- bulk performance
51551 --
51552 l_balance_type_code           VARCHAR2(1);
51553 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
51554 l_log_module                  VARCHAR2(240);
51555 
51556 --
51557 -- Upgrade strategy
51558 --
51559 l_actual_upg_option           VARCHAR2(1);
51560 l_enc_upg_option           VARCHAR2(1);
51561 
51562 --
51563 BEGIN
51564 --
51565 IF g_log_enabled THEN
51566       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_108';
51567 END IF;
51568 --
51569 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51570 
51571       trace
51572          (p_msg      => 'BEGIN of AcctLineType_108'
51573          ,p_level    => C_LEVEL_PROCEDURE
51574          ,p_module   => l_log_module);
51575 
51576 END IF;
51577 --
51578 l_component_type             := 'AMB_JLT';
51579 l_component_code             := 'AP_EX_RATE_VAR_DM';
51580 l_component_type_code        := 'S';
51581 l_component_appl_id          :=  200;
51582 l_amb_context_code           := 'DEFAULT';
51586 l_line_definition_owner_code := 'S';
51583 l_entity_code                := 'AP_INVOICES';
51584 l_event_class_code           := 'DEBIT MEMOS';
51585 l_event_type_code            := 'DEBIT MEMOS_ALL';
51587 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
51588 --
51589 l_balance_type_code          := 'A';
51590 l_segment                     := NULL;
51591 l_ccid                        := NULL;
51592 l_adr_transaction_coa_id      := NULL;
51593 l_adr_accounting_coa_id       := NULL;
51594 l_adr_flexfield_segment_code  := NULL;
51595 l_adr_flex_value_set_id       := NULL;
51596 l_adr_value_type_code         := NULL;
51597 l_adr_value_combination_id    := NULL;
51598 l_adr_value_segment_code      := NULL;
51599 
51600 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
51601 l_bflow_class_code           := '';    -- 4219869 Business Flow
51602 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
51603 l_budgetary_control_flag     := 'N';
51604 
51605 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
51606 l_bflow_applied_to_amt       := NULL; -- 5132302
51607 l_entered_amt_idx            := NULL;          -- 4262811
51608 l_accted_amt_idx             := NULL;          -- 4262811
51609 l_acc_rev_flag               := NULL;          -- 4262811
51610 l_accrual_line_num           := NULL;          -- 4262811
51611 l_tmp_amt                    := NULL;          -- 4262811
51612 --
51613 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
51614             (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
51615                return;
51616   END IF;
51617   
51618 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
51619     l_balance_type_code <> 'B' THEN
51620 IF NVL(p_source_33,'
51621 ') =  'ERV' AND 
51622 NVL(p_source_96,'
51623 ') =  'Y'
51624  THEN 
51625 
51626    --
51627    XLA_AE_LINES_PKG.SetNewLine;
51628 
51629    p_balance_type_code          := l_balance_type_code;
51630    -- set the flag so later we will know whether the gain loss line needs to be created
51631    
51632    IF(l_balance_type_code = 'A' ) THEN
51633      p_actual_flag :='G';
51634    END IF;
51635 
51636    --
51637    -- bulk performance
51638    --
51639    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
51640                                       p_header_num   => 0); -- 4262811
51641    --
51642    -- set accounting line options
51643    --
51644    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
51645            p_natural_side_code          => 'D'
51646          , p_gain_or_loss_flag          => 'Y'
51647          , p_gl_transfer_mode_code      => 'S'
51648          , p_acct_entry_type_code       => 'A'
51649          , p_switch_side_flag           => 'Y'
51650          , p_merge_duplicate_code       => 'A'
51651          );
51652    --
51653    l_acc_rev_natural_side_code := 'C';  -- 4262811
51654    -- 
51655    --
51656    -- set accounting line type info
51657    --
51658    xla_ae_lines_pkg.SetAcctLineType
51659       (p_component_type             => l_component_type
51660       ,p_event_type_code            => l_event_type_code
51661       ,p_line_definition_owner_code => l_line_definition_owner_code
51662       ,p_line_definition_code       => l_line_definition_code
51663       ,p_accounting_line_code       => l_component_code
51664       ,p_accounting_line_type_code  => l_component_type_code
51665       ,p_accounting_line_appl_id    => l_component_appl_id
51666       ,p_amb_context_code           => l_amb_context_code
51667       ,p_entity_code                => l_entity_code
51668       ,p_event_class_code           => l_event_class_code);
51669    --
51670    -- set accounting class
51671    --
51672    xla_ae_lines_pkg.SetAcctClass(
51673            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
51674          , p_ae_header_id           => l_ae_header_id
51675          );
51676 
51677    --
51678    -- set rounding class
51679    --
51680    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
51681                       'EXCHANGE_RATE_VARIANCE';
51682 
51683    --
51684    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
51685    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
51686    --
51687    -- bulk performance
51688    --
51689    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
51690 
51691    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
51692       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
51693 
51694    -- 4955764
51695    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51696       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
51697 
51698    -- 4458381 Public Sector Enh
51699    
51700    --
51701    -- set accounting attributes for the line type
51702    --
51703    l_entered_amt_idx := 23;
51704    l_accted_amt_idx  := 28;
51705    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
51706    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
51707    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
51711    p_source_code           => 'XLA_EVENT_APPL_ID'
51708    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
51709    l_rec_acct_attrs.array_num_value(2)  := 
51710 xla_ae_sources_pkg.GetSystemSourceNum(
51712  , p_source_type_code      => 'Y'
51713  , p_source_application_id =>  602
51714 );
51715    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
51716    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
51717    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
51718    l_rec_acct_attrs.array_char_value(4)  := 
51719 xla_ae_sources_pkg.GetSystemSourceChar(
51720    p_source_code           => 'XLA_ENTITY_CODE'
51721  , p_source_type_code      => 'Y'
51722  , p_source_application_id =>  602
51723 );
51724    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
51725    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
51726    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
51727    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
51728    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
51729    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
51730    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
51731    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
51732    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
51733    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
51734    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
51735    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
51736    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
51737    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
51738    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
51739    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
51740    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
51741    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
51742    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
51743    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
51744    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
51745    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
51746    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
51747    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
51748    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
51749    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
51750    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
51751    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
51752    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
51753    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
51754    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
51755    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
51756    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
51757    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
51758    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
51759    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
51760    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
51761    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
51762    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
51763    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
51764    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
51765    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
51766    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
51767    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
51768    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
51769    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
51770    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
51771    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
51772    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
51773    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
51774    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
51775    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
51776    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
51777    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
51778    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
51779    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
51780    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
51781    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
51782    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
51783    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
51784    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
51785    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
51786    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
51787    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
51788    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
51789    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
51790    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
51791    l_rec_acct_attrs.array_num_value(38)  := p_source_86;
51792    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
51793    l_rec_acct_attrs.array_num_value(39)  := p_source_87;
51797    l_rec_acct_attrs.array_num_value(41)  := p_source_89;
51794    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
51795    l_rec_acct_attrs.array_num_value(40)  := p_source_88;
51796    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
51798    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
51799    l_rec_acct_attrs.array_num_value(42)  := p_source_90;
51800 
51801    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
51802    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
51803 
51804    ---------------------------------------------------------------------------------------------------------------
51805    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
51806    ---------------------------------------------------------------------------------------------------------------
51807    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
51808 
51809    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51810    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51811 
51812    IF xla_accounting_cache_pkg.GetValueChar
51813          (p_source_code         => 'LEDGER_CATEGORY_CODE'
51814          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
51815    AND l_bflow_method_code = 'PRIOR_ENTRY'
51816 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
51817    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
51818          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
51819        )
51820    THEN
51821          xla_ae_lines_pkg.BflowUpgEntry
51822            (p_business_method_code    => l_bflow_method_code
51823            ,p_business_class_code     => l_bflow_class_code
51824            ,p_balance_type            => l_balance_type_code);
51825    ELSE
51826       NULL;
51827 -- No business flow processing for business flow method of NONE.
51828    END IF;
51829 
51830    --
51831    -- call analytical criteria
51832    --
51833    
51834    --
51835    -- call description
51836    --
51837    
51838 xla_ae_lines_pkg.SetLineDescription(
51839    p_ae_header_id => l_ae_header_id
51840   ,p_description  => Description_1 (
51841      p_application_id         => p_application_id
51842    , p_ae_header_id           => l_ae_header_id 
51843 , p_source_1 => p_source_1
51844    )
51845 );
51846 
51847 
51848    --
51849    -- call ADRs
51850    -- Bug 4922099
51851    --
51852    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51853         (NVL(l_actual_upg_option, 'N') = 'O') OR
51854         (NVL(l_enc_upg_option, 'N') = 'O')
51855       )
51856    THEN
51857    NULL;
51858    --
51859    --
51860    
51861   l_ccid := AcctDerRule_30(
51862            p_application_id           => p_application_id
51863          , p_ae_header_id             => l_ae_header_id 
51864 , p_source_15 => p_source_15
51865 , p_source_15_meaning => p_source_15_meaning
51866 , p_source_20 => p_source_20
51867 , p_source_21 => p_source_21
51868 , p_source_22 => p_source_22
51869 , p_source_22_meaning => p_source_22_meaning
51870 , p_source_23 => p_source_23
51871 , p_source_30 => p_source_30
51872 , p_source_47 => p_source_47
51873 , p_source_47_meaning => p_source_47_meaning
51874          , x_transaction_coa_id       => l_adr_transaction_coa_id
51875          , x_accounting_coa_id        => l_adr_accounting_coa_id
51876          , x_value_type_code          => l_adr_value_type_code
51877          , p_side                     => 'NA'
51878    );
51879 
51880    xla_ae_lines_pkg.set_ccid(
51881     p_code_combination_id          => l_ccid
51882   , p_value_type_code              => l_adr_value_type_code
51883   , p_transaction_coa_id           => l_adr_transaction_coa_id
51884   , p_accounting_coa_id            => l_adr_accounting_coa_id
51885   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
51886   , p_adr_type_code                => 'S'
51887   , p_component_type               => l_component_type
51888   , p_component_code               => l_component_code
51889   , p_component_type_code          => l_component_type_code
51890   , p_component_appl_id            => l_component_appl_id
51891   , p_amb_context_code             => l_amb_context_code
51892   , p_side                         => 'NA'
51893   );
51894 
51895 
51896    l_segment := AcctDerRule_8(
51897            p_application_id           => p_application_id
51898          , p_ae_header_id             => l_ae_header_id 
51899 , p_source_15 => p_source_15
51900 , p_source_15_meaning => p_source_15_meaning
51901 , p_source_20 => p_source_20
51902 , p_source_21 => p_source_21
51903 , p_source_22 => p_source_22
51904 , p_source_22_meaning => p_source_22_meaning
51905 , p_source_23 => p_source_23
51906          , x_transaction_coa_id       => l_adr_transaction_coa_id
51907          , x_accounting_coa_id        => l_adr_accounting_coa_id
51908          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
51909          , x_flex_value_set_id        => l_adr_flex_value_set_id
51910          , x_value_type_code          => l_adr_value_type_code
51911          , x_value_combination_id     => l_adr_value_combination_id
51912          , x_value_segment_code       => l_adr_value_segment_code
51913          , p_side                     => 'NA'
51914          , p_override_seg_flag        => 'Y'
51915    );
51916 
51920           p_to_segment_code         => 'GL_ACCOUNT'
51917    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
51918 
51919       xla_ae_lines_pkg.set_segment(
51921         , p_segment_value           => l_segment
51922         , p_from_segment_code       => l_adr_value_segment_code
51923         , p_from_combination_id     => l_adr_value_combination_id
51924         , p_value_type_code         => l_adr_value_type_code
51925         , p_transaction_coa_id      => l_adr_transaction_coa_id
51926         , p_accounting_coa_id       => l_adr_accounting_coa_id
51927         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
51928         , p_flex_value_set_id       => l_adr_flex_value_set_id
51929         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
51930         , p_adr_type_code           => 'S'
51931         , p_component_type          => l_component_type
51932         , p_component_code          => l_component_code
51933         , p_component_type_code     => l_component_type_code
51934         , p_component_appl_id       => l_component_appl_id
51935         , p_amb_context_code        => l_amb_context_code
51936         , p_entity_code             => 'AP_INVOICES'
51937         , p_event_class_code        => 'DEBIT MEMOS'
51938         , p_side                    => 'NA'
51939         );
51940 
51941   END IF;
51942 
51943    l_segment := AcctDerRule_23(
51944            p_application_id           => p_application_id
51945          , p_ae_header_id             => l_ae_header_id 
51946 , p_source_15 => p_source_15
51947 , p_source_15_meaning => p_source_15_meaning
51948 , p_source_22 => p_source_22
51949 , p_source_22_meaning => p_source_22_meaning
51950 , p_source_30 => p_source_30
51951          , x_transaction_coa_id       => l_adr_transaction_coa_id
51952          , x_accounting_coa_id        => l_adr_accounting_coa_id
51953          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
51954          , x_flex_value_set_id        => l_adr_flex_value_set_id
51955          , x_value_type_code          => l_adr_value_type_code
51956          , x_value_combination_id     => l_adr_value_combination_id
51957          , x_value_segment_code       => l_adr_value_segment_code
51958          , p_side                     => 'NA'
51959          , p_override_seg_flag        => 'Y'
51960    );
51961 
51962    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
51963 
51964       xla_ae_lines_pkg.set_segment(
51965           p_to_segment_code         => 'GL_BALANCING'
51966         , p_segment_value           => l_segment
51967         , p_from_segment_code       => l_adr_value_segment_code
51968         , p_from_combination_id     => l_adr_value_combination_id
51969         , p_value_type_code         => l_adr_value_type_code
51970         , p_transaction_coa_id      => l_adr_transaction_coa_id
51971         , p_accounting_coa_id       => l_adr_accounting_coa_id
51972         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
51973         , p_flex_value_set_id       => l_adr_flex_value_set_id
51974         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
51975         , p_adr_type_code           => 'S'
51976         , p_component_type          => l_component_type
51977         , p_component_code          => l_component_code
51978         , p_component_type_code     => l_component_type_code
51979         , p_component_appl_id       => l_component_appl_id
51980         , p_amb_context_code        => l_amb_context_code
51981         , p_entity_code             => 'AP_INVOICES'
51982         , p_event_class_code        => 'DEBIT MEMOS'
51983         , p_side                    => 'NA'
51984         );
51985 
51986   END IF;
51987 
51988    --
51989    --
51990    END IF;
51991    --
51992    -- Bug 4922099
51993    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
51994           (NVL(l_enc_upg_option, 'N') = 'O')
51995         ) AND
51996         (l_bflow_method_code = 'PRIOR_ENTRY')
51997       )
51998    THEN
51999       IF
52000       --
52001       1 = 2
52002       --
52003       THEN
52004       xla_accounting_err_pkg.build_message
52005                                     (p_appli_s_name            => 'XLA'
52006                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52007                                     ,p_token_1                 => 'LINE_NUMBER'
52008                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
52009                                     ,p_token_2                 => 'LINE_TYPE_NAME'
52010                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
52011                                                                              l_component_type
52012                                                                             ,l_component_code
52013                                                                             ,l_component_type_code
52014                                                                             ,l_component_appl_id
52015                                                                             ,l_amb_context_code
52016                                                                             ,l_entity_code
52017                                                                             ,l_event_class_code
52018                                                                            )
52019                                     ,p_token_3                 => 'OWNER'
52023                                                                          )
52020                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
52021                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
52022                                                                           ,p_lookup_code    => l_component_type_code
52024                                     ,p_token_4                 => 'PRODUCT_NAME'
52025                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
52026                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
52027                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
52028                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
52029                                     ,p_ae_header_id            =>  NULL
52030                                        );
52031 
52032         IF (C_LEVEL_ERROR>= g_log_level) THEN
52033                  trace
52034                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52035                       ,p_level    => C_LEVEL_ERROR
52036                       ,p_module   => l_log_module);
52037         END IF;
52038       END IF;
52039    END IF;
52040    --
52041    --
52042    ------------------------------------------------------------------------------------------------
52043    -- 4219869 Business Flow
52044    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
52045    -- Prior Entry.  Currently, the following code is always generated.
52046    ------------------------------------------------------------------------------------------------
52047    XLA_AE_LINES_PKG.ValidateCurrentLine;
52048 
52049    ------------------------------------------------------------------------------------
52050    -- 4219869 Business Flow
52051    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
52052    ------------------------------------------------------------------------------------
52053    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52054 
52055    ----------------------------------------------------------------------------------
52056    -- 4219869 Business Flow
52057    -- Update journal entry status -- Need to generate this within IF <condition>
52058    ----------------------------------------------------------------------------------
52059    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52060          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
52061          ,p_balance_type_code => l_balance_type_code
52062          );
52063 
52064    -------------------------------------------------------------------------------------------
52065    -- 4262811 - Generate the Accrual Reversal lines
52066    -------------------------------------------------------------------------------------------
52067    BEGIN
52068       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
52069                               (g_array_event(p_event_id).array_value_num('header_index'));
52070       IF l_acc_rev_flag IS NULL THEN
52071          l_acc_rev_flag := 'N';
52072       END IF;
52073    EXCEPTION
52074       WHEN OTHERS THEN
52075          l_acc_rev_flag := 'N';
52076    END;
52077    --
52078    IF (l_acc_rev_flag = 'Y') THEN
52079 
52080        -- 4645092  ------------------------------------------------------------------------------
52081        -- To allow MPA report to determine if it should generate report process
52082        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
52083        ------------------------------------------------------------------------------------------
52084 
52085        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
52086        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
52087    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
52088    -- call ADRs
52089    -- Bug 4922099
52090    --
52091    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52092         (NVL(l_actual_upg_option, 'N') = 'O') OR
52093         (NVL(l_enc_upg_option, 'N') = 'O')
52094       )
52095    THEN
52096    NULL;
52097    --
52098    --
52099    
52100   l_ccid := AcctDerRule_30(
52101            p_application_id           => p_application_id
52102          , p_ae_header_id             => l_ae_header_id 
52103 , p_source_15 => p_source_15
52104 , p_source_15_meaning => p_source_15_meaning
52105 , p_source_20 => p_source_20
52106 , p_source_21 => p_source_21
52107 , p_source_22 => p_source_22
52108 , p_source_22_meaning => p_source_22_meaning
52109 , p_source_23 => p_source_23
52110 , p_source_30 => p_source_30
52111 , p_source_47 => p_source_47
52112 , p_source_47_meaning => p_source_47_meaning
52113          , x_transaction_coa_id       => l_adr_transaction_coa_id
52114          , x_accounting_coa_id        => l_adr_accounting_coa_id
52115          , x_value_type_code          => l_adr_value_type_code
52116          , p_side                     => 'NA'
52117    );
52118 
52119    xla_ae_lines_pkg.set_ccid(
52120     p_code_combination_id          => l_ccid
52121   , p_value_type_code              => l_adr_value_type_code
52122   , p_transaction_coa_id           => l_adr_transaction_coa_id
52123   , p_accounting_coa_id            => l_adr_accounting_coa_id
52127   , p_component_code               => l_component_code
52124   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
52125   , p_adr_type_code                => 'S'
52126   , p_component_type               => l_component_type
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_side                         => 'NA'
52132   );
52133 
52134 
52135    l_segment := AcctDerRule_8(
52136            p_application_id           => p_application_id
52137          , p_ae_header_id             => l_ae_header_id 
52138 , p_source_15 => p_source_15
52139 , p_source_15_meaning => p_source_15_meaning
52140 , p_source_20 => p_source_20
52141 , p_source_21 => p_source_21
52142 , p_source_22 => p_source_22
52143 , p_source_22_meaning => p_source_22_meaning
52144 , p_source_23 => p_source_23
52145          , x_transaction_coa_id       => l_adr_transaction_coa_id
52146          , x_accounting_coa_id        => l_adr_accounting_coa_id
52147          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
52148          , x_flex_value_set_id        => l_adr_flex_value_set_id
52149          , x_value_type_code          => l_adr_value_type_code
52150          , x_value_combination_id     => l_adr_value_combination_id
52151          , x_value_segment_code       => l_adr_value_segment_code
52152          , p_side                     => 'NA'
52153          , p_override_seg_flag        => 'Y'
52154    );
52155 
52156    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
52157 
52158       xla_ae_lines_pkg.set_segment(
52159           p_to_segment_code         => 'GL_ACCOUNT'
52160         , p_segment_value           => l_segment
52161         , p_from_segment_code       => l_adr_value_segment_code
52162         , p_from_combination_id     => l_adr_value_combination_id
52163         , p_value_type_code         => l_adr_value_type_code
52164         , p_transaction_coa_id      => l_adr_transaction_coa_id
52165         , p_accounting_coa_id       => l_adr_accounting_coa_id
52166         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
52167         , p_flex_value_set_id       => l_adr_flex_value_set_id
52168         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
52169         , p_adr_type_code           => 'S'
52170         , p_component_type          => l_component_type
52171         , p_component_code          => l_component_code
52172         , p_component_type_code     => l_component_type_code
52173         , p_component_appl_id       => l_component_appl_id
52174         , p_amb_context_code        => l_amb_context_code
52175         , p_entity_code             => 'AP_INVOICES'
52176         , p_event_class_code        => 'DEBIT MEMOS'
52177         , p_side                    => 'NA'
52178         );
52179 
52180   END IF;
52181 
52182    l_segment := AcctDerRule_23(
52183            p_application_id           => p_application_id
52184          , p_ae_header_id             => l_ae_header_id 
52185 , p_source_15 => p_source_15
52186 , p_source_15_meaning => p_source_15_meaning
52187 , p_source_22 => p_source_22
52188 , p_source_22_meaning => p_source_22_meaning
52189 , p_source_30 => p_source_30
52190          , x_transaction_coa_id       => l_adr_transaction_coa_id
52191          , x_accounting_coa_id        => l_adr_accounting_coa_id
52192          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
52193          , x_flex_value_set_id        => l_adr_flex_value_set_id
52194          , x_value_type_code          => l_adr_value_type_code
52195          , x_value_combination_id     => l_adr_value_combination_id
52196          , x_value_segment_code       => l_adr_value_segment_code
52197          , p_side                     => 'NA'
52198          , p_override_seg_flag        => 'Y'
52199    );
52200 
52201    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
52202 
52203       xla_ae_lines_pkg.set_segment(
52204           p_to_segment_code         => 'GL_BALANCING'
52205         , p_segment_value           => l_segment
52206         , p_from_segment_code       => l_adr_value_segment_code
52207         , p_from_combination_id     => l_adr_value_combination_id
52208         , p_value_type_code         => l_adr_value_type_code
52209         , p_transaction_coa_id      => l_adr_transaction_coa_id
52210         , p_accounting_coa_id       => l_adr_accounting_coa_id
52211         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
52212         , p_flex_value_set_id       => l_adr_flex_value_set_id
52213         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
52214         , p_adr_type_code           => 'S'
52215         , p_component_type          => l_component_type
52216         , p_component_code          => l_component_code
52217         , p_component_type_code     => l_component_type_code
52218         , p_component_appl_id       => l_component_appl_id
52219         , p_amb_context_code        => l_amb_context_code
52220         , p_entity_code             => 'AP_INVOICES'
52221         , p_event_class_code        => 'DEBIT MEMOS'
52222         , p_side                    => 'NA'
52223         );
52224 
52225   END IF;
52226 
52227    --
52228    --
52229    END IF;
52230 
52231        --
52232        -- Update the line information that should be overwritten
52233        --
52234        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
52238        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
52235                                          p_header_num   => 1);
52236        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
52237 
52239 
52240        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
52241           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
52242        END IF;
52243 
52244       --
52245       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
52246       --
52247       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
52248           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
52249       ELSE
52250           ---------------------------------------------------------------------------------------------------
52251           -- 4262811a Switch Sign
52252           ---------------------------------------------------------------------------------------------------
52253           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
52254           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52255                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52256           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52257                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52258           -- 5132302
52259           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
52260                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52261 
52262       END IF;
52263 
52264       -- 4955764
52265       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52266       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
52267 
52268 
52269       XLA_AE_LINES_PKG.ValidateCurrentLine;
52270       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52271 
52272       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52273                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
52274                ,p_balance_type_code => l_balance_type_code);
52275 
52276    END IF;
52277 
52278    -----------------------------------------------------------------------------------------
52279    -- 4262811 Multiperiod Accounting
52280    -----------------------------------------------------------------------------------------
52281      -- No MPA option is assigned.
52282 
52283 
52284 END IF;
52285 END IF;
52286 --
52287 
52288 --
52289 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52290    trace
52291       (p_msg      => 'END of AcctLineType_108'
52292       ,p_level    => C_LEVEL_PROCEDURE
52293       ,p_module   => l_log_module);
52294 END IF;
52295 --
52296 EXCEPTION
52297   WHEN xla_exceptions_pkg.application_exception THEN
52298       RAISE;
52299   WHEN OTHERS THEN
52300        xla_exceptions_pkg.raise_message
52301            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_108');
52302 END AcctLineType_108;
52303 --
52304 
52305 ---------------------------------------
52306 --
52307 -- PRIVATE FUNCTION
52308 --         AcctLineType_109
52309 --
52310 ---------------------------------------
52311 PROCEDURE AcctLineType_109 (
52312   p_application_id        IN NUMBER
52313  ,p_event_id              IN NUMBER
52314  ,p_calculate_acctd_flag  IN VARCHAR2
52315  ,p_calculate_g_l_flag    IN VARCHAR2
52316  ,p_actual_flag           IN OUT VARCHAR2
52317  ,p_balance_type_code     OUT VARCHAR2
52318  ,p_gain_or_loss_ref      OUT VARCHAR2
52319  
52320 --Invoice Distribution Description
52321  , p_source_1            IN VARCHAR2
52322 --Automatic Offsets Value
52323  , p_source_15            IN VARCHAR2
52324  , p_source_15_meaning    IN VARCHAR2
52325 --Purchase Order Rate Variance Gain Account
52326  , p_source_20            IN NUMBER
52327 --Invoice Distribution Ledger Amount
52328  , p_source_21            IN NUMBER
52329 --Destination Type of the PO Distribution
52330  , p_source_22            IN VARCHAR2
52331  , p_source_22_meaning    IN VARCHAR2
52332 --Purchase Order Rate Variance Loss Account
52333  , p_source_23            IN NUMBER
52334 --Invoice Distribution Account
52335  , p_source_30            IN NUMBER
52336 --Invoice Distribution Type
52337  , p_source_33            IN VARCHAR2
52338  , p_source_33_meaning    IN VARCHAR2
52339 --Automatic Offsets Flag
52340  , p_source_47            IN VARCHAR2
52341  , p_source_47_meaning    IN VARCHAR2
52342 --Accounting Reversal Indicator
52343  , p_source_53            IN VARCHAR2
52344 --Distribution Link Type
52345  , p_source_55            IN VARCHAR2
52346 --Allocation to Main Distribution Identifier
52347  , p_source_57            IN NUMBER
52348 --Invoice Identifier
52349  , p_source_58            IN NUMBER
52350 --Invoice Distribution Identifier
52351  , p_source_64            IN NUMBER
52352 --Payables Encumbrance Upgrade Credit Account
52353  , p_source_65            IN NUMBER
52354 --Payables Encumbrance Upgrade Credit Amount
52355  , p_source_66            IN NUMBER
52356 --Invoice Currency Code
52357  , p_source_67            IN VARCHAR2
52361  , p_source_69            IN NUMBER
52358 --Payables Encumbrance Upgrade Credit Base Amount
52359  , p_source_68            IN NUMBER
52360 --Payables Encumbrance Upgrade Debit Account
52362 --Payables Encumbrance Upgrade Debit Amount
52363  , p_source_70            IN NUMBER
52364 --Payables Encumbrance Upgrade Debit Base Amount
52365  , p_source_71            IN NUMBER
52366 --Payables Encumbrance Upgrade Option
52367  , p_source_72            IN VARCHAR2
52368 --Invoice Distribution Amount
52369  , p_source_73            IN NUMBER
52370 --Deferred Accounting End Date
52371  , p_source_77            IN DATE
52372 --Deferred Accounting Option
52373  , p_source_78            IN VARCHAR2
52374 --Deferred Accounting Start Date
52375  , p_source_79            IN DATE
52376 --Override Accounted Amount Indicator
52377  , p_source_80            IN VARCHAR2
52378  , p_source_80_meaning    IN VARCHAR2
52379 --Invoice Supplier Identifier
52380  , p_source_81            IN NUMBER
52381 --Invoice Supplier Site Identifier
52382  , p_source_82            IN NUMBER
52383 --Third Party Type
52384  , p_source_83            IN VARCHAR2
52385 --Parent Reversal Identifier
52386  , p_source_84            IN NUMBER
52387 --Invoice Distribution Statistical Amount
52388  , p_source_85            IN NUMBER
52389 --Invoice Distribution Tax Line Identifier
52390  , p_source_86            IN NUMBER
52391 --Invoice Distribution Tax Distribution Identifier from Tax
52392  , p_source_87            IN NUMBER
52393 --Invoice Distribution Summary Tax Line Identifier
52394  , p_source_88            IN NUMBER
52395 --Payables Upgrade Credit Encumbrance Type Identifier
52396  , p_source_89            IN NUMBER
52397 --Payables Upgrade Debit Encumbrance Type Identifier
52398  , p_source_90            IN NUMBER
52399 --Business Flow Accounts Payable Application Identifier
52400  , p_source_91            IN NUMBER
52401 --Business Flow Invoice Distribution Type
52402  , p_source_92            IN VARCHAR2
52403 --Business Flow Invoice Entity Code
52404  , p_source_93            IN VARCHAR2
52405 --Business Flow Invoice Distribution Identifier
52406  , p_source_94            IN NUMBER
52407 --Business Flow Invoice Identifier
52408  , p_source_95            IN NUMBER
52409 --Accrue on Receipt Option
52410  , p_source_96            IN VARCHAR2
52411  , p_source_96_meaning    IN VARCHAR2
52412 --Invoice Exchange Date
52413  , p_source_143            IN DATE
52414 --Invoice Exchange Rate
52415  , p_source_144            IN NUMBER
52416 --Invoice Exchange Rate Type
52417  , p_source_145            IN VARCHAR2
52418 )
52419 IS
52420 
52421 l_component_type              VARCHAR2(80);
52422 l_component_code              VARCHAR2(30);
52423 l_component_type_code         VARCHAR2(1);
52424 l_component_appl_id           INTEGER;
52425 l_amb_context_code            VARCHAR2(30);
52426 l_entity_code                 VARCHAR2(30);
52427 l_event_class_code            VARCHAR2(30);
52428 l_ae_header_id                NUMBER;
52429 l_event_type_code             VARCHAR2(30);
52430 l_line_definition_code        VARCHAR2(30);
52431 l_line_definition_owner_code  VARCHAR2(1);
52432 --
52433 -- adr variables
52434 l_segment                     VARCHAR2(30);
52435 l_ccid                        NUMBER;
52436 l_adr_transaction_coa_id      NUMBER;
52437 l_adr_accounting_coa_id       NUMBER;
52438 l_adr_flexfield_segment_code  VARCHAR2(30);
52439 l_adr_flex_value_set_id       NUMBER;
52440 l_adr_value_type_code         VARCHAR2(30);
52441 l_adr_value_combination_id    NUMBER;
52442 l_adr_value_segment_code      VARCHAR2(30);
52443 
52444 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
52445 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
52446 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
52447 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
52448 
52449 -- 4262811 Variables ------------------------------------------------------------------------------------------
52450 l_entered_amt_idx             NUMBER;
52451 l_accted_amt_idx              NUMBER;
52452 l_acc_rev_flag                VARCHAR2(1);
52453 l_accrual_line_num            NUMBER;
52454 l_tmp_amt                     NUMBER;
52455 l_acc_rev_natural_side_code   VARCHAR2(1);
52456 
52457 l_num_entries                 NUMBER;
52458 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
52459 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
52460 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
52461 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
52462 l_recog_line_1                NUMBER;
52463 l_recog_line_2                NUMBER;
52464 
52465 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
52466 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
52467 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
52468 
52469 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
52470 
52471 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
52472 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
52473 
52474 ---------------------------------------------------------------------------------------------------------------
52475 
52476 
52477 --
52478 -- bulk performance
52479 --
52480 l_balance_type_code           VARCHAR2(1);
52484 --
52481 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
52482 l_log_module                  VARCHAR2(240);
52483 
52485 -- Upgrade strategy
52486 --
52487 l_actual_upg_option           VARCHAR2(1);
52488 l_enc_upg_option           VARCHAR2(1);
52489 
52490 --
52491 BEGIN
52492 --
52493 IF g_log_enabled THEN
52494       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_109';
52495 END IF;
52496 --
52497 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52498 
52499       trace
52500          (p_msg      => 'BEGIN of AcctLineType_109'
52501          ,p_level    => C_LEVEL_PROCEDURE
52502          ,p_module   => l_log_module);
52503 
52504 END IF;
52505 --
52506 l_component_type             := 'AMB_JLT';
52507 l_component_code             := 'AP_EX_RATE_VAR_INV';
52508 l_component_type_code        := 'S';
52509 l_component_appl_id          :=  200;
52510 l_amb_context_code           := 'DEFAULT';
52511 l_entity_code                := 'AP_INVOICES';
52512 l_event_class_code           := 'INVOICES';
52513 l_event_type_code            := 'INVOICES_ALL';
52514 l_line_definition_owner_code := 'S';
52515 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
52516 --
52517 l_balance_type_code          := 'A';
52518 l_segment                     := NULL;
52519 l_ccid                        := NULL;
52520 l_adr_transaction_coa_id      := NULL;
52521 l_adr_accounting_coa_id       := NULL;
52522 l_adr_flexfield_segment_code  := NULL;
52523 l_adr_flex_value_set_id       := NULL;
52524 l_adr_value_type_code         := NULL;
52525 l_adr_value_combination_id    := NULL;
52526 l_adr_value_segment_code      := NULL;
52527 
52528 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
52529 l_bflow_class_code           := '';    -- 4219869 Business Flow
52530 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
52531 l_budgetary_control_flag     := 'N';
52532 
52533 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
52534 l_bflow_applied_to_amt       := NULL; -- 5132302
52535 l_entered_amt_idx            := NULL;          -- 4262811
52536 l_accted_amt_idx             := NULL;          -- 4262811
52537 l_acc_rev_flag               := NULL;          -- 4262811
52538 l_accrual_line_num           := NULL;          -- 4262811
52539 l_tmp_amt                    := NULL;          -- 4262811
52540 --
52541 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
52542             (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
52543                return;
52544   END IF;
52545   
52546 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
52547     l_balance_type_code <> 'B' THEN
52548 IF NVL(p_source_33,'
52549 ') =  'ERV' AND 
52550 NVL(p_source_96,'
52551 ') =  'Y'
52552  THEN 
52553 
52554    --
52555    XLA_AE_LINES_PKG.SetNewLine;
52556 
52557    p_balance_type_code          := l_balance_type_code;
52558    -- set the flag so later we will know whether the gain loss line needs to be created
52559    
52560    IF(l_balance_type_code = 'A' ) THEN
52561      p_actual_flag :='G';
52562    END IF;
52563 
52564    --
52565    -- bulk performance
52566    --
52567    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
52568                                       p_header_num   => 0); -- 4262811
52569    --
52570    -- set accounting line options
52571    --
52572    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
52573            p_natural_side_code          => 'D'
52574          , p_gain_or_loss_flag          => 'Y'
52575          , p_gl_transfer_mode_code      => 'S'
52576          , p_acct_entry_type_code       => 'A'
52577          , p_switch_side_flag           => 'Y'
52578          , p_merge_duplicate_code       => 'A'
52579          );
52580    --
52581    l_acc_rev_natural_side_code := 'C';  -- 4262811
52582    -- 
52583    --
52584    -- set accounting line type info
52585    --
52586    xla_ae_lines_pkg.SetAcctLineType
52587       (p_component_type             => l_component_type
52588       ,p_event_type_code            => l_event_type_code
52589       ,p_line_definition_owner_code => l_line_definition_owner_code
52590       ,p_line_definition_code       => l_line_definition_code
52591       ,p_accounting_line_code       => l_component_code
52592       ,p_accounting_line_type_code  => l_component_type_code
52593       ,p_accounting_line_appl_id    => l_component_appl_id
52594       ,p_amb_context_code           => l_amb_context_code
52595       ,p_entity_code                => l_entity_code
52596       ,p_event_class_code           => l_event_class_code);
52597    --
52598    -- set accounting class
52599    --
52600    xla_ae_lines_pkg.SetAcctClass(
52601            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
52602          , p_ae_header_id           => l_ae_header_id
52603          );
52604 
52605    --
52606    -- set rounding class
52607    --
52608    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
52609                       'EXCHANGE_RATE_VARIANCE';
52610 
52611    --
52612    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
52616    --
52613    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
52614    --
52615    -- bulk performance
52617    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
52618 
52619    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
52620       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
52621 
52622    -- 4955764
52623    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52624       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
52625 
52626    -- 4458381 Public Sector Enh
52627    
52628    --
52629    -- set accounting attributes for the line type
52630    --
52631    l_entered_amt_idx := 24;
52632    l_accted_amt_idx  := 29;
52633    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
52634    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
52635    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
52636    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
52637    l_rec_acct_attrs.array_num_value(2)  := 
52638 xla_ae_sources_pkg.GetSystemSourceNum(
52639    p_source_code           => 'XLA_EVENT_APPL_ID'
52640  , p_source_type_code      => 'Y'
52641  , p_source_application_id =>  602
52642 );
52643    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
52644    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
52645    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
52646    l_rec_acct_attrs.array_char_value(4)  := 
52647 xla_ae_sources_pkg.GetSystemSourceChar(
52648    p_source_code           => 'XLA_ENTITY_CODE'
52649  , p_source_type_code      => 'Y'
52650  , p_source_application_id =>  602
52651 );
52652    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
52653    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
52654    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
52655    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
52656    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
52657    l_rec_acct_attrs.array_num_value(7)  := p_source_73;
52658    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
52659    l_rec_acct_attrs.array_num_value(8)  := p_source_91;
52660    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
52661    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
52662    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
52663    l_rec_acct_attrs.array_char_value(10)  := p_source_93;
52664    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
52665    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
52666    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
52667    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_95);
52668    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
52669    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_64);
52670    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
52671    l_rec_acct_attrs.array_char_value(14)  := p_source_55;
52672    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
52673    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
52674    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
52675    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
52676    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
52677    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
52678    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
52679    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
52680    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
52681    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
52682    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
52683    l_rec_acct_attrs.array_num_value(20)  := p_source_70;
52684    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
52685    l_rec_acct_attrs.array_char_value(21)  := p_source_67;
52686    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
52687    l_rec_acct_attrs.array_num_value(22)  := p_source_71;
52688    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
52689    l_rec_acct_attrs.array_char_value(23)  := p_source_72;
52690    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
52691    l_rec_acct_attrs.array_num_value(24)  := p_source_73;
52692    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
52693    l_rec_acct_attrs.array_char_value(25)  := p_source_67;
52694    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
52695    l_rec_acct_attrs.array_date_value(26)  := p_source_143;
52696    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
52697    l_rec_acct_attrs.array_num_value(27)  := p_source_144;
52698    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
52699    l_rec_acct_attrs.array_char_value(28)  := p_source_145;
52700    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
52701    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
52702    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
52703    l_rec_acct_attrs.array_date_value(30)  := p_source_77;
52704    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
52705    l_rec_acct_attrs.array_char_value(31)  := p_source_78;
52706    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
52707    l_rec_acct_attrs.array_date_value(32)  := p_source_79;
52711    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
52708    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
52709    l_rec_acct_attrs.array_char_value(33)  := p_source_80;
52710    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
52712    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
52713    l_rec_acct_attrs.array_num_value(35)  := p_source_82;
52714    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
52715    l_rec_acct_attrs.array_char_value(36)  := p_source_83;
52716    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
52717    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_84);
52718    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
52719    l_rec_acct_attrs.array_char_value(38)  := p_source_55;
52720    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
52721    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
52722    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
52723    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
52724    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
52725    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
52726    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
52727    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
52728    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
52729    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
52730    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
52731    l_rec_acct_attrs.array_num_value(44)  := p_source_90;
52732 
52733    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
52734    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
52735 
52736    ---------------------------------------------------------------------------------------------------------------
52737    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
52738    ---------------------------------------------------------------------------------------------------------------
52739    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
52740 
52741    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52742    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52743 
52744    IF xla_accounting_cache_pkg.GetValueChar
52745          (p_source_code         => 'LEDGER_CATEGORY_CODE'
52746          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
52747    AND l_bflow_method_code = 'PRIOR_ENTRY'
52748 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
52749    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
52750          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
52751        )
52752    THEN
52753          xla_ae_lines_pkg.BflowUpgEntry
52754            (p_business_method_code    => l_bflow_method_code
52755            ,p_business_class_code     => l_bflow_class_code
52756            ,p_balance_type            => l_balance_type_code);
52757    ELSE
52758       NULL;
52759 -- No business flow processing for business flow method of NONE.
52760    END IF;
52761 
52762    --
52763    -- call analytical criteria
52764    --
52765    
52766    --
52767    -- call description
52768    --
52769    
52770 xla_ae_lines_pkg.SetLineDescription(
52771    p_ae_header_id => l_ae_header_id
52772   ,p_description  => Description_1 (
52773      p_application_id         => p_application_id
52774    , p_ae_header_id           => l_ae_header_id 
52775 , p_source_1 => p_source_1
52776    )
52777 );
52778 
52779 
52780    --
52781    -- call ADRs
52782    -- Bug 4922099
52783    --
52784    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52785         (NVL(l_actual_upg_option, 'N') = 'O') OR
52786         (NVL(l_enc_upg_option, 'N') = 'O')
52787       )
52788    THEN
52789    NULL;
52790    --
52791    --
52792    
52793   l_ccid := AcctDerRule_30(
52794            p_application_id           => p_application_id
52795          , p_ae_header_id             => l_ae_header_id 
52796 , p_source_15 => p_source_15
52797 , p_source_15_meaning => p_source_15_meaning
52798 , p_source_20 => p_source_20
52799 , p_source_21 => p_source_21
52800 , p_source_22 => p_source_22
52801 , p_source_22_meaning => p_source_22_meaning
52802 , p_source_23 => p_source_23
52803 , p_source_30 => p_source_30
52804 , p_source_47 => p_source_47
52805 , p_source_47_meaning => p_source_47_meaning
52806          , x_transaction_coa_id       => l_adr_transaction_coa_id
52807          , x_accounting_coa_id        => l_adr_accounting_coa_id
52808          , x_value_type_code          => l_adr_value_type_code
52809          , p_side                     => 'NA'
52810    );
52811 
52812    xla_ae_lines_pkg.set_ccid(
52813     p_code_combination_id          => l_ccid
52814   , p_value_type_code              => l_adr_value_type_code
52815   , p_transaction_coa_id           => l_adr_transaction_coa_id
52816   , p_accounting_coa_id            => l_adr_accounting_coa_id
52817   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
52818   , p_adr_type_code                => 'S'
52819   , p_component_type               => l_component_type
52820   , p_component_code               => l_component_code
52824   , p_side                         => 'NA'
52821   , p_component_type_code          => l_component_type_code
52822   , p_component_appl_id            => l_component_appl_id
52823   , p_amb_context_code             => l_amb_context_code
52825   );
52826 
52827 
52828    l_segment := AcctDerRule_8(
52829            p_application_id           => p_application_id
52830          , p_ae_header_id             => l_ae_header_id 
52831 , p_source_15 => p_source_15
52832 , p_source_15_meaning => p_source_15_meaning
52833 , p_source_20 => p_source_20
52834 , p_source_21 => p_source_21
52835 , p_source_22 => p_source_22
52836 , p_source_22_meaning => p_source_22_meaning
52837 , p_source_23 => p_source_23
52838          , x_transaction_coa_id       => l_adr_transaction_coa_id
52839          , x_accounting_coa_id        => l_adr_accounting_coa_id
52840          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
52841          , x_flex_value_set_id        => l_adr_flex_value_set_id
52842          , x_value_type_code          => l_adr_value_type_code
52843          , x_value_combination_id     => l_adr_value_combination_id
52844          , x_value_segment_code       => l_adr_value_segment_code
52845          , p_side                     => 'NA'
52846          , p_override_seg_flag        => 'Y'
52847    );
52848 
52849    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
52850 
52851       xla_ae_lines_pkg.set_segment(
52852           p_to_segment_code         => 'GL_ACCOUNT'
52853         , p_segment_value           => l_segment
52854         , p_from_segment_code       => l_adr_value_segment_code
52855         , p_from_combination_id     => l_adr_value_combination_id
52856         , p_value_type_code         => l_adr_value_type_code
52857         , p_transaction_coa_id      => l_adr_transaction_coa_id
52858         , p_accounting_coa_id       => l_adr_accounting_coa_id
52859         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
52860         , p_flex_value_set_id       => l_adr_flex_value_set_id
52861         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
52862         , p_adr_type_code           => 'S'
52863         , p_component_type          => l_component_type
52864         , p_component_code          => l_component_code
52865         , p_component_type_code     => l_component_type_code
52866         , p_component_appl_id       => l_component_appl_id
52867         , p_amb_context_code        => l_amb_context_code
52868         , p_entity_code             => 'AP_INVOICES'
52869         , p_event_class_code        => 'INVOICES'
52870         , p_side                    => 'NA'
52871         );
52872 
52873   END IF;
52874 
52875    l_segment := AcctDerRule_23(
52876            p_application_id           => p_application_id
52877          , p_ae_header_id             => l_ae_header_id 
52878 , p_source_15 => p_source_15
52879 , p_source_15_meaning => p_source_15_meaning
52880 , p_source_22 => p_source_22
52881 , p_source_22_meaning => p_source_22_meaning
52882 , p_source_30 => p_source_30
52883          , x_transaction_coa_id       => l_adr_transaction_coa_id
52884          , x_accounting_coa_id        => l_adr_accounting_coa_id
52885          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
52886          , x_flex_value_set_id        => l_adr_flex_value_set_id
52887          , x_value_type_code          => l_adr_value_type_code
52888          , x_value_combination_id     => l_adr_value_combination_id
52889          , x_value_segment_code       => l_adr_value_segment_code
52890          , p_side                     => 'NA'
52891          , p_override_seg_flag        => 'Y'
52892    );
52893 
52894    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
52895 
52896       xla_ae_lines_pkg.set_segment(
52897           p_to_segment_code         => 'GL_BALANCING'
52898         , p_segment_value           => l_segment
52899         , p_from_segment_code       => l_adr_value_segment_code
52900         , p_from_combination_id     => l_adr_value_combination_id
52901         , p_value_type_code         => l_adr_value_type_code
52902         , p_transaction_coa_id      => l_adr_transaction_coa_id
52903         , p_accounting_coa_id       => l_adr_accounting_coa_id
52904         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
52905         , p_flex_value_set_id       => l_adr_flex_value_set_id
52906         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
52907         , p_adr_type_code           => 'S'
52908         , p_component_type          => l_component_type
52909         , p_component_code          => l_component_code
52910         , p_component_type_code     => l_component_type_code
52911         , p_component_appl_id       => l_component_appl_id
52912         , p_amb_context_code        => l_amb_context_code
52913         , p_entity_code             => 'AP_INVOICES'
52914         , p_event_class_code        => 'INVOICES'
52915         , p_side                    => 'NA'
52916         );
52917 
52918   END IF;
52919 
52920    --
52921    --
52922    END IF;
52923    --
52924    -- Bug 4922099
52925    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
52926           (NVL(l_enc_upg_option, 'N') = 'O')
52927         ) AND
52928         (l_bflow_method_code = 'PRIOR_ENTRY')
52929       )
52930    THEN
52931       IF
52932       --
52933       1 = 2
52934       --
52935       THEN
52936       xla_accounting_err_pkg.build_message
52937                                     (p_appli_s_name            => 'XLA'
52941                                     ,p_token_2                 => 'LINE_TYPE_NAME'
52938                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52939                                     ,p_token_1                 => 'LINE_NUMBER'
52940                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
52942                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
52943                                                                              l_component_type
52944                                                                             ,l_component_code
52945                                                                             ,l_component_type_code
52946                                                                             ,l_component_appl_id
52947                                                                             ,l_amb_context_code
52948                                                                             ,l_entity_code
52949                                                                             ,l_event_class_code
52950                                                                            )
52951                                     ,p_token_3                 => 'OWNER'
52952                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
52953                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
52954                                                                           ,p_lookup_code    => l_component_type_code
52955                                                                          )
52956                                     ,p_token_4                 => 'PRODUCT_NAME'
52957                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
52958                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
52959                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
52960                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
52961                                     ,p_ae_header_id            =>  NULL
52962                                        );
52963 
52964         IF (C_LEVEL_ERROR>= g_log_level) THEN
52965                  trace
52966                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52967                       ,p_level    => C_LEVEL_ERROR
52968                       ,p_module   => l_log_module);
52969         END IF;
52970       END IF;
52971    END IF;
52972    --
52973    --
52974    ------------------------------------------------------------------------------------------------
52975    -- 4219869 Business Flow
52976    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
52977    -- Prior Entry.  Currently, the following code is always generated.
52978    ------------------------------------------------------------------------------------------------
52979    XLA_AE_LINES_PKG.ValidateCurrentLine;
52980 
52981    ------------------------------------------------------------------------------------
52982    -- 4219869 Business Flow
52983    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
52984    ------------------------------------------------------------------------------------
52985    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52986 
52987    ----------------------------------------------------------------------------------
52988    -- 4219869 Business Flow
52989    -- Update journal entry status -- Need to generate this within IF <condition>
52990    ----------------------------------------------------------------------------------
52991    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52992          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
52993          ,p_balance_type_code => l_balance_type_code
52994          );
52995 
52996    -------------------------------------------------------------------------------------------
52997    -- 4262811 - Generate the Accrual Reversal lines
52998    -------------------------------------------------------------------------------------------
52999    BEGIN
53000       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
53001                               (g_array_event(p_event_id).array_value_num('header_index'));
53002       IF l_acc_rev_flag IS NULL THEN
53003          l_acc_rev_flag := 'N';
53004       END IF;
53005    EXCEPTION
53006       WHEN OTHERS THEN
53007          l_acc_rev_flag := 'N';
53008    END;
53009    --
53010    IF (l_acc_rev_flag = 'Y') THEN
53011 
53012        -- 4645092  ------------------------------------------------------------------------------
53013        -- To allow MPA report to determine if it should generate report process
53014        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
53015        ------------------------------------------------------------------------------------------
53016 
53017        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
53018        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
53019    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
53020    -- call ADRs
53021    -- Bug 4922099
53022    --
53023    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53024         (NVL(l_actual_upg_option, 'N') = 'O') OR
53025         (NVL(l_enc_upg_option, 'N') = 'O')
53026       )
53027    THEN
53028    NULL;
53032   l_ccid := AcctDerRule_30(
53029    --
53030    --
53031    
53033            p_application_id           => p_application_id
53034          , p_ae_header_id             => l_ae_header_id 
53035 , p_source_15 => p_source_15
53036 , p_source_15_meaning => p_source_15_meaning
53037 , p_source_20 => p_source_20
53038 , p_source_21 => p_source_21
53039 , p_source_22 => p_source_22
53040 , p_source_22_meaning => p_source_22_meaning
53041 , p_source_23 => p_source_23
53042 , p_source_30 => p_source_30
53043 , p_source_47 => p_source_47
53044 , p_source_47_meaning => p_source_47_meaning
53045          , x_transaction_coa_id       => l_adr_transaction_coa_id
53046          , x_accounting_coa_id        => l_adr_accounting_coa_id
53047          , x_value_type_code          => l_adr_value_type_code
53048          , p_side                     => 'NA'
53049    );
53050 
53051    xla_ae_lines_pkg.set_ccid(
53052     p_code_combination_id          => l_ccid
53053   , p_value_type_code              => l_adr_value_type_code
53054   , p_transaction_coa_id           => l_adr_transaction_coa_id
53055   , p_accounting_coa_id            => l_adr_accounting_coa_id
53056   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
53057   , p_adr_type_code                => 'S'
53058   , p_component_type               => l_component_type
53059   , p_component_code               => l_component_code
53060   , p_component_type_code          => l_component_type_code
53061   , p_component_appl_id            => l_component_appl_id
53062   , p_amb_context_code             => l_amb_context_code
53063   , p_side                         => 'NA'
53064   );
53065 
53066 
53067    l_segment := AcctDerRule_8(
53068            p_application_id           => p_application_id
53069          , p_ae_header_id             => l_ae_header_id 
53070 , p_source_15 => p_source_15
53071 , p_source_15_meaning => p_source_15_meaning
53072 , p_source_20 => p_source_20
53073 , p_source_21 => p_source_21
53074 , p_source_22 => p_source_22
53075 , p_source_22_meaning => p_source_22_meaning
53076 , p_source_23 => p_source_23
53077          , x_transaction_coa_id       => l_adr_transaction_coa_id
53078          , x_accounting_coa_id        => l_adr_accounting_coa_id
53079          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
53080          , x_flex_value_set_id        => l_adr_flex_value_set_id
53081          , x_value_type_code          => l_adr_value_type_code
53082          , x_value_combination_id     => l_adr_value_combination_id
53083          , x_value_segment_code       => l_adr_value_segment_code
53084          , p_side                     => 'NA'
53085          , p_override_seg_flag        => 'Y'
53086    );
53087 
53088    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
53089 
53090       xla_ae_lines_pkg.set_segment(
53091           p_to_segment_code         => 'GL_ACCOUNT'
53092         , p_segment_value           => l_segment
53093         , p_from_segment_code       => l_adr_value_segment_code
53094         , p_from_combination_id     => l_adr_value_combination_id
53095         , p_value_type_code         => l_adr_value_type_code
53096         , p_transaction_coa_id      => l_adr_transaction_coa_id
53097         , p_accounting_coa_id       => l_adr_accounting_coa_id
53098         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
53099         , p_flex_value_set_id       => l_adr_flex_value_set_id
53100         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
53101         , p_adr_type_code           => 'S'
53102         , p_component_type          => l_component_type
53103         , p_component_code          => l_component_code
53104         , p_component_type_code     => l_component_type_code
53105         , p_component_appl_id       => l_component_appl_id
53106         , p_amb_context_code        => l_amb_context_code
53107         , p_entity_code             => 'AP_INVOICES'
53108         , p_event_class_code        => 'INVOICES'
53109         , p_side                    => 'NA'
53110         );
53111 
53112   END IF;
53113 
53114    l_segment := AcctDerRule_23(
53115            p_application_id           => p_application_id
53116          , p_ae_header_id             => l_ae_header_id 
53117 , p_source_15 => p_source_15
53118 , p_source_15_meaning => p_source_15_meaning
53119 , p_source_22 => p_source_22
53120 , p_source_22_meaning => p_source_22_meaning
53121 , p_source_30 => p_source_30
53122          , x_transaction_coa_id       => l_adr_transaction_coa_id
53123          , x_accounting_coa_id        => l_adr_accounting_coa_id
53124          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
53125          , x_flex_value_set_id        => l_adr_flex_value_set_id
53126          , x_value_type_code          => l_adr_value_type_code
53127          , x_value_combination_id     => l_adr_value_combination_id
53128          , x_value_segment_code       => l_adr_value_segment_code
53129          , p_side                     => 'NA'
53130          , p_override_seg_flag        => 'Y'
53131    );
53132 
53133    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
53134 
53135       xla_ae_lines_pkg.set_segment(
53136           p_to_segment_code         => 'GL_BALANCING'
53137         , p_segment_value           => l_segment
53138         , p_from_segment_code       => l_adr_value_segment_code
53139         , p_from_combination_id     => l_adr_value_combination_id
53140         , p_value_type_code         => l_adr_value_type_code
53141         , p_transaction_coa_id      => l_adr_transaction_coa_id
53142         , p_accounting_coa_id       => l_adr_accounting_coa_id
53146         , p_adr_type_code           => 'S'
53143         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
53144         , p_flex_value_set_id       => l_adr_flex_value_set_id
53145         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
53147         , p_component_type          => l_component_type
53148         , p_component_code          => l_component_code
53149         , p_component_type_code     => l_component_type_code
53150         , p_component_appl_id       => l_component_appl_id
53151         , p_amb_context_code        => l_amb_context_code
53152         , p_entity_code             => 'AP_INVOICES'
53153         , p_event_class_code        => 'INVOICES'
53154         , p_side                    => 'NA'
53155         );
53156 
53157   END IF;
53158 
53159    --
53160    --
53161    END IF;
53162 
53163        --
53164        -- Update the line information that should be overwritten
53165        --
53166        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
53167                                          p_header_num   => 1);
53168        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
53169 
53170        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
53171 
53172        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
53173           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
53174        END IF;
53175 
53176       --
53177       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
53178       --
53179       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
53180           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
53181       ELSE
53182           ---------------------------------------------------------------------------------------------------
53183           -- 4262811a Switch Sign
53184           ---------------------------------------------------------------------------------------------------
53185           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
53186           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53187                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53188           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53189                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53190           -- 5132302
53191           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
53192                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53193 
53194       END IF;
53195 
53196       -- 4955764
53197       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53198       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
53199 
53200 
53201       XLA_AE_LINES_PKG.ValidateCurrentLine;
53202       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53203 
53204       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53205                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
53206                ,p_balance_type_code => l_balance_type_code);
53207 
53208    END IF;
53209 
53210    -----------------------------------------------------------------------------------------
53211    -- 4262811 Multiperiod Accounting
53212    -----------------------------------------------------------------------------------------
53213      -- No MPA option is assigned.
53214 
53215 
53216 END IF;
53217 END IF;
53218 --
53219 
53220 --
53221 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53222    trace
53223       (p_msg      => 'END of AcctLineType_109'
53224       ,p_level    => C_LEVEL_PROCEDURE
53225       ,p_module   => l_log_module);
53226 END IF;
53227 --
53228 EXCEPTION
53229   WHEN xla_exceptions_pkg.application_exception THEN
53230       RAISE;
53231   WHEN OTHERS THEN
53232        xla_exceptions_pkg.raise_message
53233            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_109');
53234 END AcctLineType_109;
53235 --
53236 
53237 ---------------------------------------
53238 --
53239 -- PRIVATE FUNCTION
53240 --         AcctLineType_110
53241 --
53242 ---------------------------------------
53243 PROCEDURE AcctLineType_110 (
53244   p_application_id        IN NUMBER
53245  ,p_event_id              IN NUMBER
53246  ,p_calculate_acctd_flag  IN VARCHAR2
53247  ,p_calculate_g_l_flag    IN VARCHAR2
53248  ,p_actual_flag           IN OUT VARCHAR2
53249  ,p_balance_type_code     OUT VARCHAR2
53250  ,p_gain_or_loss_ref      OUT VARCHAR2
53251  
53252 --Invoice Distribution Description
53253  , p_source_1            IN VARCHAR2
53254 --Automatic Offsets Value
53255  , p_source_15            IN VARCHAR2
53256  , p_source_15_meaning    IN VARCHAR2
53257 --Purchase Order Rate Variance Gain Account
53258  , p_source_20            IN NUMBER
53259 --Invoice Distribution Ledger Amount
53260  , p_source_21            IN NUMBER
53261 --Destination Type of the PO Distribution
53262  , p_source_22            IN VARCHAR2
53266 --Invoice Distribution Account
53263  , p_source_22_meaning    IN VARCHAR2
53264 --Purchase Order Rate Variance Loss Account
53265  , p_source_23            IN NUMBER
53267  , p_source_30            IN NUMBER
53268 --Invoice Distribution Type
53269  , p_source_33            IN VARCHAR2
53270  , p_source_33_meaning    IN VARCHAR2
53271 --Automatic Offsets Flag
53272  , p_source_47            IN VARCHAR2
53273  , p_source_47_meaning    IN VARCHAR2
53274 --Accounting Reversal Indicator
53275  , p_source_53            IN VARCHAR2
53276 --Distribution Link Type
53277  , p_source_55            IN VARCHAR2
53278 --Allocation to Main Distribution Identifier
53279  , p_source_57            IN NUMBER
53280 --Invoice Identifier
53281  , p_source_58            IN NUMBER
53282 --Invoice Distribution Identifier
53283  , p_source_64            IN NUMBER
53284 --Payables Encumbrance Upgrade Credit Account
53285  , p_source_65            IN NUMBER
53286 --Payables Encumbrance Upgrade Credit Amount
53287  , p_source_66            IN NUMBER
53288 --Invoice Currency Code
53289  , p_source_67            IN VARCHAR2
53290 --Payables Encumbrance Upgrade Credit Base Amount
53291  , p_source_68            IN NUMBER
53292 --Payables Encumbrance Upgrade Debit Account
53293  , p_source_69            IN NUMBER
53294 --Payables Encumbrance Upgrade Debit Amount
53295  , p_source_70            IN NUMBER
53296 --Payables Encumbrance Upgrade Debit Base Amount
53297  , p_source_71            IN NUMBER
53298 --Payables Encumbrance Upgrade Option
53299  , p_source_72            IN VARCHAR2
53300 --Invoice Distribution Amount
53301  , p_source_73            IN NUMBER
53302 --Deferred Accounting End Date
53303  , p_source_77            IN DATE
53304 --Deferred Accounting Option
53305  , p_source_78            IN VARCHAR2
53306 --Deferred Accounting Start Date
53307  , p_source_79            IN DATE
53308 --Override Accounted Amount Indicator
53309  , p_source_80            IN VARCHAR2
53310  , p_source_80_meaning    IN VARCHAR2
53311 --Invoice Supplier Identifier
53312  , p_source_81            IN NUMBER
53313 --Invoice Supplier Site Identifier
53314  , p_source_82            IN NUMBER
53315 --Third Party Type
53316  , p_source_83            IN VARCHAR2
53317 --Parent Reversal Identifier
53318  , p_source_84            IN NUMBER
53319 --Invoice Distribution Statistical Amount
53320  , p_source_85            IN NUMBER
53321 --Invoice Distribution Tax Line Identifier
53322  , p_source_86            IN NUMBER
53323 --Invoice Distribution Tax Distribution Identifier from Tax
53324  , p_source_87            IN NUMBER
53325 --Invoice Distribution Summary Tax Line Identifier
53326  , p_source_88            IN NUMBER
53327 --Payables Upgrade Credit Encumbrance Type Identifier
53328  , p_source_89            IN NUMBER
53329 --Payables Upgrade Debit Encumbrance Type Identifier
53330  , p_source_90            IN NUMBER
53331 --Business Flow Accounts Payable Application Identifier
53332  , p_source_91            IN NUMBER
53333 --Business Flow Invoice Distribution Type
53334  , p_source_92            IN VARCHAR2
53335 --Business Flow Invoice Entity Code
53336  , p_source_93            IN VARCHAR2
53337 --Business Flow Invoice Distribution Identifier
53338  , p_source_94            IN NUMBER
53339 --Business Flow Invoice Identifier
53340  , p_source_95            IN NUMBER
53341 --Accrue on Receipt Option
53342  , p_source_96            IN VARCHAR2
53343  , p_source_96_meaning    IN VARCHAR2
53344 --Invoice Exchange Date
53345  , p_source_143            IN DATE
53346 --Invoice Exchange Rate
53347  , p_source_144            IN NUMBER
53348 --Invoice Exchange Rate Type
53349  , p_source_145            IN VARCHAR2
53350 )
53351 IS
53352 
53353 l_component_type              VARCHAR2(80);
53354 l_component_code              VARCHAR2(30);
53355 l_component_type_code         VARCHAR2(1);
53356 l_component_appl_id           INTEGER;
53357 l_amb_context_code            VARCHAR2(30);
53358 l_entity_code                 VARCHAR2(30);
53359 l_event_class_code            VARCHAR2(30);
53360 l_ae_header_id                NUMBER;
53361 l_event_type_code             VARCHAR2(30);
53362 l_line_definition_code        VARCHAR2(30);
53363 l_line_definition_owner_code  VARCHAR2(1);
53364 --
53365 -- adr variables
53366 l_segment                     VARCHAR2(30);
53367 l_ccid                        NUMBER;
53368 l_adr_transaction_coa_id      NUMBER;
53369 l_adr_accounting_coa_id       NUMBER;
53370 l_adr_flexfield_segment_code  VARCHAR2(30);
53371 l_adr_flex_value_set_id       NUMBER;
53372 l_adr_value_type_code         VARCHAR2(30);
53373 l_adr_value_combination_id    NUMBER;
53374 l_adr_value_segment_code      VARCHAR2(30);
53375 
53376 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
53377 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
53378 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
53379 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
53380 
53381 -- 4262811 Variables ------------------------------------------------------------------------------------------
53382 l_entered_amt_idx             NUMBER;
53383 l_accted_amt_idx              NUMBER;
53384 l_acc_rev_flag                VARCHAR2(1);
53385 l_accrual_line_num            NUMBER;
53386 l_tmp_amt                     NUMBER;
53387 l_acc_rev_natural_side_code   VARCHAR2(1);
53388 
53389 l_num_entries                 NUMBER;
53390 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
53394 l_recog_line_1                NUMBER;
53391 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
53392 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
53393 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
53395 l_recog_line_2                NUMBER;
53396 
53397 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
53398 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
53399 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
53400 
53401 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
53402 
53403 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
53404 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
53405 
53406 ---------------------------------------------------------------------------------------------------------------
53407 
53408 
53409 --
53410 -- bulk performance
53411 --
53412 l_balance_type_code           VARCHAR2(1);
53413 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
53414 l_log_module                  VARCHAR2(240);
53415 
53416 --
53417 -- Upgrade strategy
53418 --
53419 l_actual_upg_option           VARCHAR2(1);
53420 l_enc_upg_option           VARCHAR2(1);
53421 
53422 --
53423 BEGIN
53424 --
53425 IF g_log_enabled THEN
53426       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_110';
53427 END IF;
53428 --
53429 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53430 
53431       trace
53432          (p_msg      => 'BEGIN of AcctLineType_110'
53433          ,p_level    => C_LEVEL_PROCEDURE
53434          ,p_module   => l_log_module);
53435 
53436 END IF;
53437 --
53438 l_component_type             := 'AMB_JLT';
53439 l_component_code             := 'AP_EX_RATE_VAR_PREPAY';
53440 l_component_type_code        := 'S';
53441 l_component_appl_id          :=  200;
53442 l_amb_context_code           := 'DEFAULT';
53443 l_entity_code                := 'AP_INVOICES';
53444 l_event_class_code           := 'PREPAYMENTS';
53445 l_event_type_code            := 'PREPAYMENTS_ALL';
53446 l_line_definition_owner_code := 'S';
53447 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
53448 --
53449 l_balance_type_code          := 'A';
53450 l_segment                     := NULL;
53451 l_ccid                        := NULL;
53452 l_adr_transaction_coa_id      := NULL;
53453 l_adr_accounting_coa_id       := NULL;
53454 l_adr_flexfield_segment_code  := NULL;
53455 l_adr_flex_value_set_id       := NULL;
53456 l_adr_value_type_code         := NULL;
53457 l_adr_value_combination_id    := NULL;
53458 l_adr_value_segment_code      := NULL;
53459 
53460 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
53461 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
53462 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
53463 l_budgetary_control_flag     := 'N';
53464 
53465 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
53466 l_bflow_applied_to_amt       := NULL; -- 5132302
53467 l_entered_amt_idx            := NULL;          -- 4262811
53468 l_accted_amt_idx             := NULL;          -- 4262811
53469 l_acc_rev_flag               := NULL;          -- 4262811
53470 l_accrual_line_num           := NULL;          -- 4262811
53471 l_tmp_amt                    := NULL;          -- 4262811
53472 --
53473 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
53474             (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
53475                return;
53476   END IF;
53477   
53478 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
53479     l_balance_type_code <> 'B' THEN
53480 IF NVL(p_source_33,'
53481 ') =  'ERV' AND 
53482 NVL(p_source_96,'
53483 ') =  'Y'
53484  THEN 
53485 
53486    --
53487    XLA_AE_LINES_PKG.SetNewLine;
53488 
53489    p_balance_type_code          := l_balance_type_code;
53490    -- set the flag so later we will know whether the gain loss line needs to be created
53491    
53492    IF(l_balance_type_code = 'A' ) THEN
53493      p_actual_flag :='G';
53494    END IF;
53495 
53496    --
53497    -- bulk performance
53498    --
53499    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
53500                                       p_header_num   => 0); -- 4262811
53501    --
53502    -- set accounting line options
53503    --
53504    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
53505            p_natural_side_code          => 'D'
53506          , p_gain_or_loss_flag          => 'Y'
53507          , p_gl_transfer_mode_code      => 'S'
53508          , p_acct_entry_type_code       => 'A'
53509          , p_switch_side_flag           => 'Y'
53510          , p_merge_duplicate_code       => 'A'
53511          );
53512    --
53513    l_acc_rev_natural_side_code := 'C';  -- 4262811
53514    -- 
53515    --
53516    -- set accounting line type info
53517    --
53518    xla_ae_lines_pkg.SetAcctLineType
53519       (p_component_type             => l_component_type
53520       ,p_event_type_code            => l_event_type_code
53524       ,p_accounting_line_type_code  => l_component_type_code
53521       ,p_line_definition_owner_code => l_line_definition_owner_code
53522       ,p_line_definition_code       => l_line_definition_code
53523       ,p_accounting_line_code       => l_component_code
53525       ,p_accounting_line_appl_id    => l_component_appl_id
53526       ,p_amb_context_code           => l_amb_context_code
53527       ,p_entity_code                => l_entity_code
53528       ,p_event_class_code           => l_event_class_code);
53529    --
53530    -- set accounting class
53531    --
53532    xla_ae_lines_pkg.SetAcctClass(
53533            p_accounting_class_code  => 'EXCHANGE_RATE_VARIANCE'
53534          , p_ae_header_id           => l_ae_header_id
53535          );
53536 
53537    --
53538    -- set rounding class
53539    --
53540    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
53541                       'EXCHANGE_RATE_VARIANCE';
53542 
53543    --
53544    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
53545    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
53546    --
53547    -- bulk performance
53548    --
53549    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
53550 
53551    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
53552       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
53553 
53554    -- 4955764
53555    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53556       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
53557 
53558    -- 4458381 Public Sector Enh
53559    
53560    --
53561    -- set accounting attributes for the line type
53562    --
53563    l_entered_amt_idx := 23;
53564    l_accted_amt_idx  := 28;
53565    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
53566    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
53567    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
53568    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
53569    l_rec_acct_attrs.array_num_value(2)  := 
53570 xla_ae_sources_pkg.GetSystemSourceNum(
53571    p_source_code           => 'XLA_EVENT_APPL_ID'
53572  , p_source_type_code      => 'Y'
53573  , p_source_application_id =>  602
53574 );
53575    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
53576    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
53577    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
53578    l_rec_acct_attrs.array_char_value(4)  := 
53579 xla_ae_sources_pkg.GetSystemSourceChar(
53580    p_source_code           => 'XLA_ENTITY_CODE'
53581  , p_source_type_code      => 'Y'
53582  , p_source_application_id =>  602
53583 );
53584    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
53585    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
53586    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
53587    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
53588    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
53589    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
53590    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
53591    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
53592    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
53593    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
53594    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
53595    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
53596    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
53597    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
53598    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
53599    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
53600    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
53601    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
53602    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
53603    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
53604    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
53605    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
53606    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
53607    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
53608    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
53609    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
53610    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
53611    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
53612    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
53613    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
53614    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
53615    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
53616    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
53617    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
53618    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
53619    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
53620    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
53624    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
53621    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
53622    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
53623    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
53625    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
53626    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
53627    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
53628    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
53629    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
53630    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
53631    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
53632    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
53633    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
53634    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
53635    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
53636    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
53637    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
53638    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
53639    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
53640    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
53641    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
53642    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
53643    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
53644    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
53645    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
53646    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
53647    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
53648    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
53649    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
53650    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
53651    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
53652    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
53653    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
53654    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
53655    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
53656    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
53657    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
53658    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
53659    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
53660    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
53661    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
53662 
53663    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
53664    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
53665 
53666    ---------------------------------------------------------------------------------------------------------------
53667    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
53668    ---------------------------------------------------------------------------------------------------------------
53669    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
53670 
53671    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53672    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53673 
53674    IF xla_accounting_cache_pkg.GetValueChar
53675          (p_source_code         => 'LEDGER_CATEGORY_CODE'
53676          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
53677    AND l_bflow_method_code = 'PRIOR_ENTRY'
53678 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
53679    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
53680          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
53681        )
53682    THEN
53683          xla_ae_lines_pkg.BflowUpgEntry
53684            (p_business_method_code    => l_bflow_method_code
53685            ,p_business_class_code     => l_bflow_class_code
53686            ,p_balance_type            => l_balance_type_code);
53687    ELSE
53688       NULL;
53689 -- No business flow processing for business flow method of NONE.
53690    END IF;
53691 
53692    --
53693    -- call analytical criteria
53694    --
53695    
53696    --
53697    -- call description
53698    --
53699    
53700 xla_ae_lines_pkg.SetLineDescription(
53701    p_ae_header_id => l_ae_header_id
53702   ,p_description  => Description_1 (
53703      p_application_id         => p_application_id
53704    , p_ae_header_id           => l_ae_header_id 
53705 , p_source_1 => p_source_1
53706    )
53707 );
53708 
53709 
53710    --
53711    -- call ADRs
53712    -- Bug 4922099
53713    --
53714    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53715         (NVL(l_actual_upg_option, 'N') = 'O') OR
53716         (NVL(l_enc_upg_option, 'N') = 'O')
53717       )
53718    THEN
53719    NULL;
53720    --
53721    --
53722    
53723   l_ccid := AcctDerRule_30(
53724            p_application_id           => p_application_id
53725          , p_ae_header_id             => l_ae_header_id 
53726 , p_source_15 => p_source_15
53727 , p_source_15_meaning => p_source_15_meaning
53728 , p_source_20 => p_source_20
53732 , p_source_23 => p_source_23
53729 , p_source_21 => p_source_21
53730 , p_source_22 => p_source_22
53731 , p_source_22_meaning => p_source_22_meaning
53733 , p_source_30 => p_source_30
53734 , p_source_47 => p_source_47
53735 , p_source_47_meaning => p_source_47_meaning
53736          , x_transaction_coa_id       => l_adr_transaction_coa_id
53737          , x_accounting_coa_id        => l_adr_accounting_coa_id
53738          , x_value_type_code          => l_adr_value_type_code
53739          , p_side                     => 'NA'
53740    );
53741 
53742    xla_ae_lines_pkg.set_ccid(
53743     p_code_combination_id          => l_ccid
53744   , p_value_type_code              => l_adr_value_type_code
53745   , p_transaction_coa_id           => l_adr_transaction_coa_id
53746   , p_accounting_coa_id            => l_adr_accounting_coa_id
53747   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
53748   , p_adr_type_code                => 'S'
53749   , p_component_type               => l_component_type
53750   , p_component_code               => l_component_code
53751   , p_component_type_code          => l_component_type_code
53752   , p_component_appl_id            => l_component_appl_id
53753   , p_amb_context_code             => l_amb_context_code
53754   , p_side                         => 'NA'
53755   );
53756 
53757 
53758    l_segment := AcctDerRule_8(
53759            p_application_id           => p_application_id
53760          , p_ae_header_id             => l_ae_header_id 
53761 , p_source_15 => p_source_15
53762 , p_source_15_meaning => p_source_15_meaning
53763 , p_source_20 => p_source_20
53764 , p_source_21 => p_source_21
53765 , p_source_22 => p_source_22
53766 , p_source_22_meaning => p_source_22_meaning
53767 , p_source_23 => p_source_23
53768          , x_transaction_coa_id       => l_adr_transaction_coa_id
53769          , x_accounting_coa_id        => l_adr_accounting_coa_id
53770          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
53771          , x_flex_value_set_id        => l_adr_flex_value_set_id
53772          , x_value_type_code          => l_adr_value_type_code
53773          , x_value_combination_id     => l_adr_value_combination_id
53774          , x_value_segment_code       => l_adr_value_segment_code
53775          , p_side                     => 'NA'
53776          , p_override_seg_flag        => 'Y'
53777    );
53778 
53779    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
53780 
53781       xla_ae_lines_pkg.set_segment(
53782           p_to_segment_code         => 'GL_ACCOUNT'
53783         , p_segment_value           => l_segment
53784         , p_from_segment_code       => l_adr_value_segment_code
53785         , p_from_combination_id     => l_adr_value_combination_id
53786         , p_value_type_code         => l_adr_value_type_code
53787         , p_transaction_coa_id      => l_adr_transaction_coa_id
53788         , p_accounting_coa_id       => l_adr_accounting_coa_id
53789         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
53790         , p_flex_value_set_id       => l_adr_flex_value_set_id
53791         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
53792         , p_adr_type_code           => 'S'
53793         , p_component_type          => l_component_type
53794         , p_component_code          => l_component_code
53795         , p_component_type_code     => l_component_type_code
53796         , p_component_appl_id       => l_component_appl_id
53797         , p_amb_context_code        => l_amb_context_code
53798         , p_entity_code             => 'AP_INVOICES'
53799         , p_event_class_code        => 'PREPAYMENTS'
53800         , p_side                    => 'NA'
53801         );
53802 
53803   END IF;
53804 
53805    l_segment := AcctDerRule_23(
53806            p_application_id           => p_application_id
53807          , p_ae_header_id             => l_ae_header_id 
53808 , p_source_15 => p_source_15
53809 , p_source_15_meaning => p_source_15_meaning
53810 , p_source_22 => p_source_22
53811 , p_source_22_meaning => p_source_22_meaning
53812 , p_source_30 => p_source_30
53813          , x_transaction_coa_id       => l_adr_transaction_coa_id
53814          , x_accounting_coa_id        => l_adr_accounting_coa_id
53815          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
53816          , x_flex_value_set_id        => l_adr_flex_value_set_id
53817          , x_value_type_code          => l_adr_value_type_code
53818          , x_value_combination_id     => l_adr_value_combination_id
53819          , x_value_segment_code       => l_adr_value_segment_code
53820          , p_side                     => 'NA'
53821          , p_override_seg_flag        => 'Y'
53822    );
53823 
53824    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
53825 
53826       xla_ae_lines_pkg.set_segment(
53827           p_to_segment_code         => 'GL_BALANCING'
53828         , p_segment_value           => l_segment
53829         , p_from_segment_code       => l_adr_value_segment_code
53830         , p_from_combination_id     => l_adr_value_combination_id
53831         , p_value_type_code         => l_adr_value_type_code
53832         , p_transaction_coa_id      => l_adr_transaction_coa_id
53833         , p_accounting_coa_id       => l_adr_accounting_coa_id
53834         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
53835         , p_flex_value_set_id       => l_adr_flex_value_set_id
53836         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
53837         , p_adr_type_code           => 'S'
53838         , p_component_type          => l_component_type
53842         , p_amb_context_code        => l_amb_context_code
53839         , p_component_code          => l_component_code
53840         , p_component_type_code     => l_component_type_code
53841         , p_component_appl_id       => l_component_appl_id
53843         , p_entity_code             => 'AP_INVOICES'
53844         , p_event_class_code        => 'PREPAYMENTS'
53845         , p_side                    => 'NA'
53846         );
53847 
53848   END IF;
53849 
53850    --
53851    --
53852    END IF;
53853    --
53854    -- Bug 4922099
53855    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
53856           (NVL(l_enc_upg_option, 'N') = 'O')
53857         ) AND
53858         (l_bflow_method_code = 'PRIOR_ENTRY')
53859       )
53860    THEN
53861       IF
53862       --
53863       1 = 2
53864       --
53865       THEN
53866       xla_accounting_err_pkg.build_message
53867                                     (p_appli_s_name            => 'XLA'
53868                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53869                                     ,p_token_1                 => 'LINE_NUMBER'
53870                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
53871                                     ,p_token_2                 => 'LINE_TYPE_NAME'
53872                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
53873                                                                              l_component_type
53874                                                                             ,l_component_code
53875                                                                             ,l_component_type_code
53876                                                                             ,l_component_appl_id
53877                                                                             ,l_amb_context_code
53878                                                                             ,l_entity_code
53879                                                                             ,l_event_class_code
53880                                                                            )
53881                                     ,p_token_3                 => 'OWNER'
53882                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
53883                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
53884                                                                           ,p_lookup_code    => l_component_type_code
53885                                                                          )
53886                                     ,p_token_4                 => 'PRODUCT_NAME'
53887                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
53888                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
53889                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
53890                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
53891                                     ,p_ae_header_id            =>  NULL
53892                                        );
53893 
53894         IF (C_LEVEL_ERROR>= g_log_level) THEN
53895                  trace
53896                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53897                       ,p_level    => C_LEVEL_ERROR
53898                       ,p_module   => l_log_module);
53899         END IF;
53900       END IF;
53901    END IF;
53902    --
53903    --
53904    ------------------------------------------------------------------------------------------------
53905    -- 4219869 Business Flow
53906    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
53907    -- Prior Entry.  Currently, the following code is always generated.
53908    ------------------------------------------------------------------------------------------------
53909    XLA_AE_LINES_PKG.ValidateCurrentLine;
53910 
53911    ------------------------------------------------------------------------------------
53912    -- 4219869 Business Flow
53913    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
53914    ------------------------------------------------------------------------------------
53915    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53916 
53917    ----------------------------------------------------------------------------------
53918    -- 4219869 Business Flow
53919    -- Update journal entry status -- Need to generate this within IF <condition>
53920    ----------------------------------------------------------------------------------
53921    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53922          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
53923          ,p_balance_type_code => l_balance_type_code
53924          );
53925 
53926    -------------------------------------------------------------------------------------------
53927    -- 4262811 - Generate the Accrual Reversal lines
53928    -------------------------------------------------------------------------------------------
53929    BEGIN
53930       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
53931                               (g_array_event(p_event_id).array_value_num('header_index'));
53932       IF l_acc_rev_flag IS NULL THEN
53933          l_acc_rev_flag := 'N';
53934       END IF;
53935    EXCEPTION
53939    --
53936       WHEN OTHERS THEN
53937          l_acc_rev_flag := 'N';
53938    END;
53940    IF (l_acc_rev_flag = 'Y') THEN
53941 
53942        -- 4645092  ------------------------------------------------------------------------------
53943        -- To allow MPA report to determine if it should generate report process
53944        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
53945        ------------------------------------------------------------------------------------------
53946 
53947        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
53948        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
53949    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
53950    -- call ADRs
53951    -- Bug 4922099
53952    --
53953    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53954         (NVL(l_actual_upg_option, 'N') = 'O') OR
53955         (NVL(l_enc_upg_option, 'N') = 'O')
53956       )
53957    THEN
53958    NULL;
53959    --
53960    --
53961    
53962   l_ccid := AcctDerRule_30(
53963            p_application_id           => p_application_id
53964          , p_ae_header_id             => l_ae_header_id 
53965 , p_source_15 => p_source_15
53966 , p_source_15_meaning => p_source_15_meaning
53967 , p_source_20 => p_source_20
53968 , p_source_21 => p_source_21
53969 , p_source_22 => p_source_22
53970 , p_source_22_meaning => p_source_22_meaning
53971 , p_source_23 => p_source_23
53972 , p_source_30 => p_source_30
53973 , p_source_47 => p_source_47
53974 , p_source_47_meaning => p_source_47_meaning
53975          , x_transaction_coa_id       => l_adr_transaction_coa_id
53976          , x_accounting_coa_id        => l_adr_accounting_coa_id
53977          , x_value_type_code          => l_adr_value_type_code
53978          , p_side                     => 'NA'
53979    );
53980 
53981    xla_ae_lines_pkg.set_ccid(
53982     p_code_combination_id          => l_ccid
53983   , p_value_type_code              => l_adr_value_type_code
53984   , p_transaction_coa_id           => l_adr_transaction_coa_id
53985   , p_accounting_coa_id            => l_adr_accounting_coa_id
53986   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
53987   , p_adr_type_code                => 'S'
53988   , p_component_type               => l_component_type
53989   , p_component_code               => l_component_code
53990   , p_component_type_code          => l_component_type_code
53991   , p_component_appl_id            => l_component_appl_id
53992   , p_amb_context_code             => l_amb_context_code
53993   , p_side                         => 'NA'
53994   );
53995 
53996 
53997    l_segment := AcctDerRule_8(
53998            p_application_id           => p_application_id
53999          , p_ae_header_id             => l_ae_header_id 
54000 , p_source_15 => p_source_15
54001 , p_source_15_meaning => p_source_15_meaning
54002 , p_source_20 => p_source_20
54003 , p_source_21 => p_source_21
54004 , p_source_22 => p_source_22
54005 , p_source_22_meaning => p_source_22_meaning
54006 , p_source_23 => p_source_23
54007          , x_transaction_coa_id       => l_adr_transaction_coa_id
54008          , x_accounting_coa_id        => l_adr_accounting_coa_id
54009          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
54010          , x_flex_value_set_id        => l_adr_flex_value_set_id
54011          , x_value_type_code          => l_adr_value_type_code
54012          , x_value_combination_id     => l_adr_value_combination_id
54013          , x_value_segment_code       => l_adr_value_segment_code
54014          , p_side                     => 'NA'
54015          , p_override_seg_flag        => 'Y'
54016    );
54017 
54018    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
54019 
54020       xla_ae_lines_pkg.set_segment(
54021           p_to_segment_code         => 'GL_ACCOUNT'
54022         , p_segment_value           => l_segment
54023         , p_from_segment_code       => l_adr_value_segment_code
54024         , p_from_combination_id     => l_adr_value_combination_id
54025         , p_value_type_code         => l_adr_value_type_code
54026         , p_transaction_coa_id      => l_adr_transaction_coa_id
54027         , p_accounting_coa_id       => l_adr_accounting_coa_id
54028         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
54029         , p_flex_value_set_id       => l_adr_flex_value_set_id
54030         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
54031         , p_adr_type_code           => 'S'
54032         , p_component_type          => l_component_type
54033         , p_component_code          => l_component_code
54034         , p_component_type_code     => l_component_type_code
54035         , p_component_appl_id       => l_component_appl_id
54036         , p_amb_context_code        => l_amb_context_code
54037         , p_entity_code             => 'AP_INVOICES'
54038         , p_event_class_code        => 'PREPAYMENTS'
54039         , p_side                    => 'NA'
54040         );
54041 
54042   END IF;
54043 
54044    l_segment := AcctDerRule_23(
54045            p_application_id           => p_application_id
54046          , p_ae_header_id             => l_ae_header_id 
54047 , p_source_15 => p_source_15
54048 , p_source_15_meaning => p_source_15_meaning
54049 , p_source_22 => p_source_22
54050 , p_source_22_meaning => p_source_22_meaning
54051 , p_source_30 => p_source_30
54052          , x_transaction_coa_id       => l_adr_transaction_coa_id
54053          , x_accounting_coa_id        => l_adr_accounting_coa_id
54057          , x_value_combination_id     => l_adr_value_combination_id
54054          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
54055          , x_flex_value_set_id        => l_adr_flex_value_set_id
54056          , x_value_type_code          => l_adr_value_type_code
54058          , x_value_segment_code       => l_adr_value_segment_code
54059          , p_side                     => 'NA'
54060          , p_override_seg_flag        => 'Y'
54061    );
54062 
54063    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
54064 
54065       xla_ae_lines_pkg.set_segment(
54066           p_to_segment_code         => 'GL_BALANCING'
54067         , p_segment_value           => l_segment
54068         , p_from_segment_code       => l_adr_value_segment_code
54069         , p_from_combination_id     => l_adr_value_combination_id
54070         , p_value_type_code         => l_adr_value_type_code
54071         , p_transaction_coa_id      => l_adr_transaction_coa_id
54072         , p_accounting_coa_id       => l_adr_accounting_coa_id
54073         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
54074         , p_flex_value_set_id       => l_adr_flex_value_set_id
54075         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
54076         , p_adr_type_code           => 'S'
54077         , p_component_type          => l_component_type
54078         , p_component_code          => l_component_code
54079         , p_component_type_code     => l_component_type_code
54080         , p_component_appl_id       => l_component_appl_id
54081         , p_amb_context_code        => l_amb_context_code
54082         , p_entity_code             => 'AP_INVOICES'
54083         , p_event_class_code        => 'PREPAYMENTS'
54084         , p_side                    => 'NA'
54085         );
54086 
54087   END IF;
54088 
54089    --
54090    --
54091    END IF;
54092 
54093        --
54094        -- Update the line information that should be overwritten
54095        --
54096        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
54097                                          p_header_num   => 1);
54098        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
54099 
54100        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
54101 
54102        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
54103           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
54104        END IF;
54105 
54106       --
54107       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
54108       --
54109       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
54110           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
54111       ELSE
54112           ---------------------------------------------------------------------------------------------------
54113           -- 4262811a Switch Sign
54114           ---------------------------------------------------------------------------------------------------
54115           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
54116           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54117                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54118           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54119                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54120           -- 5132302
54121           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
54122                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54123 
54124       END IF;
54125 
54126       -- 4955764
54127       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54128       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
54129 
54130 
54131       XLA_AE_LINES_PKG.ValidateCurrentLine;
54132       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54133 
54134       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54135                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
54136                ,p_balance_type_code => l_balance_type_code);
54137 
54138    END IF;
54139 
54140    -----------------------------------------------------------------------------------------
54141    -- 4262811 Multiperiod Accounting
54142    -----------------------------------------------------------------------------------------
54143      -- No MPA option is assigned.
54144 
54145 
54146 END IF;
54147 END IF;
54148 --
54149 
54150 --
54151 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54152    trace
54153       (p_msg      => 'END of AcctLineType_110'
54154       ,p_level    => C_LEVEL_PROCEDURE
54155       ,p_module   => l_log_module);
54156 END IF;
54157 --
54158 EXCEPTION
54159   WHEN xla_exceptions_pkg.application_exception THEN
54160       RAISE;
54161   WHEN OTHERS THEN
54162        xla_exceptions_pkg.raise_message
54163            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_110');
54164 END AcctLineType_110;
54165 --
54166 
54170 --         AcctLineType_111
54167 ---------------------------------------
54168 --
54169 -- PRIVATE FUNCTION
54171 --
54172 ---------------------------------------
54173 PROCEDURE AcctLineType_111 (
54174   p_application_id        IN NUMBER
54175  ,p_event_id              IN NUMBER
54176  ,p_calculate_acctd_flag  IN VARCHAR2
54177  ,p_calculate_g_l_flag    IN VARCHAR2
54178  ,p_actual_flag           IN OUT VARCHAR2
54179  ,p_balance_type_code     OUT VARCHAR2
54180  ,p_gain_or_loss_ref      OUT VARCHAR2
54181  
54182 --Automatic Offsets Value
54183  , p_source_15            IN VARCHAR2
54184  , p_source_15_meaning    IN VARCHAR2
54185 --Invoice Distribution Account
54186  , p_source_30            IN NUMBER
54187 --Payables Options Rounding Account
54188  , p_source_49            IN NUMBER
54189 --Accounting Reversal Indicator
54190  , p_source_53            IN VARCHAR2
54191 --Distribution Link Type
54192  , p_source_55            IN VARCHAR2
54193 --Invoice Identifier
54194  , p_source_58            IN NUMBER
54195 --Payables Encumbrance Upgrade Credit Account
54196  , p_source_65            IN NUMBER
54197 --Payables Encumbrance Upgrade Credit Amount
54198  , p_source_66            IN NUMBER
54199 --Invoice Currency Code
54200  , p_source_67            IN VARCHAR2
54201 --Payables Encumbrance Upgrade Credit Base Amount
54202  , p_source_68            IN NUMBER
54203 --Payables Encumbrance Upgrade Debit Account
54204  , p_source_69            IN NUMBER
54205 --Payables Encumbrance Upgrade Debit Amount
54206  , p_source_70            IN NUMBER
54207 --Payables Encumbrance Upgrade Debit Base Amount
54208  , p_source_71            IN NUMBER
54209 --Payables Encumbrance Upgrade Option
54210  , p_source_72            IN VARCHAR2
54211 --Deferred Accounting End Date
54212  , p_source_77            IN DATE
54213 --Deferred Accounting Option
54214  , p_source_78            IN VARCHAR2
54215 --Deferred Accounting Start Date
54216  , p_source_79            IN DATE
54217 --Override Accounted Amount Indicator
54218  , p_source_80            IN VARCHAR2
54219  , p_source_80_meaning    IN VARCHAR2
54220 --Invoice Supplier Identifier
54221  , p_source_81            IN NUMBER
54222 --Invoice Supplier Site Identifier
54223  , p_source_82            IN NUMBER
54224 --Third Party Type
54225  , p_source_83            IN VARCHAR2
54226 --Invoice Distribution Tax Line Identifier
54227  , p_source_86            IN NUMBER
54228 --Invoice Distribution Tax Distribution Identifier from Tax
54229  , p_source_87            IN NUMBER
54230 --Invoice Distribution Summary Tax Line Identifier
54231  , p_source_88            IN NUMBER
54232 --Payables Upgrade Credit Encumbrance Type Identifier
54233  , p_source_89            IN NUMBER
54234 --Payables Upgrade Debit Encumbrance Type Identifier
54235  , p_source_90            IN NUMBER
54236 --Business Flow Accounts Payable Application Identifier
54237  , p_source_91            IN NUMBER
54238 --Prepayment Distribution Type
54239  , p_source_125            IN VARCHAR2
54240 --Prepayment Application Distribution Identifier
54241  , p_source_127            IN NUMBER
54242 --Upgrade Encumbrance Credit Account Class
54243  , p_source_132            IN VARCHAR2
54244 --Upgrade Encumbrance Debit Account Class
54245  , p_source_133            IN VARCHAR2
54246 --Prepayment Distribution Amount
54247  , p_source_134            IN NUMBER
54248 --Prepayment Distribution (Prepayment Rate) Ledger Amount
54249  , p_source_135            IN NUMBER
54250 --Identifier of the Prepayment Application Reversed
54251  , p_source_136            IN NUMBER
54252 --Invoice Exchange Date
54253  , p_source_143            IN DATE
54254 --Invoice Exchange Rate
54255  , p_source_144            IN NUMBER
54256 --Invoice Exchange Rate Type
54257  , p_source_145            IN VARCHAR2
54258 --Business Flow Prepayment Invoice Distribution Type
54259  , p_source_146            IN VARCHAR2
54260 --Business Flow Prepayment Invoice Entity Code
54261  , p_source_147            IN VARCHAR2
54262 --Business Flow Prepayment Invoice Distribution Identifier
54263  , p_source_148            IN NUMBER
54264 --Business Flow Prepayment Invoice Identifier
54265  , p_source_149            IN NUMBER
54266 )
54267 IS
54268 
54269 l_component_type              VARCHAR2(80);
54270 l_component_code              VARCHAR2(30);
54271 l_component_type_code         VARCHAR2(1);
54272 l_component_appl_id           INTEGER;
54273 l_amb_context_code            VARCHAR2(30);
54274 l_entity_code                 VARCHAR2(30);
54275 l_event_class_code            VARCHAR2(30);
54276 l_ae_header_id                NUMBER;
54277 l_event_type_code             VARCHAR2(30);
54278 l_line_definition_code        VARCHAR2(30);
54279 l_line_definition_owner_code  VARCHAR2(1);
54280 --
54281 -- adr variables
54282 l_segment                     VARCHAR2(30);
54283 l_ccid                        NUMBER;
54284 l_adr_transaction_coa_id      NUMBER;
54285 l_adr_accounting_coa_id       NUMBER;
54286 l_adr_flexfield_segment_code  VARCHAR2(30);
54287 l_adr_flex_value_set_id       NUMBER;
54288 l_adr_value_type_code         VARCHAR2(30);
54289 l_adr_value_combination_id    NUMBER;
54290 l_adr_value_segment_code      VARCHAR2(30);
54291 
54292 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
54293 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
54294 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
54298 l_entered_amt_idx             NUMBER;
54295 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
54296 
54297 -- 4262811 Variables ------------------------------------------------------------------------------------------
54299 l_accted_amt_idx              NUMBER;
54300 l_acc_rev_flag                VARCHAR2(1);
54301 l_accrual_line_num            NUMBER;
54302 l_tmp_amt                     NUMBER;
54303 l_acc_rev_natural_side_code   VARCHAR2(1);
54304 
54305 l_num_entries                 NUMBER;
54306 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
54307 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
54308 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
54309 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
54310 l_recog_line_1                NUMBER;
54311 l_recog_line_2                NUMBER;
54312 
54313 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
54314 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
54315 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
54316 
54317 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
54318 
54319 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
54320 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
54321 
54322 ---------------------------------------------------------------------------------------------------------------
54323 
54324 
54325 --
54326 -- bulk performance
54327 --
54328 l_balance_type_code           VARCHAR2(1);
54329 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
54330 l_log_module                  VARCHAR2(240);
54331 
54332 --
54333 -- Upgrade strategy
54334 --
54335 l_actual_upg_option           VARCHAR2(1);
54336 l_enc_upg_option           VARCHAR2(1);
54337 
54338 --
54339 BEGIN
54340 --
54341 IF g_log_enabled THEN
54342       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_111';
54343 END IF;
54344 --
54345 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54346 
54347       trace
54348          (p_msg      => 'BEGIN of AcctLineType_111'
54349          ,p_level    => C_LEVEL_PROCEDURE
54350          ,p_module   => l_log_module);
54351 
54352 END IF;
54353 --
54354 l_component_type             := 'AMB_JLT';
54355 l_component_code             := 'AP_FINAL_APP_ROUND_ACCR';
54356 l_component_type_code        := 'S';
54357 l_component_appl_id          :=  200;
54358 l_amb_context_code           := 'DEFAULT';
54359 l_entity_code                := 'AP_INVOICES';
54360 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
54361 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
54362 l_line_definition_owner_code := 'S';
54363 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
54364 --
54365 l_balance_type_code          := 'A';
54366 l_segment                     := NULL;
54367 l_ccid                        := NULL;
54368 l_adr_transaction_coa_id      := NULL;
54369 l_adr_accounting_coa_id       := NULL;
54370 l_adr_flexfield_segment_code  := NULL;
54371 l_adr_flex_value_set_id       := NULL;
54372 l_adr_value_type_code         := NULL;
54373 l_adr_value_combination_id    := NULL;
54374 l_adr_value_segment_code      := NULL;
54375 
54376 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
54377 l_bflow_class_code           := '';    -- 4219869 Business Flow
54378 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
54379 l_budgetary_control_flag     := 'N';
54380 
54381 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
54382 l_bflow_applied_to_amt       := NULL; -- 5132302
54383 l_entered_amt_idx            := NULL;          -- 4262811
54384 l_accted_amt_idx             := NULL;          -- 4262811
54385 l_acc_rev_flag               := NULL;          -- 4262811
54386 l_accrual_line_num           := NULL;          -- 4262811
54387 l_tmp_amt                    := NULL;          -- 4262811
54388 --
54389  
54390 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
54391     l_balance_type_code <> 'B' THEN
54392 IF NVL(p_source_125,'
54393 ') =  'FINAL APPLICATION ROUNDING'
54394  THEN 
54395 
54396    --
54397    XLA_AE_LINES_PKG.SetNewLine;
54398 
54399    p_balance_type_code          := l_balance_type_code;
54400    -- set the flag so later we will know whether the gain loss line needs to be created
54401    
54402    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
54403      p_actual_flag :='A';
54404    END IF;
54405 
54406    --
54407    -- bulk performance
54408    --
54409    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
54410                                       p_header_num   => 0); -- 4262811
54411    --
54412    -- set accounting line options
54413    --
54414    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
54415            p_natural_side_code          => 'C'
54416          , p_gain_or_loss_flag          => 'N'
54417          , p_gl_transfer_mode_code      => 'S'
54418          , p_acct_entry_type_code       => 'A'
54419          , p_switch_side_flag           => 'Y'
54420          , p_merge_duplicate_code       => 'A'
54421          );
54422    --
54423    l_acc_rev_natural_side_code := 'D';  -- 4262811
54424    -- 
54425    --
54429       (p_component_type             => l_component_type
54426    -- set accounting line type info
54427    --
54428    xla_ae_lines_pkg.SetAcctLineType
54430       ,p_event_type_code            => l_event_type_code
54431       ,p_line_definition_owner_code => l_line_definition_owner_code
54432       ,p_line_definition_code       => l_line_definition_code
54433       ,p_accounting_line_code       => l_component_code
54434       ,p_accounting_line_type_code  => l_component_type_code
54435       ,p_accounting_line_appl_id    => l_component_appl_id
54436       ,p_amb_context_code           => l_amb_context_code
54437       ,p_entity_code                => l_entity_code
54438       ,p_event_class_code           => l_event_class_code);
54439    --
54440    -- set accounting class
54441    --
54442    xla_ae_lines_pkg.SetAcctClass(
54443            p_accounting_class_code  => 'ROUNDING'
54444          , p_ae_header_id           => l_ae_header_id
54445          );
54446 
54447    --
54448    -- set rounding class
54449    --
54450    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
54451                       'ROUNDING';
54452 
54453    --
54454    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
54455    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
54456    --
54457    -- bulk performance
54458    --
54459    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
54460 
54461    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
54462       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
54463 
54464    -- 4955764
54465    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54466       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
54467 
54468    -- 4458381 Public Sector Enh
54469    
54470    --
54471    -- set accounting attributes for the line type
54472    --
54473    l_entered_amt_idx := 25;
54474    l_accted_amt_idx  := 30;
54475    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
54476    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
54477    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
54478    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
54479    l_rec_acct_attrs.array_num_value(2)  := 
54480 xla_ae_sources_pkg.GetSystemSourceNum(
54481    p_source_code           => 'XLA_EVENT_APPL_ID'
54482  , p_source_type_code      => 'Y'
54483  , p_source_application_id =>  602
54484 );
54485    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
54486    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
54487    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
54488    l_rec_acct_attrs.array_char_value(4)  := 
54489 xla_ae_sources_pkg.GetSystemSourceChar(
54490    p_source_code           => 'XLA_ENTITY_CODE'
54491  , p_source_type_code      => 'Y'
54492  , p_source_application_id =>  602
54493 );
54494    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
54495    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_127);
54496    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
54497    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
54498    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
54499    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
54500    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
54501    l_rec_acct_attrs.array_char_value(8)  := p_source_146;
54502    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
54503    l_rec_acct_attrs.array_char_value(9)  := p_source_147;
54504    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
54505    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_148);
54506    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
54507    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_149);
54508    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
54509    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_127);
54510    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
54511    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
54512    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
54513    l_rec_acct_attrs.array_char_value(14)  := p_source_132;
54514    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
54515    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
54516    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
54517    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
54518    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
54519    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
54520    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
54521    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
54522    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
54523    l_rec_acct_attrs.array_char_value(19)  := p_source_133;
54524    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
54525    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
54526    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
54527    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
54528    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
54529    l_rec_acct_attrs.array_char_value(22)  := p_source_67;
54533    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
54530    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
54531    l_rec_acct_attrs.array_num_value(23)  := p_source_71;
54532    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
54534    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
54535    l_rec_acct_attrs.array_num_value(25)  := p_source_134;
54536    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
54537    l_rec_acct_attrs.array_char_value(26)  := p_source_67;
54538    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
54539    l_rec_acct_attrs.array_date_value(27)  := p_source_143;
54540    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
54541    l_rec_acct_attrs.array_num_value(28)  := p_source_144;
54542    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
54543    l_rec_acct_attrs.array_char_value(29)  := p_source_145;
54544    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
54545    l_rec_acct_attrs.array_num_value(30)  := p_source_135;
54546    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
54547    l_rec_acct_attrs.array_date_value(31)  := p_source_77;
54548    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
54549    l_rec_acct_attrs.array_char_value(32)  := p_source_78;
54550    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
54551    l_rec_acct_attrs.array_date_value(33)  := p_source_79;
54552    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
54553    l_rec_acct_attrs.array_char_value(34)  := p_source_80;
54554    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
54555    l_rec_acct_attrs.array_num_value(35)  := p_source_81;
54556    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
54557    l_rec_acct_attrs.array_num_value(36)  := p_source_82;
54558    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
54559    l_rec_acct_attrs.array_char_value(37)  := p_source_83;
54560    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
54561    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_136);
54562    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
54563    l_rec_acct_attrs.array_char_value(39)  := p_source_55;
54564    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
54565    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
54566    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
54567    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
54568    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
54569    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
54570    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
54571    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
54572    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
54573    l_rec_acct_attrs.array_num_value(44)  := p_source_90;
54574 
54575    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
54576    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
54577 
54578    ---------------------------------------------------------------------------------------------------------------
54579    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
54580    ---------------------------------------------------------------------------------------------------------------
54581    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
54582 
54583    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54584    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54585 
54586    IF xla_accounting_cache_pkg.GetValueChar
54587          (p_source_code         => 'LEDGER_CATEGORY_CODE'
54588          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
54589    AND l_bflow_method_code = 'PRIOR_ENTRY'
54590 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
54591    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
54592          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
54593        )
54594    THEN
54595          xla_ae_lines_pkg.BflowUpgEntry
54596            (p_business_method_code    => l_bflow_method_code
54597            ,p_business_class_code     => l_bflow_class_code
54598            ,p_balance_type            => l_balance_type_code);
54599    ELSE
54600       NULL;
54601 -- No business flow processing for business flow method of NONE.
54602    END IF;
54603 
54604    --
54605    -- call analytical criteria
54606    --
54607    
54608    --
54609    -- call description
54610    --
54611    -- No description or it is inherited.
54612    --
54613    -- call ADRs
54614    -- Bug 4922099
54615    --
54616    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54617         (NVL(l_actual_upg_option, 'N') = 'O') OR
54618         (NVL(l_enc_upg_option, 'N') = 'O')
54619       )
54620    THEN
54621    NULL;
54622    --
54623    --
54624    
54625   l_ccid := AcctDerRule_41(
54626            p_application_id           => p_application_id
54627          , p_ae_header_id             => l_ae_header_id 
54628 , p_source_15 => p_source_15
54629 , p_source_15_meaning => p_source_15_meaning
54630 , p_source_30 => p_source_30
54631 , p_source_49 => p_source_49
54635          , p_side                     => 'NA'
54632          , x_transaction_coa_id       => l_adr_transaction_coa_id
54633          , x_accounting_coa_id        => l_adr_accounting_coa_id
54634          , x_value_type_code          => l_adr_value_type_code
54636    );
54637 
54638    xla_ae_lines_pkg.set_ccid(
54639     p_code_combination_id          => l_ccid
54640   , p_value_type_code              => l_adr_value_type_code
54641   , p_transaction_coa_id           => l_adr_transaction_coa_id
54642   , p_accounting_coa_id            => l_adr_accounting_coa_id
54643   , p_adr_code                     => 'AP_ROUNDING'
54644   , p_adr_type_code                => 'S'
54645   , p_component_type               => l_component_type
54646   , p_component_code               => l_component_code
54647   , p_component_type_code          => l_component_type_code
54648   , p_component_appl_id            => l_component_appl_id
54649   , p_amb_context_code             => l_amb_context_code
54650   , p_side                         => 'NA'
54651   );
54652 
54653 
54654    --
54655    --
54656    END IF;
54657    --
54658    -- Bug 4922099
54659    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
54660           (NVL(l_enc_upg_option, 'N') = 'O')
54661         ) AND
54662         (l_bflow_method_code = 'PRIOR_ENTRY')
54663       )
54664    THEN
54665       IF
54666       --
54667       1 = 2
54668       --
54669       THEN
54670       xla_accounting_err_pkg.build_message
54671                                     (p_appli_s_name            => 'XLA'
54672                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54673                                     ,p_token_1                 => 'LINE_NUMBER'
54674                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
54675                                     ,p_token_2                 => 'LINE_TYPE_NAME'
54676                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
54677                                                                              l_component_type
54678                                                                             ,l_component_code
54679                                                                             ,l_component_type_code
54680                                                                             ,l_component_appl_id
54681                                                                             ,l_amb_context_code
54682                                                                             ,l_entity_code
54683                                                                             ,l_event_class_code
54684                                                                            )
54685                                     ,p_token_3                 => 'OWNER'
54686                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
54687                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
54688                                                                           ,p_lookup_code    => l_component_type_code
54689                                                                          )
54690                                     ,p_token_4                 => 'PRODUCT_NAME'
54691                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
54692                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
54693                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
54694                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
54695                                     ,p_ae_header_id            =>  NULL
54696                                        );
54697 
54698         IF (C_LEVEL_ERROR>= g_log_level) THEN
54699                  trace
54700                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54701                       ,p_level    => C_LEVEL_ERROR
54702                       ,p_module   => l_log_module);
54703         END IF;
54704       END IF;
54705    END IF;
54706    --
54707    --
54708    ------------------------------------------------------------------------------------------------
54709    -- 4219869 Business Flow
54710    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
54711    -- Prior Entry.  Currently, the following code is always generated.
54712    ------------------------------------------------------------------------------------------------
54713    XLA_AE_LINES_PKG.ValidateCurrentLine;
54714 
54715    ------------------------------------------------------------------------------------
54716    -- 4219869 Business Flow
54717    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
54718    ------------------------------------------------------------------------------------
54719    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54720 
54721    ----------------------------------------------------------------------------------
54722    -- 4219869 Business Flow
54723    -- Update journal entry status -- Need to generate this within IF <condition>
54724    ----------------------------------------------------------------------------------
54725    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54726          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
54727          ,p_balance_type_code => l_balance_type_code
54728          );
54732    -------------------------------------------------------------------------------------------
54729 
54730    -------------------------------------------------------------------------------------------
54731    -- 4262811 - Generate the Accrual Reversal lines
54733    BEGIN
54734       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
54735                               (g_array_event(p_event_id).array_value_num('header_index'));
54736       IF l_acc_rev_flag IS NULL THEN
54737          l_acc_rev_flag := 'N';
54738       END IF;
54739    EXCEPTION
54740       WHEN OTHERS THEN
54741          l_acc_rev_flag := 'N';
54742    END;
54743    --
54744    IF (l_acc_rev_flag = 'Y') THEN
54745 
54746        -- 4645092  ------------------------------------------------------------------------------
54747        -- To allow MPA report to determine if it should generate report process
54748        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
54749        ------------------------------------------------------------------------------------------
54750 
54751        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
54752        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
54753    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
54754    -- call ADRs
54755    -- Bug 4922099
54756    --
54757    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54758         (NVL(l_actual_upg_option, 'N') = 'O') OR
54759         (NVL(l_enc_upg_option, 'N') = 'O')
54760       )
54761    THEN
54762    NULL;
54763    --
54764    --
54765    
54766   l_ccid := AcctDerRule_41(
54767            p_application_id           => p_application_id
54768          , p_ae_header_id             => l_ae_header_id 
54769 , p_source_15 => p_source_15
54770 , p_source_15_meaning => p_source_15_meaning
54771 , p_source_30 => p_source_30
54772 , p_source_49 => p_source_49
54773          , x_transaction_coa_id       => l_adr_transaction_coa_id
54774          , x_accounting_coa_id        => l_adr_accounting_coa_id
54775          , x_value_type_code          => l_adr_value_type_code
54776          , p_side                     => 'NA'
54777    );
54778 
54779    xla_ae_lines_pkg.set_ccid(
54780     p_code_combination_id          => l_ccid
54781   , p_value_type_code              => l_adr_value_type_code
54782   , p_transaction_coa_id           => l_adr_transaction_coa_id
54783   , p_accounting_coa_id            => l_adr_accounting_coa_id
54784   , p_adr_code                     => 'AP_ROUNDING'
54785   , p_adr_type_code                => 'S'
54786   , p_component_type               => l_component_type
54787   , p_component_code               => l_component_code
54788   , p_component_type_code          => l_component_type_code
54789   , p_component_appl_id            => l_component_appl_id
54790   , p_amb_context_code             => l_amb_context_code
54791   , p_side                         => 'NA'
54792   );
54793 
54794 
54795    --
54796    --
54797    END IF;
54798 
54799        --
54800        -- Update the line information that should be overwritten
54801        --
54802        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
54803                                          p_header_num   => 1);
54804        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
54805 
54806        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
54807 
54808        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
54809           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
54810        END IF;
54811 
54812       --
54813       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
54814       --
54815       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
54816           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
54817       ELSE
54818           ---------------------------------------------------------------------------------------------------
54819           -- 4262811a Switch Sign
54820           ---------------------------------------------------------------------------------------------------
54821           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
54822           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54823                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54824           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54825                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54826           -- 5132302
54827           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
54828                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54829 
54830       END IF;
54831 
54832       -- 4955764
54833       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54834       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
54835 
54836 
54837       XLA_AE_LINES_PKG.ValidateCurrentLine;
54838       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54839 
54843 
54840       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54841                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
54842                ,p_balance_type_code => l_balance_type_code);
54844    END IF;
54845 
54846    -----------------------------------------------------------------------------------------
54847    -- 4262811 Multiperiod Accounting
54848    -----------------------------------------------------------------------------------------
54849      -- No MPA option is assigned.
54850 
54851 
54852 END IF;
54853 END IF;
54854 --
54855 
54856 --
54857 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54858    trace
54859       (p_msg      => 'END of AcctLineType_111'
54860       ,p_level    => C_LEVEL_PROCEDURE
54861       ,p_module   => l_log_module);
54862 END IF;
54863 --
54864 EXCEPTION
54865   WHEN xla_exceptions_pkg.application_exception THEN
54866       RAISE;
54867   WHEN OTHERS THEN
54868        xla_exceptions_pkg.raise_message
54869            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_111');
54870 END AcctLineType_111;
54871 --
54872 
54873 ---------------------------------------
54874 --
54875 -- PRIVATE FUNCTION
54876 --         AcctLineType_112
54877 --
54878 ---------------------------------------
54879 PROCEDURE AcctLineType_112 (
54880   p_application_id        IN NUMBER
54881  ,p_event_id              IN NUMBER
54882  ,p_calculate_acctd_flag  IN VARCHAR2
54883  ,p_calculate_g_l_flag    IN VARCHAR2
54884  ,p_actual_flag           IN OUT VARCHAR2
54885  ,p_balance_type_code     OUT VARCHAR2
54886  ,p_gain_or_loss_ref      OUT VARCHAR2
54887  
54888 --Automatic Offsets Value
54889  , p_source_15            IN VARCHAR2
54890  , p_source_15_meaning    IN VARCHAR2
54891 --Invoice Distribution Account
54892  , p_source_30            IN NUMBER
54893 --Payables Options Rounding Account
54894  , p_source_49            IN NUMBER
54895 --Accounting Reversal Indicator
54896  , p_source_53            IN VARCHAR2
54897 --Distribution Link Type
54898  , p_source_55            IN VARCHAR2
54899 --Invoice Currency Code
54900  , p_source_67            IN VARCHAR2
54901 --Override Accounted Amount Indicator
54902  , p_source_80            IN VARCHAR2
54903  , p_source_80_meaning    IN VARCHAR2
54904 --Third Party Type
54905  , p_source_83            IN VARCHAR2
54906 --Invoice Distribution Tax Line Identifier
54907  , p_source_86            IN NUMBER
54908 --Invoice Distribution Summary Tax Line Identifier
54909  , p_source_88            IN NUMBER
54910 --Business Flow Accounts Payable Application Identifier
54911  , p_source_91            IN NUMBER
54912 --When to Account for Payment Option
54913  , p_source_97            IN VARCHAR2
54914 --Payment Distribution Type
54915  , p_source_98            IN VARCHAR2
54916  , p_source_98_meaning    IN VARCHAR2
54917 --Payment Distribution Amount
54918  , p_source_99            IN NUMBER
54919 --Business Flow Payment Distribution Type
54920  , p_source_100            IN VARCHAR2
54921 --Business Flow Payment Entity Code
54922  , p_source_101            IN VARCHAR2
54923 --Business Flow Payment Distribution Identifier
54924  , p_source_102            IN NUMBER
54925 --Business Flow Payment Identifier
54926  , p_source_103            IN NUMBER
54927 --Payment Distribution Identifier
54928  , p_source_104            IN NUMBER
54929 --Payment Supplier Identifier
54930  , p_source_110            IN NUMBER
54931 --Payment Supplier Site Identifier
54932  , p_source_111            IN NUMBER
54933 --Payment Distribution Reversed Identifier
54934  , p_source_112            IN NUMBER
54935 --Payment Distribution (Invoice Rate) Ledger Amount
54936  , p_source_116            IN NUMBER
54937 --Invoice Exchange Date
54938  , p_source_143            IN DATE
54939 --Invoice Exchange Rate
54940  , p_source_144            IN NUMBER
54941 --Invoice Exchange Rate Type
54942  , p_source_145            IN VARCHAR2
54943 )
54944 IS
54945 
54946 l_component_type              VARCHAR2(80);
54947 l_component_code              VARCHAR2(30);
54948 l_component_type_code         VARCHAR2(1);
54949 l_component_appl_id           INTEGER;
54950 l_amb_context_code            VARCHAR2(30);
54951 l_entity_code                 VARCHAR2(30);
54952 l_event_class_code            VARCHAR2(30);
54953 l_ae_header_id                NUMBER;
54954 l_event_type_code             VARCHAR2(30);
54955 l_line_definition_code        VARCHAR2(30);
54956 l_line_definition_owner_code  VARCHAR2(1);
54957 --
54958 -- adr variables
54959 l_segment                     VARCHAR2(30);
54960 l_ccid                        NUMBER;
54961 l_adr_transaction_coa_id      NUMBER;
54962 l_adr_accounting_coa_id       NUMBER;
54963 l_adr_flexfield_segment_code  VARCHAR2(30);
54964 l_adr_flex_value_set_id       NUMBER;
54965 l_adr_value_type_code         VARCHAR2(30);
54966 l_adr_value_combination_id    NUMBER;
54967 l_adr_value_segment_code      VARCHAR2(30);
54968 
54969 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
54970 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
54971 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
54972 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
54973 
54977 l_acc_rev_flag                VARCHAR2(1);
54974 -- 4262811 Variables ------------------------------------------------------------------------------------------
54975 l_entered_amt_idx             NUMBER;
54976 l_accted_amt_idx              NUMBER;
54978 l_accrual_line_num            NUMBER;
54979 l_tmp_amt                     NUMBER;
54980 l_acc_rev_natural_side_code   VARCHAR2(1);
54981 
54982 l_num_entries                 NUMBER;
54983 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
54984 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
54985 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
54986 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
54987 l_recog_line_1                NUMBER;
54988 l_recog_line_2                NUMBER;
54989 
54990 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
54991 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
54992 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
54993 
54994 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
54995 
54996 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
54997 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
54998 
54999 ---------------------------------------------------------------------------------------------------------------
55000 
55001 
55002 --
55003 -- bulk performance
55004 --
55005 l_balance_type_code           VARCHAR2(1);
55006 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
55007 l_log_module                  VARCHAR2(240);
55008 
55009 --
55010 -- Upgrade strategy
55011 --
55012 l_actual_upg_option           VARCHAR2(1);
55013 l_enc_upg_option           VARCHAR2(1);
55014 
55015 --
55016 BEGIN
55017 --
55018 IF g_log_enabled THEN
55019       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_112';
55020 END IF;
55021 --
55022 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55023 
55024       trace
55025          (p_msg      => 'BEGIN of AcctLineType_112'
55026          ,p_level    => C_LEVEL_PROCEDURE
55027          ,p_module   => l_log_module);
55028 
55029 END IF;
55030 --
55031 l_component_type             := 'AMB_JLT';
55032 l_component_code             := 'AP_FINAL_PMT_ROUNDING_CLEAR';
55033 l_component_type_code        := 'S';
55034 l_component_appl_id          :=  200;
55035 l_amb_context_code           := 'DEFAULT';
55036 l_entity_code                := 'AP_PAYMENTS';
55037 l_event_class_code           := 'RECONCILED PAYMENTS';
55038 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
55039 l_line_definition_owner_code := 'S';
55040 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
55041 --
55042 l_balance_type_code          := 'A';
55043 l_segment                     := NULL;
55044 l_ccid                        := NULL;
55045 l_adr_transaction_coa_id      := NULL;
55046 l_adr_accounting_coa_id       := NULL;
55047 l_adr_flexfield_segment_code  := NULL;
55048 l_adr_flex_value_set_id       := NULL;
55049 l_adr_value_type_code         := NULL;
55050 l_adr_value_combination_id    := NULL;
55051 l_adr_value_segment_code      := NULL;
55052 
55053 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
55054 l_bflow_class_code           := '';    -- 4219869 Business Flow
55055 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
55056 l_budgetary_control_flag     := 'N';
55057 
55058 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
55059 l_bflow_applied_to_amt       := NULL; -- 5132302
55060 l_entered_amt_idx            := NULL;          -- 4262811
55061 l_accted_amt_idx             := NULL;          -- 4262811
55062 l_acc_rev_flag               := NULL;          -- 4262811
55063 l_accrual_line_num           := NULL;          -- 4262811
55064 l_tmp_amt                    := NULL;          -- 4262811
55065 --
55066  
55067 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
55068     l_balance_type_code <> 'B' THEN
55069 IF NVL(p_source_97,'
55070 ') =  'CLEAR_CLEAR' AND 
55071 NVL(p_source_98,'
55072 ') =  'FINAL PAYMENT ROUNDING'
55073  THEN 
55074 
55075    --
55076    XLA_AE_LINES_PKG.SetNewLine;
55077 
55078    p_balance_type_code          := l_balance_type_code;
55079    -- set the flag so later we will know whether the gain loss line needs to be created
55080    
55081    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
55082      p_actual_flag :='A';
55083    END IF;
55084 
55085    --
55086    -- bulk performance
55087    --
55088    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
55089                                       p_header_num   => 0); -- 4262811
55090    --
55091    -- set accounting line options
55092    --
55093    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
55094            p_natural_side_code          => 'D'
55095          , p_gain_or_loss_flag          => 'N'
55096          , p_gl_transfer_mode_code      => 'S'
55097          , p_acct_entry_type_code       => 'A'
55098          , p_switch_side_flag           => 'Y'
55099          , p_merge_duplicate_code       => 'A'
55100          );
55101    --
55102    l_acc_rev_natural_side_code := 'C';  -- 4262811
55103    -- 
55104    --
55105    -- set accounting line type info
55106    --
55110       ,p_line_definition_owner_code => l_line_definition_owner_code
55107    xla_ae_lines_pkg.SetAcctLineType
55108       (p_component_type             => l_component_type
55109       ,p_event_type_code            => l_event_type_code
55111       ,p_line_definition_code       => l_line_definition_code
55112       ,p_accounting_line_code       => l_component_code
55113       ,p_accounting_line_type_code  => l_component_type_code
55114       ,p_accounting_line_appl_id    => l_component_appl_id
55115       ,p_amb_context_code           => l_amb_context_code
55116       ,p_entity_code                => l_entity_code
55117       ,p_event_class_code           => l_event_class_code);
55118    --
55119    -- set accounting class
55120    --
55121    xla_ae_lines_pkg.SetAcctClass(
55122            p_accounting_class_code  => 'ROUNDING'
55123          , p_ae_header_id           => l_ae_header_id
55124          );
55125 
55126    --
55127    -- set rounding class
55128    --
55129    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
55130                       'ROUNDING';
55131 
55132    --
55133    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
55134    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
55135    --
55136    -- bulk performance
55137    --
55138    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
55139 
55140    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
55141       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
55142 
55143    -- 4955764
55144    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55145       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
55146 
55147    -- 4458381 Public Sector Enh
55148    
55149    --
55150    -- set accounting attributes for the line type
55151    --
55152    l_entered_amt_idx := 10;
55153    l_accted_amt_idx  := 15;
55154    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
55155    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
55156    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
55157    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
55158    l_rec_acct_attrs.array_num_value(2)  := p_source_99;
55159    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
55160    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
55161    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
55162    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
55163    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
55164    l_rec_acct_attrs.array_char_value(5)  := p_source_101;
55165    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
55166    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
55167    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
55168    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
55169    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
55170    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
55171    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
55172    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
55173    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
55174    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
55175    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
55176    l_rec_acct_attrs.array_char_value(11)  := p_source_67;
55177    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
55178    l_rec_acct_attrs.array_date_value(12)  := p_source_143;
55179    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
55180    l_rec_acct_attrs.array_num_value(13)  := p_source_144;
55181    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
55182    l_rec_acct_attrs.array_char_value(14)  := p_source_145;
55183    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
55184    l_rec_acct_attrs.array_num_value(15)  := p_source_116;
55185    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
55186    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
55187    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
55188    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
55189    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
55190    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
55191    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
55192    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
55193    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
55194    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
55195    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
55196    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
55197    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
55198    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
55199    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
55200    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
55201    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
55202    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
55203 
55204    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
55205    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
55209    ---------------------------------------------------------------------------------------------------------------
55206 
55207    ---------------------------------------------------------------------------------------------------------------
55208    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
55210    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
55211 
55212    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55213    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55214 
55215    IF xla_accounting_cache_pkg.GetValueChar
55216          (p_source_code         => 'LEDGER_CATEGORY_CODE'
55217          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
55218    AND l_bflow_method_code = 'PRIOR_ENTRY'
55219 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
55220    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
55221          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
55222        )
55223    THEN
55224          xla_ae_lines_pkg.BflowUpgEntry
55225            (p_business_method_code    => l_bflow_method_code
55226            ,p_business_class_code     => l_bflow_class_code
55227            ,p_balance_type            => l_balance_type_code);
55228    ELSE
55229       NULL;
55230 -- No business flow processing for business flow method of NONE.
55231    END IF;
55232 
55233    --
55234    -- call analytical criteria
55235    --
55236    
55237    --
55238    -- call description
55239    --
55240    -- No description or it is inherited.
55241    --
55242    -- call ADRs
55243    -- Bug 4922099
55244    --
55245    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55246         (NVL(l_actual_upg_option, 'N') = 'O') OR
55247         (NVL(l_enc_upg_option, 'N') = 'O')
55248       )
55249    THEN
55250    NULL;
55251    --
55252    --
55253    
55254   l_ccid := AcctDerRule_41(
55255            p_application_id           => p_application_id
55256          , p_ae_header_id             => l_ae_header_id 
55257 , p_source_15 => p_source_15
55258 , p_source_15_meaning => p_source_15_meaning
55259 , p_source_30 => p_source_30
55260 , p_source_49 => p_source_49
55261          , x_transaction_coa_id       => l_adr_transaction_coa_id
55262          , x_accounting_coa_id        => l_adr_accounting_coa_id
55263          , x_value_type_code          => l_adr_value_type_code
55264          , p_side                     => 'NA'
55265    );
55266 
55267    xla_ae_lines_pkg.set_ccid(
55268     p_code_combination_id          => l_ccid
55269   , p_value_type_code              => l_adr_value_type_code
55270   , p_transaction_coa_id           => l_adr_transaction_coa_id
55271   , p_accounting_coa_id            => l_adr_accounting_coa_id
55272   , p_adr_code                     => 'AP_ROUNDING'
55273   , p_adr_type_code                => 'S'
55274   , p_component_type               => l_component_type
55275   , p_component_code               => l_component_code
55276   , p_component_type_code          => l_component_type_code
55277   , p_component_appl_id            => l_component_appl_id
55278   , p_amb_context_code             => l_amb_context_code
55279   , p_side                         => 'NA'
55280   );
55281 
55282 
55283    --
55284    --
55285    END IF;
55286    --
55287    -- Bug 4922099
55288    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
55289           (NVL(l_enc_upg_option, 'N') = 'O')
55290         ) AND
55291         (l_bflow_method_code = 'PRIOR_ENTRY')
55292       )
55293    THEN
55294       IF
55295       --
55296       1 = 2
55297       --
55298       THEN
55299       xla_accounting_err_pkg.build_message
55300                                     (p_appli_s_name            => 'XLA'
55301                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55302                                     ,p_token_1                 => 'LINE_NUMBER'
55303                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
55304                                     ,p_token_2                 => 'LINE_TYPE_NAME'
55305                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
55306                                                                              l_component_type
55307                                                                             ,l_component_code
55308                                                                             ,l_component_type_code
55309                                                                             ,l_component_appl_id
55310                                                                             ,l_amb_context_code
55311                                                                             ,l_entity_code
55312                                                                             ,l_event_class_code
55313                                                                            )
55314                                     ,p_token_3                 => 'OWNER'
55315                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
55316                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
55317                                                                           ,p_lookup_code    => l_component_type_code
55318                                                                          )
55322                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
55319                                     ,p_token_4                 => 'PRODUCT_NAME'
55320                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
55321                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
55323                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
55324                                     ,p_ae_header_id            =>  NULL
55325                                        );
55326 
55327         IF (C_LEVEL_ERROR>= g_log_level) THEN
55328                  trace
55329                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55330                       ,p_level    => C_LEVEL_ERROR
55331                       ,p_module   => l_log_module);
55332         END IF;
55333       END IF;
55334    END IF;
55335    --
55336    --
55337    ------------------------------------------------------------------------------------------------
55338    -- 4219869 Business Flow
55339    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
55340    -- Prior Entry.  Currently, the following code is always generated.
55341    ------------------------------------------------------------------------------------------------
55342    XLA_AE_LINES_PKG.ValidateCurrentLine;
55343 
55344    ------------------------------------------------------------------------------------
55345    -- 4219869 Business Flow
55346    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
55347    ------------------------------------------------------------------------------------
55348    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55349 
55350    ----------------------------------------------------------------------------------
55351    -- 4219869 Business Flow
55352    -- Update journal entry status -- Need to generate this within IF <condition>
55353    ----------------------------------------------------------------------------------
55354    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55355          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
55356          ,p_balance_type_code => l_balance_type_code
55357          );
55358 
55359    -------------------------------------------------------------------------------------------
55360    -- 4262811 - Generate the Accrual Reversal lines
55361    -------------------------------------------------------------------------------------------
55362    BEGIN
55363       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
55364                               (g_array_event(p_event_id).array_value_num('header_index'));
55365       IF l_acc_rev_flag IS NULL THEN
55366          l_acc_rev_flag := 'N';
55367       END IF;
55368    EXCEPTION
55369       WHEN OTHERS THEN
55370          l_acc_rev_flag := 'N';
55371    END;
55372    --
55373    IF (l_acc_rev_flag = 'Y') THEN
55374 
55375        -- 4645092  ------------------------------------------------------------------------------
55376        -- To allow MPA report to determine if it should generate report process
55377        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
55378        ------------------------------------------------------------------------------------------
55379 
55380        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
55381        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
55382    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
55383    -- call ADRs
55384    -- Bug 4922099
55385    --
55386    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55387         (NVL(l_actual_upg_option, 'N') = 'O') OR
55388         (NVL(l_enc_upg_option, 'N') = 'O')
55389       )
55390    THEN
55391    NULL;
55392    --
55393    --
55394    
55395   l_ccid := AcctDerRule_41(
55396            p_application_id           => p_application_id
55397          , p_ae_header_id             => l_ae_header_id 
55398 , p_source_15 => p_source_15
55399 , p_source_15_meaning => p_source_15_meaning
55400 , p_source_30 => p_source_30
55401 , p_source_49 => p_source_49
55402          , x_transaction_coa_id       => l_adr_transaction_coa_id
55403          , x_accounting_coa_id        => l_adr_accounting_coa_id
55404          , x_value_type_code          => l_adr_value_type_code
55405          , p_side                     => 'NA'
55406    );
55407 
55408    xla_ae_lines_pkg.set_ccid(
55409     p_code_combination_id          => l_ccid
55410   , p_value_type_code              => l_adr_value_type_code
55411   , p_transaction_coa_id           => l_adr_transaction_coa_id
55412   , p_accounting_coa_id            => l_adr_accounting_coa_id
55413   , p_adr_code                     => 'AP_ROUNDING'
55414   , p_adr_type_code                => 'S'
55415   , p_component_type               => l_component_type
55416   , p_component_code               => l_component_code
55417   , p_component_type_code          => l_component_type_code
55418   , p_component_appl_id            => l_component_appl_id
55419   , p_amb_context_code             => l_amb_context_code
55420   , p_side                         => 'NA'
55421   );
55422 
55423 
55424    --
55425    --
55426    END IF;
55427 
55428        --
55429        -- Update the line information that should be overwritten
55430        --
55434 
55431        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
55432                                          p_header_num   => 1);
55433        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
55435        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
55436 
55437        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
55438           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
55439        END IF;
55440 
55441       --
55442       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
55443       --
55444       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
55445           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
55446       ELSE
55447           ---------------------------------------------------------------------------------------------------
55448           -- 4262811a Switch Sign
55449           ---------------------------------------------------------------------------------------------------
55450           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
55451           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55452                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55453           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55454                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55455           -- 5132302
55456           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
55457                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55458 
55459       END IF;
55460 
55461       -- 4955764
55462       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55463       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
55464 
55465 
55466       XLA_AE_LINES_PKG.ValidateCurrentLine;
55467       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55468 
55469       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55470                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
55471                ,p_balance_type_code => l_balance_type_code);
55472 
55473    END IF;
55474 
55475    -----------------------------------------------------------------------------------------
55476    -- 4262811 Multiperiod Accounting
55477    -----------------------------------------------------------------------------------------
55478      -- No MPA option is assigned.
55479 
55480 
55481 END IF;
55482 END IF;
55483 --
55484 
55485 --
55486 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55487    trace
55488       (p_msg      => 'END of AcctLineType_112'
55489       ,p_level    => C_LEVEL_PROCEDURE
55490       ,p_module   => l_log_module);
55491 END IF;
55492 --
55493 EXCEPTION
55494   WHEN xla_exceptions_pkg.application_exception THEN
55495       RAISE;
55496   WHEN OTHERS THEN
55497        xla_exceptions_pkg.raise_message
55498            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_112');
55499 END AcctLineType_112;
55500 --
55501 
55502 ---------------------------------------
55503 --
55504 -- PRIVATE FUNCTION
55505 --         AcctLineType_113
55506 --
55507 ---------------------------------------
55508 PROCEDURE AcctLineType_113 (
55509   p_application_id        IN NUMBER
55510  ,p_event_id              IN NUMBER
55511  ,p_calculate_acctd_flag  IN VARCHAR2
55512  ,p_calculate_g_l_flag    IN VARCHAR2
55513  ,p_actual_flag           IN OUT VARCHAR2
55514  ,p_balance_type_code     OUT VARCHAR2
55515  ,p_gain_or_loss_ref      OUT VARCHAR2
55516  
55517 --Automatic Offsets Value
55518  , p_source_15            IN VARCHAR2
55519  , p_source_15_meaning    IN VARCHAR2
55520 --Invoice Distribution Account
55521  , p_source_30            IN NUMBER
55522 --Payables Options Rounding Account
55523  , p_source_49            IN NUMBER
55524 --Accounting Reversal Indicator
55525  , p_source_53            IN VARCHAR2
55526 --Distribution Link Type
55527  , p_source_55            IN VARCHAR2
55528 --Invoice Currency Code
55529  , p_source_67            IN VARCHAR2
55530 --Override Accounted Amount Indicator
55531  , p_source_80            IN VARCHAR2
55532  , p_source_80_meaning    IN VARCHAR2
55533 --Third Party Type
55534  , p_source_83            IN VARCHAR2
55535 --Invoice Distribution Tax Line Identifier
55536  , p_source_86            IN NUMBER
55537 --Invoice Distribution Tax Distribution Identifier from Tax
55538  , p_source_87            IN NUMBER
55539 --Invoice Distribution Summary Tax Line Identifier
55540  , p_source_88            IN NUMBER
55541 --Business Flow Accounts Payable Application Identifier
55542  , p_source_91            IN NUMBER
55543 --Business Flow Invoice Distribution Type
55544  , p_source_92            IN VARCHAR2
55545 --Business Flow Invoice Entity Code
55546  , p_source_93            IN VARCHAR2
55547 --Business Flow Invoice Distribution Identifier
55548  , p_source_94            IN NUMBER
55549 --Business Flow Invoice Identifier
55553 --Payment Distribution Type
55550  , p_source_95            IN NUMBER
55551 --When to Account for Payment Option
55552  , p_source_97            IN VARCHAR2
55554  , p_source_98            IN VARCHAR2
55555  , p_source_98_meaning    IN VARCHAR2
55556 --Payment Distribution Amount
55557  , p_source_99            IN NUMBER
55558 --Payment Distribution Identifier
55559  , p_source_104            IN NUMBER
55560 --Payment Supplier Identifier
55561  , p_source_110            IN NUMBER
55562 --Payment Supplier Site Identifier
55563  , p_source_111            IN NUMBER
55564 --Payment Distribution Reversed Identifier
55565  , p_source_112            IN NUMBER
55566 --Payment Distribution (Invoice Rate) Ledger Amount
55567  , p_source_116            IN NUMBER
55568 --Payment Type
55569  , p_source_122            IN VARCHAR2
55570  , p_source_122_meaning    IN VARCHAR2
55571 --Payment Processing Type
55572  , p_source_123            IN VARCHAR2
55573 --Invoice Distribution Amount of the Payment Distribution
55574  , p_source_124            IN NUMBER
55575 --Invoice Exchange Date
55576  , p_source_143            IN DATE
55577 --Invoice Exchange Rate
55578  , p_source_144            IN NUMBER
55579 --Invoice Exchange Rate Type
55580  , p_source_145            IN VARCHAR2
55581 )
55582 IS
55583 
55584 l_component_type              VARCHAR2(80);
55585 l_component_code              VARCHAR2(30);
55586 l_component_type_code         VARCHAR2(1);
55587 l_component_appl_id           INTEGER;
55588 l_amb_context_code            VARCHAR2(30);
55589 l_entity_code                 VARCHAR2(30);
55590 l_event_class_code            VARCHAR2(30);
55591 l_ae_header_id                NUMBER;
55592 l_event_type_code             VARCHAR2(30);
55593 l_line_definition_code        VARCHAR2(30);
55594 l_line_definition_owner_code  VARCHAR2(1);
55595 --
55596 -- adr variables
55597 l_segment                     VARCHAR2(30);
55598 l_ccid                        NUMBER;
55599 l_adr_transaction_coa_id      NUMBER;
55600 l_adr_accounting_coa_id       NUMBER;
55601 l_adr_flexfield_segment_code  VARCHAR2(30);
55602 l_adr_flex_value_set_id       NUMBER;
55603 l_adr_value_type_code         VARCHAR2(30);
55604 l_adr_value_combination_id    NUMBER;
55605 l_adr_value_segment_code      VARCHAR2(30);
55606 
55607 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
55608 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
55609 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
55610 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
55611 
55612 -- 4262811 Variables ------------------------------------------------------------------------------------------
55613 l_entered_amt_idx             NUMBER;
55614 l_accted_amt_idx              NUMBER;
55615 l_acc_rev_flag                VARCHAR2(1);
55616 l_accrual_line_num            NUMBER;
55617 l_tmp_amt                     NUMBER;
55618 l_acc_rev_natural_side_code   VARCHAR2(1);
55619 
55620 l_num_entries                 NUMBER;
55621 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
55622 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
55623 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
55624 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
55625 l_recog_line_1                NUMBER;
55626 l_recog_line_2                NUMBER;
55627 
55628 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
55629 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
55630 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
55631 
55632 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
55633 
55634 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
55635 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
55636 
55637 ---------------------------------------------------------------------------------------------------------------
55638 
55639 
55640 --
55641 -- bulk performance
55642 --
55643 l_balance_type_code           VARCHAR2(1);
55644 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
55645 l_log_module                  VARCHAR2(240);
55646 
55647 --
55648 -- Upgrade strategy
55649 --
55650 l_actual_upg_option           VARCHAR2(1);
55651 l_enc_upg_option           VARCHAR2(1);
55652 
55653 --
55654 BEGIN
55655 --
55656 IF g_log_enabled THEN
55657       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_113';
55658 END IF;
55659 --
55660 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55661 
55662       trace
55663          (p_msg      => 'BEGIN of AcctLineType_113'
55664          ,p_level    => C_LEVEL_PROCEDURE
55665          ,p_module   => l_log_module);
55666 
55667 END IF;
55668 --
55669 l_component_type             := 'AMB_JLT';
55670 l_component_code             := 'AP_FINAL_PMT_ROUNDING_PMT';
55671 l_component_type_code        := 'S';
55672 l_component_appl_id          :=  200;
55673 l_amb_context_code           := 'DEFAULT';
55674 l_entity_code                := 'AP_PAYMENTS';
55675 l_event_class_code           := 'PAYMENTS';
55676 l_event_type_code            := 'PAYMENTS_ALL';
55677 l_line_definition_owner_code := 'S';
55681 l_segment                     := NULL;
55678 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
55679 --
55680 l_balance_type_code          := 'A';
55682 l_ccid                        := NULL;
55683 l_adr_transaction_coa_id      := NULL;
55684 l_adr_accounting_coa_id       := NULL;
55685 l_adr_flexfield_segment_code  := NULL;
55686 l_adr_flex_value_set_id       := NULL;
55687 l_adr_value_type_code         := NULL;
55688 l_adr_value_combination_id    := NULL;
55689 l_adr_value_segment_code      := NULL;
55690 
55691 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
55692 l_bflow_class_code           := '';    -- 4219869 Business Flow
55693 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
55694 l_budgetary_control_flag     := 'N';
55695 
55696 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
55697 l_bflow_applied_to_amt       := NULL; -- 5132302
55698 l_entered_amt_idx            := NULL;          -- 4262811
55699 l_accted_amt_idx             := NULL;          -- 4262811
55700 l_acc_rev_flag               := NULL;          -- 4262811
55701 l_accrual_line_num           := NULL;          -- 4262811
55702 l_tmp_amt                    := NULL;          -- 4262811
55703 --
55704  
55705 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
55706     l_balance_type_code <> 'B' THEN
55707 IF NVL(p_source_97,'
55708 ') <>  'CLEAR_CLEAR' AND 
55709 NVL(p_source_98,'
55710 ') =  'FINAL PAYMENT ROUNDING' AND 
55711 NVL(p_source_122,'
55712 ') <>  'R' AND 
55713 NVL(p_source_123,'
55714 ') <>  'PAYMENTCARD'
55715  THEN 
55716 
55717    --
55718    XLA_AE_LINES_PKG.SetNewLine;
55719 
55720    p_balance_type_code          := l_balance_type_code;
55721    -- set the flag so later we will know whether the gain loss line needs to be created
55722    
55723    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
55724      p_actual_flag :='A';
55725    END IF;
55726 
55727    --
55728    -- bulk performance
55729    --
55730    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
55731                                       p_header_num   => 0); -- 4262811
55732    --
55733    -- set accounting line options
55734    --
55735    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
55736            p_natural_side_code          => 'D'
55737          , p_gain_or_loss_flag          => 'N'
55738          , p_gl_transfer_mode_code      => 'S'
55739          , p_acct_entry_type_code       => 'A'
55740          , p_switch_side_flag           => 'Y'
55741          , p_merge_duplicate_code       => 'A'
55742          );
55743    --
55744    l_acc_rev_natural_side_code := 'C';  -- 4262811
55745    -- 
55746    --
55747    -- set accounting line type info
55748    --
55749    xla_ae_lines_pkg.SetAcctLineType
55750       (p_component_type             => l_component_type
55751       ,p_event_type_code            => l_event_type_code
55752       ,p_line_definition_owner_code => l_line_definition_owner_code
55753       ,p_line_definition_code       => l_line_definition_code
55754       ,p_accounting_line_code       => l_component_code
55755       ,p_accounting_line_type_code  => l_component_type_code
55756       ,p_accounting_line_appl_id    => l_component_appl_id
55757       ,p_amb_context_code           => l_amb_context_code
55758       ,p_entity_code                => l_entity_code
55759       ,p_event_class_code           => l_event_class_code);
55760    --
55761    -- set accounting class
55762    --
55763    xla_ae_lines_pkg.SetAcctClass(
55764            p_accounting_class_code  => 'ROUNDING'
55765          , p_ae_header_id           => l_ae_header_id
55766          );
55767 
55768    --
55769    -- set rounding class
55770    --
55771    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
55772                       'ROUNDING';
55773 
55774    --
55775    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
55776    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
55777    --
55778    -- bulk performance
55779    --
55780    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
55781 
55782    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
55783       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
55784 
55785    -- 4955764
55786    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55787       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
55788 
55789    -- 4458381 Public Sector Enh
55790    
55791    --
55792    -- set accounting attributes for the line type
55793    --
55794    l_entered_amt_idx := 10;
55795    l_accted_amt_idx  := 15;
55796    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
55797    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
55798    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
55799    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
55800    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
55801    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
55802    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
55803    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
55804    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
55808    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
55805    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
55806    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
55807    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
55809    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
55810    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
55811    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
55812    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
55813    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
55814    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
55815    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
55816    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
55817    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
55818    l_rec_acct_attrs.array_char_value(11)  := p_source_67;
55819    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
55820    l_rec_acct_attrs.array_date_value(12)  := p_source_143;
55821    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
55822    l_rec_acct_attrs.array_num_value(13)  := p_source_144;
55823    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
55824    l_rec_acct_attrs.array_char_value(14)  := p_source_145;
55825    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
55826    l_rec_acct_attrs.array_num_value(15)  := p_source_116;
55827    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
55828    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
55829    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
55830    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
55831    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
55832    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
55833    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
55834    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
55835    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
55836    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
55837    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
55838    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
55839    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
55840    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
55841    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
55842    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
55843    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
55844    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
55845 
55846    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
55847    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
55848 
55849    ---------------------------------------------------------------------------------------------------------------
55850    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
55851    ---------------------------------------------------------------------------------------------------------------
55852    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
55853 
55854    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55855    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55856 
55857    IF xla_accounting_cache_pkg.GetValueChar
55858          (p_source_code         => 'LEDGER_CATEGORY_CODE'
55859          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
55860    AND l_bflow_method_code = 'PRIOR_ENTRY'
55861 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
55862    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
55863          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
55864        )
55865    THEN
55866          xla_ae_lines_pkg.BflowUpgEntry
55867            (p_business_method_code    => l_bflow_method_code
55868            ,p_business_class_code     => l_bflow_class_code
55869            ,p_balance_type            => l_balance_type_code);
55870    ELSE
55871       NULL;
55872 -- No business flow processing for business flow method of NONE.
55873    END IF;
55874 
55875    --
55876    -- call analytical criteria
55877    --
55878    
55879    --
55880    -- call description
55881    --
55882    -- No description or it is inherited.
55883    --
55884    -- call ADRs
55885    -- Bug 4922099
55886    --
55887    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55888         (NVL(l_actual_upg_option, 'N') = 'O') OR
55889         (NVL(l_enc_upg_option, 'N') = 'O')
55890       )
55891    THEN
55892    NULL;
55893    --
55894    --
55895    
55896   l_ccid := AcctDerRule_41(
55897            p_application_id           => p_application_id
55898          , p_ae_header_id             => l_ae_header_id 
55899 , p_source_15 => p_source_15
55900 , p_source_15_meaning => p_source_15_meaning
55901 , p_source_30 => p_source_30
55902 , p_source_49 => p_source_49
55903          , x_transaction_coa_id       => l_adr_transaction_coa_id
55904          , x_accounting_coa_id        => l_adr_accounting_coa_id
55905          , x_value_type_code          => l_adr_value_type_code
55906          , p_side                     => 'NA'
55907    );
55908 
55909    xla_ae_lines_pkg.set_ccid(
55910     p_code_combination_id          => l_ccid
55914   , p_adr_code                     => 'AP_ROUNDING'
55911   , p_value_type_code              => l_adr_value_type_code
55912   , p_transaction_coa_id           => l_adr_transaction_coa_id
55913   , p_accounting_coa_id            => l_adr_accounting_coa_id
55915   , p_adr_type_code                => 'S'
55916   , p_component_type               => l_component_type
55917   , p_component_code               => l_component_code
55918   , p_component_type_code          => l_component_type_code
55919   , p_component_appl_id            => l_component_appl_id
55920   , p_amb_context_code             => l_amb_context_code
55921   , p_side                         => 'NA'
55922   );
55923 
55924 
55925    --
55926    --
55927    END IF;
55928    --
55929    -- Bug 4922099
55930    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
55931           (NVL(l_enc_upg_option, 'N') = 'O')
55932         ) AND
55933         (l_bflow_method_code = 'PRIOR_ENTRY')
55934       )
55935    THEN
55936       IF
55937       --
55938       1 = 2
55939       --
55940       THEN
55941       xla_accounting_err_pkg.build_message
55942                                     (p_appli_s_name            => 'XLA'
55943                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55944                                     ,p_token_1                 => 'LINE_NUMBER'
55945                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
55946                                     ,p_token_2                 => 'LINE_TYPE_NAME'
55947                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
55948                                                                              l_component_type
55949                                                                             ,l_component_code
55950                                                                             ,l_component_type_code
55951                                                                             ,l_component_appl_id
55952                                                                             ,l_amb_context_code
55953                                                                             ,l_entity_code
55954                                                                             ,l_event_class_code
55955                                                                            )
55956                                     ,p_token_3                 => 'OWNER'
55957                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
55958                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
55959                                                                           ,p_lookup_code    => l_component_type_code
55960                                                                          )
55961                                     ,p_token_4                 => 'PRODUCT_NAME'
55962                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
55963                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
55964                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
55965                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
55966                                     ,p_ae_header_id            =>  NULL
55967                                        );
55968 
55969         IF (C_LEVEL_ERROR>= g_log_level) THEN
55970                  trace
55971                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55972                       ,p_level    => C_LEVEL_ERROR
55973                       ,p_module   => l_log_module);
55974         END IF;
55975       END IF;
55976    END IF;
55977    --
55978    --
55979    ------------------------------------------------------------------------------------------------
55980    -- 4219869 Business Flow
55981    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
55982    -- Prior Entry.  Currently, the following code is always generated.
55983    ------------------------------------------------------------------------------------------------
55984    XLA_AE_LINES_PKG.ValidateCurrentLine;
55985 
55986    ------------------------------------------------------------------------------------
55987    -- 4219869 Business Flow
55988    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
55989    ------------------------------------------------------------------------------------
55990    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55991 
55992    ----------------------------------------------------------------------------------
55993    -- 4219869 Business Flow
55994    -- Update journal entry status -- Need to generate this within IF <condition>
55995    ----------------------------------------------------------------------------------
55996    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55997          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
55998          ,p_balance_type_code => l_balance_type_code
55999          );
56000 
56001    -------------------------------------------------------------------------------------------
56002    -- 4262811 - Generate the Accrual Reversal lines
56003    -------------------------------------------------------------------------------------------
56004    BEGIN
56005       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
56009       END IF;
56006                               (g_array_event(p_event_id).array_value_num('header_index'));
56007       IF l_acc_rev_flag IS NULL THEN
56008          l_acc_rev_flag := 'N';
56010    EXCEPTION
56011       WHEN OTHERS THEN
56012          l_acc_rev_flag := 'N';
56013    END;
56014    --
56015    IF (l_acc_rev_flag = 'Y') THEN
56016 
56017        -- 4645092  ------------------------------------------------------------------------------
56018        -- To allow MPA report to determine if it should generate report process
56019        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
56020        ------------------------------------------------------------------------------------------
56021 
56022        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
56023        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
56024    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
56025    -- call ADRs
56026    -- Bug 4922099
56027    --
56028    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56029         (NVL(l_actual_upg_option, 'N') = 'O') OR
56030         (NVL(l_enc_upg_option, 'N') = 'O')
56031       )
56032    THEN
56033    NULL;
56034    --
56035    --
56036    
56037   l_ccid := AcctDerRule_41(
56038            p_application_id           => p_application_id
56039          , p_ae_header_id             => l_ae_header_id 
56040 , p_source_15 => p_source_15
56041 , p_source_15_meaning => p_source_15_meaning
56042 , p_source_30 => p_source_30
56043 , p_source_49 => p_source_49
56044          , x_transaction_coa_id       => l_adr_transaction_coa_id
56045          , x_accounting_coa_id        => l_adr_accounting_coa_id
56046          , x_value_type_code          => l_adr_value_type_code
56047          , p_side                     => 'NA'
56048    );
56049 
56050    xla_ae_lines_pkg.set_ccid(
56051     p_code_combination_id          => l_ccid
56052   , p_value_type_code              => l_adr_value_type_code
56053   , p_transaction_coa_id           => l_adr_transaction_coa_id
56054   , p_accounting_coa_id            => l_adr_accounting_coa_id
56055   , p_adr_code                     => 'AP_ROUNDING'
56056   , p_adr_type_code                => 'S'
56057   , p_component_type               => l_component_type
56058   , p_component_code               => l_component_code
56059   , p_component_type_code          => l_component_type_code
56060   , p_component_appl_id            => l_component_appl_id
56061   , p_amb_context_code             => l_amb_context_code
56062   , p_side                         => 'NA'
56063   );
56064 
56065 
56066    --
56067    --
56068    END IF;
56069 
56070        --
56071        -- Update the line information that should be overwritten
56072        --
56073        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
56074                                          p_header_num   => 1);
56075        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
56076 
56077        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
56078 
56079        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
56080           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
56081        END IF;
56082 
56083       --
56084       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
56085       --
56086       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
56087           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
56088       ELSE
56089           ---------------------------------------------------------------------------------------------------
56090           -- 4262811a Switch Sign
56091           ---------------------------------------------------------------------------------------------------
56092           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
56093           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56094                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56095           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56096                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56097           -- 5132302
56098           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
56099                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56100 
56101       END IF;
56102 
56103       -- 4955764
56104       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56105       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
56106 
56107 
56108       XLA_AE_LINES_PKG.ValidateCurrentLine;
56109       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56110 
56111       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56112                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
56113                ,p_balance_type_code => l_balance_type_code);
56114 
56115    END IF;
56116 
56120      -- No MPA option is assigned.
56117    -----------------------------------------------------------------------------------------
56118    -- 4262811 Multiperiod Accounting
56119    -----------------------------------------------------------------------------------------
56121 
56122 
56123 END IF;
56124 END IF;
56125 --
56126 
56127 --
56128 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56129    trace
56130       (p_msg      => 'END of AcctLineType_113'
56131       ,p_level    => C_LEVEL_PROCEDURE
56132       ,p_module   => l_log_module);
56133 END IF;
56134 --
56135 EXCEPTION
56136   WHEN xla_exceptions_pkg.application_exception THEN
56137       RAISE;
56138   WHEN OTHERS THEN
56139        xla_exceptions_pkg.raise_message
56140            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_113');
56141 END AcctLineType_113;
56142 --
56143 
56144 ---------------------------------------
56145 --
56146 -- PRIVATE FUNCTION
56147 --         AcctLineType_114
56148 --
56149 ---------------------------------------
56150 PROCEDURE AcctLineType_114 (
56151   p_application_id        IN NUMBER
56152  ,p_event_id              IN NUMBER
56153  ,p_calculate_acctd_flag  IN VARCHAR2
56154  ,p_calculate_g_l_flag    IN VARCHAR2
56155  ,p_actual_flag           IN OUT VARCHAR2
56156  ,p_balance_type_code     OUT VARCHAR2
56157  ,p_gain_or_loss_ref      OUT VARCHAR2
56158  
56159 --Automatic Offsets Value
56160  , p_source_15            IN VARCHAR2
56161  , p_source_15_meaning    IN VARCHAR2
56162 --Invoice Distribution Account
56163  , p_source_30            IN NUMBER
56164 --Payables Options Rounding Account
56165  , p_source_49            IN NUMBER
56166 --Accounting Reversal Indicator
56167  , p_source_53            IN VARCHAR2
56168 --Distribution Link Type
56169  , p_source_55            IN VARCHAR2
56170 --Invoice Currency Code
56171  , p_source_67            IN VARCHAR2
56172 --Override Accounted Amount Indicator
56173  , p_source_80            IN VARCHAR2
56174  , p_source_80_meaning    IN VARCHAR2
56175 --Third Party Type
56176  , p_source_83            IN VARCHAR2
56177 --Invoice Distribution Tax Line Identifier
56178  , p_source_86            IN NUMBER
56179 --Invoice Distribution Tax Distribution Identifier from Tax
56180  , p_source_87            IN NUMBER
56181 --Invoice Distribution Summary Tax Line Identifier
56182  , p_source_88            IN NUMBER
56183 --Business Flow Accounts Payable Application Identifier
56184  , p_source_91            IN NUMBER
56185 --Business Flow Invoice Distribution Type
56186  , p_source_92            IN VARCHAR2
56187 --Business Flow Invoice Entity Code
56188  , p_source_93            IN VARCHAR2
56189 --Business Flow Invoice Distribution Identifier
56190  , p_source_94            IN NUMBER
56191 --Business Flow Invoice Identifier
56192  , p_source_95            IN NUMBER
56193 --When to Account for Payment Option
56194  , p_source_97            IN VARCHAR2
56195 --Payment Distribution Type
56196  , p_source_98            IN VARCHAR2
56197  , p_source_98_meaning    IN VARCHAR2
56198 --Payment Distribution Amount
56199  , p_source_99            IN NUMBER
56200 --Payment Distribution Identifier
56201  , p_source_104            IN NUMBER
56202 --Payment Supplier Identifier
56203  , p_source_110            IN NUMBER
56204 --Payment Supplier Site Identifier
56205  , p_source_111            IN NUMBER
56206 --Payment Distribution Reversed Identifier
56207  , p_source_112            IN NUMBER
56208 --Payment Distribution (Invoice Rate) Ledger Amount
56209  , p_source_116            IN NUMBER
56210 --Payment Type
56211  , p_source_122            IN VARCHAR2
56212  , p_source_122_meaning    IN VARCHAR2
56213 --Invoice Exchange Date
56214  , p_source_143            IN DATE
56215 --Invoice Exchange Rate
56216  , p_source_144            IN NUMBER
56217 --Invoice Exchange Rate Type
56218  , p_source_145            IN VARCHAR2
56219 )
56220 IS
56221 
56222 l_component_type              VARCHAR2(80);
56223 l_component_code              VARCHAR2(30);
56224 l_component_type_code         VARCHAR2(1);
56225 l_component_appl_id           INTEGER;
56226 l_amb_context_code            VARCHAR2(30);
56227 l_entity_code                 VARCHAR2(30);
56228 l_event_class_code            VARCHAR2(30);
56229 l_ae_header_id                NUMBER;
56230 l_event_type_code             VARCHAR2(30);
56231 l_line_definition_code        VARCHAR2(30);
56232 l_line_definition_owner_code  VARCHAR2(1);
56233 --
56234 -- adr variables
56235 l_segment                     VARCHAR2(30);
56236 l_ccid                        NUMBER;
56237 l_adr_transaction_coa_id      NUMBER;
56238 l_adr_accounting_coa_id       NUMBER;
56239 l_adr_flexfield_segment_code  VARCHAR2(30);
56240 l_adr_flex_value_set_id       NUMBER;
56241 l_adr_value_type_code         VARCHAR2(30);
56242 l_adr_value_combination_id    NUMBER;
56243 l_adr_value_segment_code      VARCHAR2(30);
56244 
56245 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
56246 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
56247 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
56248 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
56249 
56250 -- 4262811 Variables ------------------------------------------------------------------------------------------
56251 l_entered_amt_idx             NUMBER;
56255 l_tmp_amt                     NUMBER;
56252 l_accted_amt_idx              NUMBER;
56253 l_acc_rev_flag                VARCHAR2(1);
56254 l_accrual_line_num            NUMBER;
56256 l_acc_rev_natural_side_code   VARCHAR2(1);
56257 
56258 l_num_entries                 NUMBER;
56259 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
56260 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
56261 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
56262 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
56263 l_recog_line_1                NUMBER;
56264 l_recog_line_2                NUMBER;
56265 
56266 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
56267 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
56268 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
56269 
56270 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
56271 
56272 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
56273 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
56274 
56275 ---------------------------------------------------------------------------------------------------------------
56276 
56277 
56278 --
56279 -- bulk performance
56280 --
56281 l_balance_type_code           VARCHAR2(1);
56282 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
56283 l_log_module                  VARCHAR2(240);
56284 
56285 --
56286 -- Upgrade strategy
56287 --
56288 l_actual_upg_option           VARCHAR2(1);
56289 l_enc_upg_option           VARCHAR2(1);
56290 
56291 --
56292 BEGIN
56293 --
56294 IF g_log_enabled THEN
56295       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_114';
56296 END IF;
56297 --
56298 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56299 
56300       trace
56301          (p_msg      => 'BEGIN of AcctLineType_114'
56302          ,p_level    => C_LEVEL_PROCEDURE
56303          ,p_module   => l_log_module);
56304 
56305 END IF;
56306 --
56307 l_component_type             := 'AMB_JLT';
56308 l_component_code             := 'AP_FINAL_PMT_ROUNDING_REF';
56309 l_component_type_code        := 'S';
56310 l_component_appl_id          :=  200;
56311 l_amb_context_code           := 'DEFAULT';
56312 l_entity_code                := 'AP_PAYMENTS';
56313 l_event_class_code           := 'REFUNDS';
56314 l_event_type_code            := 'REFUNDS_ALL';
56315 l_line_definition_owner_code := 'S';
56316 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
56317 --
56318 l_balance_type_code          := 'A';
56319 l_segment                     := NULL;
56320 l_ccid                        := NULL;
56321 l_adr_transaction_coa_id      := NULL;
56322 l_adr_accounting_coa_id       := NULL;
56323 l_adr_flexfield_segment_code  := NULL;
56324 l_adr_flex_value_set_id       := NULL;
56325 l_adr_value_type_code         := NULL;
56326 l_adr_value_combination_id    := NULL;
56327 l_adr_value_segment_code      := NULL;
56328 
56329 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
56330 l_bflow_class_code           := '';    -- 4219869 Business Flow
56331 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
56332 l_budgetary_control_flag     := 'N';
56333 
56334 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
56335 l_bflow_applied_to_amt       := NULL; -- 5132302
56336 l_entered_amt_idx            := NULL;          -- 4262811
56337 l_accted_amt_idx             := NULL;          -- 4262811
56338 l_acc_rev_flag               := NULL;          -- 4262811
56339 l_accrual_line_num           := NULL;          -- 4262811
56340 l_tmp_amt                    := NULL;          -- 4262811
56341 --
56342  
56343 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
56344     l_balance_type_code <> 'B' THEN
56345 IF NVL(p_source_97,'
56346 ') <>  'CLEAR_CLEAR' AND 
56347 NVL(p_source_98,'
56348 ') =  'FINAL PAYMENT ROUNDING' AND 
56349 NVL(p_source_122,'
56350 ') =  'R'
56351  THEN 
56352 
56353    --
56354    XLA_AE_LINES_PKG.SetNewLine;
56355 
56356    p_balance_type_code          := l_balance_type_code;
56357    -- set the flag so later we will know whether the gain loss line needs to be created
56358    
56359    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
56360      p_actual_flag :='A';
56361    END IF;
56362 
56363    --
56364    -- bulk performance
56365    --
56366    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
56367                                       p_header_num   => 0); -- 4262811
56368    --
56369    -- set accounting line options
56370    --
56371    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
56372            p_natural_side_code          => 'D'
56373          , p_gain_or_loss_flag          => 'N'
56374          , p_gl_transfer_mode_code      => 'S'
56375          , p_acct_entry_type_code       => 'A'
56376          , p_switch_side_flag           => 'Y'
56377          , p_merge_duplicate_code       => 'A'
56378          );
56379    --
56380    l_acc_rev_natural_side_code := 'C';  -- 4262811
56381    -- 
56382    --
56383    -- set accounting line type info
56384    --
56385    xla_ae_lines_pkg.SetAcctLineType
56386       (p_component_type             => l_component_type
56390       ,p_accounting_line_code       => l_component_code
56387       ,p_event_type_code            => l_event_type_code
56388       ,p_line_definition_owner_code => l_line_definition_owner_code
56389       ,p_line_definition_code       => l_line_definition_code
56391       ,p_accounting_line_type_code  => l_component_type_code
56392       ,p_accounting_line_appl_id    => l_component_appl_id
56393       ,p_amb_context_code           => l_amb_context_code
56394       ,p_entity_code                => l_entity_code
56395       ,p_event_class_code           => l_event_class_code);
56396    --
56397    -- set accounting class
56398    --
56399    xla_ae_lines_pkg.SetAcctClass(
56400            p_accounting_class_code  => 'ROUNDING'
56401          , p_ae_header_id           => l_ae_header_id
56402          );
56403 
56404    --
56405    -- set rounding class
56406    --
56407    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
56408                       'ROUNDING';
56409 
56410    --
56411    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
56412    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
56413    --
56414    -- bulk performance
56415    --
56416    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
56417 
56418    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
56419       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
56420 
56421    -- 4955764
56422    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56423       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
56424 
56425    -- 4458381 Public Sector Enh
56426    
56427    --
56428    -- set accounting attributes for the line type
56429    --
56430    l_entered_amt_idx := 9;
56431    l_accted_amt_idx  := 14;
56432    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
56433    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
56434    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
56435    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
56436    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
56437    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
56438    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
56439    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
56440    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
56441    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
56442    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
56443    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
56444    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
56445    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
56446    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
56447    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
56448    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
56449    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
56450    l_rec_acct_attrs.array_num_value(9)  := p_source_99;
56451    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
56452    l_rec_acct_attrs.array_char_value(10)  := p_source_67;
56453    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
56454    l_rec_acct_attrs.array_date_value(11)  := p_source_143;
56455    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
56456    l_rec_acct_attrs.array_num_value(12)  := p_source_144;
56457    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
56458    l_rec_acct_attrs.array_char_value(13)  := p_source_145;
56459    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
56460    l_rec_acct_attrs.array_num_value(14)  := p_source_116;
56461    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
56462    l_rec_acct_attrs.array_char_value(15)  := p_source_80;
56463    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
56464    l_rec_acct_attrs.array_num_value(16)  := p_source_110;
56465    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
56466    l_rec_acct_attrs.array_num_value(17)  := p_source_111;
56467    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
56468    l_rec_acct_attrs.array_char_value(18)  := p_source_83;
56469    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
56470    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_112);
56471    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
56472    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
56473    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
56474    l_rec_acct_attrs.array_num_value(21)  := p_source_86;
56475    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
56476    l_rec_acct_attrs.array_num_value(22)  := p_source_87;
56477    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
56478    l_rec_acct_attrs.array_num_value(23)  := p_source_88;
56479 
56480    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
56481    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
56482 
56483    ---------------------------------------------------------------------------------------------------------------
56484    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
56488    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
56485    ---------------------------------------------------------------------------------------------------------------
56486    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
56487 
56489    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
56490 
56491    IF xla_accounting_cache_pkg.GetValueChar
56492          (p_source_code         => 'LEDGER_CATEGORY_CODE'
56493          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
56494    AND l_bflow_method_code = 'PRIOR_ENTRY'
56495 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
56496    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
56497          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
56498        )
56499    THEN
56500          xla_ae_lines_pkg.BflowUpgEntry
56501            (p_business_method_code    => l_bflow_method_code
56502            ,p_business_class_code     => l_bflow_class_code
56503            ,p_balance_type            => l_balance_type_code);
56504    ELSE
56505       NULL;
56506 -- No business flow processing for business flow method of NONE.
56507    END IF;
56508 
56509    --
56510    -- call analytical criteria
56511    --
56512    
56513    --
56514    -- call description
56515    --
56516    -- No description or it is inherited.
56517    --
56518    -- call ADRs
56519    -- Bug 4922099
56520    --
56521    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56522         (NVL(l_actual_upg_option, 'N') = 'O') OR
56523         (NVL(l_enc_upg_option, 'N') = 'O')
56524       )
56525    THEN
56526    NULL;
56527    --
56528    --
56529    
56530   l_ccid := AcctDerRule_41(
56531            p_application_id           => p_application_id
56532          , p_ae_header_id             => l_ae_header_id 
56533 , p_source_15 => p_source_15
56534 , p_source_15_meaning => p_source_15_meaning
56535 , p_source_30 => p_source_30
56536 , p_source_49 => p_source_49
56537          , x_transaction_coa_id       => l_adr_transaction_coa_id
56538          , x_accounting_coa_id        => l_adr_accounting_coa_id
56539          , x_value_type_code          => l_adr_value_type_code
56540          , p_side                     => 'NA'
56541    );
56542 
56543    xla_ae_lines_pkg.set_ccid(
56544     p_code_combination_id          => l_ccid
56545   , p_value_type_code              => l_adr_value_type_code
56546   , p_transaction_coa_id           => l_adr_transaction_coa_id
56547   , p_accounting_coa_id            => l_adr_accounting_coa_id
56548   , p_adr_code                     => 'AP_ROUNDING'
56549   , p_adr_type_code                => 'S'
56550   , p_component_type               => l_component_type
56551   , p_component_code               => l_component_code
56552   , p_component_type_code          => l_component_type_code
56553   , p_component_appl_id            => l_component_appl_id
56554   , p_amb_context_code             => l_amb_context_code
56555   , p_side                         => 'NA'
56556   );
56557 
56558 
56559    --
56560    --
56561    END IF;
56562    --
56563    -- Bug 4922099
56564    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
56565           (NVL(l_enc_upg_option, 'N') = 'O')
56566         ) AND
56567         (l_bflow_method_code = 'PRIOR_ENTRY')
56568       )
56569    THEN
56570       IF
56571       --
56572       1 = 2
56573       --
56574       THEN
56575       xla_accounting_err_pkg.build_message
56576                                     (p_appli_s_name            => 'XLA'
56577                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56578                                     ,p_token_1                 => 'LINE_NUMBER'
56579                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
56580                                     ,p_token_2                 => 'LINE_TYPE_NAME'
56581                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
56582                                                                              l_component_type
56583                                                                             ,l_component_code
56584                                                                             ,l_component_type_code
56585                                                                             ,l_component_appl_id
56586                                                                             ,l_amb_context_code
56587                                                                             ,l_entity_code
56588                                                                             ,l_event_class_code
56589                                                                            )
56590                                     ,p_token_3                 => 'OWNER'
56591                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
56592                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
56593                                                                           ,p_lookup_code    => l_component_type_code
56594                                                                          )
56595                                     ,p_token_4                 => 'PRODUCT_NAME'
56599                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
56596                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
56597                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
56598                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
56600                                     ,p_ae_header_id            =>  NULL
56601                                        );
56602 
56603         IF (C_LEVEL_ERROR>= g_log_level) THEN
56604                  trace
56605                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
56606                       ,p_level    => C_LEVEL_ERROR
56607                       ,p_module   => l_log_module);
56608         END IF;
56609       END IF;
56610    END IF;
56611    --
56612    --
56613    ------------------------------------------------------------------------------------------------
56614    -- 4219869 Business Flow
56615    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
56616    -- Prior Entry.  Currently, the following code is always generated.
56617    ------------------------------------------------------------------------------------------------
56618    XLA_AE_LINES_PKG.ValidateCurrentLine;
56619 
56620    ------------------------------------------------------------------------------------
56621    -- 4219869 Business Flow
56622    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
56623    ------------------------------------------------------------------------------------
56624    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56625 
56626    ----------------------------------------------------------------------------------
56627    -- 4219869 Business Flow
56628    -- Update journal entry status -- Need to generate this within IF <condition>
56629    ----------------------------------------------------------------------------------
56630    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56631          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
56632          ,p_balance_type_code => l_balance_type_code
56633          );
56634 
56635    -------------------------------------------------------------------------------------------
56636    -- 4262811 - Generate the Accrual Reversal lines
56637    -------------------------------------------------------------------------------------------
56638    BEGIN
56639       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
56640                               (g_array_event(p_event_id).array_value_num('header_index'));
56641       IF l_acc_rev_flag IS NULL THEN
56642          l_acc_rev_flag := 'N';
56643       END IF;
56644    EXCEPTION
56645       WHEN OTHERS THEN
56646          l_acc_rev_flag := 'N';
56647    END;
56648    --
56649    IF (l_acc_rev_flag = 'Y') THEN
56650 
56651        -- 4645092  ------------------------------------------------------------------------------
56652        -- To allow MPA report to determine if it should generate report process
56653        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
56654        ------------------------------------------------------------------------------------------
56655 
56656        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
56657        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
56658    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
56659    -- call ADRs
56660    -- Bug 4922099
56661    --
56662    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
56663         (NVL(l_actual_upg_option, 'N') = 'O') OR
56664         (NVL(l_enc_upg_option, 'N') = 'O')
56665       )
56666    THEN
56667    NULL;
56668    --
56669    --
56670    
56671   l_ccid := AcctDerRule_41(
56672            p_application_id           => p_application_id
56673          , p_ae_header_id             => l_ae_header_id 
56674 , p_source_15 => p_source_15
56675 , p_source_15_meaning => p_source_15_meaning
56676 , p_source_30 => p_source_30
56677 , p_source_49 => p_source_49
56678          , x_transaction_coa_id       => l_adr_transaction_coa_id
56679          , x_accounting_coa_id        => l_adr_accounting_coa_id
56680          , x_value_type_code          => l_adr_value_type_code
56681          , p_side                     => 'NA'
56682    );
56683 
56684    xla_ae_lines_pkg.set_ccid(
56685     p_code_combination_id          => l_ccid
56686   , p_value_type_code              => l_adr_value_type_code
56687   , p_transaction_coa_id           => l_adr_transaction_coa_id
56688   , p_accounting_coa_id            => l_adr_accounting_coa_id
56689   , p_adr_code                     => 'AP_ROUNDING'
56690   , p_adr_type_code                => 'S'
56691   , p_component_type               => l_component_type
56692   , p_component_code               => l_component_code
56693   , p_component_type_code          => l_component_type_code
56694   , p_component_appl_id            => l_component_appl_id
56695   , p_amb_context_code             => l_amb_context_code
56696   , p_side                         => 'NA'
56697   );
56698 
56699 
56700    --
56701    --
56702    END IF;
56703 
56704        --
56705        -- Update the line information that should be overwritten
56706        --
56707        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
56708                                          p_header_num   => 1);
56709        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
56710 
56714           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
56711        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
56712 
56713        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
56715        END IF;
56716 
56717       --
56718       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
56719       --
56720       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
56721           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
56722       ELSE
56723           ---------------------------------------------------------------------------------------------------
56724           -- 4262811a Switch Sign
56725           ---------------------------------------------------------------------------------------------------
56726           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
56727           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56728                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56729           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
56730                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56731           -- 5132302
56732           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
56733                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
56734 
56735       END IF;
56736 
56737       -- 4955764
56738       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
56739       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
56740 
56741 
56742       XLA_AE_LINES_PKG.ValidateCurrentLine;
56743       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
56744 
56745       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
56746                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
56747                ,p_balance_type_code => l_balance_type_code);
56748 
56749    END IF;
56750 
56751    -----------------------------------------------------------------------------------------
56752    -- 4262811 Multiperiod Accounting
56753    -----------------------------------------------------------------------------------------
56754      -- No MPA option is assigned.
56755 
56756 
56757 END IF;
56758 END IF;
56759 --
56760 
56761 --
56762 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56763    trace
56764       (p_msg      => 'END of AcctLineType_114'
56765       ,p_level    => C_LEVEL_PROCEDURE
56766       ,p_module   => l_log_module);
56767 END IF;
56768 --
56769 EXCEPTION
56770   WHEN xla_exceptions_pkg.application_exception THEN
56771       RAISE;
56772   WHEN OTHERS THEN
56773        xla_exceptions_pkg.raise_message
56774            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_114');
56775 END AcctLineType_114;
56776 --
56777 
56778 ---------------------------------------
56779 --
56780 -- PRIVATE FUNCTION
56781 --         AcctLineType_115
56782 --
56783 ---------------------------------------
56784 PROCEDURE AcctLineType_115 (
56785   p_application_id        IN NUMBER
56786  ,p_event_id              IN NUMBER
56787  ,p_calculate_acctd_flag  IN VARCHAR2
56788  ,p_calculate_g_l_flag    IN VARCHAR2
56789  ,p_actual_flag           IN OUT VARCHAR2
56790  ,p_balance_type_code     OUT VARCHAR2
56791  ,p_gain_or_loss_ref      OUT VARCHAR2
56792  
56793 --Automatic Offsets Value
56794  , p_source_15            IN VARCHAR2
56795  , p_source_15_meaning    IN VARCHAR2
56796 --Invoice Distribution Account
56797  , p_source_30            IN NUMBER
56798 --Payables Options Rounding Account
56799  , p_source_49            IN NUMBER
56800 --Accounting Reversal Indicator
56801  , p_source_53            IN VARCHAR2
56802 --Distribution Link Type
56803  , p_source_55            IN VARCHAR2
56804 --Invoice Identifier
56805  , p_source_58            IN NUMBER
56806 --Payables Encumbrance Upgrade Credit Account
56807  , p_source_65            IN NUMBER
56808 --Payables Encumbrance Upgrade Credit Amount
56809  , p_source_66            IN NUMBER
56810 --Invoice Currency Code
56811  , p_source_67            IN VARCHAR2
56812 --Payables Encumbrance Upgrade Credit Base Amount
56813  , p_source_68            IN NUMBER
56814 --Payables Encumbrance Upgrade Debit Account
56815  , p_source_69            IN NUMBER
56816 --Payables Encumbrance Upgrade Debit Amount
56817  , p_source_70            IN NUMBER
56818 --Payables Encumbrance Upgrade Debit Base Amount
56819  , p_source_71            IN NUMBER
56820 --Payables Encumbrance Upgrade Option
56821  , p_source_72            IN VARCHAR2
56822 --Deferred Accounting End Date
56823  , p_source_77            IN DATE
56824 --Deferred Accounting Option
56825  , p_source_78            IN VARCHAR2
56826 --Deferred Accounting Start Date
56827  , p_source_79            IN DATE
56828 --Override Accounted Amount Indicator
56829  , p_source_80            IN VARCHAR2
56830  , p_source_80_meaning    IN VARCHAR2
56831 --Invoice Supplier Identifier
56832  , p_source_81            IN NUMBER
56836  , p_source_83            IN VARCHAR2
56833 --Invoice Supplier Site Identifier
56834  , p_source_82            IN NUMBER
56835 --Third Party Type
56837 --Invoice Distribution Tax Line Identifier
56838  , p_source_86            IN NUMBER
56839 --Invoice Distribution Tax Distribution Identifier from Tax
56840  , p_source_87            IN NUMBER
56841 --Invoice Distribution Summary Tax Line Identifier
56842  , p_source_88            IN NUMBER
56843 --Payables Upgrade Credit Encumbrance Type Identifier
56844  , p_source_89            IN NUMBER
56845 --Payables Upgrade Debit Encumbrance Type Identifier
56846  , p_source_90            IN NUMBER
56847 --Business Flow Accounts Payable Application Identifier
56848  , p_source_91            IN NUMBER
56849 --Prepayment Distribution Type
56850  , p_source_125            IN VARCHAR2
56851 --Prepayment Application Distribution Identifier
56852  , p_source_127            IN NUMBER
56853 --Upgrade Encumbrance Credit Account Class
56854  , p_source_132            IN VARCHAR2
56855 --Upgrade Encumbrance Debit Account Class
56856  , p_source_133            IN VARCHAR2
56857 --Prepayment Distribution Amount
56858  , p_source_134            IN NUMBER
56859 --Identifier of the Prepayment Application Reversed
56860  , p_source_136            IN NUMBER
56861 --Invoice Exchange Date
56862  , p_source_143            IN DATE
56863 --Invoice Exchange Rate
56864  , p_source_144            IN NUMBER
56865 --Invoice Exchange Rate Type
56866  , p_source_145            IN VARCHAR2
56867 --Business Flow Prepayment Invoice Distribution Type
56868  , p_source_146            IN VARCHAR2
56869 --Business Flow Prepayment Invoice Entity Code
56870  , p_source_147            IN VARCHAR2
56871 --Business Flow Prepayment Invoice Distribution Identifier
56872  , p_source_148            IN NUMBER
56873 --Business Flow Prepayment Invoice Identifier
56874  , p_source_149            IN NUMBER
56875 --Prepayment Distribution (Prepayment Payment Rate) Ledger Amount
56876  , p_source_150            IN NUMBER
56877 )
56878 IS
56879 
56880 l_component_type              VARCHAR2(80);
56881 l_component_code              VARCHAR2(30);
56882 l_component_type_code         VARCHAR2(1);
56883 l_component_appl_id           INTEGER;
56884 l_amb_context_code            VARCHAR2(30);
56885 l_entity_code                 VARCHAR2(30);
56886 l_event_class_code            VARCHAR2(30);
56887 l_ae_header_id                NUMBER;
56888 l_event_type_code             VARCHAR2(30);
56889 l_line_definition_code        VARCHAR2(30);
56890 l_line_definition_owner_code  VARCHAR2(1);
56891 --
56892 -- adr variables
56893 l_segment                     VARCHAR2(30);
56894 l_ccid                        NUMBER;
56895 l_adr_transaction_coa_id      NUMBER;
56896 l_adr_accounting_coa_id       NUMBER;
56897 l_adr_flexfield_segment_code  VARCHAR2(30);
56898 l_adr_flex_value_set_id       NUMBER;
56899 l_adr_value_type_code         VARCHAR2(30);
56900 l_adr_value_combination_id    NUMBER;
56901 l_adr_value_segment_code      VARCHAR2(30);
56902 
56903 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
56904 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
56905 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
56906 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
56907 
56908 -- 4262811 Variables ------------------------------------------------------------------------------------------
56909 l_entered_amt_idx             NUMBER;
56910 l_accted_amt_idx              NUMBER;
56911 l_acc_rev_flag                VARCHAR2(1);
56912 l_accrual_line_num            NUMBER;
56913 l_tmp_amt                     NUMBER;
56914 l_acc_rev_natural_side_code   VARCHAR2(1);
56915 
56916 l_num_entries                 NUMBER;
56917 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
56918 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
56919 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
56920 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
56921 l_recog_line_1                NUMBER;
56922 l_recog_line_2                NUMBER;
56923 
56924 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
56925 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
56926 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
56927 
56928 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
56929 
56930 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
56931 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
56932 
56933 ---------------------------------------------------------------------------------------------------------------
56934 
56935 
56936 --
56937 -- bulk performance
56938 --
56939 l_balance_type_code           VARCHAR2(1);
56940 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
56941 l_log_module                  VARCHAR2(240);
56942 
56943 --
56944 -- Upgrade strategy
56945 --
56946 l_actual_upg_option           VARCHAR2(1);
56947 l_enc_upg_option           VARCHAR2(1);
56948 
56949 --
56950 BEGIN
56951 --
56952 IF g_log_enabled THEN
56953       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_115';
56954 END IF;
56955 --
56956 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56957 
56961          ,p_module   => l_log_module);
56958       trace
56959          (p_msg      => 'BEGIN of AcctLineType_115'
56960          ,p_level    => C_LEVEL_PROCEDURE
56962 
56963 END IF;
56964 --
56965 l_component_type             := 'AMB_JLT';
56966 l_component_code             := 'AP_FINAL_PMT_ROUND_PREPAY_APP';
56967 l_component_type_code        := 'S';
56968 l_component_appl_id          :=  200;
56969 l_amb_context_code           := 'DEFAULT';
56970 l_entity_code                := 'AP_INVOICES';
56971 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
56972 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
56973 l_line_definition_owner_code := 'S';
56974 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
56975 --
56976 l_balance_type_code          := 'A';
56977 l_segment                     := NULL;
56978 l_ccid                        := NULL;
56979 l_adr_transaction_coa_id      := NULL;
56980 l_adr_accounting_coa_id       := NULL;
56981 l_adr_flexfield_segment_code  := NULL;
56982 l_adr_flex_value_set_id       := NULL;
56983 l_adr_value_type_code         := NULL;
56984 l_adr_value_combination_id    := NULL;
56985 l_adr_value_segment_code      := NULL;
56986 
56987 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
56988 l_bflow_class_code           := '';    -- 4219869 Business Flow
56989 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
56990 l_budgetary_control_flag     := 'N';
56991 
56992 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
56993 l_bflow_applied_to_amt       := NULL; -- 5132302
56994 l_entered_amt_idx            := NULL;          -- 4262811
56995 l_accted_amt_idx             := NULL;          -- 4262811
56996 l_acc_rev_flag               := NULL;          -- 4262811
56997 l_accrual_line_num           := NULL;          -- 4262811
56998 l_tmp_amt                    := NULL;          -- 4262811
56999 --
57000  
57001 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
57002     l_balance_type_code <> 'B' THEN
57003 IF NVL(p_source_125,'
57004 ') =  'FINAL PAYMENT ROUNDING'
57005  THEN 
57006 
57007    --
57008    XLA_AE_LINES_PKG.SetNewLine;
57009 
57010    p_balance_type_code          := l_balance_type_code;
57011    -- set the flag so later we will know whether the gain loss line needs to be created
57012    
57013    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
57014      p_actual_flag :='A';
57015    END IF;
57016 
57017    --
57018    -- bulk performance
57019    --
57020    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
57021                                       p_header_num   => 0); -- 4262811
57022    --
57023    -- set accounting line options
57024    --
57025    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
57026            p_natural_side_code          => 'C'
57027          , p_gain_or_loss_flag          => 'N'
57028          , p_gl_transfer_mode_code      => 'S'
57029          , p_acct_entry_type_code       => 'A'
57030          , p_switch_side_flag           => 'Y'
57031          , p_merge_duplicate_code       => 'A'
57032          );
57033    --
57034    l_acc_rev_natural_side_code := 'D';  -- 4262811
57035    -- 
57036    --
57037    -- set accounting line type info
57038    --
57039    xla_ae_lines_pkg.SetAcctLineType
57040       (p_component_type             => l_component_type
57041       ,p_event_type_code            => l_event_type_code
57042       ,p_line_definition_owner_code => l_line_definition_owner_code
57043       ,p_line_definition_code       => l_line_definition_code
57044       ,p_accounting_line_code       => l_component_code
57045       ,p_accounting_line_type_code  => l_component_type_code
57046       ,p_accounting_line_appl_id    => l_component_appl_id
57047       ,p_amb_context_code           => l_amb_context_code
57048       ,p_entity_code                => l_entity_code
57049       ,p_event_class_code           => l_event_class_code);
57050    --
57051    -- set accounting class
57052    --
57053    xla_ae_lines_pkg.SetAcctClass(
57054            p_accounting_class_code  => 'ROUNDING'
57055          , p_ae_header_id           => l_ae_header_id
57056          );
57057 
57058    --
57059    -- set rounding class
57060    --
57061    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
57062                       'ROUNDING';
57063 
57064    --
57065    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
57066    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
57067    --
57068    -- bulk performance
57069    --
57070    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
57071 
57072    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
57073       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
57074 
57075    -- 4955764
57076    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57077       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
57078 
57079    -- 4458381 Public Sector Enh
57080    
57081    --
57082    -- set accounting attributes for the line type
57083    --
57084    l_entered_amt_idx := 25;
57085    l_accted_amt_idx  := 30;
57089    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
57086    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
57087    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
57088    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
57090    l_rec_acct_attrs.array_num_value(2)  := 
57091 xla_ae_sources_pkg.GetSystemSourceNum(
57092    p_source_code           => 'XLA_EVENT_APPL_ID'
57093  , p_source_type_code      => 'Y'
57094  , p_source_application_id =>  602
57095 );
57096    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
57097    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
57098    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
57099    l_rec_acct_attrs.array_char_value(4)  := 
57100 xla_ae_sources_pkg.GetSystemSourceChar(
57101    p_source_code           => 'XLA_ENTITY_CODE'
57102  , p_source_type_code      => 'Y'
57103  , p_source_application_id =>  602
57104 );
57105    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
57106    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_127);
57107    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
57108    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
57109    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
57110    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
57111    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
57112    l_rec_acct_attrs.array_char_value(8)  := p_source_146;
57113    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
57114    l_rec_acct_attrs.array_char_value(9)  := p_source_147;
57115    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
57116    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_148);
57117    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
57118    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_149);
57119    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
57120    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_127);
57121    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
57122    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
57123    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
57124    l_rec_acct_attrs.array_char_value(14)  := p_source_132;
57125    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
57126    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
57127    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
57128    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
57129    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
57130    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
57131    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
57132    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
57133    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
57134    l_rec_acct_attrs.array_char_value(19)  := p_source_133;
57135    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
57136    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
57137    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
57138    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
57139    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
57140    l_rec_acct_attrs.array_char_value(22)  := p_source_67;
57141    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
57142    l_rec_acct_attrs.array_num_value(23)  := p_source_71;
57143    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
57144    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
57145    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
57146    l_rec_acct_attrs.array_num_value(25)  := p_source_134;
57147    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
57148    l_rec_acct_attrs.array_char_value(26)  := p_source_67;
57149    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
57150    l_rec_acct_attrs.array_date_value(27)  := p_source_143;
57151    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
57152    l_rec_acct_attrs.array_num_value(28)  := p_source_144;
57153    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
57154    l_rec_acct_attrs.array_char_value(29)  := p_source_145;
57155    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
57156    l_rec_acct_attrs.array_num_value(30)  := p_source_150;
57157    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
57158    l_rec_acct_attrs.array_date_value(31)  := p_source_77;
57159    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
57160    l_rec_acct_attrs.array_char_value(32)  := p_source_78;
57161    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
57162    l_rec_acct_attrs.array_date_value(33)  := p_source_79;
57163    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
57164    l_rec_acct_attrs.array_char_value(34)  := p_source_80;
57165    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
57166    l_rec_acct_attrs.array_num_value(35)  := p_source_81;
57167    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
57168    l_rec_acct_attrs.array_num_value(36)  := p_source_82;
57169    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
57170    l_rec_acct_attrs.array_char_value(37)  := p_source_83;
57171    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
57172    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_136);
57173    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
57177    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
57174    l_rec_acct_attrs.array_char_value(39)  := p_source_55;
57175    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
57176    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
57178    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
57179    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
57180    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
57181    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
57182    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
57183    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
57184    l_rec_acct_attrs.array_num_value(44)  := p_source_90;
57185 
57186    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
57187    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
57188 
57189    ---------------------------------------------------------------------------------------------------------------
57190    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
57191    ---------------------------------------------------------------------------------------------------------------
57192    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
57193 
57194    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57195    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57196 
57197    IF xla_accounting_cache_pkg.GetValueChar
57198          (p_source_code         => 'LEDGER_CATEGORY_CODE'
57199          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
57200    AND l_bflow_method_code = 'PRIOR_ENTRY'
57201 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
57202    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
57203          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
57204        )
57205    THEN
57206          xla_ae_lines_pkg.BflowUpgEntry
57207            (p_business_method_code    => l_bflow_method_code
57208            ,p_business_class_code     => l_bflow_class_code
57209            ,p_balance_type            => l_balance_type_code);
57210    ELSE
57211       NULL;
57212 -- No business flow processing for business flow method of NONE.
57213    END IF;
57214 
57215    --
57216    -- call analytical criteria
57217    --
57218    
57219    --
57220    -- call description
57221    --
57222    -- No description or it is inherited.
57223    --
57224    -- call ADRs
57225    -- Bug 4922099
57226    --
57227    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57228         (NVL(l_actual_upg_option, 'N') = 'O') OR
57229         (NVL(l_enc_upg_option, 'N') = 'O')
57230       )
57231    THEN
57232    NULL;
57233    --
57234    --
57235    
57236   l_ccid := AcctDerRule_41(
57237            p_application_id           => p_application_id
57238          , p_ae_header_id             => l_ae_header_id 
57239 , p_source_15 => p_source_15
57240 , p_source_15_meaning => p_source_15_meaning
57241 , p_source_30 => p_source_30
57242 , p_source_49 => p_source_49
57243          , x_transaction_coa_id       => l_adr_transaction_coa_id
57244          , x_accounting_coa_id        => l_adr_accounting_coa_id
57245          , x_value_type_code          => l_adr_value_type_code
57246          , p_side                     => 'NA'
57247    );
57248 
57249    xla_ae_lines_pkg.set_ccid(
57250     p_code_combination_id          => l_ccid
57251   , p_value_type_code              => l_adr_value_type_code
57252   , p_transaction_coa_id           => l_adr_transaction_coa_id
57253   , p_accounting_coa_id            => l_adr_accounting_coa_id
57254   , p_adr_code                     => 'AP_ROUNDING'
57255   , p_adr_type_code                => 'S'
57256   , p_component_type               => l_component_type
57257   , p_component_code               => l_component_code
57258   , p_component_type_code          => l_component_type_code
57259   , p_component_appl_id            => l_component_appl_id
57260   , p_amb_context_code             => l_amb_context_code
57261   , p_side                         => 'NA'
57262   );
57263 
57264 
57265    --
57266    --
57267    END IF;
57268    --
57269    -- Bug 4922099
57270    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
57271           (NVL(l_enc_upg_option, 'N') = 'O')
57272         ) AND
57273         (l_bflow_method_code = 'PRIOR_ENTRY')
57274       )
57275    THEN
57276       IF
57277       --
57278       1 = 2
57279       --
57280       THEN
57281       xla_accounting_err_pkg.build_message
57282                                     (p_appli_s_name            => 'XLA'
57283                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57284                                     ,p_token_1                 => 'LINE_NUMBER'
57285                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
57286                                     ,p_token_2                 => 'LINE_TYPE_NAME'
57287                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
57288                                                                              l_component_type
57289                                                                             ,l_component_code
57293                                                                             ,l_entity_code
57290                                                                             ,l_component_type_code
57291                                                                             ,l_component_appl_id
57292                                                                             ,l_amb_context_code
57294                                                                             ,l_event_class_code
57295                                                                            )
57296                                     ,p_token_3                 => 'OWNER'
57297                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
57298                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
57299                                                                           ,p_lookup_code    => l_component_type_code
57300                                                                          )
57301                                     ,p_token_4                 => 'PRODUCT_NAME'
57302                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
57303                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
57304                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
57305                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
57306                                     ,p_ae_header_id            =>  NULL
57307                                        );
57308 
57309         IF (C_LEVEL_ERROR>= g_log_level) THEN
57310                  trace
57311                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57312                       ,p_level    => C_LEVEL_ERROR
57313                       ,p_module   => l_log_module);
57314         END IF;
57315       END IF;
57316    END IF;
57317    --
57318    --
57319    ------------------------------------------------------------------------------------------------
57320    -- 4219869 Business Flow
57321    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
57322    -- Prior Entry.  Currently, the following code is always generated.
57323    ------------------------------------------------------------------------------------------------
57324    XLA_AE_LINES_PKG.ValidateCurrentLine;
57325 
57326    ------------------------------------------------------------------------------------
57327    -- 4219869 Business Flow
57328    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
57329    ------------------------------------------------------------------------------------
57330    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57331 
57332    ----------------------------------------------------------------------------------
57333    -- 4219869 Business Flow
57334    -- Update journal entry status -- Need to generate this within IF <condition>
57335    ----------------------------------------------------------------------------------
57336    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57337          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
57338          ,p_balance_type_code => l_balance_type_code
57339          );
57340 
57341    -------------------------------------------------------------------------------------------
57342    -- 4262811 - Generate the Accrual Reversal lines
57343    -------------------------------------------------------------------------------------------
57344    BEGIN
57345       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
57346                               (g_array_event(p_event_id).array_value_num('header_index'));
57347       IF l_acc_rev_flag IS NULL THEN
57348          l_acc_rev_flag := 'N';
57349       END IF;
57350    EXCEPTION
57351       WHEN OTHERS THEN
57352          l_acc_rev_flag := 'N';
57353    END;
57354    --
57355    IF (l_acc_rev_flag = 'Y') THEN
57356 
57357        -- 4645092  ------------------------------------------------------------------------------
57358        -- To allow MPA report to determine if it should generate report process
57359        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
57360        ------------------------------------------------------------------------------------------
57361 
57362        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
57363        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
57364    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
57365    -- call ADRs
57366    -- Bug 4922099
57367    --
57368    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57369         (NVL(l_actual_upg_option, 'N') = 'O') OR
57370         (NVL(l_enc_upg_option, 'N') = 'O')
57371       )
57372    THEN
57373    NULL;
57374    --
57375    --
57376    
57377   l_ccid := AcctDerRule_41(
57378            p_application_id           => p_application_id
57379          , p_ae_header_id             => l_ae_header_id 
57380 , p_source_15 => p_source_15
57381 , p_source_15_meaning => p_source_15_meaning
57382 , p_source_30 => p_source_30
57383 , p_source_49 => p_source_49
57384          , x_transaction_coa_id       => l_adr_transaction_coa_id
57385          , x_accounting_coa_id        => l_adr_accounting_coa_id
57386          , x_value_type_code          => l_adr_value_type_code
57387          , p_side                     => 'NA'
57388    );
57389 
57393   , p_transaction_coa_id           => l_adr_transaction_coa_id
57390    xla_ae_lines_pkg.set_ccid(
57391     p_code_combination_id          => l_ccid
57392   , p_value_type_code              => l_adr_value_type_code
57394   , p_accounting_coa_id            => l_adr_accounting_coa_id
57395   , p_adr_code                     => 'AP_ROUNDING'
57396   , p_adr_type_code                => 'S'
57397   , p_component_type               => l_component_type
57398   , p_component_code               => l_component_code
57399   , p_component_type_code          => l_component_type_code
57400   , p_component_appl_id            => l_component_appl_id
57401   , p_amb_context_code             => l_amb_context_code
57402   , p_side                         => 'NA'
57403   );
57404 
57405 
57406    --
57407    --
57408    END IF;
57409 
57410        --
57411        -- Update the line information that should be overwritten
57412        --
57413        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
57414                                          p_header_num   => 1);
57415        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
57416 
57417        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
57418 
57419        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
57420           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
57421        END IF;
57422 
57423       --
57424       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
57425       --
57426       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
57427           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
57428       ELSE
57429           ---------------------------------------------------------------------------------------------------
57430           -- 4262811a Switch Sign
57431           ---------------------------------------------------------------------------------------------------
57432           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
57433           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57434                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57435           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
57436                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57437           -- 5132302
57438           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
57439                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
57440 
57441       END IF;
57442 
57443       -- 4955764
57444       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57445       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
57446 
57447 
57448       XLA_AE_LINES_PKG.ValidateCurrentLine;
57449       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
57450 
57451       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
57452                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
57453                ,p_balance_type_code => l_balance_type_code);
57454 
57455    END IF;
57456 
57457    -----------------------------------------------------------------------------------------
57458    -- 4262811 Multiperiod Accounting
57459    -----------------------------------------------------------------------------------------
57460      -- No MPA option is assigned.
57461 
57462 
57463 END IF;
57464 END IF;
57465 --
57466 
57467 --
57468 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57469    trace
57470       (p_msg      => 'END of AcctLineType_115'
57471       ,p_level    => C_LEVEL_PROCEDURE
57472       ,p_module   => l_log_module);
57473 END IF;
57474 --
57475 EXCEPTION
57476   WHEN xla_exceptions_pkg.application_exception THEN
57477       RAISE;
57478   WHEN OTHERS THEN
57479        xla_exceptions_pkg.raise_message
57480            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_115');
57481 END AcctLineType_115;
57482 --
57483 
57484 ---------------------------------------
57485 --
57486 -- PRIVATE FUNCTION
57487 --         AcctLineType_116
57488 --
57489 ---------------------------------------
57490 PROCEDURE AcctLineType_116 (
57491   p_application_id        IN NUMBER
57492  ,p_event_id              IN NUMBER
57493  ,p_calculate_acctd_flag  IN VARCHAR2
57494  ,p_calculate_g_l_flag    IN VARCHAR2
57495  ,p_actual_flag           IN OUT VARCHAR2
57496  ,p_balance_type_code     OUT VARCHAR2
57497  ,p_gain_or_loss_ref      OUT VARCHAR2
57498  
57499 --Invoice Distribution Description
57500  , p_source_1            IN VARCHAR2
57501 --Invoice Distribution Ledger Amount
57502  , p_source_21            IN NUMBER
57503 --Invoice Distribution Account
57504  , p_source_30            IN NUMBER
57505 --Invoice Distribution Type
57506  , p_source_33            IN VARCHAR2
57507  , p_source_33_meaning    IN VARCHAR2
57508 --Accounting Reversal Indicator
57509  , p_source_53            IN VARCHAR2
57510 --Distribution Link Type
57514 --Invoice Identifier
57511  , p_source_55            IN VARCHAR2
57512 --Allocation to Main Distribution Identifier
57513  , p_source_57            IN NUMBER
57515  , p_source_58            IN NUMBER
57516 --Invoice Distribution Identifier
57517  , p_source_64            IN NUMBER
57518 --Payables Encumbrance Upgrade Credit Account
57519  , p_source_65            IN NUMBER
57520 --Payables Encumbrance Upgrade Credit Amount
57521  , p_source_66            IN NUMBER
57522 --Invoice Currency Code
57523  , p_source_67            IN VARCHAR2
57524 --Payables Encumbrance Upgrade Credit Base Amount
57525  , p_source_68            IN NUMBER
57526 --Payables Encumbrance Upgrade Debit Account
57527  , p_source_69            IN NUMBER
57528 --Payables Encumbrance Upgrade Debit Amount
57529  , p_source_70            IN NUMBER
57530 --Payables Encumbrance Upgrade Debit Base Amount
57531  , p_source_71            IN NUMBER
57532 --Payables Encumbrance Upgrade Option
57533  , p_source_72            IN VARCHAR2
57534 --Invoice Distribution Amount
57535  , p_source_73            IN NUMBER
57536 --Deferred Accounting End Date
57537  , p_source_77            IN DATE
57538 --Deferred Accounting Option
57539  , p_source_78            IN VARCHAR2
57540 --Deferred Accounting Start Date
57541  , p_source_79            IN DATE
57542 --Override Accounted Amount Indicator
57543  , p_source_80            IN VARCHAR2
57544  , p_source_80_meaning    IN VARCHAR2
57545 --Invoice Supplier Identifier
57546  , p_source_81            IN NUMBER
57547 --Invoice Supplier Site Identifier
57548  , p_source_82            IN NUMBER
57549 --Third Party Type
57550  , p_source_83            IN VARCHAR2
57551 --Parent Reversal Identifier
57552  , p_source_84            IN NUMBER
57553 --Invoice Distribution Statistical Amount
57554  , p_source_85            IN NUMBER
57555 --Invoice Distribution Tax Line Identifier
57556  , p_source_86            IN NUMBER
57557 --Invoice Distribution Tax Distribution Identifier from Tax
57558  , p_source_87            IN NUMBER
57559 --Invoice Distribution Summary Tax Line Identifier
57560  , p_source_88            IN NUMBER
57561 --Payables Upgrade Credit Encumbrance Type Identifier
57562  , p_source_89            IN NUMBER
57563 --Payables Upgrade Debit Encumbrance Type Identifier
57564  , p_source_90            IN NUMBER
57565 --Business Flow Accounts Payable Application Identifier
57566  , p_source_91            IN NUMBER
57567 --Business Flow Invoice Distribution Type
57568  , p_source_92            IN VARCHAR2
57569 --Business Flow Invoice Entity Code
57570  , p_source_93            IN VARCHAR2
57571 --Business Flow Invoice Distribution Identifier
57572  , p_source_94            IN NUMBER
57573 --Business Flow Invoice Identifier
57574  , p_source_95            IN NUMBER
57575 --Invoice Exchange Date
57576  , p_source_143            IN DATE
57577 --Invoice Exchange Rate
57578  , p_source_144            IN NUMBER
57579 --Invoice Exchange Rate Type
57580  , p_source_145            IN VARCHAR2
57581 )
57582 IS
57583 
57584 l_component_type              VARCHAR2(80);
57585 l_component_code              VARCHAR2(30);
57586 l_component_type_code         VARCHAR2(1);
57587 l_component_appl_id           INTEGER;
57588 l_amb_context_code            VARCHAR2(30);
57589 l_entity_code                 VARCHAR2(30);
57590 l_event_class_code            VARCHAR2(30);
57591 l_ae_header_id                NUMBER;
57592 l_event_type_code             VARCHAR2(30);
57593 l_line_definition_code        VARCHAR2(30);
57594 l_line_definition_owner_code  VARCHAR2(1);
57595 --
57596 -- adr variables
57597 l_segment                     VARCHAR2(30);
57598 l_ccid                        NUMBER;
57599 l_adr_transaction_coa_id      NUMBER;
57600 l_adr_accounting_coa_id       NUMBER;
57601 l_adr_flexfield_segment_code  VARCHAR2(30);
57602 l_adr_flex_value_set_id       NUMBER;
57603 l_adr_value_type_code         VARCHAR2(30);
57604 l_adr_value_combination_id    NUMBER;
57605 l_adr_value_segment_code      VARCHAR2(30);
57606 
57607 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
57608 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
57609 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
57610 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
57611 
57612 -- 4262811 Variables ------------------------------------------------------------------------------------------
57613 l_entered_amt_idx             NUMBER;
57614 l_accted_amt_idx              NUMBER;
57615 l_acc_rev_flag                VARCHAR2(1);
57616 l_accrual_line_num            NUMBER;
57617 l_tmp_amt                     NUMBER;
57618 l_acc_rev_natural_side_code   VARCHAR2(1);
57619 
57620 l_num_entries                 NUMBER;
57621 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
57622 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
57623 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
57624 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
57625 l_recog_line_1                NUMBER;
57626 l_recog_line_2                NUMBER;
57627 
57628 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
57629 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
57630 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
57631 
57635 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
57632 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
57633 
57634 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
57636 
57637 ---------------------------------------------------------------------------------------------------------------
57638 
57639 
57640 --
57641 -- bulk performance
57642 --
57643 l_balance_type_code           VARCHAR2(1);
57644 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
57645 l_log_module                  VARCHAR2(240);
57646 
57647 --
57648 -- Upgrade strategy
57649 --
57650 l_actual_upg_option           VARCHAR2(1);
57651 l_enc_upg_option           VARCHAR2(1);
57652 
57653 --
57654 BEGIN
57655 --
57656 IF g_log_enabled THEN
57657       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_116';
57658 END IF;
57659 --
57660 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57661 
57662       trace
57663          (p_msg      => 'BEGIN of AcctLineType_116'
57664          ,p_level    => C_LEVEL_PROCEDURE
57665          ,p_module   => l_log_module);
57666 
57667 END IF;
57668 --
57669 l_component_type             := 'AMB_JLT';
57670 l_component_code             := 'AP_FREIGHT_EXPENSE_CM';
57671 l_component_type_code        := 'S';
57672 l_component_appl_id          :=  200;
57673 l_amb_context_code           := 'DEFAULT';
57674 l_entity_code                := 'AP_INVOICES';
57675 l_event_class_code           := 'CREDIT MEMOS';
57676 l_event_type_code            := 'CREDIT MEMOS_ALL';
57677 l_line_definition_owner_code := 'S';
57678 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
57679 --
57680 l_balance_type_code          := 'A';
57681 l_segment                     := NULL;
57682 l_ccid                        := NULL;
57683 l_adr_transaction_coa_id      := NULL;
57684 l_adr_accounting_coa_id       := NULL;
57685 l_adr_flexfield_segment_code  := NULL;
57686 l_adr_flex_value_set_id       := NULL;
57687 l_adr_value_type_code         := NULL;
57688 l_adr_value_combination_id    := NULL;
57689 l_adr_value_segment_code      := NULL;
57690 
57691 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
57692 l_bflow_class_code           := '';    -- 4219869 Business Flow
57693 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
57694 l_budgetary_control_flag     := 'N';
57695 
57696 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
57697 l_bflow_applied_to_amt       := NULL; -- 5132302
57698 l_entered_amt_idx            := NULL;          -- 4262811
57699 l_accted_amt_idx             := NULL;          -- 4262811
57700 l_acc_rev_flag               := NULL;          -- 4262811
57701 l_accrual_line_num           := NULL;          -- 4262811
57702 l_tmp_amt                    := NULL;          -- 4262811
57703 --
57704  
57705 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
57706     l_balance_type_code <> 'B' THEN
57707 IF NVL(p_source_33,'
57708 ') =  'FREIGHT'
57709  THEN 
57710 
57711    --
57712    XLA_AE_LINES_PKG.SetNewLine;
57713 
57714    p_balance_type_code          := l_balance_type_code;
57715    -- set the flag so later we will know whether the gain loss line needs to be created
57716    
57717    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
57718      p_actual_flag :='A';
57719    END IF;
57720 
57721    --
57722    -- bulk performance
57723    --
57724    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
57725                                       p_header_num   => 0); -- 4262811
57726    --
57727    -- set accounting line options
57728    --
57729    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
57730            p_natural_side_code          => 'D'
57731          , p_gain_or_loss_flag          => 'N'
57732          , p_gl_transfer_mode_code      => 'S'
57733          , p_acct_entry_type_code       => 'A'
57734          , p_switch_side_flag           => 'Y'
57735          , p_merge_duplicate_code       => 'A'
57736          );
57737    --
57738    l_acc_rev_natural_side_code := 'C';  -- 4262811
57739    -- 
57740    --
57741    -- set accounting line type info
57742    --
57743    xla_ae_lines_pkg.SetAcctLineType
57744       (p_component_type             => l_component_type
57745       ,p_event_type_code            => l_event_type_code
57746       ,p_line_definition_owner_code => l_line_definition_owner_code
57747       ,p_line_definition_code       => l_line_definition_code
57748       ,p_accounting_line_code       => l_component_code
57749       ,p_accounting_line_type_code  => l_component_type_code
57750       ,p_accounting_line_appl_id    => l_component_appl_id
57751       ,p_amb_context_code           => l_amb_context_code
57752       ,p_entity_code                => l_entity_code
57753       ,p_event_class_code           => l_event_class_code);
57754    --
57755    -- set accounting class
57756    --
57757    xla_ae_lines_pkg.SetAcctClass(
57758            p_accounting_class_code  => 'FREIGHT'
57759          , p_ae_header_id           => l_ae_header_id
57760          );
57761 
57762    --
57763    -- set rounding class
57764    --
57765    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
57766                       'FREIGHT';
57767 
57768    --
57772    -- bulk performance
57769    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
57770    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
57771    --
57773    --
57774    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
57775 
57776    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
57777       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
57778 
57779    -- 4955764
57780    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
57781       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
57782 
57783    -- 4458381 Public Sector Enh
57784    
57785    --
57786    -- set accounting attributes for the line type
57787    --
57788    l_entered_amt_idx := 23;
57789    l_accted_amt_idx  := 28;
57790    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
57791    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
57792    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
57793    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
57794    l_rec_acct_attrs.array_num_value(2)  := 
57795 xla_ae_sources_pkg.GetSystemSourceNum(
57796    p_source_code           => 'XLA_EVENT_APPL_ID'
57797  , p_source_type_code      => 'Y'
57798  , p_source_application_id =>  602
57799 );
57800    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
57801    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
57802    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
57803    l_rec_acct_attrs.array_char_value(4)  := 
57804 xla_ae_sources_pkg.GetSystemSourceChar(
57805    p_source_code           => 'XLA_ENTITY_CODE'
57806  , p_source_type_code      => 'Y'
57807  , p_source_application_id =>  602
57808 );
57809    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
57810    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
57811    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
57812    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
57813    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
57814    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
57815    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
57816    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
57817    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
57818    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
57819    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
57820    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
57821    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
57822    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
57823    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
57824    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
57825    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
57826    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
57827    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
57828    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
57829    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
57830    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
57831    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
57832    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
57833    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
57834    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
57835    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
57836    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
57837    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
57838    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
57839    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
57840    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
57841    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
57842    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
57843    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
57844    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
57845    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
57846    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
57847    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
57848    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
57849    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
57850    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
57851    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
57852    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
57853    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
57854    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
57855    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
57856    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
57857    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
57858    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
57859    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
57860    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
57861    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
57865    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
57862    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
57863    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
57864    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
57866    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
57867    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
57868    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
57869    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
57870    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
57871    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
57872    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
57873    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
57874    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
57875    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
57876    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
57877    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
57878    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
57879    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
57880    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
57881    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
57882    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
57883    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
57884    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
57885    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
57886    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
57887 
57888    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
57889    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
57890 
57891    ---------------------------------------------------------------------------------------------------------------
57892    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
57893    ---------------------------------------------------------------------------------------------------------------
57894    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
57895 
57896    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57897    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
57898 
57899    IF xla_accounting_cache_pkg.GetValueChar
57900          (p_source_code         => 'LEDGER_CATEGORY_CODE'
57901          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
57902    AND l_bflow_method_code = 'PRIOR_ENTRY'
57903 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
57904    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
57905          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
57906        )
57907    THEN
57908          xla_ae_lines_pkg.BflowUpgEntry
57909            (p_business_method_code    => l_bflow_method_code
57910            ,p_business_class_code     => l_bflow_class_code
57911            ,p_balance_type            => l_balance_type_code);
57912    ELSE
57913       NULL;
57914 -- No business flow processing for business flow method of NONE.
57915    END IF;
57916 
57917    --
57918    -- call analytical criteria
57919    --
57920    
57921    --
57922    -- call description
57923    --
57924    
57925 xla_ae_lines_pkg.SetLineDescription(
57926    p_ae_header_id => l_ae_header_id
57927   ,p_description  => Description_1 (
57928      p_application_id         => p_application_id
57929    , p_ae_header_id           => l_ae_header_id 
57930 , p_source_1 => p_source_1
57931    )
57932 );
57933 
57934 
57935    --
57936    -- call ADRs
57937    -- Bug 4922099
57938    --
57939    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
57940         (NVL(l_actual_upg_option, 'N') = 'O') OR
57941         (NVL(l_enc_upg_option, 'N') = 'O')
57942       )
57943    THEN
57944    NULL;
57945    --
57946    --
57947    
57948   l_ccid := AcctDerRule_33(
57949            p_application_id           => p_application_id
57950          , p_ae_header_id             => l_ae_header_id 
57951 , p_source_30 => p_source_30
57952          , x_transaction_coa_id       => l_adr_transaction_coa_id
57953          , x_accounting_coa_id        => l_adr_accounting_coa_id
57954          , x_value_type_code          => l_adr_value_type_code
57955          , p_side                     => 'NA'
57956    );
57957 
57958    xla_ae_lines_pkg.set_ccid(
57959     p_code_combination_id          => l_ccid
57960   , p_value_type_code              => l_adr_value_type_code
57961   , p_transaction_coa_id           => l_adr_transaction_coa_id
57962   , p_accounting_coa_id            => l_adr_accounting_coa_id
57963   , p_adr_code                     => 'AP_INVOICE_DIST'
57964   , p_adr_type_code                => 'S'
57965   , p_component_type               => l_component_type
57966   , p_component_code               => l_component_code
57967   , p_component_type_code          => l_component_type_code
57968   , p_component_appl_id            => l_component_appl_id
57969   , p_amb_context_code             => l_amb_context_code
57970   , p_side                         => 'NA'
57971   );
57972 
57973 
57974    --
57975    --
57976    END IF;
57977    --
57978    -- Bug 4922099
57979    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
57983       )
57980           (NVL(l_enc_upg_option, 'N') = 'O')
57981         ) AND
57982         (l_bflow_method_code = 'PRIOR_ENTRY')
57984    THEN
57985       IF
57986       --
57987       1 = 2
57988       --
57989       THEN
57990       xla_accounting_err_pkg.build_message
57991                                     (p_appli_s_name            => 'XLA'
57992                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
57993                                     ,p_token_1                 => 'LINE_NUMBER'
57994                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
57995                                     ,p_token_2                 => 'LINE_TYPE_NAME'
57996                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
57997                                                                              l_component_type
57998                                                                             ,l_component_code
57999                                                                             ,l_component_type_code
58000                                                                             ,l_component_appl_id
58001                                                                             ,l_amb_context_code
58002                                                                             ,l_entity_code
58003                                                                             ,l_event_class_code
58004                                                                            )
58005                                     ,p_token_3                 => 'OWNER'
58006                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
58007                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
58008                                                                           ,p_lookup_code    => l_component_type_code
58009                                                                          )
58010                                     ,p_token_4                 => 'PRODUCT_NAME'
58011                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
58012                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
58013                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
58014                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
58015                                     ,p_ae_header_id            =>  NULL
58016                                        );
58017 
58018         IF (C_LEVEL_ERROR>= g_log_level) THEN
58019                  trace
58020                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58021                       ,p_level    => C_LEVEL_ERROR
58022                       ,p_module   => l_log_module);
58023         END IF;
58024       END IF;
58025    END IF;
58026    --
58027    --
58028    ------------------------------------------------------------------------------------------------
58029    -- 4219869 Business Flow
58030    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
58031    -- Prior Entry.  Currently, the following code is always generated.
58032    ------------------------------------------------------------------------------------------------
58033    XLA_AE_LINES_PKG.ValidateCurrentLine;
58034 
58035    ------------------------------------------------------------------------------------
58036    -- 4219869 Business Flow
58037    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
58038    ------------------------------------------------------------------------------------
58039    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58040 
58041    ----------------------------------------------------------------------------------
58042    -- 4219869 Business Flow
58043    -- Update journal entry status -- Need to generate this within IF <condition>
58044    ----------------------------------------------------------------------------------
58045    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58046          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
58047          ,p_balance_type_code => l_balance_type_code
58048          );
58049 
58050    -------------------------------------------------------------------------------------------
58051    -- 4262811 - Generate the Accrual Reversal lines
58052    -------------------------------------------------------------------------------------------
58053    BEGIN
58054       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
58055                               (g_array_event(p_event_id).array_value_num('header_index'));
58056       IF l_acc_rev_flag IS NULL THEN
58057          l_acc_rev_flag := 'N';
58058       END IF;
58059    EXCEPTION
58060       WHEN OTHERS THEN
58061          l_acc_rev_flag := 'N';
58062    END;
58063    --
58064    IF (l_acc_rev_flag = 'Y') THEN
58065 
58066        -- 4645092  ------------------------------------------------------------------------------
58067        -- To allow MPA report to determine if it should generate report process
58068        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
58069        ------------------------------------------------------------------------------------------
58070 
58071        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
58075    -- Bug 4922099
58072        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
58073    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
58074    -- call ADRs
58076    --
58077    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58078         (NVL(l_actual_upg_option, 'N') = 'O') OR
58079         (NVL(l_enc_upg_option, 'N') = 'O')
58080       )
58081    THEN
58082    NULL;
58083    --
58084    --
58085    
58086   l_ccid := AcctDerRule_33(
58087            p_application_id           => p_application_id
58088          , p_ae_header_id             => l_ae_header_id 
58089 , p_source_30 => p_source_30
58090          , x_transaction_coa_id       => l_adr_transaction_coa_id
58091          , x_accounting_coa_id        => l_adr_accounting_coa_id
58092          , x_value_type_code          => l_adr_value_type_code
58093          , p_side                     => 'NA'
58094    );
58095 
58096    xla_ae_lines_pkg.set_ccid(
58097     p_code_combination_id          => l_ccid
58098   , p_value_type_code              => l_adr_value_type_code
58099   , p_transaction_coa_id           => l_adr_transaction_coa_id
58100   , p_accounting_coa_id            => l_adr_accounting_coa_id
58101   , p_adr_code                     => 'AP_INVOICE_DIST'
58102   , p_adr_type_code                => 'S'
58103   , p_component_type               => l_component_type
58104   , p_component_code               => l_component_code
58105   , p_component_type_code          => l_component_type_code
58106   , p_component_appl_id            => l_component_appl_id
58107   , p_amb_context_code             => l_amb_context_code
58108   , p_side                         => 'NA'
58109   );
58110 
58111 
58112    --
58113    --
58114    END IF;
58115 
58116        --
58117        -- Update the line information that should be overwritten
58118        --
58119        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
58120                                          p_header_num   => 1);
58121        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
58122 
58123        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
58124 
58125        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
58126           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
58127        END IF;
58128 
58129       --
58130       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
58131       --
58132       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
58133           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
58134       ELSE
58135           ---------------------------------------------------------------------------------------------------
58136           -- 4262811a Switch Sign
58137           ---------------------------------------------------------------------------------------------------
58138           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
58139           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58140                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58141           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58142                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58143           -- 5132302
58144           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
58145                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58146 
58147       END IF;
58148 
58149       -- 4955764
58150       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58151       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
58152 
58153 
58154       XLA_AE_LINES_PKG.ValidateCurrentLine;
58155       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58156 
58157       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58158                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
58159                ,p_balance_type_code => l_balance_type_code);
58160 
58161    END IF;
58162 
58163    -----------------------------------------------------------------------------------------
58164    -- 4262811 Multiperiod Accounting
58165    -----------------------------------------------------------------------------------------
58166      -- No MPA option is assigned.
58167 
58168 
58169 END IF;
58170 END IF;
58171 --
58172 
58173 --
58174 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58175    trace
58176       (p_msg      => 'END of AcctLineType_116'
58177       ,p_level    => C_LEVEL_PROCEDURE
58178       ,p_module   => l_log_module);
58179 END IF;
58180 --
58181 EXCEPTION
58182   WHEN xla_exceptions_pkg.application_exception THEN
58183       RAISE;
58184   WHEN OTHERS THEN
58185        xla_exceptions_pkg.raise_message
58186            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_116');
58187 END AcctLineType_116;
58188 --
58189 
58190 ---------------------------------------
58191 --
58192 -- PRIVATE FUNCTION
58196 PROCEDURE AcctLineType_117 (
58193 --         AcctLineType_117
58194 --
58195 ---------------------------------------
58197   p_application_id        IN NUMBER
58198  ,p_event_id              IN NUMBER
58199  ,p_calculate_acctd_flag  IN VARCHAR2
58200  ,p_calculate_g_l_flag    IN VARCHAR2
58201  ,p_actual_flag           IN OUT VARCHAR2
58202  ,p_balance_type_code     OUT VARCHAR2
58203  ,p_gain_or_loss_ref      OUT VARCHAR2
58204  
58205 --Invoice Distribution Description
58206  , p_source_1            IN VARCHAR2
58207 --Invoice Distribution Ledger Amount
58208  , p_source_21            IN NUMBER
58209 --Invoice Distribution Account
58210  , p_source_30            IN NUMBER
58211 --Invoice Distribution Type
58212  , p_source_33            IN VARCHAR2
58213  , p_source_33_meaning    IN VARCHAR2
58214 --Accounting Reversal Indicator
58215  , p_source_53            IN VARCHAR2
58216 --Distribution Link Type
58217  , p_source_55            IN VARCHAR2
58218 --Allocation to Main Distribution Identifier
58219  , p_source_57            IN NUMBER
58220 --Invoice Identifier
58221  , p_source_58            IN NUMBER
58222 --Invoice Distribution Identifier
58223  , p_source_64            IN NUMBER
58224 --Payables Encumbrance Upgrade Credit Account
58225  , p_source_65            IN NUMBER
58226 --Payables Encumbrance Upgrade Credit Amount
58227  , p_source_66            IN NUMBER
58228 --Invoice Currency Code
58229  , p_source_67            IN VARCHAR2
58230 --Payables Encumbrance Upgrade Credit Base Amount
58231  , p_source_68            IN NUMBER
58232 --Payables Encumbrance Upgrade Debit Account
58233  , p_source_69            IN NUMBER
58234 --Payables Encumbrance Upgrade Debit Amount
58235  , p_source_70            IN NUMBER
58236 --Payables Encumbrance Upgrade Debit Base Amount
58237  , p_source_71            IN NUMBER
58238 --Payables Encumbrance Upgrade Option
58239  , p_source_72            IN VARCHAR2
58240 --Invoice Distribution Amount
58241  , p_source_73            IN NUMBER
58242 --Deferred Accounting End Date
58243  , p_source_77            IN DATE
58244 --Deferred Accounting Option
58245  , p_source_78            IN VARCHAR2
58246 --Deferred Accounting Start Date
58247  , p_source_79            IN DATE
58248 --Override Accounted Amount Indicator
58249  , p_source_80            IN VARCHAR2
58250  , p_source_80_meaning    IN VARCHAR2
58251 --Invoice Supplier Identifier
58252  , p_source_81            IN NUMBER
58253 --Invoice Supplier Site Identifier
58254  , p_source_82            IN NUMBER
58255 --Third Party Type
58256  , p_source_83            IN VARCHAR2
58257 --Parent Reversal Identifier
58258  , p_source_84            IN NUMBER
58259 --Invoice Distribution Tax Line Identifier
58260  , p_source_86            IN NUMBER
58261 --Invoice Distribution Tax Distribution Identifier from Tax
58262  , p_source_87            IN NUMBER
58263 --Invoice Distribution Summary Tax Line Identifier
58264  , p_source_88            IN NUMBER
58265 --Payables Upgrade Credit Encumbrance Type Identifier
58266  , p_source_89            IN NUMBER
58267 --Payables Upgrade Debit Encumbrance Type Identifier
58268  , p_source_90            IN NUMBER
58269 --Business Flow Accounts Payable Application Identifier
58270  , p_source_91            IN NUMBER
58271 --Business Flow Invoice Distribution Type
58272  , p_source_92            IN VARCHAR2
58273 --Business Flow Invoice Entity Code
58274  , p_source_93            IN VARCHAR2
58275 --Business Flow Invoice Distribution Identifier
58276  , p_source_94            IN NUMBER
58277 --Business Flow Invoice Identifier
58278  , p_source_95            IN NUMBER
58279 --Invoice Exchange Date
58280  , p_source_143            IN DATE
58281 --Invoice Exchange Rate
58282  , p_source_144            IN NUMBER
58283 --Invoice Exchange Rate Type
58284  , p_source_145            IN VARCHAR2
58285 )
58286 IS
58287 
58288 l_component_type              VARCHAR2(80);
58289 l_component_code              VARCHAR2(30);
58290 l_component_type_code         VARCHAR2(1);
58291 l_component_appl_id           INTEGER;
58292 l_amb_context_code            VARCHAR2(30);
58293 l_entity_code                 VARCHAR2(30);
58294 l_event_class_code            VARCHAR2(30);
58295 l_ae_header_id                NUMBER;
58296 l_event_type_code             VARCHAR2(30);
58297 l_line_definition_code        VARCHAR2(30);
58298 l_line_definition_owner_code  VARCHAR2(1);
58299 --
58300 -- adr variables
58301 l_segment                     VARCHAR2(30);
58302 l_ccid                        NUMBER;
58303 l_adr_transaction_coa_id      NUMBER;
58304 l_adr_accounting_coa_id       NUMBER;
58305 l_adr_flexfield_segment_code  VARCHAR2(30);
58306 l_adr_flex_value_set_id       NUMBER;
58307 l_adr_value_type_code         VARCHAR2(30);
58308 l_adr_value_combination_id    NUMBER;
58309 l_adr_value_segment_code      VARCHAR2(30);
58310 
58311 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
58312 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
58313 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
58314 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
58315 
58316 -- 4262811 Variables ------------------------------------------------------------------------------------------
58317 l_entered_amt_idx             NUMBER;
58318 l_accted_amt_idx              NUMBER;
58319 l_acc_rev_flag                VARCHAR2(1);
58323 
58320 l_accrual_line_num            NUMBER;
58321 l_tmp_amt                     NUMBER;
58322 l_acc_rev_natural_side_code   VARCHAR2(1);
58324 l_num_entries                 NUMBER;
58325 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
58326 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
58327 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
58328 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
58329 l_recog_line_1                NUMBER;
58330 l_recog_line_2                NUMBER;
58331 
58332 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
58333 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
58334 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
58335 
58336 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
58337 
58338 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
58339 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
58340 
58341 ---------------------------------------------------------------------------------------------------------------
58342 
58343 
58344 --
58345 -- bulk performance
58346 --
58347 l_balance_type_code           VARCHAR2(1);
58348 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
58349 l_log_module                  VARCHAR2(240);
58350 
58351 --
58352 -- Upgrade strategy
58353 --
58354 l_actual_upg_option           VARCHAR2(1);
58355 l_enc_upg_option           VARCHAR2(1);
58356 
58357 --
58358 BEGIN
58359 --
58360 IF g_log_enabled THEN
58361       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_117';
58362 END IF;
58363 --
58364 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58365 
58366       trace
58367          (p_msg      => 'BEGIN of AcctLineType_117'
58368          ,p_level    => C_LEVEL_PROCEDURE
58369          ,p_module   => l_log_module);
58370 
58371 END IF;
58372 --
58373 l_component_type             := 'AMB_JLT';
58374 l_component_code             := 'AP_FREIGHT_EXPENSE_DM';
58375 l_component_type_code        := 'S';
58376 l_component_appl_id          :=  200;
58377 l_amb_context_code           := 'DEFAULT';
58378 l_entity_code                := 'AP_INVOICES';
58379 l_event_class_code           := 'DEBIT MEMOS';
58380 l_event_type_code            := 'DEBIT MEMOS_ALL';
58381 l_line_definition_owner_code := 'S';
58382 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
58383 --
58384 l_balance_type_code          := 'A';
58385 l_segment                     := NULL;
58386 l_ccid                        := NULL;
58387 l_adr_transaction_coa_id      := NULL;
58388 l_adr_accounting_coa_id       := NULL;
58389 l_adr_flexfield_segment_code  := NULL;
58390 l_adr_flex_value_set_id       := NULL;
58391 l_adr_value_type_code         := NULL;
58392 l_adr_value_combination_id    := NULL;
58393 l_adr_value_segment_code      := NULL;
58394 
58395 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
58396 l_bflow_class_code           := '';    -- 4219869 Business Flow
58397 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
58398 l_budgetary_control_flag     := 'N';
58399 
58400 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
58401 l_bflow_applied_to_amt       := NULL; -- 5132302
58402 l_entered_amt_idx            := NULL;          -- 4262811
58403 l_accted_amt_idx             := NULL;          -- 4262811
58404 l_acc_rev_flag               := NULL;          -- 4262811
58405 l_accrual_line_num           := NULL;          -- 4262811
58406 l_tmp_amt                    := NULL;          -- 4262811
58407 --
58408  
58409 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
58410     l_balance_type_code <> 'B' THEN
58411 IF NVL(p_source_33,'
58412 ') =  'FREIGHT'
58413  THEN 
58414 
58415    --
58416    XLA_AE_LINES_PKG.SetNewLine;
58417 
58418    p_balance_type_code          := l_balance_type_code;
58419    -- set the flag so later we will know whether the gain loss line needs to be created
58420    
58421    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
58422      p_actual_flag :='A';
58423    END IF;
58424 
58425    --
58426    -- bulk performance
58427    --
58428    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
58429                                       p_header_num   => 0); -- 4262811
58430    --
58431    -- set accounting line options
58432    --
58433    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
58434            p_natural_side_code          => 'D'
58435          , p_gain_or_loss_flag          => 'N'
58436          , p_gl_transfer_mode_code      => 'S'
58437          , p_acct_entry_type_code       => 'A'
58438          , p_switch_side_flag           => 'Y'
58439          , p_merge_duplicate_code       => 'A'
58440          );
58441    --
58442    l_acc_rev_natural_side_code := 'C';  -- 4262811
58443    -- 
58444    --
58445    -- set accounting line type info
58446    --
58447    xla_ae_lines_pkg.SetAcctLineType
58448       (p_component_type             => l_component_type
58449       ,p_event_type_code            => l_event_type_code
58450       ,p_line_definition_owner_code => l_line_definition_owner_code
58451       ,p_line_definition_code       => l_line_definition_code
58452       ,p_accounting_line_code       => l_component_code
58456       ,p_entity_code                => l_entity_code
58453       ,p_accounting_line_type_code  => l_component_type_code
58454       ,p_accounting_line_appl_id    => l_component_appl_id
58455       ,p_amb_context_code           => l_amb_context_code
58457       ,p_event_class_code           => l_event_class_code);
58458    --
58459    -- set accounting class
58460    --
58461    xla_ae_lines_pkg.SetAcctClass(
58462            p_accounting_class_code  => 'FREIGHT'
58463          , p_ae_header_id           => l_ae_header_id
58464          );
58465 
58466    --
58467    -- set rounding class
58468    --
58469    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
58470                       'FREIGHT';
58471 
58472    --
58473    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
58474    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
58475    --
58476    -- bulk performance
58477    --
58478    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
58479 
58480    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
58481       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
58482 
58483    -- 4955764
58484    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58485       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
58486 
58487    -- 4458381 Public Sector Enh
58488    
58489    --
58490    -- set accounting attributes for the line type
58491    --
58492    l_entered_amt_idx := 23;
58493    l_accted_amt_idx  := 28;
58494    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
58495    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
58496    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
58497    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
58498    l_rec_acct_attrs.array_num_value(2)  := 
58499 xla_ae_sources_pkg.GetSystemSourceNum(
58500    p_source_code           => 'XLA_EVENT_APPL_ID'
58501  , p_source_type_code      => 'Y'
58502  , p_source_application_id =>  602
58503 );
58504    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
58505    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
58506    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
58507    l_rec_acct_attrs.array_char_value(4)  := 
58508 xla_ae_sources_pkg.GetSystemSourceChar(
58509    p_source_code           => 'XLA_ENTITY_CODE'
58510  , p_source_type_code      => 'Y'
58511  , p_source_application_id =>  602
58512 );
58513    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
58514    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
58515    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
58516    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
58517    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
58518    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
58519    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
58520    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
58521    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
58522    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
58523    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
58524    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
58525    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
58526    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
58527    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
58528    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
58529    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
58530    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
58531    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
58532    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
58533    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
58534    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
58535    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
58536    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
58537    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
58538    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
58539    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
58540    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
58541    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
58542    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
58543    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
58544    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
58545    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
58546    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
58547    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
58548    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
58549    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
58550    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
58551    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
58552    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
58556    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
58553    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
58554    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
58555    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
58557    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
58558    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
58559    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
58560    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
58561    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
58562    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
58563    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
58564    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
58565    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
58566    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
58567    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
58568    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
58569    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
58570    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
58571    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
58572    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
58573    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
58574    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
58575    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
58576    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
58577    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
58578    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
58579    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
58580    l_rec_acct_attrs.array_num_value(38)  := p_source_86;
58581    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
58582    l_rec_acct_attrs.array_num_value(39)  := p_source_87;
58583    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
58584    l_rec_acct_attrs.array_num_value(40)  := p_source_88;
58585    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
58586    l_rec_acct_attrs.array_num_value(41)  := p_source_89;
58587    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
58588    l_rec_acct_attrs.array_num_value(42)  := p_source_90;
58589 
58590    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
58591    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
58592 
58593    ---------------------------------------------------------------------------------------------------------------
58594    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
58595    ---------------------------------------------------------------------------------------------------------------
58596    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
58597 
58598    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58599    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
58600 
58601    IF xla_accounting_cache_pkg.GetValueChar
58602          (p_source_code         => 'LEDGER_CATEGORY_CODE'
58603          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
58604    AND l_bflow_method_code = 'PRIOR_ENTRY'
58605 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
58606    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
58607          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
58608        )
58609    THEN
58610          xla_ae_lines_pkg.BflowUpgEntry
58611            (p_business_method_code    => l_bflow_method_code
58612            ,p_business_class_code     => l_bflow_class_code
58613            ,p_balance_type            => l_balance_type_code);
58614    ELSE
58615       NULL;
58616 -- No business flow processing for business flow method of NONE.
58617    END IF;
58618 
58619    --
58620    -- call analytical criteria
58621    --
58622    
58623    --
58624    -- call description
58625    --
58626    
58627 xla_ae_lines_pkg.SetLineDescription(
58628    p_ae_header_id => l_ae_header_id
58629   ,p_description  => Description_1 (
58630      p_application_id         => p_application_id
58631    , p_ae_header_id           => l_ae_header_id 
58632 , p_source_1 => p_source_1
58633    )
58634 );
58635 
58636 
58637    --
58638    -- call ADRs
58639    -- Bug 4922099
58640    --
58641    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58642         (NVL(l_actual_upg_option, 'N') = 'O') OR
58643         (NVL(l_enc_upg_option, 'N') = 'O')
58644       )
58645    THEN
58646    NULL;
58647    --
58648    --
58649    
58650   l_ccid := AcctDerRule_33(
58651            p_application_id           => p_application_id
58652          , p_ae_header_id             => l_ae_header_id 
58653 , p_source_30 => p_source_30
58654          , x_transaction_coa_id       => l_adr_transaction_coa_id
58655          , x_accounting_coa_id        => l_adr_accounting_coa_id
58656          , x_value_type_code          => l_adr_value_type_code
58657          , p_side                     => 'NA'
58658    );
58659 
58660    xla_ae_lines_pkg.set_ccid(
58661     p_code_combination_id          => l_ccid
58662   , p_value_type_code              => l_adr_value_type_code
58663   , p_transaction_coa_id           => l_adr_transaction_coa_id
58667   , p_component_type               => l_component_type
58664   , p_accounting_coa_id            => l_adr_accounting_coa_id
58665   , p_adr_code                     => 'AP_INVOICE_DIST'
58666   , p_adr_type_code                => 'S'
58668   , p_component_code               => l_component_code
58669   , p_component_type_code          => l_component_type_code
58670   , p_component_appl_id            => l_component_appl_id
58671   , p_amb_context_code             => l_amb_context_code
58672   , p_side                         => 'NA'
58673   );
58674 
58675 
58676    --
58677    --
58678    END IF;
58679    --
58680    -- Bug 4922099
58681    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
58682           (NVL(l_enc_upg_option, 'N') = 'O')
58683         ) AND
58684         (l_bflow_method_code = 'PRIOR_ENTRY')
58685       )
58686    THEN
58687       IF
58688       --
58689       1 = 2
58690       --
58691       THEN
58692       xla_accounting_err_pkg.build_message
58693                                     (p_appli_s_name            => 'XLA'
58694                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58695                                     ,p_token_1                 => 'LINE_NUMBER'
58696                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
58697                                     ,p_token_2                 => 'LINE_TYPE_NAME'
58698                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
58699                                                                              l_component_type
58700                                                                             ,l_component_code
58701                                                                             ,l_component_type_code
58702                                                                             ,l_component_appl_id
58703                                                                             ,l_amb_context_code
58704                                                                             ,l_entity_code
58705                                                                             ,l_event_class_code
58706                                                                            )
58707                                     ,p_token_3                 => 'OWNER'
58708                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
58709                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
58710                                                                           ,p_lookup_code    => l_component_type_code
58711                                                                          )
58712                                     ,p_token_4                 => 'PRODUCT_NAME'
58713                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
58714                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
58715                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
58716                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
58717                                     ,p_ae_header_id            =>  NULL
58718                                        );
58719 
58720         IF (C_LEVEL_ERROR>= g_log_level) THEN
58721                  trace
58722                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
58723                       ,p_level    => C_LEVEL_ERROR
58724                       ,p_module   => l_log_module);
58725         END IF;
58726       END IF;
58727    END IF;
58728    --
58729    --
58730    ------------------------------------------------------------------------------------------------
58731    -- 4219869 Business Flow
58732    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
58733    -- Prior Entry.  Currently, the following code is always generated.
58734    ------------------------------------------------------------------------------------------------
58735    XLA_AE_LINES_PKG.ValidateCurrentLine;
58736 
58737    ------------------------------------------------------------------------------------
58738    -- 4219869 Business Flow
58739    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
58740    ------------------------------------------------------------------------------------
58741    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58742 
58743    ----------------------------------------------------------------------------------
58744    -- 4219869 Business Flow
58745    -- Update journal entry status -- Need to generate this within IF <condition>
58746    ----------------------------------------------------------------------------------
58747    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58748          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
58749          ,p_balance_type_code => l_balance_type_code
58750          );
58751 
58752    -------------------------------------------------------------------------------------------
58753    -- 4262811 - Generate the Accrual Reversal lines
58754    -------------------------------------------------------------------------------------------
58755    BEGIN
58756       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
58757                               (g_array_event(p_event_id).array_value_num('header_index'));
58761    EXCEPTION
58758       IF l_acc_rev_flag IS NULL THEN
58759          l_acc_rev_flag := 'N';
58760       END IF;
58762       WHEN OTHERS THEN
58763          l_acc_rev_flag := 'N';
58764    END;
58765    --
58766    IF (l_acc_rev_flag = 'Y') THEN
58767 
58768        -- 4645092  ------------------------------------------------------------------------------
58769        -- To allow MPA report to determine if it should generate report process
58770        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
58771        ------------------------------------------------------------------------------------------
58772 
58773        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
58774        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
58775    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
58776    -- call ADRs
58777    -- Bug 4922099
58778    --
58779    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
58780         (NVL(l_actual_upg_option, 'N') = 'O') OR
58781         (NVL(l_enc_upg_option, 'N') = 'O')
58782       )
58783    THEN
58784    NULL;
58785    --
58786    --
58787    
58788   l_ccid := AcctDerRule_33(
58789            p_application_id           => p_application_id
58790          , p_ae_header_id             => l_ae_header_id 
58791 , p_source_30 => p_source_30
58792          , x_transaction_coa_id       => l_adr_transaction_coa_id
58793          , x_accounting_coa_id        => l_adr_accounting_coa_id
58794          , x_value_type_code          => l_adr_value_type_code
58795          , p_side                     => 'NA'
58796    );
58797 
58798    xla_ae_lines_pkg.set_ccid(
58799     p_code_combination_id          => l_ccid
58800   , p_value_type_code              => l_adr_value_type_code
58801   , p_transaction_coa_id           => l_adr_transaction_coa_id
58802   , p_accounting_coa_id            => l_adr_accounting_coa_id
58803   , p_adr_code                     => 'AP_INVOICE_DIST'
58804   , p_adr_type_code                => 'S'
58805   , p_component_type               => l_component_type
58806   , p_component_code               => l_component_code
58807   , p_component_type_code          => l_component_type_code
58808   , p_component_appl_id            => l_component_appl_id
58809   , p_amb_context_code             => l_amb_context_code
58810   , p_side                         => 'NA'
58811   );
58812 
58813 
58814    --
58815    --
58816    END IF;
58817 
58818        --
58819        -- Update the line information that should be overwritten
58820        --
58821        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
58822                                          p_header_num   => 1);
58823        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
58824 
58825        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
58826 
58827        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
58828           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
58829        END IF;
58830 
58831       --
58832       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
58833       --
58834       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
58835           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
58836       ELSE
58837           ---------------------------------------------------------------------------------------------------
58838           -- 4262811a Switch Sign
58839           ---------------------------------------------------------------------------------------------------
58840           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
58841           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58842                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58843           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
58844                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58845           -- 5132302
58846           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
58847                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
58848 
58849       END IF;
58850 
58851       -- 4955764
58852       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
58853       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
58854 
58855 
58856       XLA_AE_LINES_PKG.ValidateCurrentLine;
58857       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
58858 
58859       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
58860                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
58861                ,p_balance_type_code => l_balance_type_code);
58862 
58863    END IF;
58864 
58865    -----------------------------------------------------------------------------------------
58866    -- 4262811 Multiperiod Accounting
58867    -----------------------------------------------------------------------------------------
58868      -- No MPA option is assigned.
58869 
58870 
58871 END IF;
58875 --
58872 END IF;
58873 --
58874 
58876 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58877    trace
58878       (p_msg      => 'END of AcctLineType_117'
58879       ,p_level    => C_LEVEL_PROCEDURE
58880       ,p_module   => l_log_module);
58881 END IF;
58882 --
58883 EXCEPTION
58884   WHEN xla_exceptions_pkg.application_exception THEN
58885       RAISE;
58886   WHEN OTHERS THEN
58887        xla_exceptions_pkg.raise_message
58888            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_117');
58889 END AcctLineType_117;
58890 --
58891 
58892 ---------------------------------------
58893 --
58894 -- PRIVATE FUNCTION
58895 --         AcctLineType_118
58896 --
58897 ---------------------------------------
58898 PROCEDURE AcctLineType_118 (
58899   p_application_id        IN NUMBER
58900  ,p_event_id              IN NUMBER
58901  ,p_calculate_acctd_flag  IN VARCHAR2
58902  ,p_calculate_g_l_flag    IN VARCHAR2
58903  ,p_actual_flag           IN OUT VARCHAR2
58904  ,p_balance_type_code     OUT VARCHAR2
58905  ,p_gain_or_loss_ref      OUT VARCHAR2
58906  
58907 --Invoice Distribution Description
58908  , p_source_1            IN VARCHAR2
58909 --Invoice Distribution Ledger Amount
58910  , p_source_21            IN NUMBER
58911 --Invoice Distribution Account
58912  , p_source_30            IN NUMBER
58913 --Invoice Distribution Type
58914  , p_source_33            IN VARCHAR2
58915  , p_source_33_meaning    IN VARCHAR2
58916 --Accounting Reversal Indicator
58917  , p_source_53            IN VARCHAR2
58918 --Distribution Link Type
58919  , p_source_55            IN VARCHAR2
58920 --Allocation to Main Distribution Identifier
58921  , p_source_57            IN NUMBER
58922 --Invoice Identifier
58923  , p_source_58            IN NUMBER
58924 --Invoice Distribution Identifier
58925  , p_source_64            IN NUMBER
58926 --Payables Encumbrance Upgrade Credit Account
58927  , p_source_65            IN NUMBER
58928 --Payables Encumbrance Upgrade Credit Amount
58929  , p_source_66            IN NUMBER
58930 --Invoice Currency Code
58931  , p_source_67            IN VARCHAR2
58932 --Payables Encumbrance Upgrade Credit Base Amount
58933  , p_source_68            IN NUMBER
58934 --Payables Encumbrance Upgrade Debit Account
58935  , p_source_69            IN NUMBER
58936 --Payables Encumbrance Upgrade Debit Amount
58937  , p_source_70            IN NUMBER
58938 --Payables Encumbrance Upgrade Debit Base Amount
58939  , p_source_71            IN NUMBER
58940 --Payables Encumbrance Upgrade Option
58941  , p_source_72            IN VARCHAR2
58942 --Invoice Distribution Amount
58943  , p_source_73            IN NUMBER
58944 --Deferred Accounting End Date
58945  , p_source_77            IN DATE
58946 --Deferred Accounting Option
58947  , p_source_78            IN VARCHAR2
58948 --Deferred Accounting Start Date
58949  , p_source_79            IN DATE
58950 --Override Accounted Amount Indicator
58951  , p_source_80            IN VARCHAR2
58952  , p_source_80_meaning    IN VARCHAR2
58953 --Invoice Supplier Identifier
58954  , p_source_81            IN NUMBER
58955 --Invoice Supplier Site Identifier
58956  , p_source_82            IN NUMBER
58957 --Third Party Type
58958  , p_source_83            IN VARCHAR2
58959 --Parent Reversal Identifier
58960  , p_source_84            IN NUMBER
58961 --Invoice Distribution Statistical Amount
58962  , p_source_85            IN NUMBER
58963 --Invoice Distribution Tax Line Identifier
58964  , p_source_86            IN NUMBER
58965 --Invoice Distribution Tax Distribution Identifier from Tax
58966  , p_source_87            IN NUMBER
58967 --Invoice Distribution Summary Tax Line Identifier
58968  , p_source_88            IN NUMBER
58969 --Payables Upgrade Credit Encumbrance Type Identifier
58970  , p_source_89            IN NUMBER
58971 --Payables Upgrade Debit Encumbrance Type Identifier
58972  , p_source_90            IN NUMBER
58973 --Business Flow Accounts Payable Application Identifier
58974  , p_source_91            IN NUMBER
58975 --Business Flow Invoice Distribution Type
58976  , p_source_92            IN VARCHAR2
58977 --Business Flow Invoice Entity Code
58978  , p_source_93            IN VARCHAR2
58979 --Business Flow Invoice Distribution Identifier
58980  , p_source_94            IN NUMBER
58981 --Business Flow Invoice Identifier
58982  , p_source_95            IN NUMBER
58983 --Invoice Exchange Date
58984  , p_source_143            IN DATE
58985 --Invoice Exchange Rate
58986  , p_source_144            IN NUMBER
58987 --Invoice Exchange Rate Type
58988  , p_source_145            IN VARCHAR2
58989 )
58990 IS
58991 
58992 l_component_type              VARCHAR2(80);
58993 l_component_code              VARCHAR2(30);
58994 l_component_type_code         VARCHAR2(1);
58995 l_component_appl_id           INTEGER;
58996 l_amb_context_code            VARCHAR2(30);
58997 l_entity_code                 VARCHAR2(30);
58998 l_event_class_code            VARCHAR2(30);
58999 l_ae_header_id                NUMBER;
59000 l_event_type_code             VARCHAR2(30);
59001 l_line_definition_code        VARCHAR2(30);
59002 l_line_definition_owner_code  VARCHAR2(1);
59003 --
59004 -- adr variables
59005 l_segment                     VARCHAR2(30);
59006 l_ccid                        NUMBER;
59007 l_adr_transaction_coa_id      NUMBER;
59008 l_adr_accounting_coa_id       NUMBER;
59012 l_adr_value_combination_id    NUMBER;
59009 l_adr_flexfield_segment_code  VARCHAR2(30);
59010 l_adr_flex_value_set_id       NUMBER;
59011 l_adr_value_type_code         VARCHAR2(30);
59013 l_adr_value_segment_code      VARCHAR2(30);
59014 
59015 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
59016 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
59017 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
59018 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
59019 
59020 -- 4262811 Variables ------------------------------------------------------------------------------------------
59021 l_entered_amt_idx             NUMBER;
59022 l_accted_amt_idx              NUMBER;
59023 l_acc_rev_flag                VARCHAR2(1);
59024 l_accrual_line_num            NUMBER;
59025 l_tmp_amt                     NUMBER;
59026 l_acc_rev_natural_side_code   VARCHAR2(1);
59027 
59028 l_num_entries                 NUMBER;
59029 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
59030 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
59031 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
59032 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
59033 l_recog_line_1                NUMBER;
59034 l_recog_line_2                NUMBER;
59035 
59036 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
59037 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
59038 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
59039 
59040 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
59041 
59042 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
59043 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
59044 
59045 ---------------------------------------------------------------------------------------------------------------
59046 
59047 
59048 --
59049 -- bulk performance
59050 --
59051 l_balance_type_code           VARCHAR2(1);
59052 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
59053 l_log_module                  VARCHAR2(240);
59054 
59055 --
59056 -- Upgrade strategy
59057 --
59058 l_actual_upg_option           VARCHAR2(1);
59059 l_enc_upg_option           VARCHAR2(1);
59060 
59061 --
59062 BEGIN
59063 --
59064 IF g_log_enabled THEN
59065       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_118';
59066 END IF;
59067 --
59068 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59069 
59070       trace
59071          (p_msg      => 'BEGIN of AcctLineType_118'
59072          ,p_level    => C_LEVEL_PROCEDURE
59073          ,p_module   => l_log_module);
59074 
59075 END IF;
59076 --
59077 l_component_type             := 'AMB_JLT';
59078 l_component_code             := 'AP_FREIGHT_EXPENSE_INV';
59079 l_component_type_code        := 'S';
59080 l_component_appl_id          :=  200;
59081 l_amb_context_code           := 'DEFAULT';
59082 l_entity_code                := 'AP_INVOICES';
59083 l_event_class_code           := 'INVOICES';
59084 l_event_type_code            := 'INVOICES_ALL';
59085 l_line_definition_owner_code := 'S';
59086 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
59087 --
59088 l_balance_type_code          := 'A';
59089 l_segment                     := NULL;
59090 l_ccid                        := NULL;
59091 l_adr_transaction_coa_id      := NULL;
59092 l_adr_accounting_coa_id       := NULL;
59093 l_adr_flexfield_segment_code  := NULL;
59094 l_adr_flex_value_set_id       := NULL;
59095 l_adr_value_type_code         := NULL;
59096 l_adr_value_combination_id    := NULL;
59097 l_adr_value_segment_code      := NULL;
59098 
59099 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
59100 l_bflow_class_code           := '';    -- 4219869 Business Flow
59101 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
59102 l_budgetary_control_flag     := 'N';
59103 
59104 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
59105 l_bflow_applied_to_amt       := NULL; -- 5132302
59106 l_entered_amt_idx            := NULL;          -- 4262811
59107 l_accted_amt_idx             := NULL;          -- 4262811
59108 l_acc_rev_flag               := NULL;          -- 4262811
59109 l_accrual_line_num           := NULL;          -- 4262811
59110 l_tmp_amt                    := NULL;          -- 4262811
59111 --
59112  
59113 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
59114     l_balance_type_code <> 'B' THEN
59115 IF NVL(p_source_33,'
59116 ') =  'FREIGHT'
59117  THEN 
59118 
59119    --
59120    XLA_AE_LINES_PKG.SetNewLine;
59121 
59122    p_balance_type_code          := l_balance_type_code;
59123    -- set the flag so later we will know whether the gain loss line needs to be created
59124    
59125    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
59126      p_actual_flag :='A';
59127    END IF;
59128 
59129    --
59130    -- bulk performance
59131    --
59132    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
59133                                       p_header_num   => 0); -- 4262811
59134    --
59135    -- set accounting line options
59136    --
59137    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
59138            p_natural_side_code          => 'D'
59139          , p_gain_or_loss_flag          => 'N'
59143          , p_merge_duplicate_code       => 'A'
59140          , p_gl_transfer_mode_code      => 'S'
59141          , p_acct_entry_type_code       => 'A'
59142          , p_switch_side_flag           => 'Y'
59144          );
59145    --
59146    l_acc_rev_natural_side_code := 'C';  -- 4262811
59147    -- 
59148    --
59149    -- set accounting line type info
59150    --
59151    xla_ae_lines_pkg.SetAcctLineType
59152       (p_component_type             => l_component_type
59153       ,p_event_type_code            => l_event_type_code
59154       ,p_line_definition_owner_code => l_line_definition_owner_code
59155       ,p_line_definition_code       => l_line_definition_code
59156       ,p_accounting_line_code       => l_component_code
59157       ,p_accounting_line_type_code  => l_component_type_code
59158       ,p_accounting_line_appl_id    => l_component_appl_id
59159       ,p_amb_context_code           => l_amb_context_code
59160       ,p_entity_code                => l_entity_code
59161       ,p_event_class_code           => l_event_class_code);
59162    --
59163    -- set accounting class
59164    --
59165    xla_ae_lines_pkg.SetAcctClass(
59166            p_accounting_class_code  => 'FREIGHT'
59167          , p_ae_header_id           => l_ae_header_id
59168          );
59169 
59170    --
59171    -- set rounding class
59172    --
59173    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
59174                       'FREIGHT';
59175 
59176    --
59177    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
59178    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
59179    --
59180    -- bulk performance
59181    --
59182    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
59183 
59184    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
59185       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
59186 
59187    -- 4955764
59188    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59189       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
59190 
59191    -- 4458381 Public Sector Enh
59192    
59193    --
59194    -- set accounting attributes for the line type
59195    --
59196    l_entered_amt_idx := 24;
59197    l_accted_amt_idx  := 29;
59198    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
59199    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
59200    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
59201    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
59202    l_rec_acct_attrs.array_num_value(2)  := 
59203 xla_ae_sources_pkg.GetSystemSourceNum(
59204    p_source_code           => 'XLA_EVENT_APPL_ID'
59205  , p_source_type_code      => 'Y'
59206  , p_source_application_id =>  602
59207 );
59208    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
59209    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
59210    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
59211    l_rec_acct_attrs.array_char_value(4)  := 
59212 xla_ae_sources_pkg.GetSystemSourceChar(
59213    p_source_code           => 'XLA_ENTITY_CODE'
59214  , p_source_type_code      => 'Y'
59215  , p_source_application_id =>  602
59216 );
59217    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
59218    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
59219    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
59220    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
59221    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
59222    l_rec_acct_attrs.array_num_value(7)  := p_source_73;
59223    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
59224    l_rec_acct_attrs.array_num_value(8)  := p_source_91;
59225    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
59226    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
59227    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
59228    l_rec_acct_attrs.array_char_value(10)  := p_source_93;
59229    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
59230    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
59231    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
59232    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_95);
59233    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
59234    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_64);
59235    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
59236    l_rec_acct_attrs.array_char_value(14)  := p_source_55;
59237    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
59238    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
59239    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
59240    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
59241    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
59242    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
59243    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
59244    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
59245    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
59246    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
59250    l_rec_acct_attrs.array_char_value(21)  := p_source_67;
59247    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
59248    l_rec_acct_attrs.array_num_value(20)  := p_source_70;
59249    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
59251    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
59252    l_rec_acct_attrs.array_num_value(22)  := p_source_71;
59253    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
59254    l_rec_acct_attrs.array_char_value(23)  := p_source_72;
59255    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
59256    l_rec_acct_attrs.array_num_value(24)  := p_source_73;
59257    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
59258    l_rec_acct_attrs.array_char_value(25)  := p_source_67;
59259    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
59260    l_rec_acct_attrs.array_date_value(26)  := p_source_143;
59261    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
59262    l_rec_acct_attrs.array_num_value(27)  := p_source_144;
59263    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
59264    l_rec_acct_attrs.array_char_value(28)  := p_source_145;
59265    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
59266    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
59267    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
59268    l_rec_acct_attrs.array_date_value(30)  := p_source_77;
59269    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
59270    l_rec_acct_attrs.array_char_value(31)  := p_source_78;
59271    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
59272    l_rec_acct_attrs.array_date_value(32)  := p_source_79;
59273    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
59274    l_rec_acct_attrs.array_char_value(33)  := p_source_80;
59275    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
59276    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
59277    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
59278    l_rec_acct_attrs.array_num_value(35)  := p_source_82;
59279    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
59280    l_rec_acct_attrs.array_char_value(36)  := p_source_83;
59281    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
59282    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_84);
59283    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
59284    l_rec_acct_attrs.array_char_value(38)  := p_source_55;
59285    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
59286    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
59287    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
59288    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
59289    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
59290    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
59291    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
59292    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
59293    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
59294    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
59295    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
59296    l_rec_acct_attrs.array_num_value(44)  := p_source_90;
59297 
59298    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
59299    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
59300 
59301    ---------------------------------------------------------------------------------------------------------------
59302    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
59303    ---------------------------------------------------------------------------------------------------------------
59304    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
59305 
59306    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59307    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
59308 
59309    IF xla_accounting_cache_pkg.GetValueChar
59310          (p_source_code         => 'LEDGER_CATEGORY_CODE'
59311          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
59312    AND l_bflow_method_code = 'PRIOR_ENTRY'
59313 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
59314    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
59315          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
59316        )
59317    THEN
59318          xla_ae_lines_pkg.BflowUpgEntry
59319            (p_business_method_code    => l_bflow_method_code
59320            ,p_business_class_code     => l_bflow_class_code
59321            ,p_balance_type            => l_balance_type_code);
59322    ELSE
59323       NULL;
59324 -- No business flow processing for business flow method of NONE.
59325    END IF;
59326 
59327    --
59328    -- call analytical criteria
59329    --
59330    
59331    --
59332    -- call description
59333    --
59334    
59335 xla_ae_lines_pkg.SetLineDescription(
59336    p_ae_header_id => l_ae_header_id
59337   ,p_description  => Description_1 (
59338      p_application_id         => p_application_id
59339    , p_ae_header_id           => l_ae_header_id 
59340 , p_source_1 => p_source_1
59341    )
59342 );
59343 
59344 
59345    --
59346    -- call ADRs
59347    -- Bug 4922099
59348    --
59349    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59353    THEN
59350         (NVL(l_actual_upg_option, 'N') = 'O') OR
59351         (NVL(l_enc_upg_option, 'N') = 'O')
59352       )
59354    NULL;
59355    --
59356    --
59357    
59358   l_ccid := AcctDerRule_33(
59359            p_application_id           => p_application_id
59360          , p_ae_header_id             => l_ae_header_id 
59361 , p_source_30 => p_source_30
59362          , x_transaction_coa_id       => l_adr_transaction_coa_id
59363          , x_accounting_coa_id        => l_adr_accounting_coa_id
59364          , x_value_type_code          => l_adr_value_type_code
59365          , p_side                     => 'NA'
59366    );
59367 
59368    xla_ae_lines_pkg.set_ccid(
59369     p_code_combination_id          => l_ccid
59370   , p_value_type_code              => l_adr_value_type_code
59371   , p_transaction_coa_id           => l_adr_transaction_coa_id
59372   , p_accounting_coa_id            => l_adr_accounting_coa_id
59373   , p_adr_code                     => 'AP_INVOICE_DIST'
59374   , p_adr_type_code                => 'S'
59375   , p_component_type               => l_component_type
59376   , p_component_code               => l_component_code
59377   , p_component_type_code          => l_component_type_code
59378   , p_component_appl_id            => l_component_appl_id
59379   , p_amb_context_code             => l_amb_context_code
59380   , p_side                         => 'NA'
59381   );
59382 
59383 
59384    --
59385    --
59386    END IF;
59387    --
59388    -- Bug 4922099
59389    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
59390           (NVL(l_enc_upg_option, 'N') = 'O')
59391         ) AND
59392         (l_bflow_method_code = 'PRIOR_ENTRY')
59393       )
59394    THEN
59395       IF
59396       --
59397       1 = 2
59398       --
59399       THEN
59400       xla_accounting_err_pkg.build_message
59401                                     (p_appli_s_name            => 'XLA'
59402                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59403                                     ,p_token_1                 => 'LINE_NUMBER'
59404                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
59405                                     ,p_token_2                 => 'LINE_TYPE_NAME'
59406                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
59407                                                                              l_component_type
59408                                                                             ,l_component_code
59409                                                                             ,l_component_type_code
59410                                                                             ,l_component_appl_id
59411                                                                             ,l_amb_context_code
59412                                                                             ,l_entity_code
59413                                                                             ,l_event_class_code
59414                                                                            )
59415                                     ,p_token_3                 => 'OWNER'
59416                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
59417                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
59418                                                                           ,p_lookup_code    => l_component_type_code
59419                                                                          )
59420                                     ,p_token_4                 => 'PRODUCT_NAME'
59421                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
59422                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
59423                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
59424                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
59425                                     ,p_ae_header_id            =>  NULL
59426                                        );
59427 
59428         IF (C_LEVEL_ERROR>= g_log_level) THEN
59429                  trace
59430                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
59431                       ,p_level    => C_LEVEL_ERROR
59432                       ,p_module   => l_log_module);
59433         END IF;
59434       END IF;
59435    END IF;
59436    --
59437    --
59438    ------------------------------------------------------------------------------------------------
59439    -- 4219869 Business Flow
59440    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
59441    -- Prior Entry.  Currently, the following code is always generated.
59442    ------------------------------------------------------------------------------------------------
59443    XLA_AE_LINES_PKG.ValidateCurrentLine;
59444 
59445    ------------------------------------------------------------------------------------
59446    -- 4219869 Business Flow
59447    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
59448    ------------------------------------------------------------------------------------
59449    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59450 
59454    ----------------------------------------------------------------------------------
59451    ----------------------------------------------------------------------------------
59452    -- 4219869 Business Flow
59453    -- Update journal entry status -- Need to generate this within IF <condition>
59455    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59456          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
59457          ,p_balance_type_code => l_balance_type_code
59458          );
59459 
59460    -------------------------------------------------------------------------------------------
59461    -- 4262811 - Generate the Accrual Reversal lines
59462    -------------------------------------------------------------------------------------------
59463    BEGIN
59464       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
59465                               (g_array_event(p_event_id).array_value_num('header_index'));
59466       IF l_acc_rev_flag IS NULL THEN
59467          l_acc_rev_flag := 'N';
59468       END IF;
59469    EXCEPTION
59470       WHEN OTHERS THEN
59471          l_acc_rev_flag := 'N';
59472    END;
59473    --
59474    IF (l_acc_rev_flag = 'Y') THEN
59475 
59476        -- 4645092  ------------------------------------------------------------------------------
59477        -- To allow MPA report to determine if it should generate report process
59478        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
59479        ------------------------------------------------------------------------------------------
59480 
59481        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
59482        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
59483    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
59484    -- call ADRs
59485    -- Bug 4922099
59486    --
59487    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
59488         (NVL(l_actual_upg_option, 'N') = 'O') OR
59489         (NVL(l_enc_upg_option, 'N') = 'O')
59490       )
59491    THEN
59492    NULL;
59493    --
59494    --
59495    
59496   l_ccid := AcctDerRule_33(
59497            p_application_id           => p_application_id
59498          , p_ae_header_id             => l_ae_header_id 
59499 , p_source_30 => p_source_30
59500          , x_transaction_coa_id       => l_adr_transaction_coa_id
59501          , x_accounting_coa_id        => l_adr_accounting_coa_id
59502          , x_value_type_code          => l_adr_value_type_code
59503          , p_side                     => 'NA'
59504    );
59505 
59506    xla_ae_lines_pkg.set_ccid(
59507     p_code_combination_id          => l_ccid
59508   , p_value_type_code              => l_adr_value_type_code
59509   , p_transaction_coa_id           => l_adr_transaction_coa_id
59510   , p_accounting_coa_id            => l_adr_accounting_coa_id
59511   , p_adr_code                     => 'AP_INVOICE_DIST'
59512   , p_adr_type_code                => 'S'
59513   , p_component_type               => l_component_type
59514   , p_component_code               => l_component_code
59515   , p_component_type_code          => l_component_type_code
59516   , p_component_appl_id            => l_component_appl_id
59517   , p_amb_context_code             => l_amb_context_code
59518   , p_side                         => 'NA'
59519   );
59520 
59521 
59522    --
59523    --
59524    END IF;
59525 
59526        --
59527        -- Update the line information that should be overwritten
59528        --
59529        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
59530                                          p_header_num   => 1);
59531        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
59532 
59533        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
59534 
59535        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
59536           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
59537        END IF;
59538 
59539       --
59540       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
59541       --
59542       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
59543           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
59544       ELSE
59545           ---------------------------------------------------------------------------------------------------
59546           -- 4262811a Switch Sign
59547           ---------------------------------------------------------------------------------------------------
59548           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
59549           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59550                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59551           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
59552                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59553           -- 5132302
59554           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
59555                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
59556 
59560       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59557       END IF;
59558 
59559       -- 4955764
59561       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
59562 
59563 
59564       XLA_AE_LINES_PKG.ValidateCurrentLine;
59565       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
59566 
59567       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
59568                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
59569                ,p_balance_type_code => l_balance_type_code);
59570 
59571    END IF;
59572 
59573    -----------------------------------------------------------------------------------------
59574    -- 4262811 Multiperiod Accounting
59575    -----------------------------------------------------------------------------------------
59576      -- No MPA option is assigned.
59577 
59578 
59579 END IF;
59580 END IF;
59581 --
59582 
59583 --
59584 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59585    trace
59586       (p_msg      => 'END of AcctLineType_118'
59587       ,p_level    => C_LEVEL_PROCEDURE
59588       ,p_module   => l_log_module);
59589 END IF;
59590 --
59591 EXCEPTION
59592   WHEN xla_exceptions_pkg.application_exception THEN
59593       RAISE;
59594   WHEN OTHERS THEN
59595        xla_exceptions_pkg.raise_message
59596            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_118');
59597 END AcctLineType_118;
59598 --
59599 
59600 ---------------------------------------
59601 --
59602 -- PRIVATE FUNCTION
59603 --         AcctLineType_119
59604 --
59605 ---------------------------------------
59606 PROCEDURE AcctLineType_119 (
59607   p_application_id        IN NUMBER
59608  ,p_event_id              IN NUMBER
59609  ,p_calculate_acctd_flag  IN VARCHAR2
59610  ,p_calculate_g_l_flag    IN VARCHAR2
59611  ,p_actual_flag           IN OUT VARCHAR2
59612  ,p_balance_type_code     OUT VARCHAR2
59613  ,p_gain_or_loss_ref      OUT VARCHAR2
59614  
59615 --Invoice Distribution Description
59616  , p_source_1            IN VARCHAR2
59617 --Invoice Distribution Ledger Amount
59618  , p_source_21            IN NUMBER
59619 --Invoice Distribution Account
59620  , p_source_30            IN NUMBER
59621 --Invoice Distribution Type
59622  , p_source_33            IN VARCHAR2
59623  , p_source_33_meaning    IN VARCHAR2
59624 --Accounting Reversal Indicator
59625  , p_source_53            IN VARCHAR2
59626 --Distribution Link Type
59627  , p_source_55            IN VARCHAR2
59628 --Allocation to Main Distribution Identifier
59629  , p_source_57            IN NUMBER
59630 --Invoice Identifier
59631  , p_source_58            IN NUMBER
59632 --Invoice Distribution Identifier
59633  , p_source_64            IN NUMBER
59634 --Payables Encumbrance Upgrade Credit Account
59635  , p_source_65            IN NUMBER
59636 --Payables Encumbrance Upgrade Credit Amount
59637  , p_source_66            IN NUMBER
59638 --Invoice Currency Code
59639  , p_source_67            IN VARCHAR2
59640 --Payables Encumbrance Upgrade Credit Base Amount
59641  , p_source_68            IN NUMBER
59642 --Payables Encumbrance Upgrade Debit Account
59643  , p_source_69            IN NUMBER
59644 --Payables Encumbrance Upgrade Debit Amount
59645  , p_source_70            IN NUMBER
59646 --Payables Encumbrance Upgrade Debit Base Amount
59647  , p_source_71            IN NUMBER
59648 --Payables Encumbrance Upgrade Option
59649  , p_source_72            IN VARCHAR2
59650 --Invoice Distribution Amount
59651  , p_source_73            IN NUMBER
59652 --Deferred Accounting End Date
59653  , p_source_77            IN DATE
59654 --Deferred Accounting Option
59655  , p_source_78            IN VARCHAR2
59656 --Deferred Accounting Start Date
59657  , p_source_79            IN DATE
59658 --Override Accounted Amount Indicator
59659  , p_source_80            IN VARCHAR2
59660  , p_source_80_meaning    IN VARCHAR2
59661 --Invoice Supplier Identifier
59662  , p_source_81            IN NUMBER
59663 --Invoice Supplier Site Identifier
59664  , p_source_82            IN NUMBER
59665 --Third Party Type
59666  , p_source_83            IN VARCHAR2
59667 --Parent Reversal Identifier
59668  , p_source_84            IN NUMBER
59669 --Invoice Distribution Statistical Amount
59670  , p_source_85            IN NUMBER
59671 --Invoice Distribution Tax Line Identifier
59672  , p_source_86            IN NUMBER
59673 --Invoice Distribution Tax Distribution Identifier from Tax
59674  , p_source_87            IN NUMBER
59675 --Invoice Distribution Summary Tax Line Identifier
59676  , p_source_88            IN NUMBER
59677 --Payables Upgrade Credit Encumbrance Type Identifier
59678  , p_source_89            IN NUMBER
59679 --Payables Upgrade Debit Encumbrance Type Identifier
59680  , p_source_90            IN NUMBER
59681 --Business Flow Accounts Payable Application Identifier
59682  , p_source_91            IN NUMBER
59683 --Business Flow Invoice Distribution Type
59684  , p_source_92            IN VARCHAR2
59685 --Business Flow Invoice Entity Code
59686  , p_source_93            IN VARCHAR2
59687 --Business Flow Invoice Distribution Identifier
59688  , p_source_94            IN NUMBER
59689 --Business Flow Invoice Identifier
59690  , p_source_95            IN NUMBER
59691 --Invoice Exchange Date
59692  , p_source_143            IN DATE
59696  , p_source_145            IN VARCHAR2
59693 --Invoice Exchange Rate
59694  , p_source_144            IN NUMBER
59695 --Invoice Exchange Rate Type
59697 )
59698 IS
59699 
59700 l_component_type              VARCHAR2(80);
59701 l_component_code              VARCHAR2(30);
59702 l_component_type_code         VARCHAR2(1);
59703 l_component_appl_id           INTEGER;
59704 l_amb_context_code            VARCHAR2(30);
59705 l_entity_code                 VARCHAR2(30);
59706 l_event_class_code            VARCHAR2(30);
59707 l_ae_header_id                NUMBER;
59708 l_event_type_code             VARCHAR2(30);
59709 l_line_definition_code        VARCHAR2(30);
59710 l_line_definition_owner_code  VARCHAR2(1);
59711 --
59712 -- adr variables
59713 l_segment                     VARCHAR2(30);
59714 l_ccid                        NUMBER;
59715 l_adr_transaction_coa_id      NUMBER;
59716 l_adr_accounting_coa_id       NUMBER;
59717 l_adr_flexfield_segment_code  VARCHAR2(30);
59718 l_adr_flex_value_set_id       NUMBER;
59719 l_adr_value_type_code         VARCHAR2(30);
59720 l_adr_value_combination_id    NUMBER;
59721 l_adr_value_segment_code      VARCHAR2(30);
59722 
59723 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
59724 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
59725 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
59726 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
59727 
59728 -- 4262811 Variables ------------------------------------------------------------------------------------------
59729 l_entered_amt_idx             NUMBER;
59730 l_accted_amt_idx              NUMBER;
59731 l_acc_rev_flag                VARCHAR2(1);
59732 l_accrual_line_num            NUMBER;
59733 l_tmp_amt                     NUMBER;
59734 l_acc_rev_natural_side_code   VARCHAR2(1);
59735 
59736 l_num_entries                 NUMBER;
59737 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
59738 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
59739 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
59740 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
59741 l_recog_line_1                NUMBER;
59742 l_recog_line_2                NUMBER;
59743 
59744 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
59745 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
59746 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
59747 
59748 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
59749 
59750 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
59751 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
59752 
59753 ---------------------------------------------------------------------------------------------------------------
59754 
59755 
59756 --
59757 -- bulk performance
59758 --
59759 l_balance_type_code           VARCHAR2(1);
59760 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
59761 l_log_module                  VARCHAR2(240);
59762 
59763 --
59764 -- Upgrade strategy
59765 --
59766 l_actual_upg_option           VARCHAR2(1);
59767 l_enc_upg_option           VARCHAR2(1);
59768 
59769 --
59770 BEGIN
59771 --
59772 IF g_log_enabled THEN
59773       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_119';
59774 END IF;
59775 --
59776 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59777 
59778       trace
59779          (p_msg      => 'BEGIN of AcctLineType_119'
59780          ,p_level    => C_LEVEL_PROCEDURE
59781          ,p_module   => l_log_module);
59782 
59783 END IF;
59784 --
59785 l_component_type             := 'AMB_JLT';
59786 l_component_code             := 'AP_FREIGHT_EXPENSE_PREPAY';
59787 l_component_type_code        := 'S';
59788 l_component_appl_id          :=  200;
59789 l_amb_context_code           := 'DEFAULT';
59790 l_entity_code                := 'AP_INVOICES';
59791 l_event_class_code           := 'PREPAYMENTS';
59792 l_event_type_code            := 'PREPAYMENTS_ALL';
59793 l_line_definition_owner_code := 'S';
59794 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
59795 --
59796 l_balance_type_code          := 'A';
59797 l_segment                     := NULL;
59798 l_ccid                        := NULL;
59799 l_adr_transaction_coa_id      := NULL;
59800 l_adr_accounting_coa_id       := NULL;
59801 l_adr_flexfield_segment_code  := NULL;
59802 l_adr_flex_value_set_id       := NULL;
59803 l_adr_value_type_code         := NULL;
59804 l_adr_value_combination_id    := NULL;
59805 l_adr_value_segment_code      := NULL;
59806 
59807 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
59808 l_bflow_class_code           := '';    -- 4219869 Business Flow
59809 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
59810 l_budgetary_control_flag     := 'N';
59811 
59812 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
59813 l_bflow_applied_to_amt       := NULL; -- 5132302
59814 l_entered_amt_idx            := NULL;          -- 4262811
59815 l_accted_amt_idx             := NULL;          -- 4262811
59816 l_acc_rev_flag               := NULL;          -- 4262811
59817 l_accrual_line_num           := NULL;          -- 4262811
59818 l_tmp_amt                    := NULL;          -- 4262811
59819 --
59820  
59821 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
59825  THEN 
59822     l_balance_type_code <> 'B' THEN
59823 IF NVL(p_source_33,'
59824 ') =  'FREIGHT'
59826 
59827    --
59828    XLA_AE_LINES_PKG.SetNewLine;
59829 
59830    p_balance_type_code          := l_balance_type_code;
59831    -- set the flag so later we will know whether the gain loss line needs to be created
59832    
59833    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
59834      p_actual_flag :='A';
59835    END IF;
59836 
59837    --
59838    -- bulk performance
59839    --
59840    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
59841                                       p_header_num   => 0); -- 4262811
59842    --
59843    -- set accounting line options
59844    --
59845    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
59846            p_natural_side_code          => 'D'
59847          , p_gain_or_loss_flag          => 'N'
59848          , p_gl_transfer_mode_code      => 'S'
59849          , p_acct_entry_type_code       => 'A'
59850          , p_switch_side_flag           => 'Y'
59851          , p_merge_duplicate_code       => 'A'
59852          );
59853    --
59854    l_acc_rev_natural_side_code := 'C';  -- 4262811
59855    -- 
59856    --
59857    -- set accounting line type info
59858    --
59859    xla_ae_lines_pkg.SetAcctLineType
59860       (p_component_type             => l_component_type
59861       ,p_event_type_code            => l_event_type_code
59862       ,p_line_definition_owner_code => l_line_definition_owner_code
59863       ,p_line_definition_code       => l_line_definition_code
59864       ,p_accounting_line_code       => l_component_code
59865       ,p_accounting_line_type_code  => l_component_type_code
59866       ,p_accounting_line_appl_id    => l_component_appl_id
59867       ,p_amb_context_code           => l_amb_context_code
59868       ,p_entity_code                => l_entity_code
59869       ,p_event_class_code           => l_event_class_code);
59870    --
59871    -- set accounting class
59872    --
59873    xla_ae_lines_pkg.SetAcctClass(
59874            p_accounting_class_code  => 'FREIGHT'
59875          , p_ae_header_id           => l_ae_header_id
59876          );
59877 
59878    --
59879    -- set rounding class
59880    --
59881    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
59882                       'FREIGHT';
59883 
59884    --
59885    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
59886    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
59887    --
59888    -- bulk performance
59889    --
59890    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
59891 
59892    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
59893       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
59894 
59895    -- 4955764
59896    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
59897       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
59898 
59899    -- 4458381 Public Sector Enh
59900    
59901    --
59902    -- set accounting attributes for the line type
59903    --
59904    l_entered_amt_idx := 23;
59905    l_accted_amt_idx  := 28;
59906    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
59907    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
59908    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
59909    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
59910    l_rec_acct_attrs.array_num_value(2)  := 
59911 xla_ae_sources_pkg.GetSystemSourceNum(
59912    p_source_code           => 'XLA_EVENT_APPL_ID'
59913  , p_source_type_code      => 'Y'
59914  , p_source_application_id =>  602
59915 );
59916    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
59917    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
59918    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
59919    l_rec_acct_attrs.array_char_value(4)  := 
59920 xla_ae_sources_pkg.GetSystemSourceChar(
59921    p_source_code           => 'XLA_ENTITY_CODE'
59922  , p_source_type_code      => 'Y'
59923  , p_source_application_id =>  602
59924 );
59925    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
59926    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
59927    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
59928    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
59929    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
59930    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
59931    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
59932    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
59933    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
59934    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
59935    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
59936    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
59937    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
59938    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
59939    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
59940    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
59944    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
59941    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
59942    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
59943    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
59945    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
59946    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
59947    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
59948    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
59949    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
59950    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
59951    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
59952    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
59953    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
59954    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
59955    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
59956    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
59957    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
59958    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
59959    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
59960    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
59961    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
59962    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
59963    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
59964    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
59965    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
59966    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
59967    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
59968    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
59969    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
59970    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
59971    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
59972    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
59973    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
59974    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
59975    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
59976    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
59977    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
59978    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
59979    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
59980    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
59981    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
59982    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
59983    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
59984    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
59985    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
59986    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
59987    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
59988    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
59989    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
59990    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
59991    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
59992    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
59993    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
59994    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
59995    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
59996    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
59997    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
59998    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
59999    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
60000    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
60001    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
60002    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
60003 
60004    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
60005    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
60006 
60007    ---------------------------------------------------------------------------------------------------------------
60008    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
60009    ---------------------------------------------------------------------------------------------------------------
60010    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
60011 
60012    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60013    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60014 
60015    IF xla_accounting_cache_pkg.GetValueChar
60016          (p_source_code         => 'LEDGER_CATEGORY_CODE'
60017          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
60018    AND l_bflow_method_code = 'PRIOR_ENTRY'
60019 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
60020    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
60021          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
60022        )
60023    THEN
60024          xla_ae_lines_pkg.BflowUpgEntry
60025            (p_business_method_code    => l_bflow_method_code
60026            ,p_business_class_code     => l_bflow_class_code
60030 -- No business flow processing for business flow method of NONE.
60027            ,p_balance_type            => l_balance_type_code);
60028    ELSE
60029       NULL;
60031    END IF;
60032 
60033    --
60034    -- call analytical criteria
60035    --
60036    
60037    --
60038    -- call description
60039    --
60040    
60041 xla_ae_lines_pkg.SetLineDescription(
60042    p_ae_header_id => l_ae_header_id
60043   ,p_description  => Description_1 (
60044      p_application_id         => p_application_id
60045    , p_ae_header_id           => l_ae_header_id 
60046 , p_source_1 => p_source_1
60047    )
60048 );
60049 
60050 
60051    --
60052    -- call ADRs
60053    -- Bug 4922099
60054    --
60055    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60056         (NVL(l_actual_upg_option, 'N') = 'O') OR
60057         (NVL(l_enc_upg_option, 'N') = 'O')
60058       )
60059    THEN
60060    NULL;
60061    --
60062    --
60063    
60064   l_ccid := AcctDerRule_33(
60065            p_application_id           => p_application_id
60066          , p_ae_header_id             => l_ae_header_id 
60067 , p_source_30 => p_source_30
60068          , x_transaction_coa_id       => l_adr_transaction_coa_id
60069          , x_accounting_coa_id        => l_adr_accounting_coa_id
60070          , x_value_type_code          => l_adr_value_type_code
60071          , p_side                     => 'NA'
60072    );
60073 
60074    xla_ae_lines_pkg.set_ccid(
60075     p_code_combination_id          => l_ccid
60076   , p_value_type_code              => l_adr_value_type_code
60077   , p_transaction_coa_id           => l_adr_transaction_coa_id
60078   , p_accounting_coa_id            => l_adr_accounting_coa_id
60079   , p_adr_code                     => 'AP_INVOICE_DIST'
60080   , p_adr_type_code                => 'S'
60081   , p_component_type               => l_component_type
60082   , p_component_code               => l_component_code
60083   , p_component_type_code          => l_component_type_code
60084   , p_component_appl_id            => l_component_appl_id
60085   , p_amb_context_code             => l_amb_context_code
60086   , p_side                         => 'NA'
60087   );
60088 
60089 
60090    --
60091    --
60092    END IF;
60093    --
60094    -- Bug 4922099
60095    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
60096           (NVL(l_enc_upg_option, 'N') = 'O')
60097         ) AND
60098         (l_bflow_method_code = 'PRIOR_ENTRY')
60099       )
60100    THEN
60101       IF
60102       --
60103       1 = 2
60104       --
60105       THEN
60106       xla_accounting_err_pkg.build_message
60107                                     (p_appli_s_name            => 'XLA'
60108                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60109                                     ,p_token_1                 => 'LINE_NUMBER'
60110                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
60111                                     ,p_token_2                 => 'LINE_TYPE_NAME'
60112                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
60113                                                                              l_component_type
60114                                                                             ,l_component_code
60115                                                                             ,l_component_type_code
60116                                                                             ,l_component_appl_id
60117                                                                             ,l_amb_context_code
60118                                                                             ,l_entity_code
60119                                                                             ,l_event_class_code
60120                                                                            )
60121                                     ,p_token_3                 => 'OWNER'
60122                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
60123                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
60124                                                                           ,p_lookup_code    => l_component_type_code
60125                                                                          )
60126                                     ,p_token_4                 => 'PRODUCT_NAME'
60127                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
60128                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
60129                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
60130                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
60131                                     ,p_ae_header_id            =>  NULL
60132                                        );
60133 
60134         IF (C_LEVEL_ERROR>= g_log_level) THEN
60135                  trace
60136                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60137                       ,p_level    => C_LEVEL_ERROR
60138                       ,p_module   => l_log_module);
60139         END IF;
60140       END IF;
60144    ------------------------------------------------------------------------------------------------
60141    END IF;
60142    --
60143    --
60145    -- 4219869 Business Flow
60146    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
60147    -- Prior Entry.  Currently, the following code is always generated.
60148    ------------------------------------------------------------------------------------------------
60149    XLA_AE_LINES_PKG.ValidateCurrentLine;
60150 
60151    ------------------------------------------------------------------------------------
60152    -- 4219869 Business Flow
60153    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
60154    ------------------------------------------------------------------------------------
60155    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60156 
60157    ----------------------------------------------------------------------------------
60158    -- 4219869 Business Flow
60159    -- Update journal entry status -- Need to generate this within IF <condition>
60160    ----------------------------------------------------------------------------------
60161    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60162          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
60163          ,p_balance_type_code => l_balance_type_code
60164          );
60165 
60166    -------------------------------------------------------------------------------------------
60167    -- 4262811 - Generate the Accrual Reversal lines
60168    -------------------------------------------------------------------------------------------
60169    BEGIN
60170       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
60171                               (g_array_event(p_event_id).array_value_num('header_index'));
60172       IF l_acc_rev_flag IS NULL THEN
60173          l_acc_rev_flag := 'N';
60174       END IF;
60175    EXCEPTION
60176       WHEN OTHERS THEN
60177          l_acc_rev_flag := 'N';
60178    END;
60179    --
60180    IF (l_acc_rev_flag = 'Y') THEN
60181 
60182        -- 4645092  ------------------------------------------------------------------------------
60183        -- To allow MPA report to determine if it should generate report process
60184        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
60185        ------------------------------------------------------------------------------------------
60186 
60187        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
60188        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
60189    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
60190    -- call ADRs
60191    -- Bug 4922099
60192    --
60193    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60194         (NVL(l_actual_upg_option, 'N') = 'O') OR
60195         (NVL(l_enc_upg_option, 'N') = 'O')
60196       )
60197    THEN
60198    NULL;
60199    --
60200    --
60201    
60202   l_ccid := AcctDerRule_33(
60203            p_application_id           => p_application_id
60204          , p_ae_header_id             => l_ae_header_id 
60205 , p_source_30 => p_source_30
60206          , x_transaction_coa_id       => l_adr_transaction_coa_id
60207          , x_accounting_coa_id        => l_adr_accounting_coa_id
60208          , x_value_type_code          => l_adr_value_type_code
60209          , p_side                     => 'NA'
60210    );
60211 
60212    xla_ae_lines_pkg.set_ccid(
60213     p_code_combination_id          => l_ccid
60214   , p_value_type_code              => l_adr_value_type_code
60215   , p_transaction_coa_id           => l_adr_transaction_coa_id
60216   , p_accounting_coa_id            => l_adr_accounting_coa_id
60217   , p_adr_code                     => 'AP_INVOICE_DIST'
60218   , p_adr_type_code                => 'S'
60219   , p_component_type               => l_component_type
60220   , p_component_code               => l_component_code
60221   , p_component_type_code          => l_component_type_code
60222   , p_component_appl_id            => l_component_appl_id
60223   , p_amb_context_code             => l_amb_context_code
60224   , p_side                         => 'NA'
60225   );
60226 
60227 
60228    --
60229    --
60230    END IF;
60231 
60232        --
60233        -- Update the line information that should be overwritten
60234        --
60235        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
60236                                          p_header_num   => 1);
60237        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
60238 
60239        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
60240 
60241        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
60242           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
60243        END IF;
60244 
60245       --
60246       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
60247       --
60248       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
60249           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
60250       ELSE
60251           ---------------------------------------------------------------------------------------------------
60252           -- 4262811a Switch Sign
60256                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60253           ---------------------------------------------------------------------------------------------------
60254           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
60255           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60257           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
60258                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60259           -- 5132302
60260           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
60261                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
60262 
60263       END IF;
60264 
60265       -- 4955764
60266       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60267       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
60268 
60269 
60270       XLA_AE_LINES_PKG.ValidateCurrentLine;
60271       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60272 
60273       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60274                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
60275                ,p_balance_type_code => l_balance_type_code);
60276 
60277    END IF;
60278 
60279    -----------------------------------------------------------------------------------------
60280    -- 4262811 Multiperiod Accounting
60281    -----------------------------------------------------------------------------------------
60282      -- No MPA option is assigned.
60283 
60284 
60285 END IF;
60286 END IF;
60287 --
60288 
60289 --
60290 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60291    trace
60292       (p_msg      => 'END of AcctLineType_119'
60293       ,p_level    => C_LEVEL_PROCEDURE
60294       ,p_module   => l_log_module);
60295 END IF;
60296 --
60297 EXCEPTION
60298   WHEN xla_exceptions_pkg.application_exception THEN
60299       RAISE;
60300   WHEN OTHERS THEN
60301        xla_exceptions_pkg.raise_message
60302            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_119');
60303 END AcctLineType_119;
60304 --
60305 
60306 ---------------------------------------
60307 --
60308 -- PRIVATE FUNCTION
60309 --         AcctLineType_120
60310 --
60311 ---------------------------------------
60312 PROCEDURE AcctLineType_120 (
60313   p_application_id        IN NUMBER
60314  ,p_event_id              IN NUMBER
60315  ,p_calculate_acctd_flag  IN VARCHAR2
60316  ,p_calculate_g_l_flag    IN VARCHAR2
60317  ,p_actual_flag           IN OUT VARCHAR2
60318  ,p_balance_type_code     OUT VARCHAR2
60319  ,p_gain_or_loss_ref      OUT VARCHAR2
60320  
60321 --Payment Currency Code
60322  , p_source_13            IN VARCHAR2
60323 --Automatic Offsets Value
60324  , p_source_15            IN VARCHAR2
60325  , p_source_15_meaning    IN VARCHAR2
60326 --Bank Future Dated Payment Account
60327  , p_source_24            IN NUMBER
60328 --Future Dated Payment Account Source Option
60329  , p_source_25            IN VARCHAR2
60330  , p_source_25_meaning    IN VARCHAR2
60331 --Financials Options Future Dated Payment Account
60332  , p_source_26            IN NUMBER
60333 --Supplier Site Future Dated Payment Account
60334  , p_source_27            IN NUMBER
60335 --Invoice Distribution Account
60336  , p_source_30            IN NUMBER
60337 --Accounting Reversal Indicator
60338  , p_source_53            IN VARCHAR2
60339 --Distribution Link Type
60340  , p_source_55            IN VARCHAR2
60341 --Override Accounted Amount Indicator
60342  , p_source_80            IN VARCHAR2
60343  , p_source_80_meaning    IN VARCHAR2
60344 --Third Party Type
60345  , p_source_83            IN VARCHAR2
60346 --Invoice Distribution Tax Line Identifier
60347  , p_source_86            IN NUMBER
60348 --Invoice Distribution Tax Distribution Identifier from Tax
60349  , p_source_87            IN NUMBER
60350 --Invoice Distribution Summary Tax Line Identifier
60351  , p_source_88            IN NUMBER
60352 --Business Flow Accounts Payable Application Identifier
60353  , p_source_91            IN NUMBER
60354 --Business Flow Invoice Distribution Type
60355  , p_source_92            IN VARCHAR2
60356 --Business Flow Invoice Entity Code
60357  , p_source_93            IN VARCHAR2
60358 --Business Flow Invoice Distribution Identifier
60359  , p_source_94            IN NUMBER
60360 --Business Flow Invoice Identifier
60361  , p_source_95            IN NUMBER
60362 --When to Account for Payment Option
60363  , p_source_97            IN VARCHAR2
60364 --Payment Distribution Type
60365  , p_source_98            IN VARCHAR2
60366  , p_source_98_meaning    IN VARCHAR2
60367 --Payment Distribution Amount
60368  , p_source_99            IN NUMBER
60369 --Payment Distribution Identifier
60370  , p_source_104            IN NUMBER
60371 --Payment Supplier Identifier
60372  , p_source_110            IN NUMBER
60373 --Payment Supplier Site Identifier
60374  , p_source_111            IN NUMBER
60375 --Payment Distribution Reversed Identifier
60376  , p_source_112            IN NUMBER
60377 --Payment Maturity Date
60378  , p_source_114            IN DATE
60379 --Payment Distribution (Payment Rate) Ledger Amount
60383 --Payment Exchange Rate
60380  , p_source_115            IN NUMBER
60381 --Payment Exchange Date
60382  , p_source_117            IN DATE
60384  , p_source_118            IN NUMBER
60385 --Payment Exchange Rate Type
60386  , p_source_119            IN VARCHAR2
60387 --Payment Processing Type
60388  , p_source_123            IN VARCHAR2
60389 --Invoice Distribution Amount of the Payment Distribution
60390  , p_source_124            IN NUMBER
60391 )
60392 IS
60393 
60394 l_component_type              VARCHAR2(80);
60395 l_component_code              VARCHAR2(30);
60396 l_component_type_code         VARCHAR2(1);
60397 l_component_appl_id           INTEGER;
60398 l_amb_context_code            VARCHAR2(30);
60399 l_entity_code                 VARCHAR2(30);
60400 l_event_class_code            VARCHAR2(30);
60401 l_ae_header_id                NUMBER;
60402 l_event_type_code             VARCHAR2(30);
60403 l_line_definition_code        VARCHAR2(30);
60404 l_line_definition_owner_code  VARCHAR2(1);
60405 --
60406 -- adr variables
60407 l_segment                     VARCHAR2(30);
60408 l_ccid                        NUMBER;
60409 l_adr_transaction_coa_id      NUMBER;
60410 l_adr_accounting_coa_id       NUMBER;
60411 l_adr_flexfield_segment_code  VARCHAR2(30);
60412 l_adr_flex_value_set_id       NUMBER;
60413 l_adr_value_type_code         VARCHAR2(30);
60414 l_adr_value_combination_id    NUMBER;
60415 l_adr_value_segment_code      VARCHAR2(30);
60416 
60417 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
60418 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
60419 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
60420 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
60421 
60422 -- 4262811 Variables ------------------------------------------------------------------------------------------
60423 l_entered_amt_idx             NUMBER;
60424 l_accted_amt_idx              NUMBER;
60425 l_acc_rev_flag                VARCHAR2(1);
60426 l_accrual_line_num            NUMBER;
60427 l_tmp_amt                     NUMBER;
60428 l_acc_rev_natural_side_code   VARCHAR2(1);
60429 
60430 l_num_entries                 NUMBER;
60431 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
60432 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
60433 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
60434 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
60435 l_recog_line_1                NUMBER;
60436 l_recog_line_2                NUMBER;
60437 
60438 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
60439 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
60440 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
60441 
60442 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
60443 
60444 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
60445 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
60446 
60447 ---------------------------------------------------------------------------------------------------------------
60448 
60449 
60450 --
60451 -- bulk performance
60452 --
60453 l_balance_type_code           VARCHAR2(1);
60454 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
60455 l_log_module                  VARCHAR2(240);
60456 
60457 --
60458 -- Upgrade strategy
60459 --
60460 l_actual_upg_option           VARCHAR2(1);
60461 l_enc_upg_option           VARCHAR2(1);
60462 
60463 --
60464 BEGIN
60465 --
60466 IF g_log_enabled THEN
60467       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_120';
60468 END IF;
60469 --
60470 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60471 
60472       trace
60473          (p_msg      => 'BEGIN of AcctLineType_120'
60474          ,p_level    => C_LEVEL_PROCEDURE
60475          ,p_module   => l_log_module);
60476 
60477 END IF;
60478 --
60479 l_component_type             := 'AMB_JLT';
60480 l_component_code             := 'AP_FUTURE_DATED_PMT';
60481 l_component_type_code        := 'S';
60482 l_component_appl_id          :=  200;
60483 l_amb_context_code           := 'DEFAULT';
60484 l_entity_code                := 'AP_PAYMENTS';
60485 l_event_class_code           := 'PAYMENTS';
60486 l_event_type_code            := 'PAYMENTS_ALL';
60487 l_line_definition_owner_code := 'S';
60488 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
60489 --
60490 l_balance_type_code          := 'A';
60491 l_segment                     := NULL;
60492 l_ccid                        := NULL;
60493 l_adr_transaction_coa_id      := NULL;
60494 l_adr_accounting_coa_id       := NULL;
60495 l_adr_flexfield_segment_code  := NULL;
60496 l_adr_flex_value_set_id       := NULL;
60497 l_adr_value_type_code         := NULL;
60498 l_adr_value_combination_id    := NULL;
60499 l_adr_value_segment_code      := NULL;
60500 
60501 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
60502 l_bflow_class_code           := 'AP_FUTURE_DTD_PMT';    -- 4219869 Business Flow
60503 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
60504 l_budgetary_control_flag     := 'N';
60505 
60506 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
60507 l_bflow_applied_to_amt       := NULL; -- 5132302
60508 l_entered_amt_idx            := NULL;          -- 4262811
60509 l_accted_amt_idx             := NULL;          -- 4262811
60513 --
60510 l_acc_rev_flag               := NULL;          -- 4262811
60511 l_accrual_line_num           := NULL;          -- 4262811
60512 l_tmp_amt                    := NULL;          -- 4262811
60514  
60515 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
60516     l_balance_type_code <> 'B' THEN
60517 IF NVL(p_source_97,'
60518 ') <>  'CLEAR_CLEAR' AND 
60519 NVL(p_source_97,'
60520 ') <>  'ALWAYS_CLEAR' AND 
60521 NVL(p_source_98,'
60522 ') =  'CASH' AND 
60523 p_source_114 IS NOT NULL AND 
60524 NVL(p_source_123,'
60525 ') <>  'PAYMENTCARD'
60526  THEN 
60527 
60528    --
60529    XLA_AE_LINES_PKG.SetNewLine;
60530 
60531    p_balance_type_code          := l_balance_type_code;
60532    -- set the flag so later we will know whether the gain loss line needs to be created
60533    
60534    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
60535      p_actual_flag :='A';
60536    END IF;
60537 
60538    --
60539    -- bulk performance
60540    --
60541    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
60542                                       p_header_num   => 0); -- 4262811
60543    --
60544    -- set accounting line options
60545    --
60546    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
60547            p_natural_side_code          => 'C'
60548          , p_gain_or_loss_flag          => 'N'
60549          , p_gl_transfer_mode_code      => 'S'
60550          , p_acct_entry_type_code       => 'A'
60551          , p_switch_side_flag           => 'Y'
60552          , p_merge_duplicate_code       => 'A'
60553          );
60554    --
60555    l_acc_rev_natural_side_code := 'D';  -- 4262811
60556    -- 
60557    --
60558    -- set accounting line type info
60559    --
60560    xla_ae_lines_pkg.SetAcctLineType
60561       (p_component_type             => l_component_type
60562       ,p_event_type_code            => l_event_type_code
60563       ,p_line_definition_owner_code => l_line_definition_owner_code
60564       ,p_line_definition_code       => l_line_definition_code
60565       ,p_accounting_line_code       => l_component_code
60566       ,p_accounting_line_type_code  => l_component_type_code
60567       ,p_accounting_line_appl_id    => l_component_appl_id
60568       ,p_amb_context_code           => l_amb_context_code
60569       ,p_entity_code                => l_entity_code
60570       ,p_event_class_code           => l_event_class_code);
60571    --
60572    -- set accounting class
60573    --
60574    xla_ae_lines_pkg.SetAcctClass(
60575            p_accounting_class_code  => 'FUTURE_DATED_PMT'
60576          , p_ae_header_id           => l_ae_header_id
60577          );
60578 
60579    --
60580    -- set rounding class
60581    --
60582    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
60583                       'FUTURE_DATED_PMT';
60584 
60585    --
60586    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
60587    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
60588    --
60589    -- bulk performance
60590    --
60591    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
60592 
60593    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
60594       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
60595 
60596    -- 4955764
60597    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
60598       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
60599 
60600    -- 4458381 Public Sector Enh
60601    
60602    --
60603    -- set accounting attributes for the line type
60604    --
60605    l_entered_amt_idx := 10;
60606    l_accted_amt_idx  := 15;
60607    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
60608    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
60609    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
60610    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
60611    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
60612    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
60613    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
60614    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
60615    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
60616    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
60617    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
60618    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
60619    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
60620    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
60621    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
60622    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
60623    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
60624    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
60625    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
60626    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
60627    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
60628    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
60629    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
60633    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
60630    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
60631    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
60632    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
60634    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
60635    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
60636    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
60637    l_rec_acct_attrs.array_num_value(15)  := p_source_115;
60638    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
60639    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
60640    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
60641    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
60642    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
60643    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
60644    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
60645    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
60646    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
60647    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
60648    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
60649    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
60650    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
60651    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
60652    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
60653    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
60654    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
60655    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
60656 
60657    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
60658    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
60659 
60660    ---------------------------------------------------------------------------------------------------------------
60661    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
60662    ---------------------------------------------------------------------------------------------------------------
60663    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
60664 
60665    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60666    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
60667 
60668    IF xla_accounting_cache_pkg.GetValueChar
60669          (p_source_code         => 'LEDGER_CATEGORY_CODE'
60670          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
60671    AND l_bflow_method_code = 'PRIOR_ENTRY'
60672 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
60673    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
60674          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
60675        )
60676    THEN
60677          xla_ae_lines_pkg.BflowUpgEntry
60678            (p_business_method_code    => l_bflow_method_code
60679            ,p_business_class_code     => l_bflow_class_code
60680            ,p_balance_type            => l_balance_type_code);
60681    ELSE
60682       NULL;
60683 -- No business flow processing for business flow method of NONE.
60684    END IF;
60685 
60686    --
60687    -- call analytical criteria
60688    --
60689    
60690    --
60691    -- call description
60692    --
60693    -- No description or it is inherited.
60694    --
60695    -- call ADRs
60696    -- Bug 4922099
60697    --
60698    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60699         (NVL(l_actual_upg_option, 'N') = 'O') OR
60700         (NVL(l_enc_upg_option, 'N') = 'O')
60701       )
60702    THEN
60703    NULL;
60704    --
60705    --
60706    
60707   l_ccid := AcctDerRule_31(
60708            p_application_id           => p_application_id
60709          , p_ae_header_id             => l_ae_header_id 
60710 , p_source_15 => p_source_15
60711 , p_source_15_meaning => p_source_15_meaning
60712 , p_source_24 => p_source_24
60713 , p_source_25 => p_source_25
60714 , p_source_25_meaning => p_source_25_meaning
60715 , p_source_26 => p_source_26
60716 , p_source_27 => p_source_27
60717 , p_source_30 => p_source_30
60718          , x_transaction_coa_id       => l_adr_transaction_coa_id
60719          , x_accounting_coa_id        => l_adr_accounting_coa_id
60720          , x_value_type_code          => l_adr_value_type_code
60721          , p_side                     => 'NA'
60722    );
60723 
60724    xla_ae_lines_pkg.set_ccid(
60725     p_code_combination_id          => l_ccid
60726   , p_value_type_code              => l_adr_value_type_code
60727   , p_transaction_coa_id           => l_adr_transaction_coa_id
60728   , p_accounting_coa_id            => l_adr_accounting_coa_id
60729   , p_adr_code                     => 'AP_FUTURE_DATED_PMT'
60730   , p_adr_type_code                => 'S'
60731   , p_component_type               => l_component_type
60732   , p_component_code               => l_component_code
60733   , p_component_type_code          => l_component_type_code
60734   , p_component_appl_id            => l_component_appl_id
60735   , p_amb_context_code             => l_amb_context_code
60736   , p_side                         => 'NA'
60737   );
60738 
60739 
60740    l_segment := AcctDerRule_11(
60744 , p_source_15_meaning => p_source_15_meaning
60741            p_application_id           => p_application_id
60742          , p_ae_header_id             => l_ae_header_id 
60743 , p_source_15 => p_source_15
60745 , p_source_24 => p_source_24
60746 , p_source_25 => p_source_25
60747 , p_source_25_meaning => p_source_25_meaning
60748 , p_source_26 => p_source_26
60749 , p_source_27 => p_source_27
60750          , x_transaction_coa_id       => l_adr_transaction_coa_id
60751          , x_accounting_coa_id        => l_adr_accounting_coa_id
60752          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
60753          , x_flex_value_set_id        => l_adr_flex_value_set_id
60754          , x_value_type_code          => l_adr_value_type_code
60755          , x_value_combination_id     => l_adr_value_combination_id
60756          , x_value_segment_code       => l_adr_value_segment_code
60757          , p_side                     => 'NA'
60758          , p_override_seg_flag        => 'Y'
60759    );
60760 
60761    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
60762 
60763       xla_ae_lines_pkg.set_segment(
60764           p_to_segment_code         => 'GL_ACCOUNT'
60765         , p_segment_value           => l_segment
60766         , p_from_segment_code       => l_adr_value_segment_code
60767         , p_from_combination_id     => l_adr_value_combination_id
60768         , p_value_type_code         => l_adr_value_type_code
60769         , p_transaction_coa_id      => l_adr_transaction_coa_id
60770         , p_accounting_coa_id       => l_adr_accounting_coa_id
60771         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
60772         , p_flex_value_set_id       => l_adr_flex_value_set_id
60773         , p_adr_code                => 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG'
60774         , p_adr_type_code           => 'S'
60775         , p_component_type          => l_component_type
60776         , p_component_code          => l_component_code
60777         , p_component_type_code     => l_component_type_code
60778         , p_component_appl_id       => l_component_appl_id
60779         , p_amb_context_code        => l_amb_context_code
60780         , p_entity_code             => 'AP_PAYMENTS'
60781         , p_event_class_code        => 'PAYMENTS'
60782         , p_side                    => 'NA'
60783         );
60784 
60785   END IF;
60786 
60787    l_segment := AcctDerRule_22(
60788            p_application_id           => p_application_id
60789          , p_ae_header_id             => l_ae_header_id 
60790 , p_source_15 => p_source_15
60791 , p_source_15_meaning => p_source_15_meaning
60792 , p_source_30 => p_source_30
60793          , x_transaction_coa_id       => l_adr_transaction_coa_id
60794          , x_accounting_coa_id        => l_adr_accounting_coa_id
60795          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
60796          , x_flex_value_set_id        => l_adr_flex_value_set_id
60797          , x_value_type_code          => l_adr_value_type_code
60798          , x_value_combination_id     => l_adr_value_combination_id
60799          , x_value_segment_code       => l_adr_value_segment_code
60800          , p_side                     => 'NA'
60801          , p_override_seg_flag        => 'Y'
60802    );
60803 
60804    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
60805 
60806       xla_ae_lines_pkg.set_segment(
60807           p_to_segment_code         => 'GL_BALANCING'
60808         , p_segment_value           => l_segment
60809         , p_from_segment_code       => l_adr_value_segment_code
60810         , p_from_combination_id     => l_adr_value_combination_id
60811         , p_value_type_code         => l_adr_value_type_code
60812         , p_transaction_coa_id      => l_adr_transaction_coa_id
60813         , p_accounting_coa_id       => l_adr_accounting_coa_id
60814         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
60815         , p_flex_value_set_id       => l_adr_flex_value_set_id
60816         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
60817         , p_adr_type_code           => 'S'
60818         , p_component_type          => l_component_type
60819         , p_component_code          => l_component_code
60820         , p_component_type_code     => l_component_type_code
60821         , p_component_appl_id       => l_component_appl_id
60822         , p_amb_context_code        => l_amb_context_code
60823         , p_entity_code             => 'AP_PAYMENTS'
60824         , p_event_class_code        => 'PAYMENTS'
60825         , p_side                    => 'NA'
60826         );
60827 
60828   END IF;
60829 
60830    --
60831    --
60832    END IF;
60833    --
60834    -- Bug 4922099
60835    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
60836           (NVL(l_enc_upg_option, 'N') = 'O')
60837         ) AND
60838         (l_bflow_method_code = 'PRIOR_ENTRY')
60839       )
60840    THEN
60841       IF
60842       --
60843       1 = 2
60844       --
60845       THEN
60846       xla_accounting_err_pkg.build_message
60847                                     (p_appli_s_name            => 'XLA'
60848                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60849                                     ,p_token_1                 => 'LINE_NUMBER'
60850                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
60851                                     ,p_token_2                 => 'LINE_TYPE_NAME'
60855                                                                             ,l_component_type_code
60852                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
60853                                                                              l_component_type
60854                                                                             ,l_component_code
60856                                                                             ,l_component_appl_id
60857                                                                             ,l_amb_context_code
60858                                                                             ,l_entity_code
60859                                                                             ,l_event_class_code
60860                                                                            )
60861                                     ,p_token_3                 => 'OWNER'
60862                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
60863                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
60864                                                                           ,p_lookup_code    => l_component_type_code
60865                                                                          )
60866                                     ,p_token_4                 => 'PRODUCT_NAME'
60867                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
60868                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
60869                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
60870                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
60871                                     ,p_ae_header_id            =>  NULL
60872                                        );
60873 
60874         IF (C_LEVEL_ERROR>= g_log_level) THEN
60875                  trace
60876                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
60877                       ,p_level    => C_LEVEL_ERROR
60878                       ,p_module   => l_log_module);
60879         END IF;
60880       END IF;
60881    END IF;
60882    --
60883    --
60884    ------------------------------------------------------------------------------------------------
60885    -- 4219869 Business Flow
60886    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
60887    -- Prior Entry.  Currently, the following code is always generated.
60888    ------------------------------------------------------------------------------------------------
60889    XLA_AE_LINES_PKG.ValidateCurrentLine;
60890 
60891    ------------------------------------------------------------------------------------
60892    -- 4219869 Business Flow
60893    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
60894    ------------------------------------------------------------------------------------
60895    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
60896 
60897    ----------------------------------------------------------------------------------
60898    -- 4219869 Business Flow
60899    -- Update journal entry status -- Need to generate this within IF <condition>
60900    ----------------------------------------------------------------------------------
60901    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
60902          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
60903          ,p_balance_type_code => l_balance_type_code
60904          );
60905 
60906    -------------------------------------------------------------------------------------------
60907    -- 4262811 - Generate the Accrual Reversal lines
60908    -------------------------------------------------------------------------------------------
60909    BEGIN
60910       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
60911                               (g_array_event(p_event_id).array_value_num('header_index'));
60912       IF l_acc_rev_flag IS NULL THEN
60913          l_acc_rev_flag := 'N';
60914       END IF;
60915    EXCEPTION
60916       WHEN OTHERS THEN
60917          l_acc_rev_flag := 'N';
60918    END;
60919    --
60920    IF (l_acc_rev_flag = 'Y') THEN
60921 
60922        -- 4645092  ------------------------------------------------------------------------------
60923        -- To allow MPA report to determine if it should generate report process
60924        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
60925        ------------------------------------------------------------------------------------------
60926 
60927        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
60928        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
60929    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
60930    -- call ADRs
60931    -- Bug 4922099
60932    --
60933    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
60934         (NVL(l_actual_upg_option, 'N') = 'O') OR
60935         (NVL(l_enc_upg_option, 'N') = 'O')
60936       )
60937    THEN
60938    NULL;
60939    --
60940    --
60941    
60942   l_ccid := AcctDerRule_31(
60943            p_application_id           => p_application_id
60944          , p_ae_header_id             => l_ae_header_id 
60945 , p_source_15 => p_source_15
60946 , p_source_15_meaning => p_source_15_meaning
60950 , p_source_26 => p_source_26
60947 , p_source_24 => p_source_24
60948 , p_source_25 => p_source_25
60949 , p_source_25_meaning => p_source_25_meaning
60951 , p_source_27 => p_source_27
60952 , p_source_30 => p_source_30
60953          , x_transaction_coa_id       => l_adr_transaction_coa_id
60954          , x_accounting_coa_id        => l_adr_accounting_coa_id
60955          , x_value_type_code          => l_adr_value_type_code
60956          , p_side                     => 'NA'
60957    );
60958 
60959    xla_ae_lines_pkg.set_ccid(
60960     p_code_combination_id          => l_ccid
60961   , p_value_type_code              => l_adr_value_type_code
60962   , p_transaction_coa_id           => l_adr_transaction_coa_id
60963   , p_accounting_coa_id            => l_adr_accounting_coa_id
60964   , p_adr_code                     => 'AP_FUTURE_DATED_PMT'
60965   , p_adr_type_code                => 'S'
60966   , p_component_type               => l_component_type
60967   , p_component_code               => l_component_code
60968   , p_component_type_code          => l_component_type_code
60969   , p_component_appl_id            => l_component_appl_id
60970   , p_amb_context_code             => l_amb_context_code
60971   , p_side                         => 'NA'
60972   );
60973 
60974 
60975    l_segment := AcctDerRule_11(
60976            p_application_id           => p_application_id
60977          , p_ae_header_id             => l_ae_header_id 
60978 , p_source_15 => p_source_15
60979 , p_source_15_meaning => p_source_15_meaning
60980 , p_source_24 => p_source_24
60981 , p_source_25 => p_source_25
60982 , p_source_25_meaning => p_source_25_meaning
60983 , p_source_26 => p_source_26
60984 , p_source_27 => p_source_27
60985          , x_transaction_coa_id       => l_adr_transaction_coa_id
60986          , x_accounting_coa_id        => l_adr_accounting_coa_id
60987          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
60988          , x_flex_value_set_id        => l_adr_flex_value_set_id
60989          , x_value_type_code          => l_adr_value_type_code
60990          , x_value_combination_id     => l_adr_value_combination_id
60991          , x_value_segment_code       => l_adr_value_segment_code
60992          , p_side                     => 'NA'
60993          , p_override_seg_flag        => 'Y'
60994    );
60995 
60996    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
60997 
60998       xla_ae_lines_pkg.set_segment(
60999           p_to_segment_code         => 'GL_ACCOUNT'
61000         , p_segment_value           => l_segment
61001         , p_from_segment_code       => l_adr_value_segment_code
61002         , p_from_combination_id     => l_adr_value_combination_id
61003         , p_value_type_code         => l_adr_value_type_code
61004         , p_transaction_coa_id      => l_adr_transaction_coa_id
61005         , p_accounting_coa_id       => l_adr_accounting_coa_id
61006         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
61007         , p_flex_value_set_id       => l_adr_flex_value_set_id
61008         , p_adr_code                => 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG'
61009         , p_adr_type_code           => 'S'
61010         , p_component_type          => l_component_type
61011         , p_component_code          => l_component_code
61012         , p_component_type_code     => l_component_type_code
61013         , p_component_appl_id       => l_component_appl_id
61014         , p_amb_context_code        => l_amb_context_code
61015         , p_entity_code             => 'AP_PAYMENTS'
61016         , p_event_class_code        => 'PAYMENTS'
61017         , p_side                    => 'NA'
61018         );
61019 
61020   END IF;
61021 
61022    l_segment := AcctDerRule_22(
61023            p_application_id           => p_application_id
61024          , p_ae_header_id             => l_ae_header_id 
61025 , p_source_15 => p_source_15
61026 , p_source_15_meaning => p_source_15_meaning
61027 , p_source_30 => p_source_30
61028          , x_transaction_coa_id       => l_adr_transaction_coa_id
61029          , x_accounting_coa_id        => l_adr_accounting_coa_id
61030          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
61031          , x_flex_value_set_id        => l_adr_flex_value_set_id
61032          , x_value_type_code          => l_adr_value_type_code
61033          , x_value_combination_id     => l_adr_value_combination_id
61034          , x_value_segment_code       => l_adr_value_segment_code
61035          , p_side                     => 'NA'
61036          , p_override_seg_flag        => 'Y'
61037    );
61038 
61039    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
61040 
61041       xla_ae_lines_pkg.set_segment(
61042           p_to_segment_code         => 'GL_BALANCING'
61043         , p_segment_value           => l_segment
61044         , p_from_segment_code       => l_adr_value_segment_code
61045         , p_from_combination_id     => l_adr_value_combination_id
61046         , p_value_type_code         => l_adr_value_type_code
61047         , p_transaction_coa_id      => l_adr_transaction_coa_id
61048         , p_accounting_coa_id       => l_adr_accounting_coa_id
61049         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
61050         , p_flex_value_set_id       => l_adr_flex_value_set_id
61051         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
61052         , p_adr_type_code           => 'S'
61053         , p_component_type          => l_component_type
61054         , p_component_code          => l_component_code
61055         , p_component_type_code     => l_component_type_code
61059         , p_event_class_code        => 'PAYMENTS'
61056         , p_component_appl_id       => l_component_appl_id
61057         , p_amb_context_code        => l_amb_context_code
61058         , p_entity_code             => 'AP_PAYMENTS'
61060         , p_side                    => 'NA'
61061         );
61062 
61063   END IF;
61064 
61065    --
61066    --
61067    END IF;
61068 
61069        --
61070        -- Update the line information that should be overwritten
61071        --
61072        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
61073                                          p_header_num   => 1);
61074        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
61075 
61076        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
61077 
61078        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
61079           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
61080        END IF;
61081 
61082       --
61083       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
61084       --
61085       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
61086           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
61087       ELSE
61088           ---------------------------------------------------------------------------------------------------
61089           -- 4262811a Switch Sign
61090           ---------------------------------------------------------------------------------------------------
61091           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
61092           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61093                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61094           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61095                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61096           -- 5132302
61097           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
61098                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61099 
61100       END IF;
61101 
61102       -- 4955764
61103       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61104       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
61105 
61106 
61107       XLA_AE_LINES_PKG.ValidateCurrentLine;
61108       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61109 
61110       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61111                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
61112                ,p_balance_type_code => l_balance_type_code);
61113 
61114    END IF;
61115 
61116    -----------------------------------------------------------------------------------------
61117    -- 4262811 Multiperiod Accounting
61118    -----------------------------------------------------------------------------------------
61119      -- No MPA option is assigned.
61120 
61121 
61122 END IF;
61123 END IF;
61124 --
61125 
61126 --
61127 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61128    trace
61129       (p_msg      => 'END of AcctLineType_120'
61130       ,p_level    => C_LEVEL_PROCEDURE
61131       ,p_module   => l_log_module);
61132 END IF;
61133 --
61134 EXCEPTION
61135   WHEN xla_exceptions_pkg.application_exception THEN
61136       RAISE;
61137   WHEN OTHERS THEN
61138        xla_exceptions_pkg.raise_message
61139            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_120');
61140 END AcctLineType_120;
61141 --
61142 
61143 ---------------------------------------
61144 --
61145 -- PRIVATE FUNCTION
61146 --         AcctLineType_121
61147 --
61148 ---------------------------------------
61149 PROCEDURE AcctLineType_121 (
61150   p_application_id        IN NUMBER
61151  ,p_event_id              IN NUMBER
61152  ,p_calculate_acctd_flag  IN VARCHAR2
61153  ,p_calculate_g_l_flag    IN VARCHAR2
61154  ,p_actual_flag           IN OUT VARCHAR2
61155  ,p_balance_type_code     OUT VARCHAR2
61156  ,p_gain_or_loss_ref      OUT VARCHAR2
61157  
61158 --Payment Currency Code
61159  , p_source_13            IN VARCHAR2
61160 --Automatic Offsets Value
61161  , p_source_15            IN VARCHAR2
61162  , p_source_15_meaning    IN VARCHAR2
61163 --Bank Future Dated Payment Account
61164  , p_source_24            IN NUMBER
61165 --Future Dated Payment Account Source Option
61166  , p_source_25            IN VARCHAR2
61167  , p_source_25_meaning    IN VARCHAR2
61168 --Financials Options Future Dated Payment Account
61169  , p_source_26            IN NUMBER
61170 --Supplier Site Future Dated Payment Account
61171  , p_source_27            IN NUMBER
61172 --Invoice Distribution Account
61173  , p_source_30            IN NUMBER
61174 --Accounting Reversal Indicator
61175  , p_source_53            IN VARCHAR2
61176 --Distribution Link Type
61177  , p_source_55            IN VARCHAR2
61178 --Override Accounted Amount Indicator
61179  , p_source_80            IN VARCHAR2
61180  , p_source_80_meaning    IN VARCHAR2
61181 --Third Party Type
61185 --Invoice Distribution Tax Distribution Identifier from Tax
61182  , p_source_83            IN VARCHAR2
61183 --Invoice Distribution Tax Line Identifier
61184  , p_source_86            IN NUMBER
61186  , p_source_87            IN NUMBER
61187 --Invoice Distribution Summary Tax Line Identifier
61188  , p_source_88            IN NUMBER
61189 --Business Flow Accounts Payable Application Identifier
61190  , p_source_91            IN NUMBER
61191 --Business Flow Invoice Distribution Type
61192  , p_source_92            IN VARCHAR2
61193 --Business Flow Invoice Entity Code
61194  , p_source_93            IN VARCHAR2
61195 --Business Flow Invoice Distribution Identifier
61196  , p_source_94            IN NUMBER
61197 --Business Flow Invoice Identifier
61198  , p_source_95            IN NUMBER
61199 --When to Account for Payment Option
61200  , p_source_97            IN VARCHAR2
61201 --Payment Distribution Type
61202  , p_source_98            IN VARCHAR2
61203  , p_source_98_meaning    IN VARCHAR2
61204 --Payment Distribution Amount
61205  , p_source_99            IN NUMBER
61206 --Payment Distribution Identifier
61207  , p_source_104            IN NUMBER
61208 --Payment Supplier Identifier
61209  , p_source_110            IN NUMBER
61210 --Payment Supplier Site Identifier
61211  , p_source_111            IN NUMBER
61212 --Payment Distribution Reversed Identifier
61213  , p_source_112            IN NUMBER
61214 --Payment Maturity Date
61215  , p_source_114            IN DATE
61216 --Payment Distribution (Invoice Rate) Ledger Amount
61217  , p_source_116            IN NUMBER
61218 --Payment Exchange Date
61219  , p_source_117            IN DATE
61220 --Payment Exchange Rate
61221  , p_source_118            IN NUMBER
61222 --Payment Exchange Rate Type
61223  , p_source_119            IN VARCHAR2
61224 --Payment Processing Type
61225  , p_source_123            IN VARCHAR2
61226 --Invoice Distribution Amount of the Payment Distribution
61227  , p_source_124            IN NUMBER
61228 )
61229 IS
61230 
61231 l_component_type              VARCHAR2(80);
61232 l_component_code              VARCHAR2(30);
61233 l_component_type_code         VARCHAR2(1);
61234 l_component_appl_id           INTEGER;
61235 l_amb_context_code            VARCHAR2(30);
61236 l_entity_code                 VARCHAR2(30);
61237 l_event_class_code            VARCHAR2(30);
61238 l_ae_header_id                NUMBER;
61239 l_event_type_code             VARCHAR2(30);
61240 l_line_definition_code        VARCHAR2(30);
61241 l_line_definition_owner_code  VARCHAR2(1);
61242 --
61243 -- adr variables
61244 l_segment                     VARCHAR2(30);
61245 l_ccid                        NUMBER;
61246 l_adr_transaction_coa_id      NUMBER;
61247 l_adr_accounting_coa_id       NUMBER;
61248 l_adr_flexfield_segment_code  VARCHAR2(30);
61249 l_adr_flex_value_set_id       NUMBER;
61250 l_adr_value_type_code         VARCHAR2(30);
61251 l_adr_value_combination_id    NUMBER;
61252 l_adr_value_segment_code      VARCHAR2(30);
61253 
61254 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
61255 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
61256 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
61257 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
61258 
61259 -- 4262811 Variables ------------------------------------------------------------------------------------------
61260 l_entered_amt_idx             NUMBER;
61261 l_accted_amt_idx              NUMBER;
61262 l_acc_rev_flag                VARCHAR2(1);
61263 l_accrual_line_num            NUMBER;
61264 l_tmp_amt                     NUMBER;
61265 l_acc_rev_natural_side_code   VARCHAR2(1);
61266 
61267 l_num_entries                 NUMBER;
61268 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
61269 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
61270 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
61271 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
61272 l_recog_line_1                NUMBER;
61273 l_recog_line_2                NUMBER;
61274 
61275 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
61276 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
61277 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
61278 
61279 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
61280 
61281 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
61282 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
61283 
61284 ---------------------------------------------------------------------------------------------------------------
61285 
61286 
61287 --
61288 -- bulk performance
61289 --
61290 l_balance_type_code           VARCHAR2(1);
61291 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
61292 l_log_module                  VARCHAR2(240);
61293 
61294 --
61295 -- Upgrade strategy
61296 --
61297 l_actual_upg_option           VARCHAR2(1);
61298 l_enc_upg_option           VARCHAR2(1);
61299 
61300 --
61301 BEGIN
61302 --
61303 IF g_log_enabled THEN
61304       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_121';
61305 END IF;
61306 --
61307 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61308 
61309       trace
61310          (p_msg      => 'BEGIN of AcctLineType_121'
61314 END IF;
61311          ,p_level    => C_LEVEL_PROCEDURE
61312          ,p_module   => l_log_module);
61313 
61315 --
61316 l_component_type             := 'AMB_JLT';
61317 l_component_code             := 'AP_FUTURE_DATED_PMT_INVXRATE';
61318 l_component_type_code        := 'S';
61319 l_component_appl_id          :=  200;
61320 l_amb_context_code           := 'DEFAULT';
61321 l_entity_code                := 'AP_PAYMENTS';
61322 l_event_class_code           := 'PAYMENTS';
61323 l_event_type_code            := 'PAYMENTS_ALL';
61324 l_line_definition_owner_code := 'S';
61325 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
61326 --
61327 l_balance_type_code          := 'A';
61328 l_segment                     := NULL;
61329 l_ccid                        := NULL;
61330 l_adr_transaction_coa_id      := NULL;
61331 l_adr_accounting_coa_id       := NULL;
61332 l_adr_flexfield_segment_code  := NULL;
61333 l_adr_flex_value_set_id       := NULL;
61334 l_adr_value_type_code         := NULL;
61335 l_adr_value_combination_id    := NULL;
61336 l_adr_value_segment_code      := NULL;
61337 
61338 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
61339 l_bflow_class_code           := 'AP_FUTURE_DTD_PMT';    -- 4219869 Business Flow
61340 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
61341 l_budgetary_control_flag     := 'N';
61342 
61343 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
61344 l_bflow_applied_to_amt       := NULL; -- 5132302
61345 l_entered_amt_idx            := NULL;          -- 4262811
61346 l_accted_amt_idx             := NULL;          -- 4262811
61347 l_acc_rev_flag               := NULL;          -- 4262811
61348 l_accrual_line_num           := NULL;          -- 4262811
61349 l_tmp_amt                    := NULL;          -- 4262811
61350 --
61351  
61352 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
61353     l_balance_type_code <> 'B' THEN
61354 IF NVL(p_source_97,'
61355 ') =  'ALWAYS_CLEAR' AND 
61356 NVL(p_source_98,'
61357 ') =  'CASH' AND 
61358 p_source_114 IS NOT NULL AND 
61359 NVL(p_source_123,'
61360 ') <>  'PAYMENTCARD'
61361  THEN 
61362 
61363    --
61364    XLA_AE_LINES_PKG.SetNewLine;
61365 
61366    p_balance_type_code          := l_balance_type_code;
61367    -- set the flag so later we will know whether the gain loss line needs to be created
61368    
61369    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
61370      p_actual_flag :='A';
61371    END IF;
61372 
61373    --
61374    -- bulk performance
61375    --
61376    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
61377                                       p_header_num   => 0); -- 4262811
61378    --
61379    -- set accounting line options
61380    --
61381    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
61382            p_natural_side_code          => 'C'
61383          , p_gain_or_loss_flag          => 'N'
61384          , p_gl_transfer_mode_code      => 'S'
61385          , p_acct_entry_type_code       => 'A'
61386          , p_switch_side_flag           => 'Y'
61387          , p_merge_duplicate_code       => 'A'
61388          );
61389    --
61390    l_acc_rev_natural_side_code := 'D';  -- 4262811
61391    -- 
61392    --
61393    -- set accounting line type info
61394    --
61395    xla_ae_lines_pkg.SetAcctLineType
61396       (p_component_type             => l_component_type
61397       ,p_event_type_code            => l_event_type_code
61398       ,p_line_definition_owner_code => l_line_definition_owner_code
61399       ,p_line_definition_code       => l_line_definition_code
61400       ,p_accounting_line_code       => l_component_code
61401       ,p_accounting_line_type_code  => l_component_type_code
61402       ,p_accounting_line_appl_id    => l_component_appl_id
61403       ,p_amb_context_code           => l_amb_context_code
61404       ,p_entity_code                => l_entity_code
61405       ,p_event_class_code           => l_event_class_code);
61406    --
61407    -- set accounting class
61408    --
61409    xla_ae_lines_pkg.SetAcctClass(
61410            p_accounting_class_code  => 'FUTURE_DATED_PMT'
61411          , p_ae_header_id           => l_ae_header_id
61412          );
61413 
61414    --
61415    -- set rounding class
61416    --
61417    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
61418                       'FUTURE_DATED_PMT';
61419 
61420    --
61421    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
61422    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
61423    --
61424    -- bulk performance
61425    --
61426    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
61427 
61428    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
61429       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
61430 
61431    -- 4955764
61432    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61433       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
61434 
61435    -- 4458381 Public Sector Enh
61436    
61437    --
61438    -- set accounting attributes for the line type
61439    --
61440    l_entered_amt_idx := 10;
61441    l_accted_amt_idx  := 15;
61445    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
61442    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
61443    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
61444    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
61446    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
61447    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
61448    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
61449    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
61450    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
61451    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
61452    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
61453    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
61454    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
61455    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
61456    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
61457    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
61458    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
61459    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
61460    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
61461    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
61462    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
61463    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
61464    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
61465    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
61466    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
61467    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
61468    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
61469    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
61470    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
61471    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
61472    l_rec_acct_attrs.array_num_value(15)  := p_source_116;
61473    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
61474    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
61475    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
61476    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
61477    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
61478    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
61479    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
61480    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
61481    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
61482    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
61483    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
61484    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
61485    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
61486    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
61487    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
61488    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
61489    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
61490    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
61491 
61492    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
61493    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
61494 
61495    ---------------------------------------------------------------------------------------------------------------
61496    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
61497    ---------------------------------------------------------------------------------------------------------------
61498    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
61499 
61500    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61501    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
61502 
61503    IF xla_accounting_cache_pkg.GetValueChar
61504          (p_source_code         => 'LEDGER_CATEGORY_CODE'
61505          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
61506    AND l_bflow_method_code = 'PRIOR_ENTRY'
61507 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
61508    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
61509          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
61510        )
61511    THEN
61512          xla_ae_lines_pkg.BflowUpgEntry
61513            (p_business_method_code    => l_bflow_method_code
61514            ,p_business_class_code     => l_bflow_class_code
61515            ,p_balance_type            => l_balance_type_code);
61516    ELSE
61517       NULL;
61518 -- No business flow processing for business flow method of NONE.
61519    END IF;
61520 
61521    --
61522    -- call analytical criteria
61523    --
61524    
61525    --
61526    -- call description
61527    --
61528    -- No description or it is inherited.
61529    --
61530    -- call ADRs
61531    -- Bug 4922099
61532    --
61533    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61534         (NVL(l_actual_upg_option, 'N') = 'O') OR
61535         (NVL(l_enc_upg_option, 'N') = 'O')
61536       )
61537    THEN
61538    NULL;
61542   l_ccid := AcctDerRule_31(
61539    --
61540    --
61541    
61543            p_application_id           => p_application_id
61544          , p_ae_header_id             => l_ae_header_id 
61545 , p_source_15 => p_source_15
61546 , p_source_15_meaning => p_source_15_meaning
61547 , p_source_24 => p_source_24
61548 , p_source_25 => p_source_25
61549 , p_source_25_meaning => p_source_25_meaning
61550 , p_source_26 => p_source_26
61551 , p_source_27 => p_source_27
61552 , p_source_30 => p_source_30
61553          , x_transaction_coa_id       => l_adr_transaction_coa_id
61554          , x_accounting_coa_id        => l_adr_accounting_coa_id
61555          , x_value_type_code          => l_adr_value_type_code
61556          , p_side                     => 'NA'
61557    );
61558 
61559    xla_ae_lines_pkg.set_ccid(
61560     p_code_combination_id          => l_ccid
61561   , p_value_type_code              => l_adr_value_type_code
61562   , p_transaction_coa_id           => l_adr_transaction_coa_id
61563   , p_accounting_coa_id            => l_adr_accounting_coa_id
61564   , p_adr_code                     => 'AP_FUTURE_DATED_PMT'
61565   , p_adr_type_code                => 'S'
61566   , p_component_type               => l_component_type
61567   , p_component_code               => l_component_code
61568   , p_component_type_code          => l_component_type_code
61569   , p_component_appl_id            => l_component_appl_id
61570   , p_amb_context_code             => l_amb_context_code
61571   , p_side                         => 'NA'
61572   );
61573 
61574 
61575    l_segment := AcctDerRule_11(
61576            p_application_id           => p_application_id
61577          , p_ae_header_id             => l_ae_header_id 
61578 , p_source_15 => p_source_15
61579 , p_source_15_meaning => p_source_15_meaning
61580 , p_source_24 => p_source_24
61581 , p_source_25 => p_source_25
61582 , p_source_25_meaning => p_source_25_meaning
61583 , p_source_26 => p_source_26
61584 , p_source_27 => p_source_27
61585          , x_transaction_coa_id       => l_adr_transaction_coa_id
61586          , x_accounting_coa_id        => l_adr_accounting_coa_id
61587          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
61588          , x_flex_value_set_id        => l_adr_flex_value_set_id
61589          , x_value_type_code          => l_adr_value_type_code
61590          , x_value_combination_id     => l_adr_value_combination_id
61591          , x_value_segment_code       => l_adr_value_segment_code
61592          , p_side                     => 'NA'
61593          , p_override_seg_flag        => 'Y'
61594    );
61595 
61596    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
61597 
61598       xla_ae_lines_pkg.set_segment(
61599           p_to_segment_code         => 'GL_ACCOUNT'
61600         , p_segment_value           => l_segment
61601         , p_from_segment_code       => l_adr_value_segment_code
61602         , p_from_combination_id     => l_adr_value_combination_id
61603         , p_value_type_code         => l_adr_value_type_code
61604         , p_transaction_coa_id      => l_adr_transaction_coa_id
61605         , p_accounting_coa_id       => l_adr_accounting_coa_id
61606         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
61607         , p_flex_value_set_id       => l_adr_flex_value_set_id
61608         , p_adr_code                => 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG'
61609         , p_adr_type_code           => 'S'
61610         , p_component_type          => l_component_type
61611         , p_component_code          => l_component_code
61612         , p_component_type_code     => l_component_type_code
61613         , p_component_appl_id       => l_component_appl_id
61614         , p_amb_context_code        => l_amb_context_code
61615         , p_entity_code             => 'AP_PAYMENTS'
61616         , p_event_class_code        => 'PAYMENTS'
61617         , p_side                    => 'NA'
61618         );
61619 
61620   END IF;
61621 
61622    l_segment := AcctDerRule_22(
61623            p_application_id           => p_application_id
61624          , p_ae_header_id             => l_ae_header_id 
61625 , p_source_15 => p_source_15
61626 , p_source_15_meaning => p_source_15_meaning
61627 , p_source_30 => p_source_30
61628          , x_transaction_coa_id       => l_adr_transaction_coa_id
61629          , x_accounting_coa_id        => l_adr_accounting_coa_id
61630          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
61631          , x_flex_value_set_id        => l_adr_flex_value_set_id
61632          , x_value_type_code          => l_adr_value_type_code
61633          , x_value_combination_id     => l_adr_value_combination_id
61634          , x_value_segment_code       => l_adr_value_segment_code
61635          , p_side                     => 'NA'
61636          , p_override_seg_flag        => 'Y'
61637    );
61638 
61639    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
61640 
61641       xla_ae_lines_pkg.set_segment(
61642           p_to_segment_code         => 'GL_BALANCING'
61643         , p_segment_value           => l_segment
61644         , p_from_segment_code       => l_adr_value_segment_code
61645         , p_from_combination_id     => l_adr_value_combination_id
61646         , p_value_type_code         => l_adr_value_type_code
61647         , p_transaction_coa_id      => l_adr_transaction_coa_id
61648         , p_accounting_coa_id       => l_adr_accounting_coa_id
61649         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
61653         , p_component_type          => l_component_type
61650         , p_flex_value_set_id       => l_adr_flex_value_set_id
61651         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
61652         , p_adr_type_code           => 'S'
61654         , p_component_code          => l_component_code
61655         , p_component_type_code     => l_component_type_code
61656         , p_component_appl_id       => l_component_appl_id
61657         , p_amb_context_code        => l_amb_context_code
61658         , p_entity_code             => 'AP_PAYMENTS'
61659         , p_event_class_code        => 'PAYMENTS'
61660         , p_side                    => 'NA'
61661         );
61662 
61663   END IF;
61664 
61665    --
61666    --
61667    END IF;
61668    --
61669    -- Bug 4922099
61670    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
61671           (NVL(l_enc_upg_option, 'N') = 'O')
61672         ) AND
61673         (l_bflow_method_code = 'PRIOR_ENTRY')
61674       )
61675    THEN
61676       IF
61677       --
61678       1 = 2
61679       --
61680       THEN
61681       xla_accounting_err_pkg.build_message
61682                                     (p_appli_s_name            => 'XLA'
61683                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61684                                     ,p_token_1                 => 'LINE_NUMBER'
61685                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
61686                                     ,p_token_2                 => 'LINE_TYPE_NAME'
61687                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
61688                                                                              l_component_type
61689                                                                             ,l_component_code
61690                                                                             ,l_component_type_code
61691                                                                             ,l_component_appl_id
61692                                                                             ,l_amb_context_code
61693                                                                             ,l_entity_code
61694                                                                             ,l_event_class_code
61695                                                                            )
61696                                     ,p_token_3                 => 'OWNER'
61697                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
61698                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
61699                                                                           ,p_lookup_code    => l_component_type_code
61700                                                                          )
61701                                     ,p_token_4                 => 'PRODUCT_NAME'
61702                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
61703                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
61704                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
61705                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
61706                                     ,p_ae_header_id            =>  NULL
61707                                        );
61708 
61709         IF (C_LEVEL_ERROR>= g_log_level) THEN
61710                  trace
61711                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
61712                       ,p_level    => C_LEVEL_ERROR
61713                       ,p_module   => l_log_module);
61714         END IF;
61715       END IF;
61716    END IF;
61717    --
61718    --
61719    ------------------------------------------------------------------------------------------------
61720    -- 4219869 Business Flow
61721    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
61722    -- Prior Entry.  Currently, the following code is always generated.
61723    ------------------------------------------------------------------------------------------------
61724    XLA_AE_LINES_PKG.ValidateCurrentLine;
61725 
61726    ------------------------------------------------------------------------------------
61727    -- 4219869 Business Flow
61728    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
61729    ------------------------------------------------------------------------------------
61730    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61731 
61732    ----------------------------------------------------------------------------------
61733    -- 4219869 Business Flow
61734    -- Update journal entry status -- Need to generate this within IF <condition>
61735    ----------------------------------------------------------------------------------
61736    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61737          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
61738          ,p_balance_type_code => l_balance_type_code
61739          );
61740 
61741    -------------------------------------------------------------------------------------------
61742    -- 4262811 - Generate the Accrual Reversal lines
61743    -------------------------------------------------------------------------------------------
61744    BEGIN
61745       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
61749       END IF;
61746                               (g_array_event(p_event_id).array_value_num('header_index'));
61747       IF l_acc_rev_flag IS NULL THEN
61748          l_acc_rev_flag := 'N';
61750    EXCEPTION
61751       WHEN OTHERS THEN
61752          l_acc_rev_flag := 'N';
61753    END;
61754    --
61755    IF (l_acc_rev_flag = 'Y') THEN
61756 
61757        -- 4645092  ------------------------------------------------------------------------------
61758        -- To allow MPA report to determine if it should generate report process
61759        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
61760        ------------------------------------------------------------------------------------------
61761 
61762        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
61763        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
61764    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
61765    -- call ADRs
61766    -- Bug 4922099
61767    --
61768    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
61769         (NVL(l_actual_upg_option, 'N') = 'O') OR
61770         (NVL(l_enc_upg_option, 'N') = 'O')
61771       )
61772    THEN
61773    NULL;
61774    --
61775    --
61776    
61777   l_ccid := AcctDerRule_31(
61778            p_application_id           => p_application_id
61779          , p_ae_header_id             => l_ae_header_id 
61780 , p_source_15 => p_source_15
61781 , p_source_15_meaning => p_source_15_meaning
61782 , p_source_24 => p_source_24
61783 , p_source_25 => p_source_25
61784 , p_source_25_meaning => p_source_25_meaning
61785 , p_source_26 => p_source_26
61786 , p_source_27 => p_source_27
61787 , p_source_30 => p_source_30
61788          , x_transaction_coa_id       => l_adr_transaction_coa_id
61789          , x_accounting_coa_id        => l_adr_accounting_coa_id
61790          , x_value_type_code          => l_adr_value_type_code
61791          , p_side                     => 'NA'
61792    );
61793 
61794    xla_ae_lines_pkg.set_ccid(
61795     p_code_combination_id          => l_ccid
61796   , p_value_type_code              => l_adr_value_type_code
61797   , p_transaction_coa_id           => l_adr_transaction_coa_id
61798   , p_accounting_coa_id            => l_adr_accounting_coa_id
61799   , p_adr_code                     => 'AP_FUTURE_DATED_PMT'
61800   , p_adr_type_code                => 'S'
61801   , p_component_type               => l_component_type
61802   , p_component_code               => l_component_code
61803   , p_component_type_code          => l_component_type_code
61804   , p_component_appl_id            => l_component_appl_id
61805   , p_amb_context_code             => l_amb_context_code
61806   , p_side                         => 'NA'
61807   );
61808 
61809 
61810    l_segment := AcctDerRule_11(
61811            p_application_id           => p_application_id
61812          , p_ae_header_id             => l_ae_header_id 
61813 , p_source_15 => p_source_15
61814 , p_source_15_meaning => p_source_15_meaning
61815 , p_source_24 => p_source_24
61816 , p_source_25 => p_source_25
61817 , p_source_25_meaning => p_source_25_meaning
61818 , p_source_26 => p_source_26
61819 , p_source_27 => p_source_27
61820          , x_transaction_coa_id       => l_adr_transaction_coa_id
61821          , x_accounting_coa_id        => l_adr_accounting_coa_id
61822          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
61823          , x_flex_value_set_id        => l_adr_flex_value_set_id
61824          , x_value_type_code          => l_adr_value_type_code
61825          , x_value_combination_id     => l_adr_value_combination_id
61826          , x_value_segment_code       => l_adr_value_segment_code
61827          , p_side                     => 'NA'
61828          , p_override_seg_flag        => 'Y'
61829    );
61830 
61831    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
61832 
61833       xla_ae_lines_pkg.set_segment(
61834           p_to_segment_code         => 'GL_ACCOUNT'
61835         , p_segment_value           => l_segment
61836         , p_from_segment_code       => l_adr_value_segment_code
61837         , p_from_combination_id     => l_adr_value_combination_id
61838         , p_value_type_code         => l_adr_value_type_code
61839         , p_transaction_coa_id      => l_adr_transaction_coa_id
61840         , p_accounting_coa_id       => l_adr_accounting_coa_id
61841         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
61842         , p_flex_value_set_id       => l_adr_flex_value_set_id
61843         , p_adr_code                => 'AP_FUTURE_DTD_PMT_NAT_ACCT_SEG'
61844         , p_adr_type_code           => 'S'
61845         , p_component_type          => l_component_type
61846         , p_component_code          => l_component_code
61847         , p_component_type_code     => l_component_type_code
61848         , p_component_appl_id       => l_component_appl_id
61849         , p_amb_context_code        => l_amb_context_code
61850         , p_entity_code             => 'AP_PAYMENTS'
61851         , p_event_class_code        => 'PAYMENTS'
61852         , p_side                    => 'NA'
61853         );
61854 
61855   END IF;
61856 
61857    l_segment := AcctDerRule_22(
61858            p_application_id           => p_application_id
61859          , p_ae_header_id             => l_ae_header_id 
61860 , p_source_15 => p_source_15
61861 , p_source_15_meaning => p_source_15_meaning
61862 , p_source_30 => p_source_30
61863          , x_transaction_coa_id       => l_adr_transaction_coa_id
61867          , x_value_type_code          => l_adr_value_type_code
61864          , x_accounting_coa_id        => l_adr_accounting_coa_id
61865          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
61866          , x_flex_value_set_id        => l_adr_flex_value_set_id
61868          , x_value_combination_id     => l_adr_value_combination_id
61869          , x_value_segment_code       => l_adr_value_segment_code
61870          , p_side                     => 'NA'
61871          , p_override_seg_flag        => 'Y'
61872    );
61873 
61874    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
61875 
61876       xla_ae_lines_pkg.set_segment(
61877           p_to_segment_code         => 'GL_BALANCING'
61878         , p_segment_value           => l_segment
61879         , p_from_segment_code       => l_adr_value_segment_code
61880         , p_from_combination_id     => l_adr_value_combination_id
61881         , p_value_type_code         => l_adr_value_type_code
61882         , p_transaction_coa_id      => l_adr_transaction_coa_id
61883         , p_accounting_coa_id       => l_adr_accounting_coa_id
61884         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
61885         , p_flex_value_set_id       => l_adr_flex_value_set_id
61886         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
61887         , p_adr_type_code           => 'S'
61888         , p_component_type          => l_component_type
61889         , p_component_code          => l_component_code
61890         , p_component_type_code     => l_component_type_code
61891         , p_component_appl_id       => l_component_appl_id
61892         , p_amb_context_code        => l_amb_context_code
61893         , p_entity_code             => 'AP_PAYMENTS'
61894         , p_event_class_code        => 'PAYMENTS'
61895         , p_side                    => 'NA'
61896         );
61897 
61898   END IF;
61899 
61900    --
61901    --
61902    END IF;
61903 
61904        --
61905        -- Update the line information that should be overwritten
61906        --
61907        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
61908                                          p_header_num   => 1);
61909        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
61910 
61911        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
61912 
61913        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
61914           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
61915        END IF;
61916 
61917       --
61918       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
61919       --
61920       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
61921           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
61922       ELSE
61923           ---------------------------------------------------------------------------------------------------
61924           -- 4262811a Switch Sign
61925           ---------------------------------------------------------------------------------------------------
61926           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
61927           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61928                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61929           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
61930                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61931           -- 5132302
61932           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
61933                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
61934 
61935       END IF;
61936 
61937       -- 4955764
61938       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
61939       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
61940 
61941 
61942       XLA_AE_LINES_PKG.ValidateCurrentLine;
61943       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
61944 
61945       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
61946                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
61947                ,p_balance_type_code => l_balance_type_code);
61948 
61949    END IF;
61950 
61951    -----------------------------------------------------------------------------------------
61952    -- 4262811 Multiperiod Accounting
61953    -----------------------------------------------------------------------------------------
61954      -- No MPA option is assigned.
61955 
61956 
61957 END IF;
61958 END IF;
61959 --
61960 
61961 --
61962 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61963    trace
61964       (p_msg      => 'END of AcctLineType_121'
61965       ,p_level    => C_LEVEL_PROCEDURE
61966       ,p_module   => l_log_module);
61967 END IF;
61968 --
61969 EXCEPTION
61970   WHEN xla_exceptions_pkg.application_exception THEN
61971       RAISE;
61972   WHEN OTHERS THEN
61973        xla_exceptions_pkg.raise_message
61974            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_121');
61975 END AcctLineType_121;
61976 --
61977 
61978 ---------------------------------------
61979 --
61983 ---------------------------------------
61980 -- PRIVATE FUNCTION
61981 --         AcctLineType_122
61982 --
61984 PROCEDURE AcctLineType_122 (
61985   p_application_id        IN NUMBER
61986  ,p_event_id              IN NUMBER
61987  ,p_calculate_acctd_flag  IN VARCHAR2
61988  ,p_calculate_g_l_flag    IN VARCHAR2
61989  ,p_actual_flag           IN OUT VARCHAR2
61990  ,p_balance_type_code     OUT VARCHAR2
61991  ,p_gain_or_loss_ref      OUT VARCHAR2
61992  
61993 --Payment Currency Code
61994  , p_source_13            IN VARCHAR2
61995 --Accounting Reversal Indicator
61996  , p_source_53            IN VARCHAR2
61997 --Distribution Link Type
61998  , p_source_55            IN VARCHAR2
61999 --Override Accounted Amount Indicator
62000  , p_source_80            IN VARCHAR2
62001  , p_source_80_meaning    IN VARCHAR2
62002 --Third Party Type
62003  , p_source_83            IN VARCHAR2
62004 --Business Flow Accounts Payable Application Identifier
62005  , p_source_91            IN NUMBER
62006 --When to Account for Payment Option
62007  , p_source_97            IN VARCHAR2
62008 --Payment Distribution Type
62009  , p_source_98            IN VARCHAR2
62010  , p_source_98_meaning    IN VARCHAR2
62011 --Payment Distribution Amount
62012  , p_source_99            IN NUMBER
62013 --Business Flow Payment Distribution Type
62014  , p_source_100            IN VARCHAR2
62015 --Business Flow Payment Entity Code
62016  , p_source_101            IN VARCHAR2
62017 --Business Flow Payment Distribution Identifier
62018  , p_source_102            IN NUMBER
62019 --Business Flow Payment Identifier
62020  , p_source_103            IN NUMBER
62021 --Payment Distribution Identifier
62022  , p_source_104            IN NUMBER
62023 --Payment Distribution Reversed Identifier
62024  , p_source_112            IN NUMBER
62025 --Payment Maturity Date
62026  , p_source_114            IN DATE
62027 --Payment Distribution (Payment Rate) Ledger Amount
62028  , p_source_115            IN NUMBER
62029 )
62030 IS
62031 
62032 l_component_type              VARCHAR2(80);
62033 l_component_code              VARCHAR2(30);
62034 l_component_type_code         VARCHAR2(1);
62035 l_component_appl_id           INTEGER;
62036 l_amb_context_code            VARCHAR2(30);
62037 l_entity_code                 VARCHAR2(30);
62038 l_event_class_code            VARCHAR2(30);
62039 l_ae_header_id                NUMBER;
62040 l_event_type_code             VARCHAR2(30);
62041 l_line_definition_code        VARCHAR2(30);
62042 l_line_definition_owner_code  VARCHAR2(1);
62043 --
62044 -- adr variables
62045 l_segment                     VARCHAR2(30);
62046 l_ccid                        NUMBER;
62047 l_adr_transaction_coa_id      NUMBER;
62048 l_adr_accounting_coa_id       NUMBER;
62049 l_adr_flexfield_segment_code  VARCHAR2(30);
62050 l_adr_flex_value_set_id       NUMBER;
62051 l_adr_value_type_code         VARCHAR2(30);
62052 l_adr_value_combination_id    NUMBER;
62053 l_adr_value_segment_code      VARCHAR2(30);
62054 
62055 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
62056 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
62057 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
62058 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
62059 
62060 -- 4262811 Variables ------------------------------------------------------------------------------------------
62061 l_entered_amt_idx             NUMBER;
62062 l_accted_amt_idx              NUMBER;
62063 l_acc_rev_flag                VARCHAR2(1);
62064 l_accrual_line_num            NUMBER;
62065 l_tmp_amt                     NUMBER;
62066 l_acc_rev_natural_side_code   VARCHAR2(1);
62067 
62068 l_num_entries                 NUMBER;
62069 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
62070 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
62071 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
62072 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
62073 l_recog_line_1                NUMBER;
62074 l_recog_line_2                NUMBER;
62075 
62076 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
62077 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
62078 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
62079 
62080 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
62081 
62082 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
62083 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
62084 
62085 ---------------------------------------------------------------------------------------------------------------
62086 
62087 
62088 --
62089 -- bulk performance
62090 --
62091 l_balance_type_code           VARCHAR2(1);
62092 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
62093 l_log_module                  VARCHAR2(240);
62094 
62095 --
62096 -- Upgrade strategy
62097 --
62098 l_actual_upg_option           VARCHAR2(1);
62099 l_enc_upg_option           VARCHAR2(1);
62100 
62101 --
62102 BEGIN
62103 --
62104 IF g_log_enabled THEN
62105       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_122';
62106 END IF;
62107 --
62108 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62109 
62110       trace
62114 
62111          (p_msg      => 'BEGIN of AcctLineType_122'
62112          ,p_level    => C_LEVEL_PROCEDURE
62113          ,p_module   => l_log_module);
62115 END IF;
62116 --
62117 l_component_type             := 'AMB_JLT';
62118 l_component_code             := 'AP_FUTURE_DATED_PMT_MAT';
62119 l_component_type_code        := 'S';
62120 l_component_appl_id          :=  200;
62121 l_amb_context_code           := 'DEFAULT';
62122 l_entity_code                := 'AP_PAYMENTS';
62123 l_event_class_code           := 'FUTURE DATED PAYMENTS';
62124 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
62125 l_line_definition_owner_code := 'S';
62126 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
62127 --
62128 l_balance_type_code          := 'A';
62129 l_segment                     := NULL;
62130 l_ccid                        := NULL;
62131 l_adr_transaction_coa_id      := NULL;
62132 l_adr_accounting_coa_id       := NULL;
62133 l_adr_flexfield_segment_code  := NULL;
62134 l_adr_flex_value_set_id       := NULL;
62135 l_adr_value_type_code         := NULL;
62136 l_adr_value_combination_id    := NULL;
62137 l_adr_value_segment_code      := NULL;
62138 
62139 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
62140 l_bflow_class_code           := 'AP_FUTURE_DTD_PMT';    -- 4219869 Business Flow
62141 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
62142 l_budgetary_control_flag     := 'N';
62143 
62144 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
62145 l_bflow_applied_to_amt       := NULL; -- 5132302
62146 l_entered_amt_idx            := NULL;          -- 4262811
62147 l_accted_amt_idx             := NULL;          -- 4262811
62148 l_acc_rev_flag               := NULL;          -- 4262811
62149 l_accrual_line_num           := NULL;          -- 4262811
62150 l_tmp_amt                    := NULL;          -- 4262811
62151 --
62152  
62153 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
62154     l_balance_type_code <> 'B' THEN
62155 IF NVL(p_source_97,'
62156 ') <>  'CLEAR_CLEAR' AND 
62157 p_source_114 IS NOT NULL AND 
62158 (NVL(p_source_98,'
62159 ') =  'CASH' OR 
62160 NVL(p_source_98,'
62161 ') =  'ROUNDING')
62162  THEN 
62163 
62164    --
62165    XLA_AE_LINES_PKG.SetNewLine;
62166 
62167    p_balance_type_code          := l_balance_type_code;
62168    -- set the flag so later we will know whether the gain loss line needs to be created
62169    
62170    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
62171      p_actual_flag :='A';
62172    END IF;
62173 
62174    --
62175    -- bulk performance
62176    --
62177    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
62178                                       p_header_num   => 0); -- 4262811
62179    --
62180    -- set accounting line options
62181    --
62182    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
62183            p_natural_side_code          => 'D'
62184          , p_gain_or_loss_flag          => 'N'
62185          , p_gl_transfer_mode_code      => 'S'
62186          , p_acct_entry_type_code       => 'A'
62187          , p_switch_side_flag           => 'Y'
62188          , p_merge_duplicate_code       => 'A'
62189          );
62190    --
62191    l_acc_rev_natural_side_code := 'C';  -- 4262811
62192    -- 
62193    --
62194    -- set accounting line type info
62195    --
62196    xla_ae_lines_pkg.SetAcctLineType
62197       (p_component_type             => l_component_type
62198       ,p_event_type_code            => l_event_type_code
62199       ,p_line_definition_owner_code => l_line_definition_owner_code
62200       ,p_line_definition_code       => l_line_definition_code
62201       ,p_accounting_line_code       => l_component_code
62202       ,p_accounting_line_type_code  => l_component_type_code
62203       ,p_accounting_line_appl_id    => l_component_appl_id
62204       ,p_amb_context_code           => l_amb_context_code
62205       ,p_entity_code                => l_entity_code
62206       ,p_event_class_code           => l_event_class_code);
62207    --
62208    -- set accounting class
62209    --
62210    xla_ae_lines_pkg.SetAcctClass(
62211            p_accounting_class_code  => 'FUTURE_DATED_PMT'
62212          , p_ae_header_id           => l_ae_header_id
62213          );
62214 
62215    --
62216    -- set rounding class
62217    --
62218    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
62219                       'FUTURE_DATED_PMT';
62220 
62221    --
62222    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
62223    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
62224    --
62225    -- bulk performance
62226    --
62227    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
62228 
62229    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
62230       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
62231 
62232    -- 4955764
62233    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62234       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
62235 
62236    -- 4458381 Public Sector Enh
62237    
62238    --
62242    l_accted_amt_idx  := 11;
62239    -- set accounting attributes for the line type
62240    --
62241    l_entered_amt_idx := 9;
62243    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
62244    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
62245    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
62246    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
62247    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
62248    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
62249    l_rec_acct_attrs.array_char_value(3)  := p_source_100;
62250    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
62251    l_rec_acct_attrs.array_char_value(4)  := p_source_101;
62252    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
62253    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_102);
62254    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
62255    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_103);
62256    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
62257    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
62258    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
62259    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
62260    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
62261    l_rec_acct_attrs.array_num_value(9)  := p_source_99;
62262    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
62263    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
62264    l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
62265    l_rec_acct_attrs.array_num_value(11)  := p_source_115;
62266    l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
62267    l_rec_acct_attrs.array_char_value(12)  := p_source_80;
62268    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
62269    l_rec_acct_attrs.array_char_value(13)  := p_source_83;
62270    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
62271    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_112);
62272    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
62273    l_rec_acct_attrs.array_char_value(15)  := p_source_55;
62274 
62275    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
62276    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
62277 
62278    ---------------------------------------------------------------------------------------------------------------
62279    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
62280    ---------------------------------------------------------------------------------------------------------------
62281    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
62282 
62283    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62284    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62285 
62286    IF xla_accounting_cache_pkg.GetValueChar
62287          (p_source_code         => 'LEDGER_CATEGORY_CODE'
62288          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
62289    AND l_bflow_method_code = 'PRIOR_ENTRY'
62290 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
62291    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
62292          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
62293        )
62294    THEN
62295          xla_ae_lines_pkg.BflowUpgEntry
62296            (p_business_method_code    => l_bflow_method_code
62297            ,p_business_class_code     => l_bflow_class_code
62298            ,p_balance_type            => l_balance_type_code);
62299    ELSE
62300       NULL;
62301 XLA_AE_LINES_PKG.business_flow_validation(
62302                                 p_business_method_code     => l_bflow_method_code
62303                                ,p_business_class_code      => l_bflow_class_code
62304                                ,p_inherit_description_flag => l_inherit_desc_flag);
62305    END IF;
62306 
62307    --
62308    -- call analytical criteria
62309    --
62310    -- Inherited Analytical Criteria for business flow method of Prior Entry.
62311    --
62312    -- call description
62313    --
62314    -- No description or it is inherited.
62315    --
62316    -- call ADRs
62317    -- Bug 4922099
62318    --
62319    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62320         (NVL(l_actual_upg_option, 'N') = 'O') OR
62321         (NVL(l_enc_upg_option, 'N') = 'O')
62322       )
62323    THEN
62324    NULL;
62325    --
62326    --
62327    
62328    --
62329    --
62330    END IF;
62331    --
62332    -- Bug 4922099
62333    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
62334           (NVL(l_enc_upg_option, 'N') = 'O')
62335         ) AND
62336         (l_bflow_method_code = 'PRIOR_ENTRY')
62337       )
62338    THEN
62339       IF
62340       --
62341       1 = 1
62342       --
62343       THEN
62344       xla_accounting_err_pkg.build_message
62345                                     (p_appli_s_name            => 'XLA'
62346                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62350                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
62347                                     ,p_token_1                 => 'LINE_NUMBER'
62348                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
62349                                     ,p_token_2                 => 'LINE_TYPE_NAME'
62351                                                                              l_component_type
62352                                                                             ,l_component_code
62353                                                                             ,l_component_type_code
62354                                                                             ,l_component_appl_id
62355                                                                             ,l_amb_context_code
62356                                                                             ,l_entity_code
62357                                                                             ,l_event_class_code
62358                                                                            )
62359                                     ,p_token_3                 => 'OWNER'
62360                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
62361                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
62362                                                                           ,p_lookup_code    => l_component_type_code
62363                                                                          )
62364                                     ,p_token_4                 => 'PRODUCT_NAME'
62365                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
62366                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
62367                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
62368                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
62369                                     ,p_ae_header_id            =>  NULL
62370                                        );
62371 
62372         IF (C_LEVEL_ERROR>= g_log_level) THEN
62373                  trace
62374                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62375                       ,p_level    => C_LEVEL_ERROR
62376                       ,p_module   => l_log_module);
62377         END IF;
62378       END IF;
62379    END IF;
62380    --
62381    --
62382    ------------------------------------------------------------------------------------------------
62383    -- 4219869 Business Flow
62384    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
62385    -- Prior Entry.  Currently, the following code is always generated.
62386    ------------------------------------------------------------------------------------------------
62387    -- No ValidateCurrentLine for business flow method of Prior Entry
62388 
62389    ------------------------------------------------------------------------------------
62390    -- 4219869 Business Flow
62391    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
62392    ------------------------------------------------------------------------------------
62393    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62394 
62395    ----------------------------------------------------------------------------------
62396    -- 4219869 Business Flow
62397    -- Update journal entry status -- Need to generate this within IF <condition>
62398    ----------------------------------------------------------------------------------
62399    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62400          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
62401          ,p_balance_type_code => l_balance_type_code
62402          );
62403 
62404    -------------------------------------------------------------------------------------------
62405    -- 4262811 - Generate the Accrual Reversal lines
62406    -------------------------------------------------------------------------------------------
62407    BEGIN
62408       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
62409                               (g_array_event(p_event_id).array_value_num('header_index'));
62410       IF l_acc_rev_flag IS NULL THEN
62411          l_acc_rev_flag := 'N';
62412       END IF;
62413    EXCEPTION
62414       WHEN OTHERS THEN
62415          l_acc_rev_flag := 'N';
62416    END;
62417    --
62418    IF (l_acc_rev_flag = 'Y') THEN
62419 
62420        -- 4645092  ------------------------------------------------------------------------------
62421        -- To allow MPA report to determine if it should generate report process
62422        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
62423        ------------------------------------------------------------------------------------------
62424 
62425        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
62426        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
62427    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
62428    -- call ADRs
62429    -- Bug 4922099
62430    --
62431    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62432         (NVL(l_actual_upg_option, 'N') = 'O') OR
62433         (NVL(l_enc_upg_option, 'N') = 'O')
62434       )
62435    THEN
62436    NULL;
62437    --
62438    --
62439    
62440    --
62441    --
62442    END IF;
62443 
62444        --
62448                                          p_header_num   => 1);
62445        -- Update the line information that should be overwritten
62446        --
62447        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
62449        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
62450 
62451        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
62452 
62453        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
62454           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
62455        END IF;
62456 
62457       --
62458       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
62459       --
62460       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
62461           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
62462       ELSE
62463           ---------------------------------------------------------------------------------------------------
62464           -- 4262811a Switch Sign
62465           ---------------------------------------------------------------------------------------------------
62466           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
62467           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62468                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62469           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
62470                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62471           -- 5132302
62472           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
62473                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
62474 
62475       END IF;
62476 
62477       -- 4955764
62478       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62479       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
62480 
62481 
62482       XLA_AE_LINES_PKG.ValidateCurrentLine;
62483       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62484 
62485       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62486                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
62487                ,p_balance_type_code => l_balance_type_code);
62488 
62489    END IF;
62490 
62491    -----------------------------------------------------------------------------------------
62492    -- 4262811 Multiperiod Accounting
62493    -----------------------------------------------------------------------------------------
62494      -- No MPA option is assigned.
62495 
62496 
62497 END IF;
62498 END IF;
62499 --
62500 
62501 --
62502 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62503    trace
62504       (p_msg      => 'END of AcctLineType_122'
62505       ,p_level    => C_LEVEL_PROCEDURE
62506       ,p_module   => l_log_module);
62507 END IF;
62508 --
62509 EXCEPTION
62510   WHEN xla_exceptions_pkg.application_exception THEN
62511       RAISE;
62512   WHEN OTHERS THEN
62513        xla_exceptions_pkg.raise_message
62514            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_122');
62515 END AcctLineType_122;
62516 --
62517 
62518 ---------------------------------------
62519 --
62520 -- PRIVATE FUNCTION
62521 --         AcctLineType_123
62522 --
62523 ---------------------------------------
62524 PROCEDURE AcctLineType_123 (
62525   p_application_id        IN NUMBER
62526  ,p_event_id              IN NUMBER
62527  ,p_calculate_acctd_flag  IN VARCHAR2
62528  ,p_calculate_g_l_flag    IN VARCHAR2
62529  ,p_actual_flag           IN OUT VARCHAR2
62530  ,p_balance_type_code     OUT VARCHAR2
62531  ,p_gain_or_loss_ref      OUT VARCHAR2
62532  
62533 --Payment Currency Code
62534  , p_source_13            IN VARCHAR2
62535 --Automatic Offsets Value
62536  , p_source_15            IN VARCHAR2
62537  , p_source_15_meaning    IN VARCHAR2
62538 --Invoice Distribution Account
62539  , p_source_30            IN NUMBER
62540 --Payables Options Rounding Account
62541  , p_source_49            IN NUMBER
62542 --Accounting Reversal Indicator
62543  , p_source_53            IN VARCHAR2
62544 --Distribution Link Type
62545  , p_source_55            IN VARCHAR2
62546 --Override Accounted Amount Indicator
62547  , p_source_80            IN VARCHAR2
62548  , p_source_80_meaning    IN VARCHAR2
62549 --Third Party Type
62550  , p_source_83            IN VARCHAR2
62551 --Business Flow Accounts Payable Application Identifier
62552  , p_source_91            IN NUMBER
62553 --When to Account for Payment Option
62554  , p_source_97            IN VARCHAR2
62555 --Payment Distribution Type
62556  , p_source_98            IN VARCHAR2
62557  , p_source_98_meaning    IN VARCHAR2
62558 --Payment Distribution Amount
62559  , p_source_99            IN NUMBER
62560 --Business Flow Payment Distribution Type
62561  , p_source_100            IN VARCHAR2
62562 --Business Flow Payment Entity Code
62563  , p_source_101            IN VARCHAR2
62564 --Business Flow Payment Distribution Identifier
62565  , p_source_102            IN NUMBER
62569  , p_source_104            IN NUMBER
62566 --Business Flow Payment Identifier
62567  , p_source_103            IN NUMBER
62568 --Payment Distribution Identifier
62570 --Payment Supplier Identifier
62571  , p_source_110            IN NUMBER
62572 --Payment Supplier Site Identifier
62573  , p_source_111            IN NUMBER
62574 --Payment Distribution Reversed Identifier
62575  , p_source_112            IN NUMBER
62576 --Payment Distribution (Payment Rate) Ledger Amount
62577  , p_source_115            IN NUMBER
62578 --Payment Exchange Date
62579  , p_source_117            IN DATE
62580 --Payment Exchange Rate
62581  , p_source_118            IN NUMBER
62582 --Payment Exchange Rate Type
62583  , p_source_119            IN VARCHAR2
62584 )
62585 IS
62586 
62587 l_component_type              VARCHAR2(80);
62588 l_component_code              VARCHAR2(30);
62589 l_component_type_code         VARCHAR2(1);
62590 l_component_appl_id           INTEGER;
62591 l_amb_context_code            VARCHAR2(30);
62592 l_entity_code                 VARCHAR2(30);
62593 l_event_class_code            VARCHAR2(30);
62594 l_ae_header_id                NUMBER;
62595 l_event_type_code             VARCHAR2(30);
62596 l_line_definition_code        VARCHAR2(30);
62597 l_line_definition_owner_code  VARCHAR2(1);
62598 --
62599 -- adr variables
62600 l_segment                     VARCHAR2(30);
62601 l_ccid                        NUMBER;
62602 l_adr_transaction_coa_id      NUMBER;
62603 l_adr_accounting_coa_id       NUMBER;
62604 l_adr_flexfield_segment_code  VARCHAR2(30);
62605 l_adr_flex_value_set_id       NUMBER;
62606 l_adr_value_type_code         VARCHAR2(30);
62607 l_adr_value_combination_id    NUMBER;
62608 l_adr_value_segment_code      VARCHAR2(30);
62609 
62610 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
62611 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
62612 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
62613 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
62614 
62615 -- 4262811 Variables ------------------------------------------------------------------------------------------
62616 l_entered_amt_idx             NUMBER;
62617 l_accted_amt_idx              NUMBER;
62618 l_acc_rev_flag                VARCHAR2(1);
62619 l_accrual_line_num            NUMBER;
62620 l_tmp_amt                     NUMBER;
62621 l_acc_rev_natural_side_code   VARCHAR2(1);
62622 
62623 l_num_entries                 NUMBER;
62624 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
62625 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
62626 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
62627 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
62628 l_recog_line_1                NUMBER;
62629 l_recog_line_2                NUMBER;
62630 
62631 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
62632 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
62633 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
62634 
62635 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
62636 
62637 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
62638 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
62639 
62640 ---------------------------------------------------------------------------------------------------------------
62641 
62642 
62643 --
62644 -- bulk performance
62645 --
62646 l_balance_type_code           VARCHAR2(1);
62647 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
62648 l_log_module                  VARCHAR2(240);
62649 
62650 --
62651 -- Upgrade strategy
62652 --
62653 l_actual_upg_option           VARCHAR2(1);
62654 l_enc_upg_option           VARCHAR2(1);
62655 
62656 --
62657 BEGIN
62658 --
62659 IF g_log_enabled THEN
62660       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_123';
62661 END IF;
62662 --
62663 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62664 
62665       trace
62666          (p_msg      => 'BEGIN of AcctLineType_123'
62667          ,p_level    => C_LEVEL_PROCEDURE
62668          ,p_module   => l_log_module);
62669 
62670 END IF;
62671 --
62672 l_component_type             := 'AMB_JLT';
62673 l_component_code             := 'AP_FUTURE_PMT_ROUNDING_MAT';
62674 l_component_type_code        := 'S';
62675 l_component_appl_id          :=  200;
62676 l_amb_context_code           := 'DEFAULT';
62677 l_entity_code                := 'AP_PAYMENTS';
62678 l_event_class_code           := 'FUTURE DATED PAYMENTS';
62679 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
62680 l_line_definition_owner_code := 'S';
62681 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
62682 --
62683 l_balance_type_code          := 'A';
62684 l_segment                     := NULL;
62685 l_ccid                        := NULL;
62686 l_adr_transaction_coa_id      := NULL;
62687 l_adr_accounting_coa_id       := NULL;
62688 l_adr_flexfield_segment_code  := NULL;
62689 l_adr_flex_value_set_id       := NULL;
62690 l_adr_value_type_code         := NULL;
62691 l_adr_value_combination_id    := NULL;
62692 l_adr_value_segment_code      := NULL;
62693 
62694 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
62695 l_bflow_class_code           := '';    -- 4219869 Business Flow
62696 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
62700 l_bflow_applied_to_amt       := NULL; -- 5132302
62697 l_budgetary_control_flag     := 'N';
62698 
62699 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
62701 l_entered_amt_idx            := NULL;          -- 4262811
62702 l_accted_amt_idx             := NULL;          -- 4262811
62703 l_acc_rev_flag               := NULL;          -- 4262811
62704 l_accrual_line_num           := NULL;          -- 4262811
62705 l_tmp_amt                    := NULL;          -- 4262811
62706 --
62707  
62708 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
62709     l_balance_type_code <> 'B' THEN
62710 IF NVL(p_source_97,'
62711 ') <>  'CLEAR_CLEAR' AND 
62712 NVL(p_source_98,'
62713 ') =  'FUTURE PAYMENT ROUNDING'
62714  THEN 
62715 
62716    --
62717    XLA_AE_LINES_PKG.SetNewLine;
62718 
62719    p_balance_type_code          := l_balance_type_code;
62720    -- set the flag so later we will know whether the gain loss line needs to be created
62721    
62722    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
62723      p_actual_flag :='A';
62724    END IF;
62725 
62726    --
62727    -- bulk performance
62728    --
62729    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
62730                                       p_header_num   => 0); -- 4262811
62731    --
62732    -- set accounting line options
62733    --
62734    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
62735            p_natural_side_code          => 'D'
62736          , p_gain_or_loss_flag          => 'N'
62737          , p_gl_transfer_mode_code      => 'S'
62738          , p_acct_entry_type_code       => 'A'
62739          , p_switch_side_flag           => 'Y'
62740          , p_merge_duplicate_code       => 'A'
62741          );
62742    --
62743    l_acc_rev_natural_side_code := 'C';  -- 4262811
62744    -- 
62745    --
62746    -- set accounting line type info
62747    --
62748    xla_ae_lines_pkg.SetAcctLineType
62749       (p_component_type             => l_component_type
62750       ,p_event_type_code            => l_event_type_code
62751       ,p_line_definition_owner_code => l_line_definition_owner_code
62752       ,p_line_definition_code       => l_line_definition_code
62753       ,p_accounting_line_code       => l_component_code
62754       ,p_accounting_line_type_code  => l_component_type_code
62755       ,p_accounting_line_appl_id    => l_component_appl_id
62756       ,p_amb_context_code           => l_amb_context_code
62757       ,p_entity_code                => l_entity_code
62758       ,p_event_class_code           => l_event_class_code);
62759    --
62760    -- set accounting class
62761    --
62762    xla_ae_lines_pkg.SetAcctClass(
62763            p_accounting_class_code  => 'ROUNDING'
62764          , p_ae_header_id           => l_ae_header_id
62765          );
62766 
62767    --
62768    -- set rounding class
62769    --
62770    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
62771                       'ROUNDING';
62772 
62773    --
62774    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
62775    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
62776    --
62777    -- bulk performance
62778    --
62779    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
62780 
62781    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
62782       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
62783 
62784    -- 4955764
62785    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
62786       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
62787 
62788    -- 4458381 Public Sector Enh
62789    
62790    --
62791    -- set accounting attributes for the line type
62792    --
62793    l_entered_amt_idx := 9;
62794    l_accted_amt_idx  := 14;
62795    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
62796    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
62797    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
62798    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
62799    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
62800    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
62801    l_rec_acct_attrs.array_char_value(3)  := p_source_100;
62802    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
62803    l_rec_acct_attrs.array_char_value(4)  := p_source_101;
62804    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
62805    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_102);
62806    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
62807    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_103);
62808    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
62809    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
62810    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
62811    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
62812    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
62813    l_rec_acct_attrs.array_num_value(9)  := p_source_99;
62814    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
62818    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
62815    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
62816    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
62817    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
62819    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
62820    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
62821    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
62822    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
62823    l_rec_acct_attrs.array_num_value(14)  := p_source_115;
62824    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
62825    l_rec_acct_attrs.array_char_value(15)  := p_source_80;
62826    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
62827    l_rec_acct_attrs.array_num_value(16)  := p_source_110;
62828    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
62829    l_rec_acct_attrs.array_num_value(17)  := p_source_111;
62830    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
62831    l_rec_acct_attrs.array_char_value(18)  := p_source_83;
62832    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
62833    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_112);
62834    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
62835    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
62836 
62837    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
62838    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
62839 
62840    ---------------------------------------------------------------------------------------------------------------
62841    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
62842    ---------------------------------------------------------------------------------------------------------------
62843    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
62844 
62845    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62846    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
62847 
62848    IF xla_accounting_cache_pkg.GetValueChar
62849          (p_source_code         => 'LEDGER_CATEGORY_CODE'
62850          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
62851    AND l_bflow_method_code = 'PRIOR_ENTRY'
62852 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
62853    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
62854          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
62855        )
62856    THEN
62857          xla_ae_lines_pkg.BflowUpgEntry
62858            (p_business_method_code    => l_bflow_method_code
62859            ,p_business_class_code     => l_bflow_class_code
62860            ,p_balance_type            => l_balance_type_code);
62861    ELSE
62862       NULL;
62863 -- No business flow processing for business flow method of NONE.
62864    END IF;
62865 
62866    --
62867    -- call analytical criteria
62868    --
62869    
62870    --
62871    -- call description
62872    --
62873    -- No description or it is inherited.
62874    --
62875    -- call ADRs
62876    -- Bug 4922099
62877    --
62878    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
62879         (NVL(l_actual_upg_option, 'N') = 'O') OR
62880         (NVL(l_enc_upg_option, 'N') = 'O')
62881       )
62882    THEN
62883    NULL;
62884    --
62885    --
62886    
62887   l_ccid := AcctDerRule_41(
62888            p_application_id           => p_application_id
62889          , p_ae_header_id             => l_ae_header_id 
62890 , p_source_15 => p_source_15
62891 , p_source_15_meaning => p_source_15_meaning
62892 , p_source_30 => p_source_30
62893 , p_source_49 => p_source_49
62894          , x_transaction_coa_id       => l_adr_transaction_coa_id
62895          , x_accounting_coa_id        => l_adr_accounting_coa_id
62896          , x_value_type_code          => l_adr_value_type_code
62897          , p_side                     => 'NA'
62898    );
62899 
62900    xla_ae_lines_pkg.set_ccid(
62901     p_code_combination_id          => l_ccid
62902   , p_value_type_code              => l_adr_value_type_code
62903   , p_transaction_coa_id           => l_adr_transaction_coa_id
62904   , p_accounting_coa_id            => l_adr_accounting_coa_id
62905   , p_adr_code                     => 'AP_ROUNDING'
62906   , p_adr_type_code                => 'S'
62907   , p_component_type               => l_component_type
62908   , p_component_code               => l_component_code
62909   , p_component_type_code          => l_component_type_code
62910   , p_component_appl_id            => l_component_appl_id
62911   , p_amb_context_code             => l_amb_context_code
62912   , p_side                         => 'NA'
62913   );
62914 
62915 
62916    --
62917    --
62918    END IF;
62919    --
62920    -- Bug 4922099
62921    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
62922           (NVL(l_enc_upg_option, 'N') = 'O')
62923         ) AND
62924         (l_bflow_method_code = 'PRIOR_ENTRY')
62925       )
62926    THEN
62927       IF
62928       --
62929       1 = 2
62930       --
62931       THEN
62932       xla_accounting_err_pkg.build_message
62936                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
62933                                     (p_appli_s_name            => 'XLA'
62934                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62935                                     ,p_token_1                 => 'LINE_NUMBER'
62937                                     ,p_token_2                 => 'LINE_TYPE_NAME'
62938                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
62939                                                                              l_component_type
62940                                                                             ,l_component_code
62941                                                                             ,l_component_type_code
62942                                                                             ,l_component_appl_id
62943                                                                             ,l_amb_context_code
62944                                                                             ,l_entity_code
62945                                                                             ,l_event_class_code
62946                                                                            )
62947                                     ,p_token_3                 => 'OWNER'
62948                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
62949                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
62950                                                                           ,p_lookup_code    => l_component_type_code
62951                                                                          )
62952                                     ,p_token_4                 => 'PRODUCT_NAME'
62953                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
62954                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
62955                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
62956                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
62957                                     ,p_ae_header_id            =>  NULL
62958                                        );
62959 
62960         IF (C_LEVEL_ERROR>= g_log_level) THEN
62961                  trace
62962                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
62963                       ,p_level    => C_LEVEL_ERROR
62964                       ,p_module   => l_log_module);
62965         END IF;
62966       END IF;
62967    END IF;
62968    --
62969    --
62970    ------------------------------------------------------------------------------------------------
62971    -- 4219869 Business Flow
62972    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
62973    -- Prior Entry.  Currently, the following code is always generated.
62974    ------------------------------------------------------------------------------------------------
62975    XLA_AE_LINES_PKG.ValidateCurrentLine;
62976 
62977    ------------------------------------------------------------------------------------
62978    -- 4219869 Business Flow
62979    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
62980    ------------------------------------------------------------------------------------
62981    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
62982 
62983    ----------------------------------------------------------------------------------
62984    -- 4219869 Business Flow
62985    -- Update journal entry status -- Need to generate this within IF <condition>
62986    ----------------------------------------------------------------------------------
62987    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
62988          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
62989          ,p_balance_type_code => l_balance_type_code
62990          );
62991 
62992    -------------------------------------------------------------------------------------------
62993    -- 4262811 - Generate the Accrual Reversal lines
62994    -------------------------------------------------------------------------------------------
62995    BEGIN
62996       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
62997                               (g_array_event(p_event_id).array_value_num('header_index'));
62998       IF l_acc_rev_flag IS NULL THEN
62999          l_acc_rev_flag := 'N';
63000       END IF;
63001    EXCEPTION
63002       WHEN OTHERS THEN
63003          l_acc_rev_flag := 'N';
63004    END;
63005    --
63006    IF (l_acc_rev_flag = 'Y') THEN
63007 
63008        -- 4645092  ------------------------------------------------------------------------------
63009        -- To allow MPA report to determine if it should generate report process
63010        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
63011        ------------------------------------------------------------------------------------------
63012 
63013        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
63014        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
63015    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
63016    -- call ADRs
63017    -- Bug 4922099
63018    --
63019    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63023    THEN
63020         (NVL(l_actual_upg_option, 'N') = 'O') OR
63021         (NVL(l_enc_upg_option, 'N') = 'O')
63022       )
63024    NULL;
63025    --
63026    --
63027    
63028   l_ccid := AcctDerRule_41(
63029            p_application_id           => p_application_id
63030          , p_ae_header_id             => l_ae_header_id 
63031 , p_source_15 => p_source_15
63032 , p_source_15_meaning => p_source_15_meaning
63033 , p_source_30 => p_source_30
63034 , p_source_49 => p_source_49
63035          , x_transaction_coa_id       => l_adr_transaction_coa_id
63036          , x_accounting_coa_id        => l_adr_accounting_coa_id
63037          , x_value_type_code          => l_adr_value_type_code
63038          , p_side                     => 'NA'
63039    );
63040 
63041    xla_ae_lines_pkg.set_ccid(
63042     p_code_combination_id          => l_ccid
63043   , p_value_type_code              => l_adr_value_type_code
63044   , p_transaction_coa_id           => l_adr_transaction_coa_id
63045   , p_accounting_coa_id            => l_adr_accounting_coa_id
63046   , p_adr_code                     => 'AP_ROUNDING'
63047   , p_adr_type_code                => 'S'
63048   , p_component_type               => l_component_type
63049   , p_component_code               => l_component_code
63050   , p_component_type_code          => l_component_type_code
63051   , p_component_appl_id            => l_component_appl_id
63052   , p_amb_context_code             => l_amb_context_code
63053   , p_side                         => 'NA'
63054   );
63055 
63056 
63057    --
63058    --
63059    END IF;
63060 
63061        --
63062        -- Update the line information that should be overwritten
63063        --
63064        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
63065                                          p_header_num   => 1);
63066        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
63067 
63068        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
63069 
63070        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
63071           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
63072        END IF;
63073 
63074       --
63075       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
63076       --
63077       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
63078           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
63079       ELSE
63080           ---------------------------------------------------------------------------------------------------
63081           -- 4262811a Switch Sign
63082           ---------------------------------------------------------------------------------------------------
63083           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
63084           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63085                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63086           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63087                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63088           -- 5132302
63089           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
63090                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63091 
63092       END IF;
63093 
63094       -- 4955764
63095       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63096       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
63097 
63098 
63099       XLA_AE_LINES_PKG.ValidateCurrentLine;
63100       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63101 
63102       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63103                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
63104                ,p_balance_type_code => l_balance_type_code);
63105 
63106    END IF;
63107 
63108    -----------------------------------------------------------------------------------------
63109    -- 4262811 Multiperiod Accounting
63110    -----------------------------------------------------------------------------------------
63111      -- No MPA option is assigned.
63112 
63113 
63114 END IF;
63115 END IF;
63116 --
63117 
63118 --
63119 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63120    trace
63121       (p_msg      => 'END of AcctLineType_123'
63122       ,p_level    => C_LEVEL_PROCEDURE
63123       ,p_module   => l_log_module);
63124 END IF;
63125 --
63126 EXCEPTION
63127   WHEN xla_exceptions_pkg.application_exception THEN
63128       RAISE;
63129   WHEN OTHERS THEN
63130        xla_exceptions_pkg.raise_message
63131            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_123');
63132 END AcctLineType_123;
63133 --
63134 
63135 ---------------------------------------
63136 --
63137 -- PRIVATE FUNCTION
63138 --         AcctLineType_124
63139 --
63140 ---------------------------------------
63141 PROCEDURE AcctLineType_124 (
63142   p_application_id        IN NUMBER
63143  ,p_event_id              IN NUMBER
63144  ,p_calculate_acctd_flag  IN VARCHAR2
63148  ,p_gain_or_loss_ref      OUT VARCHAR2
63145  ,p_calculate_g_l_flag    IN VARCHAR2
63146  ,p_actual_flag           IN OUT VARCHAR2
63147  ,p_balance_type_code     OUT VARCHAR2
63149  
63150 --Payment Currency Code
63151  , p_source_13            IN VARCHAR2
63152 --Automatic Offsets Value
63153  , p_source_15            IN VARCHAR2
63154  , p_source_15_meaning    IN VARCHAR2
63155 --Invoice Distribution Account
63156  , p_source_30            IN NUMBER
63157 --Internal Realized Gain Account
63158  , p_source_36            IN NUMBER
63159 --Bank Gain Account
63160  , p_source_37            IN NUMBER
63161 --Accounting Reversal Indicator
63162  , p_source_53            IN VARCHAR2
63163 --Distribution Link Type
63164  , p_source_55            IN VARCHAR2
63165 --Override Accounted Amount Indicator
63166  , p_source_80            IN VARCHAR2
63167  , p_source_80_meaning    IN VARCHAR2
63168 --Third Party Type
63169  , p_source_83            IN VARCHAR2
63170 --Invoice Distribution Tax Line Identifier
63171  , p_source_86            IN NUMBER
63172 --Invoice Distribution Summary Tax Line Identifier
63173  , p_source_88            IN NUMBER
63174 --Business Flow Accounts Payable Application Identifier
63175  , p_source_91            IN NUMBER
63176 --When to Account for Payment Option
63177  , p_source_97            IN VARCHAR2
63178 --Payment Distribution Type
63179  , p_source_98            IN VARCHAR2
63180  , p_source_98_meaning    IN VARCHAR2
63181 --Payment Distribution Amount
63182  , p_source_99            IN NUMBER
63183 --Business Flow Payment Distribution Type
63184  , p_source_100            IN VARCHAR2
63185 --Business Flow Payment Entity Code
63186  , p_source_101            IN VARCHAR2
63187 --Business Flow Payment Distribution Identifier
63188  , p_source_102            IN NUMBER
63189 --Business Flow Payment Identifier
63190  , p_source_103            IN NUMBER
63191 --Payment Distribution Identifier
63192  , p_source_104            IN NUMBER
63193 --Cleared Exchange Date
63194  , p_source_106            IN DATE
63195 --Cleared Exchange Rate
63196  , p_source_107            IN NUMBER
63197 --Cleared Exchange Rate Type
63198  , p_source_108            IN VARCHAR2
63199 --Payment Supplier Identifier
63200  , p_source_110            IN NUMBER
63201 --Payment Supplier Site Identifier
63202  , p_source_111            IN NUMBER
63203 --Payment Distribution Reversed Identifier
63204  , p_source_112            IN NUMBER
63205 --Gain or Loss Indicator between Invoice and Clearing
63206  , p_source_151            IN VARCHAR2
63207 --Invoice/Clearing Ledger Amount Difference
63208  , p_source_152            IN NUMBER
63209 )
63210 IS
63211 
63212 l_component_type              VARCHAR2(80);
63213 l_component_code              VARCHAR2(30);
63214 l_component_type_code         VARCHAR2(1);
63215 l_component_appl_id           INTEGER;
63216 l_amb_context_code            VARCHAR2(30);
63217 l_entity_code                 VARCHAR2(30);
63218 l_event_class_code            VARCHAR2(30);
63219 l_ae_header_id                NUMBER;
63220 l_event_type_code             VARCHAR2(30);
63221 l_line_definition_code        VARCHAR2(30);
63222 l_line_definition_owner_code  VARCHAR2(1);
63223 --
63224 -- adr variables
63225 l_segment                     VARCHAR2(30);
63226 l_ccid                        NUMBER;
63227 l_adr_transaction_coa_id      NUMBER;
63228 l_adr_accounting_coa_id       NUMBER;
63229 l_adr_flexfield_segment_code  VARCHAR2(30);
63230 l_adr_flex_value_set_id       NUMBER;
63231 l_adr_value_type_code         VARCHAR2(30);
63232 l_adr_value_combination_id    NUMBER;
63233 l_adr_value_segment_code      VARCHAR2(30);
63234 
63235 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
63236 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
63237 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
63238 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
63239 
63240 -- 4262811 Variables ------------------------------------------------------------------------------------------
63241 l_entered_amt_idx             NUMBER;
63242 l_accted_amt_idx              NUMBER;
63243 l_acc_rev_flag                VARCHAR2(1);
63244 l_accrual_line_num            NUMBER;
63245 l_tmp_amt                     NUMBER;
63246 l_acc_rev_natural_side_code   VARCHAR2(1);
63247 
63248 l_num_entries                 NUMBER;
63249 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
63250 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
63251 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
63252 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
63253 l_recog_line_1                NUMBER;
63254 l_recog_line_2                NUMBER;
63255 
63256 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
63257 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
63258 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
63259 
63260 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
63261 
63262 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
63263 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
63264 
63265 ---------------------------------------------------------------------------------------------------------------
63266 
63267 
63268 --
63272 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
63269 -- bulk performance
63270 --
63271 l_balance_type_code           VARCHAR2(1);
63273 l_log_module                  VARCHAR2(240);
63274 
63275 --
63276 -- Upgrade strategy
63277 --
63278 l_actual_upg_option           VARCHAR2(1);
63279 l_enc_upg_option           VARCHAR2(1);
63280 
63281 --
63282 BEGIN
63283 --
63284 IF g_log_enabled THEN
63285       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_124';
63286 END IF;
63287 --
63288 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63289 
63290       trace
63291          (p_msg      => 'BEGIN of AcctLineType_124'
63292          ,p_level    => C_LEVEL_PROCEDURE
63293          ,p_module   => l_log_module);
63294 
63295 END IF;
63296 --
63297 l_component_type             := 'AMB_JLT';
63298 l_component_code             := 'AP_GAIN_INV_CLEAR_BY_PMT_CLEAR';
63299 l_component_type_code        := 'S';
63300 l_component_appl_id          :=  200;
63301 l_amb_context_code           := 'DEFAULT';
63302 l_entity_code                := 'AP_PAYMENTS';
63303 l_event_class_code           := 'RECONCILED PAYMENTS';
63304 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
63305 l_line_definition_owner_code := 'S';
63306 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
63307 --
63308 l_balance_type_code          := 'A';
63309 l_segment                     := NULL;
63310 l_ccid                        := NULL;
63311 l_adr_transaction_coa_id      := NULL;
63312 l_adr_accounting_coa_id       := NULL;
63313 l_adr_flexfield_segment_code  := NULL;
63314 l_adr_flex_value_set_id       := NULL;
63315 l_adr_value_type_code         := NULL;
63316 l_adr_value_combination_id    := NULL;
63317 l_adr_value_segment_code      := NULL;
63318 
63319 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
63320 l_bflow_class_code           := '';    -- 4219869 Business Flow
63321 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
63322 l_budgetary_control_flag     := 'N';
63323 
63324 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
63325 l_bflow_applied_to_amt       := NULL; -- 5132302
63326 l_entered_amt_idx            := NULL;          -- 4262811
63327 l_accted_amt_idx             := NULL;          -- 4262811
63328 l_acc_rev_flag               := NULL;          -- 4262811
63329 l_accrual_line_num           := NULL;          -- 4262811
63330 l_tmp_amt                    := NULL;          -- 4262811
63331 --
63332 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
63333             (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
63334                return;
63335   END IF;
63336   
63337 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
63338     l_balance_type_code <> 'B' THEN
63339 IF (NVL(p_source_97,'
63340 ') =  'CLEAR_CLEAR' OR 
63341 NVL(p_source_97,'
63342 ') =  'ALWAYS_CLEAR') AND 
63343 NVL(p_source_98,'
63344 ') <>  'EXCHANGE RATE VARIANCE' AND 
63345 NVL(p_source_98,'
63346 ') <>  'BANK CHARGE' AND 
63347 NVL(p_source_98,'
63348 ') <>  'BANK ERROR' AND 
63349 NVL(p_source_98,'
63350 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
63351 NVL(p_source_151,'
63352 ') =  'GAIN' AND 
63353 NVL(p_source_98,'
63354 ') <>  'AWT'
63355  THEN 
63356 
63357    --
63358    XLA_AE_LINES_PKG.SetNewLine;
63359 
63360    p_balance_type_code          := l_balance_type_code;
63361    -- set the flag so later we will know whether the gain loss line needs to be created
63362    
63363    IF(l_balance_type_code = 'A' ) THEN
63364      p_actual_flag :='G';
63365    END IF;
63366 
63367    --
63368    -- bulk performance
63369    --
63370    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
63371                                       p_header_num   => 0); -- 4262811
63372    --
63373    -- set accounting line options
63374    --
63375    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
63376            p_natural_side_code          => 'C'
63377          , p_gain_or_loss_flag          => 'Y'
63378          , p_gl_transfer_mode_code      => 'S'
63379          , p_acct_entry_type_code       => 'A'
63380          , p_switch_side_flag           => 'Y'
63381          , p_merge_duplicate_code       => 'A'
63382          );
63383    --
63384    l_acc_rev_natural_side_code := 'D';  -- 4262811
63385    -- 
63386    --
63387    -- set accounting line type info
63388    --
63389    xla_ae_lines_pkg.SetAcctLineType
63390       (p_component_type             => l_component_type
63391       ,p_event_type_code            => l_event_type_code
63392       ,p_line_definition_owner_code => l_line_definition_owner_code
63393       ,p_line_definition_code       => l_line_definition_code
63394       ,p_accounting_line_code       => l_component_code
63395       ,p_accounting_line_type_code  => l_component_type_code
63396       ,p_accounting_line_appl_id    => l_component_appl_id
63397       ,p_amb_context_code           => l_amb_context_code
63398       ,p_entity_code                => l_entity_code
63399       ,p_event_class_code           => l_event_class_code);
63400    --
63401    -- set accounting class
63402    --
63403    xla_ae_lines_pkg.SetAcctClass(
63404            p_accounting_class_code  => 'GAIN'
63405          , p_ae_header_id           => l_ae_header_id
63406          );
63407 
63411    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
63408    --
63409    -- set rounding class
63410    --
63412                       'GAIN';
63413 
63414    --
63415    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
63416    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
63417    --
63418    -- bulk performance
63419    --
63420    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
63421 
63422    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
63423       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
63424 
63425    -- 4955764
63426    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63427       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
63428 
63429    -- 4458381 Public Sector Enh
63430    
63431    --
63432    -- set accounting attributes for the line type
63433    --
63434    l_entered_amt_idx := 10;
63435    l_accted_amt_idx  := 15;
63436    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
63437    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
63438    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
63439    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
63440    l_rec_acct_attrs.array_num_value(2)  := p_source_99;
63441    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
63442    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
63443    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
63444    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
63445    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
63446    l_rec_acct_attrs.array_char_value(5)  := p_source_101;
63447    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
63448    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
63449    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
63450    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
63451    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
63452    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
63453    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
63454    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
63455    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
63456    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
63457    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
63458    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
63459    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
63460    l_rec_acct_attrs.array_date_value(12)  := p_source_106;
63461    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
63462    l_rec_acct_attrs.array_num_value(13)  := p_source_107;
63463    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
63464    l_rec_acct_attrs.array_char_value(14)  := p_source_108;
63465    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
63466    l_rec_acct_attrs.array_num_value(15)  := p_source_152;
63467    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
63468    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
63469    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
63470    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
63471    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
63472    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
63473    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
63474    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
63475    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
63476    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
63477    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
63478    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
63479    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
63480    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
63481    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
63482    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
63483    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
63484    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
63485 
63486    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
63487    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
63488 
63489    ---------------------------------------------------------------------------------------------------------------
63490    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
63491    ---------------------------------------------------------------------------------------------------------------
63492    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
63493 
63494    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63495    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
63496 
63497    IF xla_accounting_cache_pkg.GetValueChar
63498          (p_source_code         => 'LEDGER_CATEGORY_CODE'
63502    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
63499          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
63500    AND l_bflow_method_code = 'PRIOR_ENTRY'
63501 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
63503          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
63504        )
63505    THEN
63506          xla_ae_lines_pkg.BflowUpgEntry
63507            (p_business_method_code    => l_bflow_method_code
63508            ,p_business_class_code     => l_bflow_class_code
63509            ,p_balance_type            => l_balance_type_code);
63510    ELSE
63511       NULL;
63512 -- No business flow processing for business flow method of NONE.
63513    END IF;
63514 
63515    --
63516    -- call analytical criteria
63517    --
63518    
63519    --
63520    -- call description
63521    --
63522    -- No description or it is inherited.
63523    --
63524    -- call ADRs
63525    -- Bug 4922099
63526    --
63527    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63528         (NVL(l_actual_upg_option, 'N') = 'O') OR
63529         (NVL(l_enc_upg_option, 'N') = 'O')
63530       )
63531    THEN
63532    NULL;
63533    --
63534    --
63535    
63536   l_ccid := AcctDerRule_38(
63537            p_application_id           => p_application_id
63538          , p_ae_header_id             => l_ae_header_id 
63539 , p_source_15 => p_source_15
63540 , p_source_15_meaning => p_source_15_meaning
63541 , p_source_30 => p_source_30
63542 , p_source_36 => p_source_36
63543 , p_source_37 => p_source_37
63544          , x_transaction_coa_id       => l_adr_transaction_coa_id
63545          , x_accounting_coa_id        => l_adr_accounting_coa_id
63546          , x_value_type_code          => l_adr_value_type_code
63547          , p_side                     => 'NA'
63548    );
63549 
63550    xla_ae_lines_pkg.set_ccid(
63551     p_code_combination_id          => l_ccid
63552   , p_value_type_code              => l_adr_value_type_code
63553   , p_transaction_coa_id           => l_adr_transaction_coa_id
63554   , p_accounting_coa_id            => l_adr_accounting_coa_id
63555   , p_adr_code                     => 'AP_REAL_GAIN'
63556   , p_adr_type_code                => 'S'
63557   , p_component_type               => l_component_type
63558   , p_component_code               => l_component_code
63559   , p_component_type_code          => l_component_type_code
63560   , p_component_appl_id            => l_component_appl_id
63561   , p_amb_context_code             => l_amb_context_code
63562   , p_side                         => 'NA'
63563   );
63564 
63565 
63566    l_segment := AcctDerRule_22(
63567            p_application_id           => p_application_id
63568          , p_ae_header_id             => l_ae_header_id 
63569 , p_source_15 => p_source_15
63570 , p_source_15_meaning => p_source_15_meaning
63571 , p_source_30 => p_source_30
63572          , x_transaction_coa_id       => l_adr_transaction_coa_id
63573          , x_accounting_coa_id        => l_adr_accounting_coa_id
63574          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
63575          , x_flex_value_set_id        => l_adr_flex_value_set_id
63576          , x_value_type_code          => l_adr_value_type_code
63577          , x_value_combination_id     => l_adr_value_combination_id
63578          , x_value_segment_code       => l_adr_value_segment_code
63579          , p_side                     => 'NA'
63580          , p_override_seg_flag        => 'Y'
63581    );
63582 
63583    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
63584 
63585       xla_ae_lines_pkg.set_segment(
63586           p_to_segment_code         => 'GL_BALANCING'
63587         , p_segment_value           => l_segment
63588         , p_from_segment_code       => l_adr_value_segment_code
63589         , p_from_combination_id     => l_adr_value_combination_id
63590         , p_value_type_code         => l_adr_value_type_code
63591         , p_transaction_coa_id      => l_adr_transaction_coa_id
63592         , p_accounting_coa_id       => l_adr_accounting_coa_id
63593         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
63594         , p_flex_value_set_id       => l_adr_flex_value_set_id
63595         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
63596         , p_adr_type_code           => 'S'
63597         , p_component_type          => l_component_type
63598         , p_component_code          => l_component_code
63599         , p_component_type_code     => l_component_type_code
63600         , p_component_appl_id       => l_component_appl_id
63601         , p_amb_context_code        => l_amb_context_code
63602         , p_entity_code             => 'AP_PAYMENTS'
63603         , p_event_class_code        => 'RECONCILED PAYMENTS'
63604         , p_side                    => 'NA'
63605         );
63606 
63607   END IF;
63608 
63609    l_segment := AcctDerRule_17(
63610            p_application_id           => p_application_id
63611          , p_ae_header_id             => l_ae_header_id 
63612 , p_source_15 => p_source_15
63613 , p_source_15_meaning => p_source_15_meaning
63614 , p_source_36 => p_source_36
63615 , p_source_37 => p_source_37
63616          , x_transaction_coa_id       => l_adr_transaction_coa_id
63617          , x_accounting_coa_id        => l_adr_accounting_coa_id
63618          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
63622          , x_value_segment_code       => l_adr_value_segment_code
63619          , x_flex_value_set_id        => l_adr_flex_value_set_id
63620          , x_value_type_code          => l_adr_value_type_code
63621          , x_value_combination_id     => l_adr_value_combination_id
63623          , p_side                     => 'NA'
63624          , p_override_seg_flag        => 'Y'
63625    );
63626 
63627    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
63628 
63629       xla_ae_lines_pkg.set_segment(
63630           p_to_segment_code         => 'GL_ACCOUNT'
63631         , p_segment_value           => l_segment
63632         , p_from_segment_code       => l_adr_value_segment_code
63633         , p_from_combination_id     => l_adr_value_combination_id
63634         , p_value_type_code         => l_adr_value_type_code
63635         , p_transaction_coa_id      => l_adr_transaction_coa_id
63636         , p_accounting_coa_id       => l_adr_accounting_coa_id
63637         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
63638         , p_flex_value_set_id       => l_adr_flex_value_set_id
63639         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
63640         , p_adr_type_code           => 'S'
63641         , p_component_type          => l_component_type
63642         , p_component_code          => l_component_code
63643         , p_component_type_code     => l_component_type_code
63644         , p_component_appl_id       => l_component_appl_id
63645         , p_amb_context_code        => l_amb_context_code
63646         , p_entity_code             => 'AP_PAYMENTS'
63647         , p_event_class_code        => 'RECONCILED PAYMENTS'
63648         , p_side                    => 'NA'
63649         );
63650 
63651   END IF;
63652 
63653    --
63654    --
63655    END IF;
63656    --
63657    -- Bug 4922099
63658    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
63659           (NVL(l_enc_upg_option, 'N') = 'O')
63660         ) AND
63661         (l_bflow_method_code = 'PRIOR_ENTRY')
63662       )
63663    THEN
63664       IF
63665       --
63666       1 = 2
63667       --
63668       THEN
63669       xla_accounting_err_pkg.build_message
63670                                     (p_appli_s_name            => 'XLA'
63671                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63672                                     ,p_token_1                 => 'LINE_NUMBER'
63673                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
63674                                     ,p_token_2                 => 'LINE_TYPE_NAME'
63675                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
63676                                                                              l_component_type
63677                                                                             ,l_component_code
63678                                                                             ,l_component_type_code
63679                                                                             ,l_component_appl_id
63680                                                                             ,l_amb_context_code
63681                                                                             ,l_entity_code
63682                                                                             ,l_event_class_code
63683                                                                            )
63684                                     ,p_token_3                 => 'OWNER'
63685                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
63686                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
63687                                                                           ,p_lookup_code    => l_component_type_code
63688                                                                          )
63689                                     ,p_token_4                 => 'PRODUCT_NAME'
63690                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
63691                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
63692                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
63693                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
63694                                     ,p_ae_header_id            =>  NULL
63695                                        );
63696 
63697         IF (C_LEVEL_ERROR>= g_log_level) THEN
63698                  trace
63699                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
63700                       ,p_level    => C_LEVEL_ERROR
63701                       ,p_module   => l_log_module);
63702         END IF;
63703       END IF;
63704    END IF;
63705    --
63706    --
63707    ------------------------------------------------------------------------------------------------
63708    -- 4219869 Business Flow
63709    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
63710    -- Prior Entry.  Currently, the following code is always generated.
63711    ------------------------------------------------------------------------------------------------
63712    XLA_AE_LINES_PKG.ValidateCurrentLine;
63713 
63714    ------------------------------------------------------------------------------------
63718    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63715    -- 4219869 Business Flow
63716    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
63717    ------------------------------------------------------------------------------------
63719 
63720    ----------------------------------------------------------------------------------
63721    -- 4219869 Business Flow
63722    -- Update journal entry status -- Need to generate this within IF <condition>
63723    ----------------------------------------------------------------------------------
63724    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63725          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
63726          ,p_balance_type_code => l_balance_type_code
63727          );
63728 
63729    -------------------------------------------------------------------------------------------
63730    -- 4262811 - Generate the Accrual Reversal lines
63731    -------------------------------------------------------------------------------------------
63732    BEGIN
63733       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
63734                               (g_array_event(p_event_id).array_value_num('header_index'));
63735       IF l_acc_rev_flag IS NULL THEN
63736          l_acc_rev_flag := 'N';
63737       END IF;
63738    EXCEPTION
63739       WHEN OTHERS THEN
63740          l_acc_rev_flag := 'N';
63741    END;
63742    --
63743    IF (l_acc_rev_flag = 'Y') THEN
63744 
63745        -- 4645092  ------------------------------------------------------------------------------
63746        -- To allow MPA report to determine if it should generate report process
63747        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
63748        ------------------------------------------------------------------------------------------
63749 
63750        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
63751        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
63752    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
63753    -- call ADRs
63754    -- Bug 4922099
63755    --
63756    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
63757         (NVL(l_actual_upg_option, 'N') = 'O') OR
63758         (NVL(l_enc_upg_option, 'N') = 'O')
63759       )
63760    THEN
63761    NULL;
63762    --
63763    --
63764    
63765   l_ccid := AcctDerRule_38(
63766            p_application_id           => p_application_id
63767          , p_ae_header_id             => l_ae_header_id 
63768 , p_source_15 => p_source_15
63769 , p_source_15_meaning => p_source_15_meaning
63770 , p_source_30 => p_source_30
63771 , p_source_36 => p_source_36
63772 , p_source_37 => p_source_37
63773          , x_transaction_coa_id       => l_adr_transaction_coa_id
63774          , x_accounting_coa_id        => l_adr_accounting_coa_id
63775          , x_value_type_code          => l_adr_value_type_code
63776          , p_side                     => 'NA'
63777    );
63778 
63779    xla_ae_lines_pkg.set_ccid(
63780     p_code_combination_id          => l_ccid
63781   , p_value_type_code              => l_adr_value_type_code
63782   , p_transaction_coa_id           => l_adr_transaction_coa_id
63783   , p_accounting_coa_id            => l_adr_accounting_coa_id
63784   , p_adr_code                     => 'AP_REAL_GAIN'
63785   , p_adr_type_code                => 'S'
63786   , p_component_type               => l_component_type
63787   , p_component_code               => l_component_code
63788   , p_component_type_code          => l_component_type_code
63789   , p_component_appl_id            => l_component_appl_id
63790   , p_amb_context_code             => l_amb_context_code
63791   , p_side                         => 'NA'
63792   );
63793 
63794 
63795    l_segment := AcctDerRule_22(
63796            p_application_id           => p_application_id
63797          , p_ae_header_id             => l_ae_header_id 
63798 , p_source_15 => p_source_15
63799 , p_source_15_meaning => p_source_15_meaning
63800 , p_source_30 => p_source_30
63801          , x_transaction_coa_id       => l_adr_transaction_coa_id
63802          , x_accounting_coa_id        => l_adr_accounting_coa_id
63803          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
63804          , x_flex_value_set_id        => l_adr_flex_value_set_id
63805          , x_value_type_code          => l_adr_value_type_code
63806          , x_value_combination_id     => l_adr_value_combination_id
63807          , x_value_segment_code       => l_adr_value_segment_code
63808          , p_side                     => 'NA'
63809          , p_override_seg_flag        => 'Y'
63810    );
63811 
63812    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
63813 
63814       xla_ae_lines_pkg.set_segment(
63815           p_to_segment_code         => 'GL_BALANCING'
63816         , p_segment_value           => l_segment
63817         , p_from_segment_code       => l_adr_value_segment_code
63818         , p_from_combination_id     => l_adr_value_combination_id
63819         , p_value_type_code         => l_adr_value_type_code
63820         , p_transaction_coa_id      => l_adr_transaction_coa_id
63821         , p_accounting_coa_id       => l_adr_accounting_coa_id
63822         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
63823         , p_flex_value_set_id       => l_adr_flex_value_set_id
63824         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
63825         , p_adr_type_code           => 'S'
63826         , p_component_type          => l_component_type
63827         , p_component_code          => l_component_code
63831         , p_entity_code             => 'AP_PAYMENTS'
63828         , p_component_type_code     => l_component_type_code
63829         , p_component_appl_id       => l_component_appl_id
63830         , p_amb_context_code        => l_amb_context_code
63832         , p_event_class_code        => 'RECONCILED PAYMENTS'
63833         , p_side                    => 'NA'
63834         );
63835 
63836   END IF;
63837 
63838    l_segment := AcctDerRule_17(
63839            p_application_id           => p_application_id
63840          , p_ae_header_id             => l_ae_header_id 
63841 , p_source_15 => p_source_15
63842 , p_source_15_meaning => p_source_15_meaning
63843 , p_source_36 => p_source_36
63844 , p_source_37 => p_source_37
63845          , x_transaction_coa_id       => l_adr_transaction_coa_id
63846          , x_accounting_coa_id        => l_adr_accounting_coa_id
63847          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
63848          , x_flex_value_set_id        => l_adr_flex_value_set_id
63849          , x_value_type_code          => l_adr_value_type_code
63850          , x_value_combination_id     => l_adr_value_combination_id
63851          , x_value_segment_code       => l_adr_value_segment_code
63852          , p_side                     => 'NA'
63853          , p_override_seg_flag        => 'Y'
63854    );
63855 
63856    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
63857 
63858       xla_ae_lines_pkg.set_segment(
63859           p_to_segment_code         => 'GL_ACCOUNT'
63860         , p_segment_value           => l_segment
63861         , p_from_segment_code       => l_adr_value_segment_code
63862         , p_from_combination_id     => l_adr_value_combination_id
63863         , p_value_type_code         => l_adr_value_type_code
63864         , p_transaction_coa_id      => l_adr_transaction_coa_id
63865         , p_accounting_coa_id       => l_adr_accounting_coa_id
63866         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
63867         , p_flex_value_set_id       => l_adr_flex_value_set_id
63868         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
63869         , p_adr_type_code           => 'S'
63870         , p_component_type          => l_component_type
63871         , p_component_code          => l_component_code
63872         , p_component_type_code     => l_component_type_code
63873         , p_component_appl_id       => l_component_appl_id
63874         , p_amb_context_code        => l_amb_context_code
63875         , p_entity_code             => 'AP_PAYMENTS'
63876         , p_event_class_code        => 'RECONCILED PAYMENTS'
63877         , p_side                    => 'NA'
63878         );
63879 
63880   END IF;
63881 
63882    --
63883    --
63884    END IF;
63885 
63886        --
63887        -- Update the line information that should be overwritten
63888        --
63889        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
63890                                          p_header_num   => 1);
63891        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
63892 
63893        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
63894 
63895        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
63896           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
63897        END IF;
63898 
63899       --
63900       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
63901       --
63902       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
63903           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
63904       ELSE
63905           ---------------------------------------------------------------------------------------------------
63906           -- 4262811a Switch Sign
63907           ---------------------------------------------------------------------------------------------------
63908           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
63909           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63910                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63911           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
63912                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63913           -- 5132302
63914           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
63915                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
63916 
63917       END IF;
63918 
63919       -- 4955764
63920       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
63921       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
63922 
63923 
63924       XLA_AE_LINES_PKG.ValidateCurrentLine;
63925       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
63926 
63927       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
63928                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
63929                ,p_balance_type_code => l_balance_type_code);
63930 
63931    END IF;
63932 
63933    -----------------------------------------------------------------------------------------
63937 
63934    -- 4262811 Multiperiod Accounting
63935    -----------------------------------------------------------------------------------------
63936      -- No MPA option is assigned.
63938 
63939 END IF;
63940 END IF;
63941 --
63942 
63943 --
63944 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63945    trace
63946       (p_msg      => 'END of AcctLineType_124'
63947       ,p_level    => C_LEVEL_PROCEDURE
63948       ,p_module   => l_log_module);
63949 END IF;
63950 --
63951 EXCEPTION
63952   WHEN xla_exceptions_pkg.application_exception THEN
63953       RAISE;
63954   WHEN OTHERS THEN
63955        xla_exceptions_pkg.raise_message
63956            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_124');
63957 END AcctLineType_124;
63958 --
63959 
63960 ---------------------------------------
63961 --
63962 -- PRIVATE FUNCTION
63963 --         AcctLineType_125
63964 --
63965 ---------------------------------------
63966 PROCEDURE AcctLineType_125 (
63967   p_application_id        IN NUMBER
63968  ,p_event_id              IN NUMBER
63969  ,p_calculate_acctd_flag  IN VARCHAR2
63970  ,p_calculate_g_l_flag    IN VARCHAR2
63971  ,p_actual_flag           IN OUT VARCHAR2
63972  ,p_balance_type_code     OUT VARCHAR2
63973  ,p_gain_or_loss_ref      OUT VARCHAR2
63974  
63975 --Automatic Offsets Value
63976  , p_source_15            IN VARCHAR2
63977  , p_source_15_meaning    IN VARCHAR2
63978 --Invoice Distribution Account
63979  , p_source_30            IN NUMBER
63980 --Internal Realized Gain Account
63981  , p_source_36            IN NUMBER
63982 --Bank Gain Account
63983  , p_source_37            IN NUMBER
63984 --Internal Realized Loss Account
63985  , p_source_38            IN NUMBER
63986 --Bank Loss Account
63987  , p_source_39            IN NUMBER
63988 --Accounting Reversal Indicator
63989  , p_source_53            IN VARCHAR2
63990 --Distribution Link Type
63991  , p_source_55            IN VARCHAR2
63992 --Override Accounted Amount Indicator
63993  , p_source_80            IN VARCHAR2
63994  , p_source_80_meaning    IN VARCHAR2
63995 --Third Party Type
63996  , p_source_83            IN VARCHAR2
63997 --Invoice Distribution Tax Line Identifier
63998  , p_source_86            IN NUMBER
63999 --Invoice Distribution Summary Tax Line Identifier
64000  , p_source_88            IN NUMBER
64001 --Business Flow Accounts Payable Application Identifier
64002  , p_source_91            IN NUMBER
64003 --When to Account for Payment Option
64004  , p_source_97            IN VARCHAR2
64005 --Payment Distribution Type
64006  , p_source_98            IN VARCHAR2
64007  , p_source_98_meaning    IN VARCHAR2
64008 --Payment Distribution Amount
64009  , p_source_99            IN NUMBER
64010 --Business Flow Payment Distribution Type
64011  , p_source_100            IN VARCHAR2
64012 --Business Flow Payment Entity Code
64013  , p_source_101            IN VARCHAR2
64014 --Business Flow Payment Distribution Identifier
64015  , p_source_102            IN NUMBER
64016 --Business Flow Payment Identifier
64017  , p_source_103            IN NUMBER
64018 --Payment Distribution Identifier
64019  , p_source_104            IN NUMBER
64020 --Payment Supplier Identifier
64021  , p_source_110            IN NUMBER
64022 --Payment Supplier Site Identifier
64023  , p_source_111            IN NUMBER
64024 --Payment Distribution Reversed Identifier
64025  , p_source_112            IN NUMBER
64026 --Payment Maturity Date
64027  , p_source_114            IN DATE
64028 --Invoice/Clearing Ledger Amount Difference
64029  , p_source_152            IN NUMBER
64030 )
64031 IS
64032 
64033 l_component_type              VARCHAR2(80);
64034 l_component_code              VARCHAR2(30);
64035 l_component_type_code         VARCHAR2(1);
64036 l_component_appl_id           INTEGER;
64037 l_amb_context_code            VARCHAR2(30);
64038 l_entity_code                 VARCHAR2(30);
64039 l_event_class_code            VARCHAR2(30);
64040 l_ae_header_id                NUMBER;
64041 l_event_type_code             VARCHAR2(30);
64042 l_line_definition_code        VARCHAR2(30);
64043 l_line_definition_owner_code  VARCHAR2(1);
64044 --
64045 -- adr variables
64046 l_segment                     VARCHAR2(30);
64047 l_ccid                        NUMBER;
64048 l_adr_transaction_coa_id      NUMBER;
64049 l_adr_accounting_coa_id       NUMBER;
64050 l_adr_flexfield_segment_code  VARCHAR2(30);
64051 l_adr_flex_value_set_id       NUMBER;
64052 l_adr_value_type_code         VARCHAR2(30);
64053 l_adr_value_combination_id    NUMBER;
64054 l_adr_value_segment_code      VARCHAR2(30);
64055 
64056 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
64057 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
64058 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
64059 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
64060 
64061 -- 4262811 Variables ------------------------------------------------------------------------------------------
64062 l_entered_amt_idx             NUMBER;
64063 l_accted_amt_idx              NUMBER;
64064 l_acc_rev_flag                VARCHAR2(1);
64065 l_accrual_line_num            NUMBER;
64066 l_tmp_amt                     NUMBER;
64067 l_acc_rev_natural_side_code   VARCHAR2(1);
64068 
64069 l_num_entries                 NUMBER;
64070 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
64071 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
64075 l_recog_line_2                NUMBER;
64072 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
64073 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
64074 l_recog_line_1                NUMBER;
64076 
64077 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
64078 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
64079 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
64080 
64081 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
64082 
64083 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
64084 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
64085 
64086 ---------------------------------------------------------------------------------------------------------------
64087 
64088 
64089 --
64090 -- bulk performance
64091 --
64092 l_balance_type_code           VARCHAR2(1);
64093 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
64094 l_log_module                  VARCHAR2(240);
64095 
64096 --
64097 -- Upgrade strategy
64098 --
64099 l_actual_upg_option           VARCHAR2(1);
64100 l_enc_upg_option           VARCHAR2(1);
64101 
64102 --
64103 BEGIN
64104 --
64105 IF g_log_enabled THEN
64106       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_125';
64107 END IF;
64108 --
64109 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64110 
64111       trace
64112          (p_msg      => 'BEGIN of AcctLineType_125'
64113          ,p_level    => C_LEVEL_PROCEDURE
64114          ,p_module   => l_log_module);
64115 
64116 END IF;
64117 --
64118 l_component_type             := 'AMB_JLT';
64119 l_component_code             := 'AP_GAIN_LOSS_PAY_CLEAR';
64120 l_component_type_code        := 'S';
64121 l_component_appl_id          :=  200;
64122 l_amb_context_code           := 'DEFAULT';
64123 l_entity_code                := 'AP_PAYMENTS';
64124 l_event_class_code           := 'RECONCILED PAYMENTS';
64125 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
64126 l_line_definition_owner_code := 'S';
64127 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
64128 --
64129 l_balance_type_code          := 'A';
64130 l_segment                     := NULL;
64131 l_ccid                        := NULL;
64132 l_adr_transaction_coa_id      := NULL;
64133 l_adr_accounting_coa_id       := NULL;
64134 l_adr_flexfield_segment_code  := NULL;
64135 l_adr_flex_value_set_id       := NULL;
64136 l_adr_value_type_code         := NULL;
64137 l_adr_value_combination_id    := NULL;
64138 l_adr_value_segment_code      := NULL;
64139 
64140 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
64141 l_bflow_class_code           := '';    -- 4219869 Business Flow
64142 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
64143 l_budgetary_control_flag     := 'N';
64144 
64145 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
64146 l_bflow_applied_to_amt       := NULL; -- 5132302
64147 l_entered_amt_idx            := NULL;          -- 4262811
64148 l_accted_amt_idx             := NULL;          -- 4262811
64149 l_acc_rev_flag               := NULL;          -- 4262811
64150 l_accrual_line_num           := NULL;          -- 4262811
64151 l_tmp_amt                    := NULL;          -- 4262811
64152 --
64153 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
64154             (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
64155                return;
64156   END IF;
64157   
64158 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
64159     l_balance_type_code <> 'B' THEN
64160 IF (NVL(p_source_97,'
64161 ') =  'CLEAR_CLEAR' OR 
64162 NVL(p_source_97,'
64163 ') =  'ALWAYS_CLEAR' OR 
64164 NVL(p_source_97,'
64165 ') =  'ALWAYS_ALWAYS') AND 
64166 p_source_114 IS NULL AND 
64167 NVL(p_source_98,'
64168 ') <>  'EXCHANGE RATE VARIANCE' AND 
64169 NVL(p_source_98,'
64170 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
64171 NVL(p_source_98,'
64172 ') <>  'BANK CHARGE' AND 
64173 NVL(p_source_98,'
64174 ') <>  'BANK ERROR'
64175  THEN 
64176 
64177    --
64178    XLA_AE_LINES_PKG.SetNewLine;
64179 
64180    p_balance_type_code          := l_balance_type_code;
64181    -- set the flag so later we will know whether the gain loss line needs to be created
64182    
64183    IF(l_balance_type_code = 'A' ) THEN
64184      p_actual_flag :='G';
64185    END IF;
64186 
64187    --
64188    -- bulk performance
64189    --
64190    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
64191                                       p_header_num   => 0); -- 4262811
64192    --
64193    -- set accounting line options
64194    --
64195    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
64196            p_natural_side_code          => 'G'
64197          , p_gain_or_loss_flag          => 'N'
64198          , p_gl_transfer_mode_code      => 'S'
64199          , p_acct_entry_type_code       => 'A'
64200          , p_switch_side_flag           => ''
64201          , p_merge_duplicate_code       => 'A'
64202          );
64203    --
64207    -- set accounting line type info
64204    l_acc_rev_natural_side_code := 'C';  -- 4262811
64205    -- 
64206    --
64208    --
64209    xla_ae_lines_pkg.SetAcctLineType
64210       (p_component_type             => l_component_type
64211       ,p_event_type_code            => l_event_type_code
64212       ,p_line_definition_owner_code => l_line_definition_owner_code
64213       ,p_line_definition_code       => l_line_definition_code
64214       ,p_accounting_line_code       => l_component_code
64215       ,p_accounting_line_type_code  => l_component_type_code
64216       ,p_accounting_line_appl_id    => l_component_appl_id
64217       ,p_amb_context_code           => l_amb_context_code
64218       ,p_entity_code                => l_entity_code
64219       ,p_event_class_code           => l_event_class_code);
64220    --
64221    -- set accounting class
64222    --
64223    xla_ae_lines_pkg.SetAcctClass(
64224            p_accounting_class_code  => 'EXCHANGE_GAIN_LOSS'
64225          , p_ae_header_id           => l_ae_header_id
64226          );
64227 
64228    --
64229    -- set rounding class
64230    --
64231    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
64232                       'EXCHANGE_GAIN_LOSS';
64233 
64234    --
64235    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
64236    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
64237    --
64238    -- bulk performance
64239    --
64240    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
64241 
64242    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
64243       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
64244 
64245    -- 4955764
64246    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64247       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
64248 
64249    -- 4458381 Public Sector Enh
64250    
64251    --
64252    -- set accounting attributes for the line type
64253    --
64254    l_entered_amt_idx := NULL;
64255    l_accted_amt_idx  := 10;
64256    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
64257    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
64258    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
64259    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
64260    l_rec_acct_attrs.array_num_value(2)  := p_source_99;
64261    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
64262    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
64263    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
64264    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
64265    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
64266    l_rec_acct_attrs.array_char_value(5)  := p_source_101;
64267    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
64268    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
64269    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
64270    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
64271    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
64272    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
64273    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
64274    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
64275    l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
64276    l_rec_acct_attrs.array_num_value(10)  := p_source_152;
64277    l_rec_acct_attrs.array_acct_attr_code(11) := 'OVERRIDE_ACCTD_AMT_FLAG';
64278    l_rec_acct_attrs.array_char_value(11)  := p_source_80;
64279    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_ID';
64280    l_rec_acct_attrs.array_num_value(12)  := p_source_110;
64281    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_SITE_ID';
64282    l_rec_acct_attrs.array_num_value(13)  := p_source_111;
64283    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
64284    l_rec_acct_attrs.array_char_value(14)  := p_source_83;
64285    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
64286    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_112);
64287    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
64288    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
64289    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
64290    l_rec_acct_attrs.array_num_value(17)  := p_source_86;
64291    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
64292    l_rec_acct_attrs.array_num_value(18)  := p_source_86;
64293    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
64294    l_rec_acct_attrs.array_num_value(19)  := p_source_88;
64295 
64296    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
64297    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
64298 
64299    ---------------------------------------------------------------------------------------------------------------
64300    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
64301    ---------------------------------------------------------------------------------------------------------------
64305    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64302    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
64303 
64304    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
64306 
64307    IF xla_accounting_cache_pkg.GetValueChar
64308          (p_source_code         => 'LEDGER_CATEGORY_CODE'
64309          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
64310    AND l_bflow_method_code = 'PRIOR_ENTRY'
64311 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
64312    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
64313          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
64314        )
64315    THEN
64316          xla_ae_lines_pkg.BflowUpgEntry
64317            (p_business_method_code    => l_bflow_method_code
64318            ,p_business_class_code     => l_bflow_class_code
64319            ,p_balance_type            => l_balance_type_code);
64320    ELSE
64321       NULL;
64322 -- No business flow processing for business flow method of NONE.
64323    END IF;
64324 
64325    --
64326    -- call analytical criteria
64327    --
64328    
64329    --
64330    -- call description
64331    --
64332    -- No description or it is inherited.
64333    --
64334    -- call ADRs
64335    -- Bug 4922099
64336    --
64337    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64338         (NVL(l_actual_upg_option, 'N') = 'O') OR
64339         (NVL(l_enc_upg_option, 'N') = 'O')
64340       )
64341    THEN
64342    NULL;
64343    --
64344    --
64345    
64346   l_ccid := AcctDerRule_38(
64347            p_application_id           => p_application_id
64348          , p_ae_header_id             => l_ae_header_id 
64349 , p_source_15 => p_source_15
64350 , p_source_15_meaning => p_source_15_meaning
64351 , p_source_30 => p_source_30
64352 , p_source_36 => p_source_36
64353 , p_source_37 => p_source_37
64354          , x_transaction_coa_id       => l_adr_transaction_coa_id
64355          , x_accounting_coa_id        => l_adr_accounting_coa_id
64356          , x_value_type_code          => l_adr_value_type_code
64357          , p_side                     => 'CREDIT'
64358    );
64359 
64360    xla_ae_lines_pkg.set_ccid(
64361     p_code_combination_id          => l_ccid
64362   , p_value_type_code              => l_adr_value_type_code
64363   , p_transaction_coa_id           => l_adr_transaction_coa_id
64364   , p_accounting_coa_id            => l_adr_accounting_coa_id
64365   , p_adr_code                     => 'AP_REAL_GAIN'
64366   , p_adr_type_code                => 'S'
64367   , p_component_type               => l_component_type
64368   , p_component_code               => l_component_code
64369   , p_component_type_code          => l_component_type_code
64370   , p_component_appl_id            => l_component_appl_id
64371   , p_amb_context_code             => l_amb_context_code
64372   , p_side                         => 'CREDIT'
64373   );
64374 
64375 
64376   l_ccid := AcctDerRule_39(
64377            p_application_id           => p_application_id
64378          , p_ae_header_id             => l_ae_header_id 
64379 , p_source_15 => p_source_15
64380 , p_source_15_meaning => p_source_15_meaning
64381 , p_source_30 => p_source_30
64382 , p_source_38 => p_source_38
64383 , p_source_39 => p_source_39
64384          , x_transaction_coa_id       => l_adr_transaction_coa_id
64385          , x_accounting_coa_id        => l_adr_accounting_coa_id
64386          , x_value_type_code          => l_adr_value_type_code
64387          , p_side                     => 'DEBIT'
64388    );
64389 
64390    xla_ae_lines_pkg.set_ccid(
64391     p_code_combination_id          => l_ccid
64392   , p_value_type_code              => l_adr_value_type_code
64393   , p_transaction_coa_id           => l_adr_transaction_coa_id
64394   , p_accounting_coa_id            => l_adr_accounting_coa_id
64395   , p_adr_code                     => 'AP_REAL_LOSS'
64396   , p_adr_type_code                => 'S'
64397   , p_component_type               => l_component_type
64398   , p_component_code               => l_component_code
64399   , p_component_type_code          => l_component_type_code
64400   , p_component_appl_id            => l_component_appl_id
64401   , p_amb_context_code             => l_amb_context_code
64402   , p_side                         => 'DEBIT'
64403   );
64404 
64405 
64406    l_segment := AcctDerRule_22(
64407            p_application_id           => p_application_id
64408          , p_ae_header_id             => l_ae_header_id 
64409 , p_source_15 => p_source_15
64410 , p_source_15_meaning => p_source_15_meaning
64411 , p_source_30 => p_source_30
64412          , x_transaction_coa_id       => l_adr_transaction_coa_id
64413          , x_accounting_coa_id        => l_adr_accounting_coa_id
64414          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
64415          , x_flex_value_set_id        => l_adr_flex_value_set_id
64416          , x_value_type_code          => l_adr_value_type_code
64417          , x_value_combination_id     => l_adr_value_combination_id
64418          , x_value_segment_code       => l_adr_value_segment_code
64419          , p_side                     => 'ALL'
64420          , p_override_seg_flag        => 'Y'
64421    );
64422 
64426           p_to_segment_code         => 'GL_BALANCING'
64423    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
64424 
64425       xla_ae_lines_pkg.set_segment(
64427         , p_segment_value           => l_segment
64428         , p_from_segment_code       => l_adr_value_segment_code
64429         , p_from_combination_id     => l_adr_value_combination_id
64430         , p_value_type_code         => l_adr_value_type_code
64431         , p_transaction_coa_id      => l_adr_transaction_coa_id
64432         , p_accounting_coa_id       => l_adr_accounting_coa_id
64433         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
64434         , p_flex_value_set_id       => l_adr_flex_value_set_id
64435         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
64436         , p_adr_type_code           => 'S'
64437         , p_component_type          => l_component_type
64438         , p_component_code          => l_component_code
64439         , p_component_type_code     => l_component_type_code
64440         , p_component_appl_id       => l_component_appl_id
64441         , p_amb_context_code        => l_amb_context_code
64442         , p_entity_code             => 'AP_PAYMENTS'
64443         , p_event_class_code        => 'RECONCILED PAYMENTS'
64444         , p_side                    => 'ALL'
64445         );
64446 
64447   END IF;
64448 
64449    l_segment := AcctDerRule_17(
64450            p_application_id           => p_application_id
64451          , p_ae_header_id             => l_ae_header_id 
64452 , p_source_15 => p_source_15
64453 , p_source_15_meaning => p_source_15_meaning
64454 , p_source_36 => p_source_36
64455 , p_source_37 => p_source_37
64456          , x_transaction_coa_id       => l_adr_transaction_coa_id
64457          , x_accounting_coa_id        => l_adr_accounting_coa_id
64458          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
64459          , x_flex_value_set_id        => l_adr_flex_value_set_id
64460          , x_value_type_code          => l_adr_value_type_code
64461          , x_value_combination_id     => l_adr_value_combination_id
64462          , x_value_segment_code       => l_adr_value_segment_code
64463          , p_side                     => 'CREDIT'
64464          , p_override_seg_flag        => 'Y'
64465    );
64466 
64467    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
64468 
64469       xla_ae_lines_pkg.set_segment(
64470           p_to_segment_code         => 'GL_ACCOUNT'
64471         , p_segment_value           => l_segment
64472         , p_from_segment_code       => l_adr_value_segment_code
64473         , p_from_combination_id     => l_adr_value_combination_id
64474         , p_value_type_code         => l_adr_value_type_code
64475         , p_transaction_coa_id      => l_adr_transaction_coa_id
64476         , p_accounting_coa_id       => l_adr_accounting_coa_id
64477         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
64478         , p_flex_value_set_id       => l_adr_flex_value_set_id
64479         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
64480         , p_adr_type_code           => 'S'
64481         , p_component_type          => l_component_type
64482         , p_component_code          => l_component_code
64483         , p_component_type_code     => l_component_type_code
64484         , p_component_appl_id       => l_component_appl_id
64485         , p_amb_context_code        => l_amb_context_code
64486         , p_entity_code             => 'AP_PAYMENTS'
64487         , p_event_class_code        => 'RECONCILED PAYMENTS'
64488         , p_side                    => 'CREDIT'
64489         );
64490 
64491   END IF;
64492 
64493    l_segment := AcctDerRule_18(
64494            p_application_id           => p_application_id
64495          , p_ae_header_id             => l_ae_header_id 
64496 , p_source_15 => p_source_15
64497 , p_source_15_meaning => p_source_15_meaning
64498 , p_source_38 => p_source_38
64499 , p_source_39 => p_source_39
64500          , x_transaction_coa_id       => l_adr_transaction_coa_id
64501          , x_accounting_coa_id        => l_adr_accounting_coa_id
64502          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
64503          , x_flex_value_set_id        => l_adr_flex_value_set_id
64504          , x_value_type_code          => l_adr_value_type_code
64505          , x_value_combination_id     => l_adr_value_combination_id
64506          , x_value_segment_code       => l_adr_value_segment_code
64507          , p_side                     => 'DEBIT'
64508          , p_override_seg_flag        => 'Y'
64509    );
64510 
64511    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
64512 
64513       xla_ae_lines_pkg.set_segment(
64514           p_to_segment_code         => 'GL_ACCOUNT'
64515         , p_segment_value           => l_segment
64516         , p_from_segment_code       => l_adr_value_segment_code
64517         , p_from_combination_id     => l_adr_value_combination_id
64518         , p_value_type_code         => l_adr_value_type_code
64519         , p_transaction_coa_id      => l_adr_transaction_coa_id
64520         , p_accounting_coa_id       => l_adr_accounting_coa_id
64521         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
64522         , p_flex_value_set_id       => l_adr_flex_value_set_id
64523         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
64524         , p_adr_type_code           => 'S'
64525         , p_component_type          => l_component_type
64526         , p_component_code          => l_component_code
64527         , p_component_type_code     => l_component_type_code
64528         , p_component_appl_id       => l_component_appl_id
64532         , p_side                    => 'DEBIT'
64529         , p_amb_context_code        => l_amb_context_code
64530         , p_entity_code             => 'AP_PAYMENTS'
64531         , p_event_class_code        => 'RECONCILED PAYMENTS'
64533         );
64534 
64535   END IF;
64536 
64537    --
64538    --
64539    END IF;
64540    --
64541    -- Bug 4922099
64542    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
64543           (NVL(l_enc_upg_option, 'N') = 'O')
64544         ) AND
64545         (l_bflow_method_code = 'PRIOR_ENTRY')
64546       )
64547    THEN
64548       IF
64549       --
64550       1 = 2
64551       --
64552       THEN
64553       xla_accounting_err_pkg.build_message
64554                                     (p_appli_s_name            => 'XLA'
64555                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64556                                     ,p_token_1                 => 'LINE_NUMBER'
64557                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
64558                                     ,p_token_2                 => 'LINE_TYPE_NAME'
64559                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
64560                                                                              l_component_type
64561                                                                             ,l_component_code
64562                                                                             ,l_component_type_code
64563                                                                             ,l_component_appl_id
64564                                                                             ,l_amb_context_code
64565                                                                             ,l_entity_code
64566                                                                             ,l_event_class_code
64567                                                                            )
64568                                     ,p_token_3                 => 'OWNER'
64569                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
64570                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
64571                                                                           ,p_lookup_code    => l_component_type_code
64572                                                                          )
64573                                     ,p_token_4                 => 'PRODUCT_NAME'
64574                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
64575                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
64576                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
64577                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
64578                                     ,p_ae_header_id            =>  NULL
64579                                        );
64580 
64581         IF (C_LEVEL_ERROR>= g_log_level) THEN
64582                  trace
64583                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
64584                       ,p_level    => C_LEVEL_ERROR
64585                       ,p_module   => l_log_module);
64586         END IF;
64587       END IF;
64588    END IF;
64589    --
64590    --
64591    ------------------------------------------------------------------------------------------------
64592    -- 4219869 Business Flow
64593    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
64594    -- Prior Entry.  Currently, the following code is always generated.
64595    ------------------------------------------------------------------------------------------------
64596    XLA_AE_LINES_PKG.ValidateCurrentLine;
64597 
64598    ------------------------------------------------------------------------------------
64599    -- 4219869 Business Flow
64600    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
64601    ------------------------------------------------------------------------------------
64602    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64603 
64604    ----------------------------------------------------------------------------------
64605    -- 4219869 Business Flow
64606    -- Update journal entry status -- Need to generate this within IF <condition>
64607    ----------------------------------------------------------------------------------
64608    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64609          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
64610          ,p_balance_type_code => l_balance_type_code
64611          );
64612 
64613    -------------------------------------------------------------------------------------------
64614    -- 4262811 - Generate the Accrual Reversal lines
64615    -------------------------------------------------------------------------------------------
64616    BEGIN
64617       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
64618                               (g_array_event(p_event_id).array_value_num('header_index'));
64619       IF l_acc_rev_flag IS NULL THEN
64620          l_acc_rev_flag := 'N';
64621       END IF;
64622    EXCEPTION
64623       WHEN OTHERS THEN
64624          l_acc_rev_flag := 'N';
64625    END;
64626    --
64627    IF (l_acc_rev_flag = 'Y') THEN
64628 
64632        ------------------------------------------------------------------------------------------
64629        -- 4645092  ------------------------------------------------------------------------------
64630        -- To allow MPA report to determine if it should generate report process
64631        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
64633 
64634        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
64635        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
64636    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
64637    -- call ADRs
64638    -- Bug 4922099
64639    --
64640    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
64641         (NVL(l_actual_upg_option, 'N') = 'O') OR
64642         (NVL(l_enc_upg_option, 'N') = 'O')
64643       )
64644    THEN
64645    NULL;
64646    --
64647    --
64648    
64649   l_ccid := AcctDerRule_38(
64650            p_application_id           => p_application_id
64651          , p_ae_header_id             => l_ae_header_id 
64652 , p_source_15 => p_source_15
64653 , p_source_15_meaning => p_source_15_meaning
64654 , p_source_30 => p_source_30
64655 , p_source_36 => p_source_36
64656 , p_source_37 => p_source_37
64657          , x_transaction_coa_id       => l_adr_transaction_coa_id
64658          , x_accounting_coa_id        => l_adr_accounting_coa_id
64659          , x_value_type_code          => l_adr_value_type_code
64660          , p_side                     => 'CREDIT'
64661    );
64662 
64663    xla_ae_lines_pkg.set_ccid(
64664     p_code_combination_id          => l_ccid
64665   , p_value_type_code              => l_adr_value_type_code
64666   , p_transaction_coa_id           => l_adr_transaction_coa_id
64667   , p_accounting_coa_id            => l_adr_accounting_coa_id
64668   , p_adr_code                     => 'AP_REAL_GAIN'
64669   , p_adr_type_code                => 'S'
64670   , p_component_type               => l_component_type
64671   , p_component_code               => l_component_code
64672   , p_component_type_code          => l_component_type_code
64673   , p_component_appl_id            => l_component_appl_id
64674   , p_amb_context_code             => l_amb_context_code
64675   , p_side                         => 'CREDIT'
64676   );
64677 
64678 
64679   l_ccid := AcctDerRule_39(
64680            p_application_id           => p_application_id
64681          , p_ae_header_id             => l_ae_header_id 
64682 , p_source_15 => p_source_15
64683 , p_source_15_meaning => p_source_15_meaning
64684 , p_source_30 => p_source_30
64685 , p_source_38 => p_source_38
64686 , p_source_39 => p_source_39
64687          , x_transaction_coa_id       => l_adr_transaction_coa_id
64688          , x_accounting_coa_id        => l_adr_accounting_coa_id
64689          , x_value_type_code          => l_adr_value_type_code
64690          , p_side                     => 'DEBIT'
64691    );
64692 
64693    xla_ae_lines_pkg.set_ccid(
64694     p_code_combination_id          => l_ccid
64695   , p_value_type_code              => l_adr_value_type_code
64696   , p_transaction_coa_id           => l_adr_transaction_coa_id
64697   , p_accounting_coa_id            => l_adr_accounting_coa_id
64698   , p_adr_code                     => 'AP_REAL_LOSS'
64699   , p_adr_type_code                => 'S'
64700   , p_component_type               => l_component_type
64701   , p_component_code               => l_component_code
64702   , p_component_type_code          => l_component_type_code
64703   , p_component_appl_id            => l_component_appl_id
64704   , p_amb_context_code             => l_amb_context_code
64705   , p_side                         => 'DEBIT'
64706   );
64707 
64708 
64709    l_segment := AcctDerRule_22(
64710            p_application_id           => p_application_id
64711          , p_ae_header_id             => l_ae_header_id 
64712 , p_source_15 => p_source_15
64713 , p_source_15_meaning => p_source_15_meaning
64714 , p_source_30 => p_source_30
64715          , x_transaction_coa_id       => l_adr_transaction_coa_id
64716          , x_accounting_coa_id        => l_adr_accounting_coa_id
64717          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
64718          , x_flex_value_set_id        => l_adr_flex_value_set_id
64719          , x_value_type_code          => l_adr_value_type_code
64720          , x_value_combination_id     => l_adr_value_combination_id
64721          , x_value_segment_code       => l_adr_value_segment_code
64722          , p_side                     => 'ALL'
64723          , p_override_seg_flag        => 'Y'
64724    );
64725 
64726    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
64727 
64728       xla_ae_lines_pkg.set_segment(
64729           p_to_segment_code         => 'GL_BALANCING'
64730         , p_segment_value           => l_segment
64731         , p_from_segment_code       => l_adr_value_segment_code
64732         , p_from_combination_id     => l_adr_value_combination_id
64733         , p_value_type_code         => l_adr_value_type_code
64734         , p_transaction_coa_id      => l_adr_transaction_coa_id
64735         , p_accounting_coa_id       => l_adr_accounting_coa_id
64736         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
64737         , p_flex_value_set_id       => l_adr_flex_value_set_id
64738         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
64739         , p_adr_type_code           => 'S'
64740         , p_component_type          => l_component_type
64741         , p_component_code          => l_component_code
64742         , p_component_type_code     => l_component_type_code
64746         , p_event_class_code        => 'RECONCILED PAYMENTS'
64743         , p_component_appl_id       => l_component_appl_id
64744         , p_amb_context_code        => l_amb_context_code
64745         , p_entity_code             => 'AP_PAYMENTS'
64747         , p_side                    => 'ALL'
64748         );
64749 
64750   END IF;
64751 
64752    l_segment := AcctDerRule_17(
64753            p_application_id           => p_application_id
64754          , p_ae_header_id             => l_ae_header_id 
64755 , p_source_15 => p_source_15
64756 , p_source_15_meaning => p_source_15_meaning
64757 , p_source_36 => p_source_36
64758 , p_source_37 => p_source_37
64759          , x_transaction_coa_id       => l_adr_transaction_coa_id
64760          , x_accounting_coa_id        => l_adr_accounting_coa_id
64761          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
64762          , x_flex_value_set_id        => l_adr_flex_value_set_id
64763          , x_value_type_code          => l_adr_value_type_code
64764          , x_value_combination_id     => l_adr_value_combination_id
64765          , x_value_segment_code       => l_adr_value_segment_code
64766          , p_side                     => 'CREDIT'
64767          , p_override_seg_flag        => 'Y'
64768    );
64769 
64770    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
64771 
64772       xla_ae_lines_pkg.set_segment(
64773           p_to_segment_code         => 'GL_ACCOUNT'
64774         , p_segment_value           => l_segment
64775         , p_from_segment_code       => l_adr_value_segment_code
64776         , p_from_combination_id     => l_adr_value_combination_id
64777         , p_value_type_code         => l_adr_value_type_code
64778         , p_transaction_coa_id      => l_adr_transaction_coa_id
64779         , p_accounting_coa_id       => l_adr_accounting_coa_id
64780         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
64781         , p_flex_value_set_id       => l_adr_flex_value_set_id
64782         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
64783         , p_adr_type_code           => 'S'
64784         , p_component_type          => l_component_type
64785         , p_component_code          => l_component_code
64786         , p_component_type_code     => l_component_type_code
64787         , p_component_appl_id       => l_component_appl_id
64788         , p_amb_context_code        => l_amb_context_code
64789         , p_entity_code             => 'AP_PAYMENTS'
64790         , p_event_class_code        => 'RECONCILED PAYMENTS'
64791         , p_side                    => 'CREDIT'
64792         );
64793 
64794   END IF;
64795 
64796    l_segment := AcctDerRule_18(
64797            p_application_id           => p_application_id
64798          , p_ae_header_id             => l_ae_header_id 
64799 , p_source_15 => p_source_15
64800 , p_source_15_meaning => p_source_15_meaning
64801 , p_source_38 => p_source_38
64802 , p_source_39 => p_source_39
64803          , x_transaction_coa_id       => l_adr_transaction_coa_id
64804          , x_accounting_coa_id        => l_adr_accounting_coa_id
64805          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
64806          , x_flex_value_set_id        => l_adr_flex_value_set_id
64807          , x_value_type_code          => l_adr_value_type_code
64808          , x_value_combination_id     => l_adr_value_combination_id
64809          , x_value_segment_code       => l_adr_value_segment_code
64810          , p_side                     => 'DEBIT'
64811          , p_override_seg_flag        => 'Y'
64812    );
64813 
64814    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
64815 
64816       xla_ae_lines_pkg.set_segment(
64817           p_to_segment_code         => 'GL_ACCOUNT'
64818         , p_segment_value           => l_segment
64819         , p_from_segment_code       => l_adr_value_segment_code
64820         , p_from_combination_id     => l_adr_value_combination_id
64821         , p_value_type_code         => l_adr_value_type_code
64822         , p_transaction_coa_id      => l_adr_transaction_coa_id
64823         , p_accounting_coa_id       => l_adr_accounting_coa_id
64824         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
64825         , p_flex_value_set_id       => l_adr_flex_value_set_id
64826         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
64827         , p_adr_type_code           => 'S'
64828         , p_component_type          => l_component_type
64829         , p_component_code          => l_component_code
64830         , p_component_type_code     => l_component_type_code
64831         , p_component_appl_id       => l_component_appl_id
64832         , p_amb_context_code        => l_amb_context_code
64833         , p_entity_code             => 'AP_PAYMENTS'
64834         , p_event_class_code        => 'RECONCILED PAYMENTS'
64835         , p_side                    => 'DEBIT'
64836         );
64837 
64838   END IF;
64839 
64840    --
64841    --
64842    END IF;
64843 
64844        --
64845        -- Update the line information that should be overwritten
64846        --
64847        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
64848                                          p_header_num   => 1);
64849        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
64850 
64851        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
64852 
64856 
64853        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
64854           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
64855        END IF;
64857       --
64858       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
64859       --
64860       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
64861           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
64862       ELSE
64863           ---------------------------------------------------------------------------------------------------
64864           -- 4262811a Switch Sign
64865           ---------------------------------------------------------------------------------------------------
64866           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
64867           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64868                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64869           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
64870                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64871           -- 5132302
64872           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
64873                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
64874 
64875       END IF;
64876 
64877       -- 4955764
64878       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
64879       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
64880 
64881 
64882       XLA_AE_LINES_PKG.ValidateCurrentLine;
64883       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
64884 
64885       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
64886                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
64887                ,p_balance_type_code => l_balance_type_code);
64888 
64889    END IF;
64890 
64891    -----------------------------------------------------------------------------------------
64892    -- 4262811 Multiperiod Accounting
64893    -----------------------------------------------------------------------------------------
64894      -- No MPA option is assigned.
64895 
64896 
64897 END IF;
64898 END IF;
64899 --
64900 
64901 --
64902 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64903    trace
64904       (p_msg      => 'END of AcctLineType_125'
64905       ,p_level    => C_LEVEL_PROCEDURE
64906       ,p_module   => l_log_module);
64907 END IF;
64908 --
64909 EXCEPTION
64910   WHEN xla_exceptions_pkg.application_exception THEN
64911       RAISE;
64912   WHEN OTHERS THEN
64913        xla_exceptions_pkg.raise_message
64914            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_125');
64915 END AcctLineType_125;
64916 --
64917 
64918 ---------------------------------------
64919 --
64920 -- PRIVATE FUNCTION
64921 --         AcctLineType_126
64922 --
64923 ---------------------------------------
64924 PROCEDURE AcctLineType_126 (
64925   p_application_id        IN NUMBER
64926  ,p_event_id              IN NUMBER
64927  ,p_calculate_acctd_flag  IN VARCHAR2
64928  ,p_calculate_g_l_flag    IN VARCHAR2
64929  ,p_actual_flag           IN OUT VARCHAR2
64930  ,p_balance_type_code     OUT VARCHAR2
64931  ,p_gain_or_loss_ref      OUT VARCHAR2
64932  
64933 --Automatic Offsets Value
64934  , p_source_15            IN VARCHAR2
64935  , p_source_15_meaning    IN VARCHAR2
64936 --Invoice Distribution Account
64937  , p_source_30            IN NUMBER
64938 --Internal Realized Gain Account
64939  , p_source_36            IN NUMBER
64940 --Bank Gain Account
64941  , p_source_37            IN NUMBER
64942 --Internal Realized Loss Account
64943  , p_source_38            IN NUMBER
64944 --Bank Loss Account
64945  , p_source_39            IN NUMBER
64946 --Accounting Reversal Indicator
64947  , p_source_53            IN VARCHAR2
64948 --Distribution Link Type
64949  , p_source_55            IN VARCHAR2
64950 --Override Accounted Amount Indicator
64951  , p_source_80            IN VARCHAR2
64952  , p_source_80_meaning    IN VARCHAR2
64953 --Third Party Type
64954  , p_source_83            IN VARCHAR2
64955 --Invoice Distribution Tax Line Identifier
64956  , p_source_86            IN NUMBER
64957 --Invoice Distribution Tax Distribution Identifier from Tax
64958  , p_source_87            IN NUMBER
64959 --Invoice Distribution Summary Tax Line Identifier
64960  , p_source_88            IN NUMBER
64961 --Business Flow Accounts Payable Application Identifier
64962  , p_source_91            IN NUMBER
64963 --Business Flow Invoice Distribution Type
64964  , p_source_92            IN VARCHAR2
64965 --Business Flow Invoice Entity Code
64966  , p_source_93            IN VARCHAR2
64967 --Business Flow Invoice Distribution Identifier
64968  , p_source_94            IN NUMBER
64969 --Business Flow Invoice Identifier
64970  , p_source_95            IN NUMBER
64971 --When to Account for Payment Option
64972  , p_source_97            IN VARCHAR2
64973 --Payment Distribution Type
64974  , p_source_98            IN VARCHAR2
64978 --Payment Supplier Identifier
64975  , p_source_98_meaning    IN VARCHAR2
64976 --Payment Distribution Identifier
64977  , p_source_104            IN NUMBER
64979  , p_source_110            IN NUMBER
64980 --Payment Supplier Site Identifier
64981  , p_source_111            IN NUMBER
64982 --Payment Distribution Reversed Identifier
64983  , p_source_112            IN NUMBER
64984 --Payment Type
64985  , p_source_122            IN VARCHAR2
64986  , p_source_122_meaning    IN VARCHAR2
64987 --Invoice Distribution Amount of the Payment Distribution
64988  , p_source_124            IN NUMBER
64989 --Invoice/Payment Ledger Amount Difference
64990  , p_source_153            IN NUMBER
64991 )
64992 IS
64993 
64994 l_component_type              VARCHAR2(80);
64995 l_component_code              VARCHAR2(30);
64996 l_component_type_code         VARCHAR2(1);
64997 l_component_appl_id           INTEGER;
64998 l_amb_context_code            VARCHAR2(30);
64999 l_entity_code                 VARCHAR2(30);
65000 l_event_class_code            VARCHAR2(30);
65001 l_ae_header_id                NUMBER;
65002 l_event_type_code             VARCHAR2(30);
65003 l_line_definition_code        VARCHAR2(30);
65004 l_line_definition_owner_code  VARCHAR2(1);
65005 --
65006 -- adr variables
65007 l_segment                     VARCHAR2(30);
65008 l_ccid                        NUMBER;
65009 l_adr_transaction_coa_id      NUMBER;
65010 l_adr_accounting_coa_id       NUMBER;
65011 l_adr_flexfield_segment_code  VARCHAR2(30);
65012 l_adr_flex_value_set_id       NUMBER;
65013 l_adr_value_type_code         VARCHAR2(30);
65014 l_adr_value_combination_id    NUMBER;
65015 l_adr_value_segment_code      VARCHAR2(30);
65016 
65017 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
65018 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
65019 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
65020 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
65021 
65022 -- 4262811 Variables ------------------------------------------------------------------------------------------
65023 l_entered_amt_idx             NUMBER;
65024 l_accted_amt_idx              NUMBER;
65025 l_acc_rev_flag                VARCHAR2(1);
65026 l_accrual_line_num            NUMBER;
65027 l_tmp_amt                     NUMBER;
65028 l_acc_rev_natural_side_code   VARCHAR2(1);
65029 
65030 l_num_entries                 NUMBER;
65031 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
65032 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
65033 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
65034 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
65035 l_recog_line_1                NUMBER;
65036 l_recog_line_2                NUMBER;
65037 
65038 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
65039 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
65040 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
65041 
65042 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
65043 
65044 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
65045 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
65046 
65047 ---------------------------------------------------------------------------------------------------------------
65048 
65049 
65050 --
65051 -- bulk performance
65052 --
65053 l_balance_type_code           VARCHAR2(1);
65054 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
65055 l_log_module                  VARCHAR2(240);
65056 
65057 --
65058 -- Upgrade strategy
65059 --
65060 l_actual_upg_option           VARCHAR2(1);
65061 l_enc_upg_option           VARCHAR2(1);
65062 
65063 --
65064 BEGIN
65065 --
65066 IF g_log_enabled THEN
65067       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_126';
65068 END IF;
65069 --
65070 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65071 
65072       trace
65073          (p_msg      => 'BEGIN of AcctLineType_126'
65074          ,p_level    => C_LEVEL_PROCEDURE
65075          ,p_module   => l_log_module);
65076 
65077 END IF;
65078 --
65079 l_component_type             := 'AMB_JLT';
65080 l_component_code             := 'AP_GAIN_LOSS_PMT';
65081 l_component_type_code        := 'S';
65082 l_component_appl_id          :=  200;
65083 l_amb_context_code           := 'DEFAULT';
65084 l_entity_code                := 'AP_PAYMENTS';
65085 l_event_class_code           := 'PAYMENTS';
65086 l_event_type_code            := 'PAYMENTS_ALL';
65087 l_line_definition_owner_code := 'S';
65088 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
65089 --
65090 l_balance_type_code          := 'A';
65091 l_segment                     := NULL;
65092 l_ccid                        := NULL;
65093 l_adr_transaction_coa_id      := NULL;
65094 l_adr_accounting_coa_id       := NULL;
65095 l_adr_flexfield_segment_code  := NULL;
65096 l_adr_flex_value_set_id       := NULL;
65097 l_adr_value_type_code         := NULL;
65098 l_adr_value_combination_id    := NULL;
65099 l_adr_value_segment_code      := NULL;
65100 
65101 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
65102 l_bflow_class_code           := '';    -- 4219869 Business Flow
65103 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
65107 l_bflow_applied_to_amt       := NULL; -- 5132302
65104 l_budgetary_control_flag     := 'N';
65105 
65106 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
65108 l_entered_amt_idx            := NULL;          -- 4262811
65109 l_accted_amt_idx             := NULL;          -- 4262811
65110 l_acc_rev_flag               := NULL;          -- 4262811
65111 l_accrual_line_num           := NULL;          -- 4262811
65112 l_tmp_amt                    := NULL;          -- 4262811
65113 --
65114 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
65115             (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
65116                return;
65117   END IF;
65118   
65119 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
65120     l_balance_type_code <> 'B' THEN
65121 IF (NVL(p_source_97,'
65122 ') <>  'CLEAR_CLEAR' AND 
65123 NVL(p_source_97,'
65124 ') <>  'ALWAYS_CLEAR') AND 
65125 NVL(p_source_98,'
65126 ') <>  'EXCHANGE RATE VARIANCE' AND 
65127 NVL(p_source_98,'
65128 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
65129 NVL(p_source_98,'
65130 ') <>  'BANK CHARGE' AND 
65131 NVL(p_source_98,'
65132 ') <>  'BANK ERROR' AND 
65133 NVL(p_source_122,'
65134 ') <>  'R'
65135  THEN 
65136 
65137    --
65138    XLA_AE_LINES_PKG.SetNewLine;
65139 
65140    p_balance_type_code          := l_balance_type_code;
65141    -- set the flag so later we will know whether the gain loss line needs to be created
65142    
65143    IF(l_balance_type_code = 'A' ) THEN
65144      p_actual_flag :='G';
65145    END IF;
65146 
65147    --
65148    -- bulk performance
65149    --
65150    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
65151                                       p_header_num   => 0); -- 4262811
65152    --
65153    -- set accounting line options
65154    --
65155    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
65156            p_natural_side_code          => 'G'
65157          , p_gain_or_loss_flag          => 'N'
65158          , p_gl_transfer_mode_code      => 'S'
65159          , p_acct_entry_type_code       => 'A'
65160          , p_switch_side_flag           => ''
65161          , p_merge_duplicate_code       => 'A'
65162          );
65163    --
65164    l_acc_rev_natural_side_code := 'C';  -- 4262811
65165    -- 
65166    --
65167    -- set accounting line type info
65168    --
65169    xla_ae_lines_pkg.SetAcctLineType
65170       (p_component_type             => l_component_type
65171       ,p_event_type_code            => l_event_type_code
65172       ,p_line_definition_owner_code => l_line_definition_owner_code
65173       ,p_line_definition_code       => l_line_definition_code
65174       ,p_accounting_line_code       => l_component_code
65175       ,p_accounting_line_type_code  => l_component_type_code
65176       ,p_accounting_line_appl_id    => l_component_appl_id
65177       ,p_amb_context_code           => l_amb_context_code
65178       ,p_entity_code                => l_entity_code
65179       ,p_event_class_code           => l_event_class_code);
65180    --
65181    -- set accounting class
65182    --
65183    xla_ae_lines_pkg.SetAcctClass(
65184            p_accounting_class_code  => 'EXCHANGE_GAIN_LOSS'
65185          , p_ae_header_id           => l_ae_header_id
65186          );
65187 
65188    --
65189    -- set rounding class
65190    --
65191    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
65192                       'EXCHANGE_GAIN_LOSS';
65193 
65194    --
65195    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
65196    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
65197    --
65198    -- bulk performance
65199    --
65200    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
65201 
65202    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
65203       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
65204 
65205    -- 4955764
65206    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
65207       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
65208 
65209    -- 4458381 Public Sector Enh
65210    
65211    --
65212    -- set accounting attributes for the line type
65213    --
65214    l_entered_amt_idx := NULL;
65215    l_accted_amt_idx  := 10;
65216    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
65217    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
65218    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
65219    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
65220    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
65221    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
65222    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
65223    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
65224    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
65225    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
65226    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
65227    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
65231    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
65228    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
65229    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
65230    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
65232    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
65233    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
65234    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
65235    l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
65236    l_rec_acct_attrs.array_num_value(10)  := p_source_153;
65237    l_rec_acct_attrs.array_acct_attr_code(11) := 'OVERRIDE_ACCTD_AMT_FLAG';
65238    l_rec_acct_attrs.array_char_value(11)  := p_source_80;
65239    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_ID';
65240    l_rec_acct_attrs.array_num_value(12)  := p_source_110;
65241    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_SITE_ID';
65242    l_rec_acct_attrs.array_num_value(13)  := p_source_111;
65243    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
65244    l_rec_acct_attrs.array_char_value(14)  := p_source_83;
65245    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
65246    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_112);
65247    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
65248    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
65249    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
65250    l_rec_acct_attrs.array_num_value(17)  := p_source_86;
65251    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
65252    l_rec_acct_attrs.array_num_value(18)  := p_source_87;
65253    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
65254    l_rec_acct_attrs.array_num_value(19)  := p_source_88;
65255 
65256    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
65257    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
65258 
65259    ---------------------------------------------------------------------------------------------------------------
65260    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
65261    ---------------------------------------------------------------------------------------------------------------
65262    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
65263 
65264    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
65265    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
65266 
65267    IF xla_accounting_cache_pkg.GetValueChar
65268          (p_source_code         => 'LEDGER_CATEGORY_CODE'
65269          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
65270    AND l_bflow_method_code = 'PRIOR_ENTRY'
65271 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
65272    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
65273          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
65274        )
65275    THEN
65276          xla_ae_lines_pkg.BflowUpgEntry
65277            (p_business_method_code    => l_bflow_method_code
65278            ,p_business_class_code     => l_bflow_class_code
65279            ,p_balance_type            => l_balance_type_code);
65280    ELSE
65281       NULL;
65282 -- No business flow processing for business flow method of NONE.
65283    END IF;
65284 
65285    --
65286    -- call analytical criteria
65287    --
65288    
65289    --
65290    -- call description
65291    --
65292    -- No description or it is inherited.
65293    --
65294    -- call ADRs
65295    -- Bug 4922099
65296    --
65297    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
65298         (NVL(l_actual_upg_option, 'N') = 'O') OR
65299         (NVL(l_enc_upg_option, 'N') = 'O')
65300       )
65301    THEN
65302    NULL;
65303    --
65304    --
65305    
65306   l_ccid := AcctDerRule_38(
65307            p_application_id           => p_application_id
65308          , p_ae_header_id             => l_ae_header_id 
65309 , p_source_15 => p_source_15
65310 , p_source_15_meaning => p_source_15_meaning
65311 , p_source_30 => p_source_30
65312 , p_source_36 => p_source_36
65313 , p_source_37 => p_source_37
65314          , x_transaction_coa_id       => l_adr_transaction_coa_id
65315          , x_accounting_coa_id        => l_adr_accounting_coa_id
65316          , x_value_type_code          => l_adr_value_type_code
65317          , p_side                     => 'CREDIT'
65318    );
65319 
65320    xla_ae_lines_pkg.set_ccid(
65321     p_code_combination_id          => l_ccid
65322   , p_value_type_code              => l_adr_value_type_code
65323   , p_transaction_coa_id           => l_adr_transaction_coa_id
65324   , p_accounting_coa_id            => l_adr_accounting_coa_id
65325   , p_adr_code                     => 'AP_REAL_GAIN'
65326   , p_adr_type_code                => 'S'
65327   , p_component_type               => l_component_type
65328   , p_component_code               => l_component_code
65329   , p_component_type_code          => l_component_type_code
65330   , p_component_appl_id            => l_component_appl_id
65331   , p_amb_context_code             => l_amb_context_code
65332   , p_side                         => 'CREDIT'
65333   );
65334 
65335 
65336   l_ccid := AcctDerRule_39(
65337            p_application_id           => p_application_id
65341 , p_source_30 => p_source_30
65338          , p_ae_header_id             => l_ae_header_id 
65339 , p_source_15 => p_source_15
65340 , p_source_15_meaning => p_source_15_meaning
65342 , p_source_38 => p_source_38
65343 , p_source_39 => p_source_39
65344          , x_transaction_coa_id       => l_adr_transaction_coa_id
65345          , x_accounting_coa_id        => l_adr_accounting_coa_id
65346          , x_value_type_code          => l_adr_value_type_code
65347          , p_side                     => 'DEBIT'
65348    );
65349 
65350    xla_ae_lines_pkg.set_ccid(
65351     p_code_combination_id          => l_ccid
65352   , p_value_type_code              => l_adr_value_type_code
65353   , p_transaction_coa_id           => l_adr_transaction_coa_id
65354   , p_accounting_coa_id            => l_adr_accounting_coa_id
65355   , p_adr_code                     => 'AP_REAL_LOSS'
65356   , p_adr_type_code                => 'S'
65357   , p_component_type               => l_component_type
65358   , p_component_code               => l_component_code
65359   , p_component_type_code          => l_component_type_code
65360   , p_component_appl_id            => l_component_appl_id
65361   , p_amb_context_code             => l_amb_context_code
65362   , p_side                         => 'DEBIT'
65363   );
65364 
65365 
65366    l_segment := AcctDerRule_22(
65367            p_application_id           => p_application_id
65368          , p_ae_header_id             => l_ae_header_id 
65369 , p_source_15 => p_source_15
65370 , p_source_15_meaning => p_source_15_meaning
65371 , p_source_30 => p_source_30
65372          , x_transaction_coa_id       => l_adr_transaction_coa_id
65373          , x_accounting_coa_id        => l_adr_accounting_coa_id
65374          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
65375          , x_flex_value_set_id        => l_adr_flex_value_set_id
65376          , x_value_type_code          => l_adr_value_type_code
65377          , x_value_combination_id     => l_adr_value_combination_id
65378          , x_value_segment_code       => l_adr_value_segment_code
65379          , p_side                     => 'ALL'
65380          , p_override_seg_flag        => 'Y'
65381    );
65382 
65383    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
65384 
65385       xla_ae_lines_pkg.set_segment(
65386           p_to_segment_code         => 'GL_BALANCING'
65387         , p_segment_value           => l_segment
65388         , p_from_segment_code       => l_adr_value_segment_code
65389         , p_from_combination_id     => l_adr_value_combination_id
65390         , p_value_type_code         => l_adr_value_type_code
65391         , p_transaction_coa_id      => l_adr_transaction_coa_id
65392         , p_accounting_coa_id       => l_adr_accounting_coa_id
65393         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
65394         , p_flex_value_set_id       => l_adr_flex_value_set_id
65395         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
65396         , p_adr_type_code           => 'S'
65397         , p_component_type          => l_component_type
65398         , p_component_code          => l_component_code
65399         , p_component_type_code     => l_component_type_code
65400         , p_component_appl_id       => l_component_appl_id
65401         , p_amb_context_code        => l_amb_context_code
65402         , p_entity_code             => 'AP_PAYMENTS'
65403         , p_event_class_code        => 'PAYMENTS'
65404         , p_side                    => 'ALL'
65405         );
65406 
65407   END IF;
65408 
65409    l_segment := AcctDerRule_17(
65410            p_application_id           => p_application_id
65411          , p_ae_header_id             => l_ae_header_id 
65412 , p_source_15 => p_source_15
65413 , p_source_15_meaning => p_source_15_meaning
65414 , p_source_36 => p_source_36
65415 , p_source_37 => p_source_37
65416          , x_transaction_coa_id       => l_adr_transaction_coa_id
65417          , x_accounting_coa_id        => l_adr_accounting_coa_id
65418          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
65419          , x_flex_value_set_id        => l_adr_flex_value_set_id
65420          , x_value_type_code          => l_adr_value_type_code
65421          , x_value_combination_id     => l_adr_value_combination_id
65422          , x_value_segment_code       => l_adr_value_segment_code
65423          , p_side                     => 'CREDIT'
65424          , p_override_seg_flag        => 'Y'
65425    );
65426 
65427    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
65428 
65429       xla_ae_lines_pkg.set_segment(
65430           p_to_segment_code         => 'GL_ACCOUNT'
65431         , p_segment_value           => l_segment
65432         , p_from_segment_code       => l_adr_value_segment_code
65433         , p_from_combination_id     => l_adr_value_combination_id
65434         , p_value_type_code         => l_adr_value_type_code
65435         , p_transaction_coa_id      => l_adr_transaction_coa_id
65436         , p_accounting_coa_id       => l_adr_accounting_coa_id
65437         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
65438         , p_flex_value_set_id       => l_adr_flex_value_set_id
65439         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
65440         , p_adr_type_code           => 'S'
65441         , p_component_type          => l_component_type
65442         , p_component_code          => l_component_code
65443         , p_component_type_code     => l_component_type_code
65444         , p_component_appl_id       => l_component_appl_id
65445         , p_amb_context_code        => l_amb_context_code
65449         );
65446         , p_entity_code             => 'AP_PAYMENTS'
65447         , p_event_class_code        => 'PAYMENTS'
65448         , p_side                    => 'CREDIT'
65450 
65451   END IF;
65452 
65453    l_segment := AcctDerRule_18(
65454            p_application_id           => p_application_id
65455          , p_ae_header_id             => l_ae_header_id 
65456 , p_source_15 => p_source_15
65457 , p_source_15_meaning => p_source_15_meaning
65458 , p_source_38 => p_source_38
65459 , p_source_39 => p_source_39
65460          , x_transaction_coa_id       => l_adr_transaction_coa_id
65461          , x_accounting_coa_id        => l_adr_accounting_coa_id
65462          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
65463          , x_flex_value_set_id        => l_adr_flex_value_set_id
65464          , x_value_type_code          => l_adr_value_type_code
65465          , x_value_combination_id     => l_adr_value_combination_id
65466          , x_value_segment_code       => l_adr_value_segment_code
65467          , p_side                     => 'DEBIT'
65468          , p_override_seg_flag        => 'Y'
65469    );
65470 
65471    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
65472 
65473       xla_ae_lines_pkg.set_segment(
65474           p_to_segment_code         => 'GL_ACCOUNT'
65475         , p_segment_value           => l_segment
65476         , p_from_segment_code       => l_adr_value_segment_code
65477         , p_from_combination_id     => l_adr_value_combination_id
65478         , p_value_type_code         => l_adr_value_type_code
65479         , p_transaction_coa_id      => l_adr_transaction_coa_id
65480         , p_accounting_coa_id       => l_adr_accounting_coa_id
65481         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
65482         , p_flex_value_set_id       => l_adr_flex_value_set_id
65483         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
65484         , p_adr_type_code           => 'S'
65485         , p_component_type          => l_component_type
65486         , p_component_code          => l_component_code
65487         , p_component_type_code     => l_component_type_code
65488         , p_component_appl_id       => l_component_appl_id
65489         , p_amb_context_code        => l_amb_context_code
65490         , p_entity_code             => 'AP_PAYMENTS'
65491         , p_event_class_code        => 'PAYMENTS'
65492         , p_side                    => 'DEBIT'
65493         );
65494 
65495   END IF;
65496 
65497    --
65498    --
65499    END IF;
65500    --
65501    -- Bug 4922099
65502    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
65503           (NVL(l_enc_upg_option, 'N') = 'O')
65504         ) AND
65505         (l_bflow_method_code = 'PRIOR_ENTRY')
65506       )
65507    THEN
65508       IF
65509       --
65510       1 = 2
65511       --
65512       THEN
65513       xla_accounting_err_pkg.build_message
65514                                     (p_appli_s_name            => 'XLA'
65515                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
65516                                     ,p_token_1                 => 'LINE_NUMBER'
65517                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
65518                                     ,p_token_2                 => 'LINE_TYPE_NAME'
65519                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
65520                                                                              l_component_type
65521                                                                             ,l_component_code
65522                                                                             ,l_component_type_code
65523                                                                             ,l_component_appl_id
65524                                                                             ,l_amb_context_code
65525                                                                             ,l_entity_code
65526                                                                             ,l_event_class_code
65527                                                                            )
65528                                     ,p_token_3                 => 'OWNER'
65529                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
65530                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
65531                                                                           ,p_lookup_code    => l_component_type_code
65532                                                                          )
65533                                     ,p_token_4                 => 'PRODUCT_NAME'
65534                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
65535                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
65536                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
65537                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
65538                                     ,p_ae_header_id            =>  NULL
65539                                        );
65540 
65541         IF (C_LEVEL_ERROR>= g_log_level) THEN
65542                  trace
65543                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
65547       END IF;
65544                       ,p_level    => C_LEVEL_ERROR
65545                       ,p_module   => l_log_module);
65546         END IF;
65548    END IF;
65549    --
65550    --
65551    ------------------------------------------------------------------------------------------------
65552    -- 4219869 Business Flow
65553    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
65554    -- Prior Entry.  Currently, the following code is always generated.
65555    ------------------------------------------------------------------------------------------------
65556    XLA_AE_LINES_PKG.ValidateCurrentLine;
65557 
65558    ------------------------------------------------------------------------------------
65559    -- 4219869 Business Flow
65560    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
65561    ------------------------------------------------------------------------------------
65562    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65563 
65564    ----------------------------------------------------------------------------------
65565    -- 4219869 Business Flow
65566    -- Update journal entry status -- Need to generate this within IF <condition>
65567    ----------------------------------------------------------------------------------
65568    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65569          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
65570          ,p_balance_type_code => l_balance_type_code
65571          );
65572 
65573    -------------------------------------------------------------------------------------------
65574    -- 4262811 - Generate the Accrual Reversal lines
65575    -------------------------------------------------------------------------------------------
65576    BEGIN
65577       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
65578                               (g_array_event(p_event_id).array_value_num('header_index'));
65579       IF l_acc_rev_flag IS NULL THEN
65580          l_acc_rev_flag := 'N';
65581       END IF;
65582    EXCEPTION
65583       WHEN OTHERS THEN
65584          l_acc_rev_flag := 'N';
65585    END;
65586    --
65587    IF (l_acc_rev_flag = 'Y') THEN
65588 
65589        -- 4645092  ------------------------------------------------------------------------------
65590        -- To allow MPA report to determine if it should generate report process
65591        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
65592        ------------------------------------------------------------------------------------------
65593 
65594        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
65595        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
65596    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
65597    -- call ADRs
65598    -- Bug 4922099
65599    --
65600    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
65601         (NVL(l_actual_upg_option, 'N') = 'O') OR
65602         (NVL(l_enc_upg_option, 'N') = 'O')
65603       )
65604    THEN
65605    NULL;
65606    --
65607    --
65608    
65609   l_ccid := AcctDerRule_38(
65610            p_application_id           => p_application_id
65611          , p_ae_header_id             => l_ae_header_id 
65612 , p_source_15 => p_source_15
65613 , p_source_15_meaning => p_source_15_meaning
65614 , p_source_30 => p_source_30
65615 , p_source_36 => p_source_36
65616 , p_source_37 => p_source_37
65617          , x_transaction_coa_id       => l_adr_transaction_coa_id
65618          , x_accounting_coa_id        => l_adr_accounting_coa_id
65619          , x_value_type_code          => l_adr_value_type_code
65620          , p_side                     => 'CREDIT'
65621    );
65622 
65623    xla_ae_lines_pkg.set_ccid(
65624     p_code_combination_id          => l_ccid
65625   , p_value_type_code              => l_adr_value_type_code
65626   , p_transaction_coa_id           => l_adr_transaction_coa_id
65627   , p_accounting_coa_id            => l_adr_accounting_coa_id
65628   , p_adr_code                     => 'AP_REAL_GAIN'
65629   , p_adr_type_code                => 'S'
65630   , p_component_type               => l_component_type
65631   , p_component_code               => l_component_code
65632   , p_component_type_code          => l_component_type_code
65633   , p_component_appl_id            => l_component_appl_id
65634   , p_amb_context_code             => l_amb_context_code
65635   , p_side                         => 'CREDIT'
65636   );
65637 
65638 
65639   l_ccid := AcctDerRule_39(
65640            p_application_id           => p_application_id
65641          , p_ae_header_id             => l_ae_header_id 
65642 , p_source_15 => p_source_15
65643 , p_source_15_meaning => p_source_15_meaning
65644 , p_source_30 => p_source_30
65645 , p_source_38 => p_source_38
65646 , p_source_39 => p_source_39
65647          , x_transaction_coa_id       => l_adr_transaction_coa_id
65648          , x_accounting_coa_id        => l_adr_accounting_coa_id
65649          , x_value_type_code          => l_adr_value_type_code
65650          , p_side                     => 'DEBIT'
65651    );
65652 
65653    xla_ae_lines_pkg.set_ccid(
65654     p_code_combination_id          => l_ccid
65655   , p_value_type_code              => l_adr_value_type_code
65656   , p_transaction_coa_id           => l_adr_transaction_coa_id
65660   , p_component_type               => l_component_type
65657   , p_accounting_coa_id            => l_adr_accounting_coa_id
65658   , p_adr_code                     => 'AP_REAL_LOSS'
65659   , p_adr_type_code                => 'S'
65661   , p_component_code               => l_component_code
65662   , p_component_type_code          => l_component_type_code
65663   , p_component_appl_id            => l_component_appl_id
65664   , p_amb_context_code             => l_amb_context_code
65665   , p_side                         => 'DEBIT'
65666   );
65667 
65668 
65669    l_segment := AcctDerRule_22(
65670            p_application_id           => p_application_id
65671          , p_ae_header_id             => l_ae_header_id 
65672 , p_source_15 => p_source_15
65673 , p_source_15_meaning => p_source_15_meaning
65674 , p_source_30 => p_source_30
65675          , x_transaction_coa_id       => l_adr_transaction_coa_id
65676          , x_accounting_coa_id        => l_adr_accounting_coa_id
65677          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
65678          , x_flex_value_set_id        => l_adr_flex_value_set_id
65679          , x_value_type_code          => l_adr_value_type_code
65680          , x_value_combination_id     => l_adr_value_combination_id
65681          , x_value_segment_code       => l_adr_value_segment_code
65682          , p_side                     => 'ALL'
65683          , p_override_seg_flag        => 'Y'
65684    );
65685 
65686    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
65687 
65688       xla_ae_lines_pkg.set_segment(
65689           p_to_segment_code         => 'GL_BALANCING'
65690         , p_segment_value           => l_segment
65691         , p_from_segment_code       => l_adr_value_segment_code
65692         , p_from_combination_id     => l_adr_value_combination_id
65693         , p_value_type_code         => l_adr_value_type_code
65694         , p_transaction_coa_id      => l_adr_transaction_coa_id
65695         , p_accounting_coa_id       => l_adr_accounting_coa_id
65696         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
65697         , p_flex_value_set_id       => l_adr_flex_value_set_id
65698         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
65699         , p_adr_type_code           => 'S'
65700         , p_component_type          => l_component_type
65701         , p_component_code          => l_component_code
65702         , p_component_type_code     => l_component_type_code
65703         , p_component_appl_id       => l_component_appl_id
65704         , p_amb_context_code        => l_amb_context_code
65705         , p_entity_code             => 'AP_PAYMENTS'
65706         , p_event_class_code        => 'PAYMENTS'
65707         , p_side                    => 'ALL'
65708         );
65709 
65710   END IF;
65711 
65712    l_segment := AcctDerRule_17(
65713            p_application_id           => p_application_id
65714          , p_ae_header_id             => l_ae_header_id 
65715 , p_source_15 => p_source_15
65716 , p_source_15_meaning => p_source_15_meaning
65717 , p_source_36 => p_source_36
65718 , p_source_37 => p_source_37
65719          , x_transaction_coa_id       => l_adr_transaction_coa_id
65720          , x_accounting_coa_id        => l_adr_accounting_coa_id
65721          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
65722          , x_flex_value_set_id        => l_adr_flex_value_set_id
65723          , x_value_type_code          => l_adr_value_type_code
65724          , x_value_combination_id     => l_adr_value_combination_id
65725          , x_value_segment_code       => l_adr_value_segment_code
65726          , p_side                     => 'CREDIT'
65727          , p_override_seg_flag        => 'Y'
65728    );
65729 
65730    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
65731 
65732       xla_ae_lines_pkg.set_segment(
65733           p_to_segment_code         => 'GL_ACCOUNT'
65734         , p_segment_value           => l_segment
65735         , p_from_segment_code       => l_adr_value_segment_code
65736         , p_from_combination_id     => l_adr_value_combination_id
65737         , p_value_type_code         => l_adr_value_type_code
65738         , p_transaction_coa_id      => l_adr_transaction_coa_id
65739         , p_accounting_coa_id       => l_adr_accounting_coa_id
65740         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
65741         , p_flex_value_set_id       => l_adr_flex_value_set_id
65742         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
65743         , p_adr_type_code           => 'S'
65744         , p_component_type          => l_component_type
65745         , p_component_code          => l_component_code
65746         , p_component_type_code     => l_component_type_code
65747         , p_component_appl_id       => l_component_appl_id
65748         , p_amb_context_code        => l_amb_context_code
65749         , p_entity_code             => 'AP_PAYMENTS'
65750         , p_event_class_code        => 'PAYMENTS'
65751         , p_side                    => 'CREDIT'
65752         );
65753 
65754   END IF;
65755 
65756    l_segment := AcctDerRule_18(
65757            p_application_id           => p_application_id
65758          , p_ae_header_id             => l_ae_header_id 
65759 , p_source_15 => p_source_15
65760 , p_source_15_meaning => p_source_15_meaning
65761 , p_source_38 => p_source_38
65762 , p_source_39 => p_source_39
65763          , x_transaction_coa_id       => l_adr_transaction_coa_id
65764          , x_accounting_coa_id        => l_adr_accounting_coa_id
65765          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
65769          , x_value_segment_code       => l_adr_value_segment_code
65766          , x_flex_value_set_id        => l_adr_flex_value_set_id
65767          , x_value_type_code          => l_adr_value_type_code
65768          , x_value_combination_id     => l_adr_value_combination_id
65770          , p_side                     => 'DEBIT'
65771          , p_override_seg_flag        => 'Y'
65772    );
65773 
65774    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
65775 
65776       xla_ae_lines_pkg.set_segment(
65777           p_to_segment_code         => 'GL_ACCOUNT'
65778         , p_segment_value           => l_segment
65779         , p_from_segment_code       => l_adr_value_segment_code
65780         , p_from_combination_id     => l_adr_value_combination_id
65781         , p_value_type_code         => l_adr_value_type_code
65782         , p_transaction_coa_id      => l_adr_transaction_coa_id
65783         , p_accounting_coa_id       => l_adr_accounting_coa_id
65784         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
65785         , p_flex_value_set_id       => l_adr_flex_value_set_id
65786         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
65787         , p_adr_type_code           => 'S'
65788         , p_component_type          => l_component_type
65789         , p_component_code          => l_component_code
65790         , p_component_type_code     => l_component_type_code
65791         , p_component_appl_id       => l_component_appl_id
65792         , p_amb_context_code        => l_amb_context_code
65793         , p_entity_code             => 'AP_PAYMENTS'
65794         , p_event_class_code        => 'PAYMENTS'
65795         , p_side                    => 'DEBIT'
65796         );
65797 
65798   END IF;
65799 
65800    --
65801    --
65802    END IF;
65803 
65804        --
65805        -- Update the line information that should be overwritten
65806        --
65807        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
65808                                          p_header_num   => 1);
65809        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
65810 
65811        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
65812 
65813        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
65814           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
65815        END IF;
65816 
65817       --
65818       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
65819       --
65820       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
65821           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
65822       ELSE
65823           ---------------------------------------------------------------------------------------------------
65824           -- 4262811a Switch Sign
65825           ---------------------------------------------------------------------------------------------------
65826           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
65827           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65828                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65829           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
65830                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65831           -- 5132302
65832           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
65833                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
65834 
65835       END IF;
65836 
65837       -- 4955764
65838       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
65839       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
65840 
65841 
65842       XLA_AE_LINES_PKG.ValidateCurrentLine;
65843       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
65844 
65845       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
65846                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
65847                ,p_balance_type_code => l_balance_type_code);
65848 
65849    END IF;
65850 
65851    -----------------------------------------------------------------------------------------
65852    -- 4262811 Multiperiod Accounting
65853    -----------------------------------------------------------------------------------------
65854      -- No MPA option is assigned.
65855 
65856 
65857 END IF;
65858 END IF;
65859 --
65860 
65861 --
65862 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65863    trace
65864       (p_msg      => 'END of AcctLineType_126'
65865       ,p_level    => C_LEVEL_PROCEDURE
65866       ,p_module   => l_log_module);
65867 END IF;
65868 --
65869 EXCEPTION
65870   WHEN xla_exceptions_pkg.application_exception THEN
65871       RAISE;
65872   WHEN OTHERS THEN
65873        xla_exceptions_pkg.raise_message
65874            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_126');
65875 END AcctLineType_126;
65876 --
65877 
65878 ---------------------------------------
65879 --
65880 -- PRIVATE FUNCTION
65881 --         AcctLineType_127
65882 --
65883 ---------------------------------------
65887  ,p_calculate_acctd_flag  IN VARCHAR2
65884 PROCEDURE AcctLineType_127 (
65885   p_application_id        IN NUMBER
65886  ,p_event_id              IN NUMBER
65888  ,p_calculate_g_l_flag    IN VARCHAR2
65889  ,p_actual_flag           IN OUT VARCHAR2
65890  ,p_balance_type_code     OUT VARCHAR2
65891  ,p_gain_or_loss_ref      OUT VARCHAR2
65892  
65893 --Automatic Offsets Value
65894  , p_source_15            IN VARCHAR2
65895  , p_source_15_meaning    IN VARCHAR2
65896 --Invoice Distribution Account
65897  , p_source_30            IN NUMBER
65898 --Internal Realized Gain Account
65899  , p_source_36            IN NUMBER
65900 --Bank Gain Account
65901  , p_source_37            IN NUMBER
65902 --Internal Realized Loss Account
65903  , p_source_38            IN NUMBER
65904 --Bank Loss Account
65905  , p_source_39            IN NUMBER
65906 --Accounting Reversal Indicator
65907  , p_source_53            IN VARCHAR2
65908 --Distribution Link Type
65909  , p_source_55            IN VARCHAR2
65910 --Override Accounted Amount Indicator
65911  , p_source_80            IN VARCHAR2
65912  , p_source_80_meaning    IN VARCHAR2
65913 --Third Party Type
65914  , p_source_83            IN VARCHAR2
65915 --Business Flow Accounts Payable Application Identifier
65916  , p_source_91            IN NUMBER
65917 --When to Account for Payment Option
65918  , p_source_97            IN VARCHAR2
65919 --Payment Distribution Type
65920  , p_source_98            IN VARCHAR2
65921  , p_source_98_meaning    IN VARCHAR2
65922 --Business Flow Payment Distribution Type
65923  , p_source_100            IN VARCHAR2
65924 --Business Flow Payment Entity Code
65925  , p_source_101            IN VARCHAR2
65926 --Business Flow Payment Distribution Identifier
65927  , p_source_102            IN NUMBER
65928 --Business Flow Payment Identifier
65929  , p_source_103            IN NUMBER
65930 --Payment Distribution Identifier
65931  , p_source_104            IN NUMBER
65932 --Payment Supplier Identifier
65933  , p_source_110            IN NUMBER
65934 --Payment Supplier Site Identifier
65935  , p_source_111            IN NUMBER
65936 --Payment Distribution Reversed Identifier
65937  , p_source_112            IN NUMBER
65938 --Payment Maturity Date
65939  , p_source_114            IN DATE
65940 --Payment/Maturity Ledger Amount Difference
65941  , p_source_154            IN NUMBER
65942 )
65943 IS
65944 
65945 l_component_type              VARCHAR2(80);
65946 l_component_code              VARCHAR2(30);
65947 l_component_type_code         VARCHAR2(1);
65948 l_component_appl_id           INTEGER;
65949 l_amb_context_code            VARCHAR2(30);
65950 l_entity_code                 VARCHAR2(30);
65951 l_event_class_code            VARCHAR2(30);
65952 l_ae_header_id                NUMBER;
65953 l_event_type_code             VARCHAR2(30);
65954 l_line_definition_code        VARCHAR2(30);
65955 l_line_definition_owner_code  VARCHAR2(1);
65956 --
65957 -- adr variables
65958 l_segment                     VARCHAR2(30);
65959 l_ccid                        NUMBER;
65960 l_adr_transaction_coa_id      NUMBER;
65961 l_adr_accounting_coa_id       NUMBER;
65962 l_adr_flexfield_segment_code  VARCHAR2(30);
65963 l_adr_flex_value_set_id       NUMBER;
65964 l_adr_value_type_code         VARCHAR2(30);
65965 l_adr_value_combination_id    NUMBER;
65966 l_adr_value_segment_code      VARCHAR2(30);
65967 
65968 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
65969 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
65970 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
65971 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
65972 
65973 -- 4262811 Variables ------------------------------------------------------------------------------------------
65974 l_entered_amt_idx             NUMBER;
65975 l_accted_amt_idx              NUMBER;
65976 l_acc_rev_flag                VARCHAR2(1);
65977 l_accrual_line_num            NUMBER;
65978 l_tmp_amt                     NUMBER;
65979 l_acc_rev_natural_side_code   VARCHAR2(1);
65980 
65981 l_num_entries                 NUMBER;
65982 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
65983 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
65984 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
65985 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
65986 l_recog_line_1                NUMBER;
65987 l_recog_line_2                NUMBER;
65988 
65989 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
65990 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
65991 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
65992 
65993 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
65994 
65995 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
65996 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
65997 
65998 ---------------------------------------------------------------------------------------------------------------
65999 
66000 
66001 --
66002 -- bulk performance
66003 --
66004 l_balance_type_code           VARCHAR2(1);
66005 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
66006 l_log_module                  VARCHAR2(240);
66007 
66008 --
66009 -- Upgrade strategy
66010 --
66014 --
66011 l_actual_upg_option           VARCHAR2(1);
66012 l_enc_upg_option           VARCHAR2(1);
66013 
66015 BEGIN
66016 --
66017 IF g_log_enabled THEN
66018       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_127';
66019 END IF;
66020 --
66021 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66022 
66023       trace
66024          (p_msg      => 'BEGIN of AcctLineType_127'
66025          ,p_level    => C_LEVEL_PROCEDURE
66026          ,p_module   => l_log_module);
66027 
66028 END IF;
66029 --
66030 l_component_type             := 'AMB_JLT';
66031 l_component_code             := 'AP_GAIN_LOSS_PMT_MAT';
66032 l_component_type_code        := 'S';
66033 l_component_appl_id          :=  200;
66034 l_amb_context_code           := 'DEFAULT';
66035 l_entity_code                := 'AP_PAYMENTS';
66036 l_event_class_code           := 'FUTURE DATED PAYMENTS';
66037 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
66038 l_line_definition_owner_code := 'S';
66039 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
66040 --
66041 l_balance_type_code          := 'A';
66042 l_segment                     := NULL;
66043 l_ccid                        := NULL;
66044 l_adr_transaction_coa_id      := NULL;
66045 l_adr_accounting_coa_id       := NULL;
66046 l_adr_flexfield_segment_code  := NULL;
66047 l_adr_flex_value_set_id       := NULL;
66048 l_adr_value_type_code         := NULL;
66049 l_adr_value_combination_id    := NULL;
66050 l_adr_value_segment_code      := NULL;
66051 
66052 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
66053 l_bflow_class_code           := '';    -- 4219869 Business Flow
66054 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
66055 l_budgetary_control_flag     := 'N';
66056 
66057 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
66058 l_bflow_applied_to_amt       := NULL; -- 5132302
66059 l_entered_amt_idx            := NULL;          -- 4262811
66060 l_accted_amt_idx             := NULL;          -- 4262811
66061 l_acc_rev_flag               := NULL;          -- 4262811
66062 l_accrual_line_num           := NULL;          -- 4262811
66063 l_tmp_amt                    := NULL;          -- 4262811
66064 --
66065 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
66066             (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
66067                return;
66068   END IF;
66069   
66070 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
66071     l_balance_type_code <> 'B' THEN
66072 IF (NVL(p_source_97,'
66073 ') =  'ALWAYS_ALWAYS' OR 
66074 NVL(p_source_97,'
66075 ') =  'ALWAYS_ISSUE') AND 
66076 p_source_114 IS NOT NULL AND 
66077 NVL(p_source_98,'
66078 ') <>  'EXCHANGE RATE VARIANCE' AND 
66079 NVL(p_source_98,'
66080 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
66081 NVL(p_source_98,'
66082 ') <>  'BANK CHARGE' AND 
66083 NVL(p_source_98,'
66084 ') <>  'BANK ERROR'
66085  THEN 
66086 
66087    --
66088    XLA_AE_LINES_PKG.SetNewLine;
66089 
66090    p_balance_type_code          := l_balance_type_code;
66091    -- set the flag so later we will know whether the gain loss line needs to be created
66092    
66093    IF(l_balance_type_code = 'A' ) THEN
66094      p_actual_flag :='G';
66095    END IF;
66096 
66097    --
66098    -- bulk performance
66099    --
66100    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
66101                                       p_header_num   => 0); -- 4262811
66102    --
66103    -- set accounting line options
66104    --
66105    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
66106            p_natural_side_code          => 'G'
66107          , p_gain_or_loss_flag          => 'N'
66108          , p_gl_transfer_mode_code      => 'S'
66109          , p_acct_entry_type_code       => 'A'
66110          , p_switch_side_flag           => ''
66111          , p_merge_duplicate_code       => 'A'
66112          );
66113    --
66114    l_acc_rev_natural_side_code := 'C';  -- 4262811
66115    -- 
66116    --
66117    -- set accounting line type info
66118    --
66119    xla_ae_lines_pkg.SetAcctLineType
66120       (p_component_type             => l_component_type
66121       ,p_event_type_code            => l_event_type_code
66122       ,p_line_definition_owner_code => l_line_definition_owner_code
66123       ,p_line_definition_code       => l_line_definition_code
66124       ,p_accounting_line_code       => l_component_code
66125       ,p_accounting_line_type_code  => l_component_type_code
66126       ,p_accounting_line_appl_id    => l_component_appl_id
66127       ,p_amb_context_code           => l_amb_context_code
66128       ,p_entity_code                => l_entity_code
66129       ,p_event_class_code           => l_event_class_code);
66130    --
66131    -- set accounting class
66132    --
66133    xla_ae_lines_pkg.SetAcctClass(
66134            p_accounting_class_code  => 'EXCHANGE_GAIN_LOSS'
66135          , p_ae_header_id           => l_ae_header_id
66136          );
66137 
66138    --
66139    -- set rounding class
66140    --
66141    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
66142                       'EXCHANGE_GAIN_LOSS';
66143 
66144    --
66148    -- bulk performance
66145    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
66146    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
66147    --
66149    --
66150    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
66151 
66152    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
66153       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
66154 
66155    -- 4955764
66156    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
66157       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
66158 
66159    -- 4458381 Public Sector Enh
66160    
66161    --
66162    -- set accounting attributes for the line type
66163    --
66164    l_entered_amt_idx := NULL;
66165    l_accted_amt_idx  := 9;
66166    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
66167    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
66168    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
66169    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
66170    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
66171    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
66172    l_rec_acct_attrs.array_char_value(3)  := p_source_100;
66173    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
66174    l_rec_acct_attrs.array_char_value(4)  := p_source_101;
66175    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
66176    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_102);
66177    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
66178    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_103);
66179    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
66180    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
66181    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
66182    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
66183    l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
66184    l_rec_acct_attrs.array_num_value(9)  := p_source_154;
66185    l_rec_acct_attrs.array_acct_attr_code(10) := 'OVERRIDE_ACCTD_AMT_FLAG';
66186    l_rec_acct_attrs.array_char_value(10)  := p_source_80;
66187    l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_ID';
66188    l_rec_acct_attrs.array_num_value(11)  := p_source_110;
66189    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_SITE_ID';
66190    l_rec_acct_attrs.array_num_value(12)  := p_source_111;
66191    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
66192    l_rec_acct_attrs.array_char_value(13)  := p_source_83;
66193    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
66194    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_112);
66195    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
66196    l_rec_acct_attrs.array_char_value(15)  := p_source_55;
66197 
66198    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
66199    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
66200 
66201    ---------------------------------------------------------------------------------------------------------------
66202    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
66203    ---------------------------------------------------------------------------------------------------------------
66204    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
66205 
66206    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66207    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
66208 
66209    IF xla_accounting_cache_pkg.GetValueChar
66210          (p_source_code         => 'LEDGER_CATEGORY_CODE'
66211          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
66212    AND l_bflow_method_code = 'PRIOR_ENTRY'
66213 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
66214    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
66215          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
66216        )
66217    THEN
66218          xla_ae_lines_pkg.BflowUpgEntry
66219            (p_business_method_code    => l_bflow_method_code
66220            ,p_business_class_code     => l_bflow_class_code
66221            ,p_balance_type            => l_balance_type_code);
66222    ELSE
66223       NULL;
66224 -- No business flow processing for business flow method of NONE.
66225    END IF;
66226 
66227    --
66228    -- call analytical criteria
66229    --
66230    
66231    --
66232    -- call description
66233    --
66234    -- No description or it is inherited.
66235    --
66236    -- call ADRs
66237    -- Bug 4922099
66238    --
66239    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
66240         (NVL(l_actual_upg_option, 'N') = 'O') OR
66241         (NVL(l_enc_upg_option, 'N') = 'O')
66242       )
66243    THEN
66244    NULL;
66245    --
66246    --
66247    
66248   l_ccid := AcctDerRule_38(
66249            p_application_id           => p_application_id
66253 , p_source_30 => p_source_30
66250          , p_ae_header_id             => l_ae_header_id 
66251 , p_source_15 => p_source_15
66252 , p_source_15_meaning => p_source_15_meaning
66254 , p_source_36 => p_source_36
66255 , p_source_37 => p_source_37
66256          , x_transaction_coa_id       => l_adr_transaction_coa_id
66257          , x_accounting_coa_id        => l_adr_accounting_coa_id
66258          , x_value_type_code          => l_adr_value_type_code
66259          , p_side                     => 'CREDIT'
66260    );
66261 
66262    xla_ae_lines_pkg.set_ccid(
66263     p_code_combination_id          => l_ccid
66264   , p_value_type_code              => l_adr_value_type_code
66265   , p_transaction_coa_id           => l_adr_transaction_coa_id
66266   , p_accounting_coa_id            => l_adr_accounting_coa_id
66267   , p_adr_code                     => 'AP_REAL_GAIN'
66268   , p_adr_type_code                => 'S'
66269   , p_component_type               => l_component_type
66270   , p_component_code               => l_component_code
66271   , p_component_type_code          => l_component_type_code
66272   , p_component_appl_id            => l_component_appl_id
66273   , p_amb_context_code             => l_amb_context_code
66274   , p_side                         => 'CREDIT'
66275   );
66276 
66277 
66278   l_ccid := AcctDerRule_39(
66279            p_application_id           => p_application_id
66280          , p_ae_header_id             => l_ae_header_id 
66281 , p_source_15 => p_source_15
66282 , p_source_15_meaning => p_source_15_meaning
66283 , p_source_30 => p_source_30
66284 , p_source_38 => p_source_38
66285 , p_source_39 => p_source_39
66286          , x_transaction_coa_id       => l_adr_transaction_coa_id
66287          , x_accounting_coa_id        => l_adr_accounting_coa_id
66288          , x_value_type_code          => l_adr_value_type_code
66289          , p_side                     => 'DEBIT'
66290    );
66291 
66292    xla_ae_lines_pkg.set_ccid(
66293     p_code_combination_id          => l_ccid
66294   , p_value_type_code              => l_adr_value_type_code
66295   , p_transaction_coa_id           => l_adr_transaction_coa_id
66296   , p_accounting_coa_id            => l_adr_accounting_coa_id
66297   , p_adr_code                     => 'AP_REAL_LOSS'
66298   , p_adr_type_code                => 'S'
66299   , p_component_type               => l_component_type
66300   , p_component_code               => l_component_code
66301   , p_component_type_code          => l_component_type_code
66302   , p_component_appl_id            => l_component_appl_id
66303   , p_amb_context_code             => l_amb_context_code
66304   , p_side                         => 'DEBIT'
66305   );
66306 
66307 
66308    l_segment := AcctDerRule_22(
66309            p_application_id           => p_application_id
66310          , p_ae_header_id             => l_ae_header_id 
66311 , p_source_15 => p_source_15
66312 , p_source_15_meaning => p_source_15_meaning
66313 , p_source_30 => p_source_30
66314          , x_transaction_coa_id       => l_adr_transaction_coa_id
66315          , x_accounting_coa_id        => l_adr_accounting_coa_id
66316          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
66317          , x_flex_value_set_id        => l_adr_flex_value_set_id
66318          , x_value_type_code          => l_adr_value_type_code
66319          , x_value_combination_id     => l_adr_value_combination_id
66320          , x_value_segment_code       => l_adr_value_segment_code
66321          , p_side                     => 'ALL'
66322          , p_override_seg_flag        => 'Y'
66323    );
66324 
66325    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
66326 
66327       xla_ae_lines_pkg.set_segment(
66328           p_to_segment_code         => 'GL_BALANCING'
66329         , p_segment_value           => l_segment
66330         , p_from_segment_code       => l_adr_value_segment_code
66331         , p_from_combination_id     => l_adr_value_combination_id
66332         , p_value_type_code         => l_adr_value_type_code
66333         , p_transaction_coa_id      => l_adr_transaction_coa_id
66334         , p_accounting_coa_id       => l_adr_accounting_coa_id
66335         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
66336         , p_flex_value_set_id       => l_adr_flex_value_set_id
66337         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
66338         , p_adr_type_code           => 'S'
66339         , p_component_type          => l_component_type
66340         , p_component_code          => l_component_code
66341         , p_component_type_code     => l_component_type_code
66342         , p_component_appl_id       => l_component_appl_id
66343         , p_amb_context_code        => l_amb_context_code
66344         , p_entity_code             => 'AP_PAYMENTS'
66345         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
66346         , p_side                    => 'ALL'
66347         );
66348 
66349   END IF;
66350 
66351    l_segment := AcctDerRule_17(
66352            p_application_id           => p_application_id
66353          , p_ae_header_id             => l_ae_header_id 
66354 , p_source_15 => p_source_15
66355 , p_source_15_meaning => p_source_15_meaning
66356 , p_source_36 => p_source_36
66357 , p_source_37 => p_source_37
66358          , x_transaction_coa_id       => l_adr_transaction_coa_id
66359          , x_accounting_coa_id        => l_adr_accounting_coa_id
66363          , x_value_combination_id     => l_adr_value_combination_id
66360          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
66361          , x_flex_value_set_id        => l_adr_flex_value_set_id
66362          , x_value_type_code          => l_adr_value_type_code
66364          , x_value_segment_code       => l_adr_value_segment_code
66365          , p_side                     => 'CREDIT'
66366          , p_override_seg_flag        => 'Y'
66367    );
66368 
66369    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
66370 
66371       xla_ae_lines_pkg.set_segment(
66372           p_to_segment_code         => 'GL_ACCOUNT'
66373         , p_segment_value           => l_segment
66374         , p_from_segment_code       => l_adr_value_segment_code
66375         , p_from_combination_id     => l_adr_value_combination_id
66376         , p_value_type_code         => l_adr_value_type_code
66377         , p_transaction_coa_id      => l_adr_transaction_coa_id
66378         , p_accounting_coa_id       => l_adr_accounting_coa_id
66379         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
66380         , p_flex_value_set_id       => l_adr_flex_value_set_id
66381         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
66382         , p_adr_type_code           => 'S'
66383         , p_component_type          => l_component_type
66384         , p_component_code          => l_component_code
66385         , p_component_type_code     => l_component_type_code
66386         , p_component_appl_id       => l_component_appl_id
66387         , p_amb_context_code        => l_amb_context_code
66388         , p_entity_code             => 'AP_PAYMENTS'
66389         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
66390         , p_side                    => 'CREDIT'
66391         );
66392 
66393   END IF;
66394 
66395    l_segment := AcctDerRule_18(
66396            p_application_id           => p_application_id
66397          , p_ae_header_id             => l_ae_header_id 
66398 , p_source_15 => p_source_15
66399 , p_source_15_meaning => p_source_15_meaning
66400 , p_source_38 => p_source_38
66401 , p_source_39 => p_source_39
66402          , x_transaction_coa_id       => l_adr_transaction_coa_id
66403          , x_accounting_coa_id        => l_adr_accounting_coa_id
66404          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
66405          , x_flex_value_set_id        => l_adr_flex_value_set_id
66406          , x_value_type_code          => l_adr_value_type_code
66407          , x_value_combination_id     => l_adr_value_combination_id
66408          , x_value_segment_code       => l_adr_value_segment_code
66409          , p_side                     => 'DEBIT'
66410          , p_override_seg_flag        => 'Y'
66411    );
66412 
66413    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
66414 
66415       xla_ae_lines_pkg.set_segment(
66416           p_to_segment_code         => 'GL_ACCOUNT'
66417         , p_segment_value           => l_segment
66418         , p_from_segment_code       => l_adr_value_segment_code
66419         , p_from_combination_id     => l_adr_value_combination_id
66420         , p_value_type_code         => l_adr_value_type_code
66421         , p_transaction_coa_id      => l_adr_transaction_coa_id
66422         , p_accounting_coa_id       => l_adr_accounting_coa_id
66423         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
66424         , p_flex_value_set_id       => l_adr_flex_value_set_id
66425         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
66426         , p_adr_type_code           => 'S'
66427         , p_component_type          => l_component_type
66428         , p_component_code          => l_component_code
66429         , p_component_type_code     => l_component_type_code
66430         , p_component_appl_id       => l_component_appl_id
66431         , p_amb_context_code        => l_amb_context_code
66432         , p_entity_code             => 'AP_PAYMENTS'
66433         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
66434         , p_side                    => 'DEBIT'
66435         );
66436 
66437   END IF;
66438 
66439    --
66440    --
66441    END IF;
66442    --
66443    -- Bug 4922099
66444    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
66445           (NVL(l_enc_upg_option, 'N') = 'O')
66446         ) AND
66447         (l_bflow_method_code = 'PRIOR_ENTRY')
66448       )
66449    THEN
66450       IF
66451       --
66452       1 = 2
66453       --
66454       THEN
66455       xla_accounting_err_pkg.build_message
66456                                     (p_appli_s_name            => 'XLA'
66457                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
66458                                     ,p_token_1                 => 'LINE_NUMBER'
66459                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
66460                                     ,p_token_2                 => 'LINE_TYPE_NAME'
66461                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
66462                                                                              l_component_type
66463                                                                             ,l_component_code
66464                                                                             ,l_component_type_code
66465                                                                             ,l_component_appl_id
66466                                                                             ,l_amb_context_code
66470                                     ,p_token_3                 => 'OWNER'
66467                                                                             ,l_entity_code
66468                                                                             ,l_event_class_code
66469                                                                            )
66471                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
66472                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
66473                                                                           ,p_lookup_code    => l_component_type_code
66474                                                                          )
66475                                     ,p_token_4                 => 'PRODUCT_NAME'
66476                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
66477                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
66478                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
66479                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
66480                                     ,p_ae_header_id            =>  NULL
66481                                        );
66482 
66483         IF (C_LEVEL_ERROR>= g_log_level) THEN
66484                  trace
66485                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
66486                       ,p_level    => C_LEVEL_ERROR
66487                       ,p_module   => l_log_module);
66488         END IF;
66489       END IF;
66490    END IF;
66491    --
66492    --
66493    ------------------------------------------------------------------------------------------------
66494    -- 4219869 Business Flow
66495    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
66496    -- Prior Entry.  Currently, the following code is always generated.
66497    ------------------------------------------------------------------------------------------------
66498    XLA_AE_LINES_PKG.ValidateCurrentLine;
66499 
66500    ------------------------------------------------------------------------------------
66501    -- 4219869 Business Flow
66502    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
66503    ------------------------------------------------------------------------------------
66504    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
66505 
66506    ----------------------------------------------------------------------------------
66507    -- 4219869 Business Flow
66508    -- Update journal entry status -- Need to generate this within IF <condition>
66509    ----------------------------------------------------------------------------------
66510    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
66511          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
66512          ,p_balance_type_code => l_balance_type_code
66513          );
66514 
66515    -------------------------------------------------------------------------------------------
66516    -- 4262811 - Generate the Accrual Reversal lines
66517    -------------------------------------------------------------------------------------------
66518    BEGIN
66519       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
66520                               (g_array_event(p_event_id).array_value_num('header_index'));
66521       IF l_acc_rev_flag IS NULL THEN
66522          l_acc_rev_flag := 'N';
66523       END IF;
66524    EXCEPTION
66525       WHEN OTHERS THEN
66526          l_acc_rev_flag := 'N';
66527    END;
66528    --
66529    IF (l_acc_rev_flag = 'Y') THEN
66530 
66531        -- 4645092  ------------------------------------------------------------------------------
66532        -- To allow MPA report to determine if it should generate report process
66533        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
66534        ------------------------------------------------------------------------------------------
66535 
66536        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
66537        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
66538    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
66539    -- call ADRs
66540    -- Bug 4922099
66541    --
66542    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
66543         (NVL(l_actual_upg_option, 'N') = 'O') OR
66544         (NVL(l_enc_upg_option, 'N') = 'O')
66545       )
66546    THEN
66547    NULL;
66548    --
66549    --
66550    
66551   l_ccid := AcctDerRule_38(
66552            p_application_id           => p_application_id
66553          , p_ae_header_id             => l_ae_header_id 
66554 , p_source_15 => p_source_15
66555 , p_source_15_meaning => p_source_15_meaning
66556 , p_source_30 => p_source_30
66557 , p_source_36 => p_source_36
66558 , p_source_37 => p_source_37
66559          , x_transaction_coa_id       => l_adr_transaction_coa_id
66560          , x_accounting_coa_id        => l_adr_accounting_coa_id
66561          , x_value_type_code          => l_adr_value_type_code
66562          , p_side                     => 'CREDIT'
66563    );
66564 
66565    xla_ae_lines_pkg.set_ccid(
66566     p_code_combination_id          => l_ccid
66567   , p_value_type_code              => l_adr_value_type_code
66568   , p_transaction_coa_id           => l_adr_transaction_coa_id
66569   , p_accounting_coa_id            => l_adr_accounting_coa_id
66573   , p_component_code               => l_component_code
66570   , p_adr_code                     => 'AP_REAL_GAIN'
66571   , p_adr_type_code                => 'S'
66572   , p_component_type               => l_component_type
66574   , p_component_type_code          => l_component_type_code
66575   , p_component_appl_id            => l_component_appl_id
66576   , p_amb_context_code             => l_amb_context_code
66577   , p_side                         => 'CREDIT'
66578   );
66579 
66580 
66581   l_ccid := AcctDerRule_39(
66582            p_application_id           => p_application_id
66583          , p_ae_header_id             => l_ae_header_id 
66584 , p_source_15 => p_source_15
66585 , p_source_15_meaning => p_source_15_meaning
66586 , p_source_30 => p_source_30
66587 , p_source_38 => p_source_38
66588 , p_source_39 => p_source_39
66589          , x_transaction_coa_id       => l_adr_transaction_coa_id
66590          , x_accounting_coa_id        => l_adr_accounting_coa_id
66591          , x_value_type_code          => l_adr_value_type_code
66592          , p_side                     => 'DEBIT'
66593    );
66594 
66595    xla_ae_lines_pkg.set_ccid(
66596     p_code_combination_id          => l_ccid
66597   , p_value_type_code              => l_adr_value_type_code
66598   , p_transaction_coa_id           => l_adr_transaction_coa_id
66599   , p_accounting_coa_id            => l_adr_accounting_coa_id
66600   , p_adr_code                     => 'AP_REAL_LOSS'
66601   , p_adr_type_code                => 'S'
66602   , p_component_type               => l_component_type
66603   , p_component_code               => l_component_code
66604   , p_component_type_code          => l_component_type_code
66605   , p_component_appl_id            => l_component_appl_id
66606   , p_amb_context_code             => l_amb_context_code
66607   , p_side                         => 'DEBIT'
66608   );
66609 
66610 
66611    l_segment := AcctDerRule_22(
66612            p_application_id           => p_application_id
66613          , p_ae_header_id             => l_ae_header_id 
66614 , p_source_15 => p_source_15
66615 , p_source_15_meaning => p_source_15_meaning
66616 , p_source_30 => p_source_30
66617          , x_transaction_coa_id       => l_adr_transaction_coa_id
66618          , x_accounting_coa_id        => l_adr_accounting_coa_id
66619          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
66620          , x_flex_value_set_id        => l_adr_flex_value_set_id
66621          , x_value_type_code          => l_adr_value_type_code
66622          , x_value_combination_id     => l_adr_value_combination_id
66623          , x_value_segment_code       => l_adr_value_segment_code
66624          , p_side                     => 'ALL'
66625          , p_override_seg_flag        => 'Y'
66626    );
66627 
66628    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
66629 
66630       xla_ae_lines_pkg.set_segment(
66631           p_to_segment_code         => 'GL_BALANCING'
66632         , p_segment_value           => l_segment
66633         , p_from_segment_code       => l_adr_value_segment_code
66634         , p_from_combination_id     => l_adr_value_combination_id
66635         , p_value_type_code         => l_adr_value_type_code
66636         , p_transaction_coa_id      => l_adr_transaction_coa_id
66637         , p_accounting_coa_id       => l_adr_accounting_coa_id
66638         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
66639         , p_flex_value_set_id       => l_adr_flex_value_set_id
66640         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
66641         , p_adr_type_code           => 'S'
66642         , p_component_type          => l_component_type
66643         , p_component_code          => l_component_code
66644         , p_component_type_code     => l_component_type_code
66645         , p_component_appl_id       => l_component_appl_id
66646         , p_amb_context_code        => l_amb_context_code
66647         , p_entity_code             => 'AP_PAYMENTS'
66648         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
66649         , p_side                    => 'ALL'
66650         );
66651 
66652   END IF;
66653 
66654    l_segment := AcctDerRule_17(
66655            p_application_id           => p_application_id
66656          , p_ae_header_id             => l_ae_header_id 
66657 , p_source_15 => p_source_15
66658 , p_source_15_meaning => p_source_15_meaning
66659 , p_source_36 => p_source_36
66660 , p_source_37 => p_source_37
66661          , x_transaction_coa_id       => l_adr_transaction_coa_id
66662          , x_accounting_coa_id        => l_adr_accounting_coa_id
66663          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
66664          , x_flex_value_set_id        => l_adr_flex_value_set_id
66665          , x_value_type_code          => l_adr_value_type_code
66666          , x_value_combination_id     => l_adr_value_combination_id
66667          , x_value_segment_code       => l_adr_value_segment_code
66668          , p_side                     => 'CREDIT'
66669          , p_override_seg_flag        => 'Y'
66670    );
66671 
66672    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
66673 
66674       xla_ae_lines_pkg.set_segment(
66675           p_to_segment_code         => 'GL_ACCOUNT'
66676         , p_segment_value           => l_segment
66677         , p_from_segment_code       => l_adr_value_segment_code
66678         , p_from_combination_id     => l_adr_value_combination_id
66679         , p_value_type_code         => l_adr_value_type_code
66680         , p_transaction_coa_id      => l_adr_transaction_coa_id
66684         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
66681         , p_accounting_coa_id       => l_adr_accounting_coa_id
66682         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
66683         , p_flex_value_set_id       => l_adr_flex_value_set_id
66685         , p_adr_type_code           => 'S'
66686         , p_component_type          => l_component_type
66687         , p_component_code          => l_component_code
66688         , p_component_type_code     => l_component_type_code
66689         , p_component_appl_id       => l_component_appl_id
66690         , p_amb_context_code        => l_amb_context_code
66691         , p_entity_code             => 'AP_PAYMENTS'
66692         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
66693         , p_side                    => 'CREDIT'
66694         );
66695 
66696   END IF;
66697 
66698    l_segment := AcctDerRule_18(
66699            p_application_id           => p_application_id
66700          , p_ae_header_id             => l_ae_header_id 
66701 , p_source_15 => p_source_15
66702 , p_source_15_meaning => p_source_15_meaning
66703 , p_source_38 => p_source_38
66704 , p_source_39 => p_source_39
66705          , x_transaction_coa_id       => l_adr_transaction_coa_id
66706          , x_accounting_coa_id        => l_adr_accounting_coa_id
66707          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
66708          , x_flex_value_set_id        => l_adr_flex_value_set_id
66709          , x_value_type_code          => l_adr_value_type_code
66710          , x_value_combination_id     => l_adr_value_combination_id
66711          , x_value_segment_code       => l_adr_value_segment_code
66712          , p_side                     => 'DEBIT'
66713          , p_override_seg_flag        => 'Y'
66714    );
66715 
66716    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
66717 
66718       xla_ae_lines_pkg.set_segment(
66719           p_to_segment_code         => 'GL_ACCOUNT'
66720         , p_segment_value           => l_segment
66721         , p_from_segment_code       => l_adr_value_segment_code
66722         , p_from_combination_id     => l_adr_value_combination_id
66723         , p_value_type_code         => l_adr_value_type_code
66724         , p_transaction_coa_id      => l_adr_transaction_coa_id
66725         , p_accounting_coa_id       => l_adr_accounting_coa_id
66726         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
66727         , p_flex_value_set_id       => l_adr_flex_value_set_id
66728         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
66729         , p_adr_type_code           => 'S'
66730         , p_component_type          => l_component_type
66731         , p_component_code          => l_component_code
66732         , p_component_type_code     => l_component_type_code
66733         , p_component_appl_id       => l_component_appl_id
66734         , p_amb_context_code        => l_amb_context_code
66735         , p_entity_code             => 'AP_PAYMENTS'
66736         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
66737         , p_side                    => 'DEBIT'
66738         );
66739 
66740   END IF;
66741 
66742    --
66743    --
66744    END IF;
66745 
66746        --
66747        -- Update the line information that should be overwritten
66748        --
66749        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
66750                                          p_header_num   => 1);
66751        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
66752 
66753        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
66754 
66755        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
66756           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
66757        END IF;
66758 
66759       --
66760       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
66761       --
66762       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
66763           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
66764       ELSE
66765           ---------------------------------------------------------------------------------------------------
66766           -- 4262811a Switch Sign
66767           ---------------------------------------------------------------------------------------------------
66768           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
66769           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
66770                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66771           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
66772                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66773           -- 5132302
66774           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
66775                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
66776 
66777       END IF;
66778 
66779       -- 4955764
66780       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
66781       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
66782 
66783 
66784       XLA_AE_LINES_PKG.ValidateCurrentLine;
66785       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
66786 
66790 
66787       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
66788                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
66789                ,p_balance_type_code => l_balance_type_code);
66791    END IF;
66792 
66793    -----------------------------------------------------------------------------------------
66794    -- 4262811 Multiperiod Accounting
66795    -----------------------------------------------------------------------------------------
66796      -- No MPA option is assigned.
66797 
66798 
66799 END IF;
66800 END IF;
66801 --
66802 
66803 --
66804 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66805    trace
66806       (p_msg      => 'END of AcctLineType_127'
66807       ,p_level    => C_LEVEL_PROCEDURE
66808       ,p_module   => l_log_module);
66809 END IF;
66810 --
66811 EXCEPTION
66812   WHEN xla_exceptions_pkg.application_exception THEN
66813       RAISE;
66814   WHEN OTHERS THEN
66815        xla_exceptions_pkg.raise_message
66816            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_127');
66817 END AcctLineType_127;
66818 --
66819 
66820 ---------------------------------------
66821 --
66822 -- PRIVATE FUNCTION
66823 --         AcctLineType_128
66824 --
66825 ---------------------------------------
66826 PROCEDURE AcctLineType_128 (
66827   p_application_id        IN NUMBER
66828  ,p_event_id              IN NUMBER
66829  ,p_calculate_acctd_flag  IN VARCHAR2
66830  ,p_calculate_g_l_flag    IN VARCHAR2
66831  ,p_actual_flag           IN OUT VARCHAR2
66832  ,p_balance_type_code     OUT VARCHAR2
66833  ,p_gain_or_loss_ref      OUT VARCHAR2
66834  
66835 --Automatic Offsets Value
66836  , p_source_15            IN VARCHAR2
66837  , p_source_15_meaning    IN VARCHAR2
66838 --Invoice Distribution Account
66839  , p_source_30            IN NUMBER
66840 --Internal Realized Gain Account
66841  , p_source_36            IN NUMBER
66842 --Bank Gain Account
66843  , p_source_37            IN NUMBER
66844 --Internal Realized Loss Account
66845  , p_source_38            IN NUMBER
66846 --Bank Loss Account
66847  , p_source_39            IN NUMBER
66848 --Accounting Reversal Indicator
66849  , p_source_53            IN VARCHAR2
66850 --Distribution Link Type
66851  , p_source_55            IN VARCHAR2
66852 --Invoice Identifier
66853  , p_source_58            IN NUMBER
66854 --Payables Encumbrance Upgrade Credit Account
66855  , p_source_65            IN NUMBER
66856 --Payables Encumbrance Upgrade Credit Amount
66857  , p_source_66            IN NUMBER
66858 --Invoice Currency Code
66859  , p_source_67            IN VARCHAR2
66860 --Payables Encumbrance Upgrade Credit Base Amount
66861  , p_source_68            IN NUMBER
66862 --Payables Encumbrance Upgrade Debit Account
66863  , p_source_69            IN NUMBER
66864 --Payables Encumbrance Upgrade Debit Amount
66865  , p_source_70            IN NUMBER
66866 --Payables Encumbrance Upgrade Debit Base Amount
66867  , p_source_71            IN NUMBER
66868 --Payables Encumbrance Upgrade Option
66869  , p_source_72            IN VARCHAR2
66870 --Deferred Accounting End Date
66871  , p_source_77            IN DATE
66872 --Deferred Accounting Option
66873  , p_source_78            IN VARCHAR2
66874 --Deferred Accounting Start Date
66875  , p_source_79            IN DATE
66876 --Override Accounted Amount Indicator
66877  , p_source_80            IN VARCHAR2
66878  , p_source_80_meaning    IN VARCHAR2
66879 --Invoice Supplier Identifier
66880  , p_source_81            IN NUMBER
66881 --Invoice Supplier Site Identifier
66882  , p_source_82            IN NUMBER
66883 --Third Party Type
66884  , p_source_83            IN VARCHAR2
66885 --Invoice Distribution Tax Line Identifier
66886  , p_source_86            IN NUMBER
66887 --Invoice Distribution Tax Distribution Identifier from Tax
66888  , p_source_87            IN NUMBER
66889 --Invoice Distribution Summary Tax Line Identifier
66890  , p_source_88            IN NUMBER
66891 --Payables Upgrade Credit Encumbrance Type Identifier
66892  , p_source_89            IN NUMBER
66893 --Payables Upgrade Debit Encumbrance Type Identifier
66894  , p_source_90            IN NUMBER
66895 --Business Flow Accounts Payable Application Identifier
66896  , p_source_91            IN NUMBER
66897 --Prepayment Distribution Type
66898  , p_source_125            IN VARCHAR2
66899 --Prepayment Application Distribution Identifier
66900  , p_source_127            IN NUMBER
66901 --Upgrade Encumbrance Credit Account Class
66902  , p_source_132            IN VARCHAR2
66903 --Upgrade Encumbrance Debit Account Class
66904  , p_source_133            IN VARCHAR2
66905 --Identifier of the Prepayment Application Reversed
66906  , p_source_136            IN NUMBER
66907 --Business Flow Prepayment Invoice Distribution Type
66908  , p_source_146            IN VARCHAR2
66909 --Business Flow Prepayment Invoice Entity Code
66910  , p_source_147            IN VARCHAR2
66911 --Business Flow Prepayment Invoice Distribution Identifier
66912  , p_source_148            IN NUMBER
66913 --Business Flow Prepayment Invoice Identifier
66914  , p_source_149            IN NUMBER
66915 --Prepayment/Invoice Ledger Amount Difference
66916  , p_source_155            IN NUMBER
66917 )
66918 IS
66919 
66920 l_component_type              VARCHAR2(80);
66921 l_component_code              VARCHAR2(30);
66925 l_entity_code                 VARCHAR2(30);
66922 l_component_type_code         VARCHAR2(1);
66923 l_component_appl_id           INTEGER;
66924 l_amb_context_code            VARCHAR2(30);
66926 l_event_class_code            VARCHAR2(30);
66927 l_ae_header_id                NUMBER;
66928 l_event_type_code             VARCHAR2(30);
66929 l_line_definition_code        VARCHAR2(30);
66930 l_line_definition_owner_code  VARCHAR2(1);
66931 --
66932 -- adr variables
66933 l_segment                     VARCHAR2(30);
66934 l_ccid                        NUMBER;
66935 l_adr_transaction_coa_id      NUMBER;
66936 l_adr_accounting_coa_id       NUMBER;
66937 l_adr_flexfield_segment_code  VARCHAR2(30);
66938 l_adr_flex_value_set_id       NUMBER;
66939 l_adr_value_type_code         VARCHAR2(30);
66940 l_adr_value_combination_id    NUMBER;
66941 l_adr_value_segment_code      VARCHAR2(30);
66942 
66943 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
66944 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
66945 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
66946 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
66947 
66948 -- 4262811 Variables ------------------------------------------------------------------------------------------
66949 l_entered_amt_idx             NUMBER;
66950 l_accted_amt_idx              NUMBER;
66951 l_acc_rev_flag                VARCHAR2(1);
66952 l_accrual_line_num            NUMBER;
66953 l_tmp_amt                     NUMBER;
66954 l_acc_rev_natural_side_code   VARCHAR2(1);
66955 
66956 l_num_entries                 NUMBER;
66957 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
66958 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
66959 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
66960 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
66961 l_recog_line_1                NUMBER;
66962 l_recog_line_2                NUMBER;
66963 
66964 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
66965 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
66966 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
66967 
66968 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
66969 
66970 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
66971 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
66972 
66973 ---------------------------------------------------------------------------------------------------------------
66974 
66975 
66976 --
66977 -- bulk performance
66978 --
66979 l_balance_type_code           VARCHAR2(1);
66980 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
66981 l_log_module                  VARCHAR2(240);
66982 
66983 --
66984 -- Upgrade strategy
66985 --
66986 l_actual_upg_option           VARCHAR2(1);
66987 l_enc_upg_option           VARCHAR2(1);
66988 
66989 --
66990 BEGIN
66991 --
66992 IF g_log_enabled THEN
66993       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_128';
66994 END IF;
66995 --
66996 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66997 
66998       trace
66999          (p_msg      => 'BEGIN of AcctLineType_128'
67000          ,p_level    => C_LEVEL_PROCEDURE
67001          ,p_module   => l_log_module);
67002 
67003 END IF;
67004 --
67005 l_component_type             := 'AMB_JLT';
67006 l_component_code             := 'AP_GAIN_LOSS_PREPAY_APP';
67007 l_component_type_code        := 'S';
67008 l_component_appl_id          :=  200;
67009 l_amb_context_code           := 'DEFAULT';
67010 l_entity_code                := 'AP_INVOICES';
67011 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
67012 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
67013 l_line_definition_owner_code := 'S';
67014 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
67015 --
67016 l_balance_type_code          := 'A';
67017 l_segment                     := NULL;
67018 l_ccid                        := NULL;
67019 l_adr_transaction_coa_id      := NULL;
67020 l_adr_accounting_coa_id       := NULL;
67021 l_adr_flexfield_segment_code  := NULL;
67022 l_adr_flex_value_set_id       := NULL;
67023 l_adr_value_type_code         := NULL;
67024 l_adr_value_combination_id    := NULL;
67025 l_adr_value_segment_code      := NULL;
67026 
67027 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
67028 l_bflow_class_code           := '';    -- 4219869 Business Flow
67029 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
67030 l_budgetary_control_flag     := 'N';
67031 
67032 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
67033 l_bflow_applied_to_amt       := NULL; -- 5132302
67034 l_entered_amt_idx            := NULL;          -- 4262811
67035 l_accted_amt_idx             := NULL;          -- 4262811
67036 l_acc_rev_flag               := NULL;          -- 4262811
67037 l_accrual_line_num           := NULL;          -- 4262811
67038 l_tmp_amt                    := NULL;          -- 4262811
67039 --
67040 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
67041             (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
67045 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
67042                return;
67043   END IF;
67044   
67046     l_balance_type_code <> 'B' THEN
67047 IF NVL(p_source_125,'
67048 ') =  'PREPAY APPL'
67049  THEN 
67050 
67051    --
67052    XLA_AE_LINES_PKG.SetNewLine;
67053 
67054    p_balance_type_code          := l_balance_type_code;
67055    -- set the flag so later we will know whether the gain loss line needs to be created
67056    
67057    IF(l_balance_type_code = 'A' ) THEN
67058      p_actual_flag :='G';
67059    END IF;
67060 
67061    --
67062    -- bulk performance
67063    --
67064    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
67065                                       p_header_num   => 0); -- 4262811
67066    --
67067    -- set accounting line options
67068    --
67069    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
67070            p_natural_side_code          => 'G'
67071          , p_gain_or_loss_flag          => 'N'
67072          , p_gl_transfer_mode_code      => 'S'
67073          , p_acct_entry_type_code       => 'A'
67074          , p_switch_side_flag           => ''
67075          , p_merge_duplicate_code       => 'A'
67076          );
67077    --
67078    l_acc_rev_natural_side_code := 'C';  -- 4262811
67079    -- 
67080    --
67081    -- set accounting line type info
67082    --
67083    xla_ae_lines_pkg.SetAcctLineType
67084       (p_component_type             => l_component_type
67085       ,p_event_type_code            => l_event_type_code
67086       ,p_line_definition_owner_code => l_line_definition_owner_code
67087       ,p_line_definition_code       => l_line_definition_code
67088       ,p_accounting_line_code       => l_component_code
67089       ,p_accounting_line_type_code  => l_component_type_code
67090       ,p_accounting_line_appl_id    => l_component_appl_id
67091       ,p_amb_context_code           => l_amb_context_code
67092       ,p_entity_code                => l_entity_code
67093       ,p_event_class_code           => l_event_class_code);
67094    --
67095    -- set accounting class
67096    --
67097    xla_ae_lines_pkg.SetAcctClass(
67098            p_accounting_class_code  => 'EXCHANGE_GAIN_LOSS'
67099          , p_ae_header_id           => l_ae_header_id
67100          );
67101 
67102    --
67103    -- set rounding class
67104    --
67105    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
67106                       'EXCHANGE_GAIN_LOSS';
67107 
67108    --
67109    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
67110    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
67111    --
67112    -- bulk performance
67113    --
67114    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
67115 
67116    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
67117       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
67118 
67119    -- 4955764
67120    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
67121       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
67122 
67123    -- 4458381 Public Sector Enh
67124    
67125    --
67126    -- set accounting attributes for the line type
67127    --
67128    l_entered_amt_idx := NULL;
67129    l_accted_amt_idx  := 25;
67130    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
67131    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
67132    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
67133    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
67134    l_rec_acct_attrs.array_num_value(2)  := 
67135 xla_ae_sources_pkg.GetSystemSourceNum(
67136    p_source_code           => 'XLA_EVENT_APPL_ID'
67137  , p_source_type_code      => 'Y'
67138  , p_source_application_id =>  602
67139 );
67140    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
67141    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
67142    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
67143    l_rec_acct_attrs.array_char_value(4)  := 
67144 xla_ae_sources_pkg.GetSystemSourceChar(
67145    p_source_code           => 'XLA_ENTITY_CODE'
67146  , p_source_type_code      => 'Y'
67147  , p_source_application_id =>  602
67148 );
67149    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
67150    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_127);
67151    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
67152    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
67153    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
67154    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
67155    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
67156    l_rec_acct_attrs.array_char_value(8)  := p_source_146;
67157    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
67158    l_rec_acct_attrs.array_char_value(9)  := p_source_147;
67159    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
67160    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_148);
67161    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
67165    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
67162    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_149);
67163    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
67164    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_127);
67166    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
67167    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
67168    l_rec_acct_attrs.array_char_value(14)  := p_source_132;
67169    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
67170    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
67171    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
67172    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
67173    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
67174    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
67175    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
67176    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
67177    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
67178    l_rec_acct_attrs.array_char_value(19)  := p_source_133;
67179    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
67180    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
67181    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
67182    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
67183    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
67184    l_rec_acct_attrs.array_char_value(22)  := p_source_67;
67185    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
67186    l_rec_acct_attrs.array_num_value(23)  := p_source_71;
67187    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
67188    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
67189    l_rec_acct_attrs.array_acct_attr_code(25) := 'LEDGER_AMOUNT';
67190    l_rec_acct_attrs.array_num_value(25)  := p_source_155;
67191    l_rec_acct_attrs.array_acct_attr_code(26) := 'MULTIPERIOD_END_DATE';
67192    l_rec_acct_attrs.array_date_value(26)  := p_source_77;
67193    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_OPTION';
67194    l_rec_acct_attrs.array_char_value(27)  := p_source_78;
67195    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_START_DATE';
67196    l_rec_acct_attrs.array_date_value(28)  := p_source_79;
67197    l_rec_acct_attrs.array_acct_attr_code(29) := 'OVERRIDE_ACCTD_AMT_FLAG';
67198    l_rec_acct_attrs.array_char_value(29)  := p_source_80;
67199    l_rec_acct_attrs.array_acct_attr_code(30) := 'PARTY_ID';
67200    l_rec_acct_attrs.array_num_value(30)  := p_source_81;
67201    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_SITE_ID';
67202    l_rec_acct_attrs.array_num_value(31)  := p_source_82;
67203    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
67204    l_rec_acct_attrs.array_char_value(32)  := p_source_83;
67205    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
67206    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_136);
67207    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
67208    l_rec_acct_attrs.array_char_value(34)  := p_source_55;
67209    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
67210    l_rec_acct_attrs.array_num_value(35)  := p_source_86;
67211    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
67212    l_rec_acct_attrs.array_num_value(36)  := p_source_87;
67213    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
67214    l_rec_acct_attrs.array_num_value(37)  := p_source_88;
67215    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
67216    l_rec_acct_attrs.array_num_value(38)  := p_source_89;
67217    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
67218    l_rec_acct_attrs.array_num_value(39)  := p_source_90;
67219 
67220    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
67221    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
67222 
67223    ---------------------------------------------------------------------------------------------------------------
67224    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
67225    ---------------------------------------------------------------------------------------------------------------
67226    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
67227 
67228    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
67229    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
67230 
67231    IF xla_accounting_cache_pkg.GetValueChar
67232          (p_source_code         => 'LEDGER_CATEGORY_CODE'
67233          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
67234    AND l_bflow_method_code = 'PRIOR_ENTRY'
67235 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
67236    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
67237          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
67238        )
67239    THEN
67240          xla_ae_lines_pkg.BflowUpgEntry
67241            (p_business_method_code    => l_bflow_method_code
67242            ,p_business_class_code     => l_bflow_class_code
67243            ,p_balance_type            => l_balance_type_code);
67244    ELSE
67245       NULL;
67246 -- No business flow processing for business flow method of NONE.
67247    END IF;
67248 
67249    --
67250    -- call analytical criteria
67251    --
67252    
67253    --
67257    --
67254    -- call description
67255    --
67256    -- No description or it is inherited.
67258    -- call ADRs
67259    -- Bug 4922099
67260    --
67261    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
67262         (NVL(l_actual_upg_option, 'N') = 'O') OR
67263         (NVL(l_enc_upg_option, 'N') = 'O')
67264       )
67265    THEN
67266    NULL;
67267    --
67268    --
67269    
67270   l_ccid := AcctDerRule_38(
67271            p_application_id           => p_application_id
67272          , p_ae_header_id             => l_ae_header_id 
67273 , p_source_15 => p_source_15
67274 , p_source_15_meaning => p_source_15_meaning
67275 , p_source_30 => p_source_30
67276 , p_source_36 => p_source_36
67277 , p_source_37 => p_source_37
67278          , x_transaction_coa_id       => l_adr_transaction_coa_id
67279          , x_accounting_coa_id        => l_adr_accounting_coa_id
67280          , x_value_type_code          => l_adr_value_type_code
67281          , p_side                     => 'CREDIT'
67282    );
67283 
67284    xla_ae_lines_pkg.set_ccid(
67285     p_code_combination_id          => l_ccid
67286   , p_value_type_code              => l_adr_value_type_code
67287   , p_transaction_coa_id           => l_adr_transaction_coa_id
67288   , p_accounting_coa_id            => l_adr_accounting_coa_id
67289   , p_adr_code                     => 'AP_REAL_GAIN'
67290   , p_adr_type_code                => 'S'
67291   , p_component_type               => l_component_type
67292   , p_component_code               => l_component_code
67293   , p_component_type_code          => l_component_type_code
67294   , p_component_appl_id            => l_component_appl_id
67295   , p_amb_context_code             => l_amb_context_code
67296   , p_side                         => 'CREDIT'
67297   );
67298 
67299 
67300   l_ccid := AcctDerRule_39(
67301            p_application_id           => p_application_id
67302          , p_ae_header_id             => l_ae_header_id 
67303 , p_source_15 => p_source_15
67304 , p_source_15_meaning => p_source_15_meaning
67305 , p_source_30 => p_source_30
67306 , p_source_38 => p_source_38
67307 , p_source_39 => p_source_39
67308          , x_transaction_coa_id       => l_adr_transaction_coa_id
67309          , x_accounting_coa_id        => l_adr_accounting_coa_id
67310          , x_value_type_code          => l_adr_value_type_code
67311          , p_side                     => 'DEBIT'
67312    );
67313 
67314    xla_ae_lines_pkg.set_ccid(
67315     p_code_combination_id          => l_ccid
67316   , p_value_type_code              => l_adr_value_type_code
67317   , p_transaction_coa_id           => l_adr_transaction_coa_id
67318   , p_accounting_coa_id            => l_adr_accounting_coa_id
67319   , p_adr_code                     => 'AP_REAL_LOSS'
67320   , p_adr_type_code                => 'S'
67321   , p_component_type               => l_component_type
67322   , p_component_code               => l_component_code
67323   , p_component_type_code          => l_component_type_code
67324   , p_component_appl_id            => l_component_appl_id
67325   , p_amb_context_code             => l_amb_context_code
67326   , p_side                         => 'DEBIT'
67327   );
67328 
67329 
67330    l_segment := AcctDerRule_22(
67331            p_application_id           => p_application_id
67332          , p_ae_header_id             => l_ae_header_id 
67333 , p_source_15 => p_source_15
67334 , p_source_15_meaning => p_source_15_meaning
67335 , p_source_30 => p_source_30
67336          , x_transaction_coa_id       => l_adr_transaction_coa_id
67337          , x_accounting_coa_id        => l_adr_accounting_coa_id
67338          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
67339          , x_flex_value_set_id        => l_adr_flex_value_set_id
67340          , x_value_type_code          => l_adr_value_type_code
67341          , x_value_combination_id     => l_adr_value_combination_id
67342          , x_value_segment_code       => l_adr_value_segment_code
67343          , p_side                     => 'ALL'
67344          , p_override_seg_flag        => 'Y'
67345    );
67346 
67347    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
67348 
67349       xla_ae_lines_pkg.set_segment(
67350           p_to_segment_code         => 'GL_BALANCING'
67351         , p_segment_value           => l_segment
67352         , p_from_segment_code       => l_adr_value_segment_code
67353         , p_from_combination_id     => l_adr_value_combination_id
67354         , p_value_type_code         => l_adr_value_type_code
67355         , p_transaction_coa_id      => l_adr_transaction_coa_id
67356         , p_accounting_coa_id       => l_adr_accounting_coa_id
67357         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
67358         , p_flex_value_set_id       => l_adr_flex_value_set_id
67359         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
67360         , p_adr_type_code           => 'S'
67361         , p_component_type          => l_component_type
67362         , p_component_code          => l_component_code
67363         , p_component_type_code     => l_component_type_code
67364         , p_component_appl_id       => l_component_appl_id
67365         , p_amb_context_code        => l_amb_context_code
67366         , p_entity_code             => 'AP_INVOICES'
67367         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
67368         , p_side                    => 'ALL'
67369         );
67370 
67371   END IF;
67372 
67373    l_segment := AcctDerRule_17(
67377 , p_source_15_meaning => p_source_15_meaning
67374            p_application_id           => p_application_id
67375          , p_ae_header_id             => l_ae_header_id 
67376 , p_source_15 => p_source_15
67378 , p_source_36 => p_source_36
67379 , p_source_37 => p_source_37
67380          , x_transaction_coa_id       => l_adr_transaction_coa_id
67381          , x_accounting_coa_id        => l_adr_accounting_coa_id
67382          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
67383          , x_flex_value_set_id        => l_adr_flex_value_set_id
67384          , x_value_type_code          => l_adr_value_type_code
67385          , x_value_combination_id     => l_adr_value_combination_id
67386          , x_value_segment_code       => l_adr_value_segment_code
67387          , p_side                     => 'CREDIT'
67388          , p_override_seg_flag        => 'Y'
67389    );
67390 
67391    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
67392 
67393       xla_ae_lines_pkg.set_segment(
67394           p_to_segment_code         => 'GL_ACCOUNT'
67395         , p_segment_value           => l_segment
67396         , p_from_segment_code       => l_adr_value_segment_code
67397         , p_from_combination_id     => l_adr_value_combination_id
67398         , p_value_type_code         => l_adr_value_type_code
67399         , p_transaction_coa_id      => l_adr_transaction_coa_id
67400         , p_accounting_coa_id       => l_adr_accounting_coa_id
67401         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
67402         , p_flex_value_set_id       => l_adr_flex_value_set_id
67403         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
67404         , p_adr_type_code           => 'S'
67405         , p_component_type          => l_component_type
67406         , p_component_code          => l_component_code
67407         , p_component_type_code     => l_component_type_code
67408         , p_component_appl_id       => l_component_appl_id
67409         , p_amb_context_code        => l_amb_context_code
67410         , p_entity_code             => 'AP_INVOICES'
67411         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
67412         , p_side                    => 'CREDIT'
67413         );
67414 
67415   END IF;
67416 
67417    l_segment := AcctDerRule_18(
67418            p_application_id           => p_application_id
67419          , p_ae_header_id             => l_ae_header_id 
67420 , p_source_15 => p_source_15
67421 , p_source_15_meaning => p_source_15_meaning
67422 , p_source_38 => p_source_38
67423 , p_source_39 => p_source_39
67424          , x_transaction_coa_id       => l_adr_transaction_coa_id
67425          , x_accounting_coa_id        => l_adr_accounting_coa_id
67426          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
67427          , x_flex_value_set_id        => l_adr_flex_value_set_id
67428          , x_value_type_code          => l_adr_value_type_code
67429          , x_value_combination_id     => l_adr_value_combination_id
67430          , x_value_segment_code       => l_adr_value_segment_code
67431          , p_side                     => 'DEBIT'
67432          , p_override_seg_flag        => 'Y'
67433    );
67434 
67435    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
67436 
67437       xla_ae_lines_pkg.set_segment(
67438           p_to_segment_code         => 'GL_ACCOUNT'
67439         , p_segment_value           => l_segment
67440         , p_from_segment_code       => l_adr_value_segment_code
67441         , p_from_combination_id     => l_adr_value_combination_id
67442         , p_value_type_code         => l_adr_value_type_code
67443         , p_transaction_coa_id      => l_adr_transaction_coa_id
67444         , p_accounting_coa_id       => l_adr_accounting_coa_id
67445         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
67446         , p_flex_value_set_id       => l_adr_flex_value_set_id
67447         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
67448         , p_adr_type_code           => 'S'
67449         , p_component_type          => l_component_type
67450         , p_component_code          => l_component_code
67451         , p_component_type_code     => l_component_type_code
67452         , p_component_appl_id       => l_component_appl_id
67453         , p_amb_context_code        => l_amb_context_code
67454         , p_entity_code             => 'AP_INVOICES'
67455         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
67456         , p_side                    => 'DEBIT'
67457         );
67458 
67459   END IF;
67460 
67461    --
67462    --
67463    END IF;
67464    --
67465    -- Bug 4922099
67466    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
67467           (NVL(l_enc_upg_option, 'N') = 'O')
67468         ) AND
67469         (l_bflow_method_code = 'PRIOR_ENTRY')
67470       )
67471    THEN
67472       IF
67473       --
67474       1 = 2
67475       --
67476       THEN
67477       xla_accounting_err_pkg.build_message
67478                                     (p_appli_s_name            => 'XLA'
67479                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
67480                                     ,p_token_1                 => 'LINE_NUMBER'
67481                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
67482                                     ,p_token_2                 => 'LINE_TYPE_NAME'
67483                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
67487                                                                             ,l_component_appl_id
67484                                                                              l_component_type
67485                                                                             ,l_component_code
67486                                                                             ,l_component_type_code
67488                                                                             ,l_amb_context_code
67489                                                                             ,l_entity_code
67490                                                                             ,l_event_class_code
67491                                                                            )
67492                                     ,p_token_3                 => 'OWNER'
67493                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
67494                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
67495                                                                           ,p_lookup_code    => l_component_type_code
67496                                                                          )
67497                                     ,p_token_4                 => 'PRODUCT_NAME'
67498                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
67499                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
67500                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
67501                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
67502                                     ,p_ae_header_id            =>  NULL
67503                                        );
67504 
67505         IF (C_LEVEL_ERROR>= g_log_level) THEN
67506                  trace
67507                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
67508                       ,p_level    => C_LEVEL_ERROR
67509                       ,p_module   => l_log_module);
67510         END IF;
67511       END IF;
67512    END IF;
67513    --
67514    --
67515    ------------------------------------------------------------------------------------------------
67516    -- 4219869 Business Flow
67517    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
67518    -- Prior Entry.  Currently, the following code is always generated.
67519    ------------------------------------------------------------------------------------------------
67520    XLA_AE_LINES_PKG.ValidateCurrentLine;
67521 
67522    ------------------------------------------------------------------------------------
67523    -- 4219869 Business Flow
67524    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
67525    ------------------------------------------------------------------------------------
67526    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
67527 
67528    ----------------------------------------------------------------------------------
67529    -- 4219869 Business Flow
67530    -- Update journal entry status -- Need to generate this within IF <condition>
67531    ----------------------------------------------------------------------------------
67532    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
67533          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
67534          ,p_balance_type_code => l_balance_type_code
67535          );
67536 
67537    -------------------------------------------------------------------------------------------
67538    -- 4262811 - Generate the Accrual Reversal lines
67539    -------------------------------------------------------------------------------------------
67540    BEGIN
67541       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
67542                               (g_array_event(p_event_id).array_value_num('header_index'));
67543       IF l_acc_rev_flag IS NULL THEN
67544          l_acc_rev_flag := 'N';
67545       END IF;
67546    EXCEPTION
67547       WHEN OTHERS THEN
67548          l_acc_rev_flag := 'N';
67549    END;
67550    --
67551    IF (l_acc_rev_flag = 'Y') THEN
67552 
67553        -- 4645092  ------------------------------------------------------------------------------
67554        -- To allow MPA report to determine if it should generate report process
67555        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
67556        ------------------------------------------------------------------------------------------
67557 
67558        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
67559        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
67560    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
67561    -- call ADRs
67562    -- Bug 4922099
67563    --
67564    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
67565         (NVL(l_actual_upg_option, 'N') = 'O') OR
67566         (NVL(l_enc_upg_option, 'N') = 'O')
67567       )
67568    THEN
67569    NULL;
67570    --
67571    --
67572    
67573   l_ccid := AcctDerRule_38(
67574            p_application_id           => p_application_id
67575          , p_ae_header_id             => l_ae_header_id 
67576 , p_source_15 => p_source_15
67577 , p_source_15_meaning => p_source_15_meaning
67578 , p_source_30 => p_source_30
67579 , p_source_36 => p_source_36
67580 , p_source_37 => p_source_37
67584          , p_side                     => 'CREDIT'
67581          , x_transaction_coa_id       => l_adr_transaction_coa_id
67582          , x_accounting_coa_id        => l_adr_accounting_coa_id
67583          , x_value_type_code          => l_adr_value_type_code
67585    );
67586 
67587    xla_ae_lines_pkg.set_ccid(
67588     p_code_combination_id          => l_ccid
67589   , p_value_type_code              => l_adr_value_type_code
67590   , p_transaction_coa_id           => l_adr_transaction_coa_id
67591   , p_accounting_coa_id            => l_adr_accounting_coa_id
67592   , p_adr_code                     => 'AP_REAL_GAIN'
67593   , p_adr_type_code                => 'S'
67594   , p_component_type               => l_component_type
67595   , p_component_code               => l_component_code
67596   , p_component_type_code          => l_component_type_code
67597   , p_component_appl_id            => l_component_appl_id
67598   , p_amb_context_code             => l_amb_context_code
67599   , p_side                         => 'CREDIT'
67600   );
67601 
67602 
67603   l_ccid := AcctDerRule_39(
67604            p_application_id           => p_application_id
67605          , p_ae_header_id             => l_ae_header_id 
67606 , p_source_15 => p_source_15
67607 , p_source_15_meaning => p_source_15_meaning
67608 , p_source_30 => p_source_30
67609 , p_source_38 => p_source_38
67610 , p_source_39 => p_source_39
67611          , x_transaction_coa_id       => l_adr_transaction_coa_id
67612          , x_accounting_coa_id        => l_adr_accounting_coa_id
67613          , x_value_type_code          => l_adr_value_type_code
67614          , p_side                     => 'DEBIT'
67615    );
67616 
67617    xla_ae_lines_pkg.set_ccid(
67618     p_code_combination_id          => l_ccid
67619   , p_value_type_code              => l_adr_value_type_code
67620   , p_transaction_coa_id           => l_adr_transaction_coa_id
67621   , p_accounting_coa_id            => l_adr_accounting_coa_id
67622   , p_adr_code                     => 'AP_REAL_LOSS'
67623   , p_adr_type_code                => 'S'
67624   , p_component_type               => l_component_type
67625   , p_component_code               => l_component_code
67626   , p_component_type_code          => l_component_type_code
67627   , p_component_appl_id            => l_component_appl_id
67628   , p_amb_context_code             => l_amb_context_code
67629   , p_side                         => 'DEBIT'
67630   );
67631 
67632 
67633    l_segment := AcctDerRule_22(
67634            p_application_id           => p_application_id
67635          , p_ae_header_id             => l_ae_header_id 
67636 , p_source_15 => p_source_15
67637 , p_source_15_meaning => p_source_15_meaning
67638 , p_source_30 => p_source_30
67639          , x_transaction_coa_id       => l_adr_transaction_coa_id
67640          , x_accounting_coa_id        => l_adr_accounting_coa_id
67641          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
67642          , x_flex_value_set_id        => l_adr_flex_value_set_id
67643          , x_value_type_code          => l_adr_value_type_code
67644          , x_value_combination_id     => l_adr_value_combination_id
67645          , x_value_segment_code       => l_adr_value_segment_code
67646          , p_side                     => 'ALL'
67647          , p_override_seg_flag        => 'Y'
67648    );
67649 
67650    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
67651 
67652       xla_ae_lines_pkg.set_segment(
67653           p_to_segment_code         => 'GL_BALANCING'
67654         , p_segment_value           => l_segment
67655         , p_from_segment_code       => l_adr_value_segment_code
67656         , p_from_combination_id     => l_adr_value_combination_id
67657         , p_value_type_code         => l_adr_value_type_code
67658         , p_transaction_coa_id      => l_adr_transaction_coa_id
67659         , p_accounting_coa_id       => l_adr_accounting_coa_id
67660         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
67661         , p_flex_value_set_id       => l_adr_flex_value_set_id
67662         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
67663         , p_adr_type_code           => 'S'
67664         , p_component_type          => l_component_type
67665         , p_component_code          => l_component_code
67666         , p_component_type_code     => l_component_type_code
67667         , p_component_appl_id       => l_component_appl_id
67668         , p_amb_context_code        => l_amb_context_code
67669         , p_entity_code             => 'AP_INVOICES'
67670         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
67671         , p_side                    => 'ALL'
67672         );
67673 
67674   END IF;
67675 
67676    l_segment := AcctDerRule_17(
67677            p_application_id           => p_application_id
67678          , p_ae_header_id             => l_ae_header_id 
67679 , p_source_15 => p_source_15
67680 , p_source_15_meaning => p_source_15_meaning
67681 , p_source_36 => p_source_36
67682 , p_source_37 => p_source_37
67683          , x_transaction_coa_id       => l_adr_transaction_coa_id
67684          , x_accounting_coa_id        => l_adr_accounting_coa_id
67685          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
67686          , x_flex_value_set_id        => l_adr_flex_value_set_id
67687          , x_value_type_code          => l_adr_value_type_code
67688          , x_value_combination_id     => l_adr_value_combination_id
67689          , x_value_segment_code       => l_adr_value_segment_code
67693 
67690          , p_side                     => 'CREDIT'
67691          , p_override_seg_flag        => 'Y'
67692    );
67694    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
67695 
67696       xla_ae_lines_pkg.set_segment(
67697           p_to_segment_code         => 'GL_ACCOUNT'
67698         , p_segment_value           => l_segment
67699         , p_from_segment_code       => l_adr_value_segment_code
67700         , p_from_combination_id     => l_adr_value_combination_id
67701         , p_value_type_code         => l_adr_value_type_code
67702         , p_transaction_coa_id      => l_adr_transaction_coa_id
67703         , p_accounting_coa_id       => l_adr_accounting_coa_id
67704         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
67705         , p_flex_value_set_id       => l_adr_flex_value_set_id
67706         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
67707         , p_adr_type_code           => 'S'
67708         , p_component_type          => l_component_type
67709         , p_component_code          => l_component_code
67710         , p_component_type_code     => l_component_type_code
67711         , p_component_appl_id       => l_component_appl_id
67712         , p_amb_context_code        => l_amb_context_code
67713         , p_entity_code             => 'AP_INVOICES'
67714         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
67715         , p_side                    => 'CREDIT'
67716         );
67717 
67718   END IF;
67719 
67720    l_segment := AcctDerRule_18(
67721            p_application_id           => p_application_id
67722          , p_ae_header_id             => l_ae_header_id 
67723 , p_source_15 => p_source_15
67724 , p_source_15_meaning => p_source_15_meaning
67725 , p_source_38 => p_source_38
67726 , p_source_39 => p_source_39
67727          , x_transaction_coa_id       => l_adr_transaction_coa_id
67728          , x_accounting_coa_id        => l_adr_accounting_coa_id
67729          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
67730          , x_flex_value_set_id        => l_adr_flex_value_set_id
67731          , x_value_type_code          => l_adr_value_type_code
67732          , x_value_combination_id     => l_adr_value_combination_id
67733          , x_value_segment_code       => l_adr_value_segment_code
67734          , p_side                     => 'DEBIT'
67735          , p_override_seg_flag        => 'Y'
67736    );
67737 
67738    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
67739 
67740       xla_ae_lines_pkg.set_segment(
67741           p_to_segment_code         => 'GL_ACCOUNT'
67742         , p_segment_value           => l_segment
67743         , p_from_segment_code       => l_adr_value_segment_code
67744         , p_from_combination_id     => l_adr_value_combination_id
67745         , p_value_type_code         => l_adr_value_type_code
67746         , p_transaction_coa_id      => l_adr_transaction_coa_id
67747         , p_accounting_coa_id       => l_adr_accounting_coa_id
67748         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
67749         , p_flex_value_set_id       => l_adr_flex_value_set_id
67750         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
67751         , p_adr_type_code           => 'S'
67752         , p_component_type          => l_component_type
67753         , p_component_code          => l_component_code
67754         , p_component_type_code     => l_component_type_code
67755         , p_component_appl_id       => l_component_appl_id
67756         , p_amb_context_code        => l_amb_context_code
67757         , p_entity_code             => 'AP_INVOICES'
67758         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
67759         , p_side                    => 'DEBIT'
67760         );
67761 
67762   END IF;
67763 
67764    --
67765    --
67766    END IF;
67767 
67768        --
67769        -- Update the line information that should be overwritten
67770        --
67771        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
67772                                          p_header_num   => 1);
67773        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
67774 
67775        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
67776 
67777        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
67778           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
67779        END IF;
67780 
67781       --
67782       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
67783       --
67784       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
67785           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
67786       ELSE
67787           ---------------------------------------------------------------------------------------------------
67788           -- 4262811a Switch Sign
67789           ---------------------------------------------------------------------------------------------------
67790           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
67791           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
67792                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67796           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
67793           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
67794                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67795           -- 5132302
67797                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
67798 
67799       END IF;
67800 
67801       -- 4955764
67802       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
67803       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
67804 
67805 
67806       XLA_AE_LINES_PKG.ValidateCurrentLine;
67807       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
67808 
67809       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
67810                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
67811                ,p_balance_type_code => l_balance_type_code);
67812 
67813    END IF;
67814 
67815    -----------------------------------------------------------------------------------------
67816    -- 4262811 Multiperiod Accounting
67817    -----------------------------------------------------------------------------------------
67818      -- No MPA option is assigned.
67819 
67820 
67821 END IF;
67822 END IF;
67823 --
67824 
67825 --
67826 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67827    trace
67828       (p_msg      => 'END of AcctLineType_128'
67829       ,p_level    => C_LEVEL_PROCEDURE
67830       ,p_module   => l_log_module);
67831 END IF;
67832 --
67833 EXCEPTION
67834   WHEN xla_exceptions_pkg.application_exception THEN
67835       RAISE;
67836   WHEN OTHERS THEN
67837        xla_exceptions_pkg.raise_message
67838            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_128');
67839 END AcctLineType_128;
67840 --
67841 
67842 ---------------------------------------
67843 --
67844 -- PRIVATE FUNCTION
67845 --         AcctLineType_129
67846 --
67847 ---------------------------------------
67848 PROCEDURE AcctLineType_129 (
67849   p_application_id        IN NUMBER
67850  ,p_event_id              IN NUMBER
67851  ,p_calculate_acctd_flag  IN VARCHAR2
67852  ,p_calculate_g_l_flag    IN VARCHAR2
67853  ,p_actual_flag           IN OUT VARCHAR2
67854  ,p_balance_type_code     OUT VARCHAR2
67855  ,p_gain_or_loss_ref      OUT VARCHAR2
67856  
67857 --Automatic Offsets Value
67858  , p_source_15            IN VARCHAR2
67859  , p_source_15_meaning    IN VARCHAR2
67860 --Invoice Distribution Account
67861  , p_source_30            IN NUMBER
67862 --Internal Realized Gain Account
67863  , p_source_36            IN NUMBER
67864 --Bank Gain Account
67865  , p_source_37            IN NUMBER
67866 --Internal Realized Loss Account
67867  , p_source_38            IN NUMBER
67868 --Bank Loss Account
67869  , p_source_39            IN NUMBER
67870 --Accounting Reversal Indicator
67871  , p_source_53            IN VARCHAR2
67872 --Distribution Link Type
67873  , p_source_55            IN VARCHAR2
67874 --Override Accounted Amount Indicator
67875  , p_source_80            IN VARCHAR2
67876  , p_source_80_meaning    IN VARCHAR2
67877 --Third Party Type
67878  , p_source_83            IN VARCHAR2
67879 --Invoice Distribution Tax Line Identifier
67880  , p_source_86            IN NUMBER
67881 --Invoice Distribution Tax Distribution Identifier from Tax
67882  , p_source_87            IN NUMBER
67883 --Invoice Distribution Summary Tax Line Identifier
67884  , p_source_88            IN NUMBER
67885 --Business Flow Accounts Payable Application Identifier
67886  , p_source_91            IN NUMBER
67887 --Business Flow Invoice Distribution Type
67888  , p_source_92            IN VARCHAR2
67889 --Business Flow Invoice Entity Code
67890  , p_source_93            IN VARCHAR2
67891 --Business Flow Invoice Distribution Identifier
67892  , p_source_94            IN NUMBER
67893 --Business Flow Invoice Identifier
67894  , p_source_95            IN NUMBER
67895 --When to Account for Payment Option
67896  , p_source_97            IN VARCHAR2
67897 --Payment Distribution Type
67898  , p_source_98            IN VARCHAR2
67899  , p_source_98_meaning    IN VARCHAR2
67900 --Payment Distribution Identifier
67901  , p_source_104            IN NUMBER
67902 --Payment Supplier Identifier
67903  , p_source_110            IN NUMBER
67904 --Payment Supplier Site Identifier
67905  , p_source_111            IN NUMBER
67906 --Payment Distribution Reversed Identifier
67907  , p_source_112            IN NUMBER
67908 --Payment Type
67909  , p_source_122            IN VARCHAR2
67910  , p_source_122_meaning    IN VARCHAR2
67911 --Invoice/Payment Ledger Amount Difference
67912  , p_source_153            IN NUMBER
67913 )
67914 IS
67915 
67916 l_component_type              VARCHAR2(80);
67917 l_component_code              VARCHAR2(30);
67918 l_component_type_code         VARCHAR2(1);
67919 l_component_appl_id           INTEGER;
67920 l_amb_context_code            VARCHAR2(30);
67921 l_entity_code                 VARCHAR2(30);
67922 l_event_class_code            VARCHAR2(30);
67923 l_ae_header_id                NUMBER;
67924 l_event_type_code             VARCHAR2(30);
67925 l_line_definition_code        VARCHAR2(30);
67926 l_line_definition_owner_code  VARCHAR2(1);
67927 --
67928 -- adr variables
67929 l_segment                     VARCHAR2(30);
67933 l_adr_flexfield_segment_code  VARCHAR2(30);
67930 l_ccid                        NUMBER;
67931 l_adr_transaction_coa_id      NUMBER;
67932 l_adr_accounting_coa_id       NUMBER;
67934 l_adr_flex_value_set_id       NUMBER;
67935 l_adr_value_type_code         VARCHAR2(30);
67936 l_adr_value_combination_id    NUMBER;
67937 l_adr_value_segment_code      VARCHAR2(30);
67938 
67939 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
67940 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
67941 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
67942 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
67943 
67944 -- 4262811 Variables ------------------------------------------------------------------------------------------
67945 l_entered_amt_idx             NUMBER;
67946 l_accted_amt_idx              NUMBER;
67947 l_acc_rev_flag                VARCHAR2(1);
67948 l_accrual_line_num            NUMBER;
67949 l_tmp_amt                     NUMBER;
67950 l_acc_rev_natural_side_code   VARCHAR2(1);
67951 
67952 l_num_entries                 NUMBER;
67953 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
67954 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
67955 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
67956 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
67957 l_recog_line_1                NUMBER;
67958 l_recog_line_2                NUMBER;
67959 
67960 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
67961 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
67962 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
67963 
67964 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
67965 
67966 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
67967 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
67968 
67969 ---------------------------------------------------------------------------------------------------------------
67970 
67971 
67972 --
67973 -- bulk performance
67974 --
67975 l_balance_type_code           VARCHAR2(1);
67976 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
67977 l_log_module                  VARCHAR2(240);
67978 
67979 --
67980 -- Upgrade strategy
67981 --
67982 l_actual_upg_option           VARCHAR2(1);
67983 l_enc_upg_option           VARCHAR2(1);
67984 
67985 --
67986 BEGIN
67987 --
67988 IF g_log_enabled THEN
67989       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_129';
67990 END IF;
67991 --
67992 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67993 
67994       trace
67995          (p_msg      => 'BEGIN of AcctLineType_129'
67996          ,p_level    => C_LEVEL_PROCEDURE
67997          ,p_module   => l_log_module);
67998 
67999 END IF;
68000 --
68001 l_component_type             := 'AMB_JLT';
68002 l_component_code             := 'AP_GAIN_LOSS_REF';
68003 l_component_type_code        := 'S';
68004 l_component_appl_id          :=  200;
68005 l_amb_context_code           := 'DEFAULT';
68006 l_entity_code                := 'AP_PAYMENTS';
68007 l_event_class_code           := 'REFUNDS';
68008 l_event_type_code            := 'REFUNDS_ALL';
68009 l_line_definition_owner_code := 'S';
68010 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
68011 --
68012 l_balance_type_code          := 'A';
68013 l_segment                     := NULL;
68014 l_ccid                        := NULL;
68015 l_adr_transaction_coa_id      := NULL;
68016 l_adr_accounting_coa_id       := NULL;
68017 l_adr_flexfield_segment_code  := NULL;
68018 l_adr_flex_value_set_id       := NULL;
68019 l_adr_value_type_code         := NULL;
68020 l_adr_value_combination_id    := NULL;
68021 l_adr_value_segment_code      := NULL;
68022 
68023 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
68024 l_bflow_class_code           := '';    -- 4219869 Business Flow
68025 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
68026 l_budgetary_control_flag     := 'N';
68027 
68028 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
68029 l_bflow_applied_to_amt       := NULL; -- 5132302
68030 l_entered_amt_idx            := NULL;          -- 4262811
68031 l_accted_amt_idx             := NULL;          -- 4262811
68032 l_acc_rev_flag               := NULL;          -- 4262811
68033 l_accrual_line_num           := NULL;          -- 4262811
68034 l_tmp_amt                    := NULL;          -- 4262811
68035 --
68036 IF NOT ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
68037             (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
68038                return;
68039   END IF;
68040   
68041 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
68042     l_balance_type_code <> 'B' THEN
68043 IF (NVL(p_source_97,'
68044 ') <>  'CLEAR_CLEAR' AND 
68045 NVL(p_source_97,'
68046 ') <>  'ALWAYS_CLEAR') AND 
68047 NVL(p_source_122,'
68048 ') =  'R' AND 
68049 NVL(p_source_98,'
68050 ') <>  'EXCHANGE RATE VARIANCE' AND 
68051 NVL(p_source_98,'
68052 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
68053 NVL(p_source_98,'
68054 ') <>  'BANK CHARGE' AND 
68058 
68055 NVL(p_source_98,'
68056 ') <>  'BANK ERROR'
68057  THEN 
68059    --
68060    XLA_AE_LINES_PKG.SetNewLine;
68061 
68062    p_balance_type_code          := l_balance_type_code;
68063    -- set the flag so later we will know whether the gain loss line needs to be created
68064    
68065    IF(l_balance_type_code = 'A' ) THEN
68066      p_actual_flag :='G';
68067    END IF;
68068 
68069    --
68070    -- bulk performance
68071    --
68072    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
68073                                       p_header_num   => 0); -- 4262811
68074    --
68075    -- set accounting line options
68076    --
68077    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
68078            p_natural_side_code          => 'G'
68079          , p_gain_or_loss_flag          => 'N'
68080          , p_gl_transfer_mode_code      => 'S'
68081          , p_acct_entry_type_code       => 'A'
68082          , p_switch_side_flag           => ''
68083          , p_merge_duplicate_code       => 'A'
68084          );
68085    --
68086    l_acc_rev_natural_side_code := 'C';  -- 4262811
68087    -- 
68088    --
68089    -- set accounting line type info
68090    --
68091    xla_ae_lines_pkg.SetAcctLineType
68092       (p_component_type             => l_component_type
68093       ,p_event_type_code            => l_event_type_code
68094       ,p_line_definition_owner_code => l_line_definition_owner_code
68095       ,p_line_definition_code       => l_line_definition_code
68096       ,p_accounting_line_code       => l_component_code
68097       ,p_accounting_line_type_code  => l_component_type_code
68098       ,p_accounting_line_appl_id    => l_component_appl_id
68099       ,p_amb_context_code           => l_amb_context_code
68100       ,p_entity_code                => l_entity_code
68101       ,p_event_class_code           => l_event_class_code);
68102    --
68103    -- set accounting class
68104    --
68105    xla_ae_lines_pkg.SetAcctClass(
68106            p_accounting_class_code  => 'EXCHANGE_GAIN_LOSS'
68107          , p_ae_header_id           => l_ae_header_id
68108          );
68109 
68110    --
68111    -- set rounding class
68112    --
68113    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
68114                       'EXCHANGE_GAIN_LOSS';
68115 
68116    --
68117    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
68118    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
68119    --
68120    -- bulk performance
68121    --
68122    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
68123 
68124    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
68125       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
68126 
68127    -- 4955764
68128    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
68129       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
68130 
68131    -- 4458381 Public Sector Enh
68132    
68133    --
68134    -- set accounting attributes for the line type
68135    --
68136    l_entered_amt_idx := NULL;
68137    l_accted_amt_idx  := 9;
68138    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
68139    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
68140    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
68141    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
68142    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
68143    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
68144    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
68145    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
68146    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
68147    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
68148    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
68149    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
68150    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
68151    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
68152    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
68153    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
68154    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
68155    l_rec_acct_attrs.array_acct_attr_code(9) := 'LEDGER_AMOUNT';
68156    l_rec_acct_attrs.array_num_value(9)  := p_source_153;
68157    l_rec_acct_attrs.array_acct_attr_code(10) := 'OVERRIDE_ACCTD_AMT_FLAG';
68158    l_rec_acct_attrs.array_char_value(10)  := p_source_80;
68159    l_rec_acct_attrs.array_acct_attr_code(11) := 'PARTY_ID';
68160    l_rec_acct_attrs.array_num_value(11)  := p_source_110;
68161    l_rec_acct_attrs.array_acct_attr_code(12) := 'PARTY_SITE_ID';
68162    l_rec_acct_attrs.array_num_value(12)  := p_source_111;
68163    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
68164    l_rec_acct_attrs.array_char_value(13)  := p_source_83;
68165    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
68166    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_112);
68167    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
68168    l_rec_acct_attrs.array_char_value(15)  := p_source_55;
68169    l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
68173    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
68170    l_rec_acct_attrs.array_num_value(16)  := p_source_86;
68171    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
68172    l_rec_acct_attrs.array_num_value(17)  := p_source_87;
68174    l_rec_acct_attrs.array_num_value(18)  := p_source_88;
68175 
68176    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
68177    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
68178 
68179    ---------------------------------------------------------------------------------------------------------------
68180    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
68181    ---------------------------------------------------------------------------------------------------------------
68182    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
68183 
68184    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
68185    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
68186 
68187    IF xla_accounting_cache_pkg.GetValueChar
68188          (p_source_code         => 'LEDGER_CATEGORY_CODE'
68189          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
68190    AND l_bflow_method_code = 'PRIOR_ENTRY'
68191 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
68192    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
68193          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
68194        )
68195    THEN
68196          xla_ae_lines_pkg.BflowUpgEntry
68197            (p_business_method_code    => l_bflow_method_code
68198            ,p_business_class_code     => l_bflow_class_code
68199            ,p_balance_type            => l_balance_type_code);
68200    ELSE
68201       NULL;
68202 -- No business flow processing for business flow method of NONE.
68203    END IF;
68204 
68205    --
68206    -- call analytical criteria
68207    --
68208    
68209    --
68210    -- call description
68211    --
68212    -- No description or it is inherited.
68213    --
68214    -- call ADRs
68215    -- Bug 4922099
68216    --
68217    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
68218         (NVL(l_actual_upg_option, 'N') = 'O') OR
68219         (NVL(l_enc_upg_option, 'N') = 'O')
68220       )
68221    THEN
68222    NULL;
68223    --
68224    --
68225    
68226   l_ccid := AcctDerRule_38(
68227            p_application_id           => p_application_id
68228          , p_ae_header_id             => l_ae_header_id 
68229 , p_source_15 => p_source_15
68230 , p_source_15_meaning => p_source_15_meaning
68231 , p_source_30 => p_source_30
68232 , p_source_36 => p_source_36
68233 , p_source_37 => p_source_37
68234          , x_transaction_coa_id       => l_adr_transaction_coa_id
68235          , x_accounting_coa_id        => l_adr_accounting_coa_id
68236          , x_value_type_code          => l_adr_value_type_code
68237          , p_side                     => 'CREDIT'
68238    );
68239 
68240    xla_ae_lines_pkg.set_ccid(
68241     p_code_combination_id          => l_ccid
68242   , p_value_type_code              => l_adr_value_type_code
68243   , p_transaction_coa_id           => l_adr_transaction_coa_id
68244   , p_accounting_coa_id            => l_adr_accounting_coa_id
68245   , p_adr_code                     => 'AP_REAL_GAIN'
68246   , p_adr_type_code                => 'S'
68247   , p_component_type               => l_component_type
68248   , p_component_code               => l_component_code
68249   , p_component_type_code          => l_component_type_code
68250   , p_component_appl_id            => l_component_appl_id
68251   , p_amb_context_code             => l_amb_context_code
68252   , p_side                         => 'CREDIT'
68253   );
68254 
68255 
68256   l_ccid := AcctDerRule_39(
68257            p_application_id           => p_application_id
68258          , p_ae_header_id             => l_ae_header_id 
68259 , p_source_15 => p_source_15
68260 , p_source_15_meaning => p_source_15_meaning
68261 , p_source_30 => p_source_30
68262 , p_source_38 => p_source_38
68263 , p_source_39 => p_source_39
68264          , x_transaction_coa_id       => l_adr_transaction_coa_id
68265          , x_accounting_coa_id        => l_adr_accounting_coa_id
68266          , x_value_type_code          => l_adr_value_type_code
68267          , p_side                     => 'DEBIT'
68268    );
68269 
68270    xla_ae_lines_pkg.set_ccid(
68271     p_code_combination_id          => l_ccid
68272   , p_value_type_code              => l_adr_value_type_code
68273   , p_transaction_coa_id           => l_adr_transaction_coa_id
68274   , p_accounting_coa_id            => l_adr_accounting_coa_id
68275   , p_adr_code                     => 'AP_REAL_LOSS'
68276   , p_adr_type_code                => 'S'
68277   , p_component_type               => l_component_type
68278   , p_component_code               => l_component_code
68279   , p_component_type_code          => l_component_type_code
68280   , p_component_appl_id            => l_component_appl_id
68281   , p_amb_context_code             => l_amb_context_code
68282   , p_side                         => 'DEBIT'
68283   );
68284 
68285 
68286    l_segment := AcctDerRule_22(
68287            p_application_id           => p_application_id
68291 , p_source_30 => p_source_30
68288          , p_ae_header_id             => l_ae_header_id 
68289 , p_source_15 => p_source_15
68290 , p_source_15_meaning => p_source_15_meaning
68292          , x_transaction_coa_id       => l_adr_transaction_coa_id
68293          , x_accounting_coa_id        => l_adr_accounting_coa_id
68294          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
68295          , x_flex_value_set_id        => l_adr_flex_value_set_id
68296          , x_value_type_code          => l_adr_value_type_code
68297          , x_value_combination_id     => l_adr_value_combination_id
68298          , x_value_segment_code       => l_adr_value_segment_code
68299          , p_side                     => 'ALL'
68300          , p_override_seg_flag        => 'Y'
68301    );
68302 
68303    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
68304 
68305       xla_ae_lines_pkg.set_segment(
68306           p_to_segment_code         => 'GL_BALANCING'
68307         , p_segment_value           => l_segment
68308         , p_from_segment_code       => l_adr_value_segment_code
68309         , p_from_combination_id     => l_adr_value_combination_id
68310         , p_value_type_code         => l_adr_value_type_code
68311         , p_transaction_coa_id      => l_adr_transaction_coa_id
68312         , p_accounting_coa_id       => l_adr_accounting_coa_id
68313         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
68314         , p_flex_value_set_id       => l_adr_flex_value_set_id
68315         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
68316         , p_adr_type_code           => 'S'
68317         , p_component_type          => l_component_type
68318         , p_component_code          => l_component_code
68319         , p_component_type_code     => l_component_type_code
68320         , p_component_appl_id       => l_component_appl_id
68321         , p_amb_context_code        => l_amb_context_code
68322         , p_entity_code             => 'AP_PAYMENTS'
68323         , p_event_class_code        => 'REFUNDS'
68324         , p_side                    => 'ALL'
68325         );
68326 
68327   END IF;
68328 
68329    l_segment := AcctDerRule_17(
68330            p_application_id           => p_application_id
68331          , p_ae_header_id             => l_ae_header_id 
68332 , p_source_15 => p_source_15
68333 , p_source_15_meaning => p_source_15_meaning
68334 , p_source_36 => p_source_36
68335 , p_source_37 => p_source_37
68336          , x_transaction_coa_id       => l_adr_transaction_coa_id
68337          , x_accounting_coa_id        => l_adr_accounting_coa_id
68338          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
68339          , x_flex_value_set_id        => l_adr_flex_value_set_id
68340          , x_value_type_code          => l_adr_value_type_code
68341          , x_value_combination_id     => l_adr_value_combination_id
68342          , x_value_segment_code       => l_adr_value_segment_code
68343          , p_side                     => 'CREDIT'
68344          , p_override_seg_flag        => 'Y'
68345    );
68346 
68347    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
68348 
68349       xla_ae_lines_pkg.set_segment(
68350           p_to_segment_code         => 'GL_ACCOUNT'
68351         , p_segment_value           => l_segment
68352         , p_from_segment_code       => l_adr_value_segment_code
68353         , p_from_combination_id     => l_adr_value_combination_id
68354         , p_value_type_code         => l_adr_value_type_code
68355         , p_transaction_coa_id      => l_adr_transaction_coa_id
68356         , p_accounting_coa_id       => l_adr_accounting_coa_id
68357         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
68358         , p_flex_value_set_id       => l_adr_flex_value_set_id
68359         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
68360         , p_adr_type_code           => 'S'
68361         , p_component_type          => l_component_type
68362         , p_component_code          => l_component_code
68363         , p_component_type_code     => l_component_type_code
68364         , p_component_appl_id       => l_component_appl_id
68365         , p_amb_context_code        => l_amb_context_code
68366         , p_entity_code             => 'AP_PAYMENTS'
68367         , p_event_class_code        => 'REFUNDS'
68368         , p_side                    => 'CREDIT'
68369         );
68370 
68371   END IF;
68372 
68373    l_segment := AcctDerRule_18(
68374            p_application_id           => p_application_id
68375          , p_ae_header_id             => l_ae_header_id 
68376 , p_source_15 => p_source_15
68377 , p_source_15_meaning => p_source_15_meaning
68378 , p_source_38 => p_source_38
68379 , p_source_39 => p_source_39
68380          , x_transaction_coa_id       => l_adr_transaction_coa_id
68381          , x_accounting_coa_id        => l_adr_accounting_coa_id
68382          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
68383          , x_flex_value_set_id        => l_adr_flex_value_set_id
68384          , x_value_type_code          => l_adr_value_type_code
68385          , x_value_combination_id     => l_adr_value_combination_id
68386          , x_value_segment_code       => l_adr_value_segment_code
68387          , p_side                     => 'DEBIT'
68388          , p_override_seg_flag        => 'Y'
68389    );
68390 
68391    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
68392 
68393       xla_ae_lines_pkg.set_segment(
68394           p_to_segment_code         => 'GL_ACCOUNT'
68398         , p_value_type_code         => l_adr_value_type_code
68395         , p_segment_value           => l_segment
68396         , p_from_segment_code       => l_adr_value_segment_code
68397         , p_from_combination_id     => l_adr_value_combination_id
68399         , p_transaction_coa_id      => l_adr_transaction_coa_id
68400         , p_accounting_coa_id       => l_adr_accounting_coa_id
68401         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
68402         , p_flex_value_set_id       => l_adr_flex_value_set_id
68403         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
68404         , p_adr_type_code           => 'S'
68405         , p_component_type          => l_component_type
68406         , p_component_code          => l_component_code
68407         , p_component_type_code     => l_component_type_code
68408         , p_component_appl_id       => l_component_appl_id
68409         , p_amb_context_code        => l_amb_context_code
68410         , p_entity_code             => 'AP_PAYMENTS'
68411         , p_event_class_code        => 'REFUNDS'
68412         , p_side                    => 'DEBIT'
68413         );
68414 
68415   END IF;
68416 
68417    --
68418    --
68419    END IF;
68420    --
68421    -- Bug 4922099
68422    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
68423           (NVL(l_enc_upg_option, 'N') = 'O')
68424         ) AND
68425         (l_bflow_method_code = 'PRIOR_ENTRY')
68426       )
68427    THEN
68428       IF
68429       --
68430       1 = 2
68431       --
68432       THEN
68433       xla_accounting_err_pkg.build_message
68434                                     (p_appli_s_name            => 'XLA'
68435                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
68436                                     ,p_token_1                 => 'LINE_NUMBER'
68437                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
68438                                     ,p_token_2                 => 'LINE_TYPE_NAME'
68439                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
68440                                                                              l_component_type
68441                                                                             ,l_component_code
68442                                                                             ,l_component_type_code
68443                                                                             ,l_component_appl_id
68444                                                                             ,l_amb_context_code
68445                                                                             ,l_entity_code
68446                                                                             ,l_event_class_code
68447                                                                            )
68448                                     ,p_token_3                 => 'OWNER'
68449                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
68450                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
68451                                                                           ,p_lookup_code    => l_component_type_code
68452                                                                          )
68453                                     ,p_token_4                 => 'PRODUCT_NAME'
68454                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
68455                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
68456                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
68457                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
68458                                     ,p_ae_header_id            =>  NULL
68459                                        );
68460 
68461         IF (C_LEVEL_ERROR>= g_log_level) THEN
68462                  trace
68463                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
68464                       ,p_level    => C_LEVEL_ERROR
68465                       ,p_module   => l_log_module);
68466         END IF;
68467       END IF;
68468    END IF;
68469    --
68470    --
68471    ------------------------------------------------------------------------------------------------
68472    -- 4219869 Business Flow
68473    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
68474    -- Prior Entry.  Currently, the following code is always generated.
68475    ------------------------------------------------------------------------------------------------
68476    XLA_AE_LINES_PKG.ValidateCurrentLine;
68477 
68478    ------------------------------------------------------------------------------------
68479    -- 4219869 Business Flow
68480    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
68481    ------------------------------------------------------------------------------------
68482    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
68483 
68484    ----------------------------------------------------------------------------------
68485    -- 4219869 Business Flow
68486    -- Update journal entry status -- Need to generate this within IF <condition>
68487    ----------------------------------------------------------------------------------
68491          );
68488    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
68489          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
68490          ,p_balance_type_code => l_balance_type_code
68492 
68493    -------------------------------------------------------------------------------------------
68494    -- 4262811 - Generate the Accrual Reversal lines
68495    -------------------------------------------------------------------------------------------
68496    BEGIN
68497       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
68498                               (g_array_event(p_event_id).array_value_num('header_index'));
68499       IF l_acc_rev_flag IS NULL THEN
68500          l_acc_rev_flag := 'N';
68501       END IF;
68502    EXCEPTION
68503       WHEN OTHERS THEN
68504          l_acc_rev_flag := 'N';
68505    END;
68506    --
68507    IF (l_acc_rev_flag = 'Y') THEN
68508 
68509        -- 4645092  ------------------------------------------------------------------------------
68510        -- To allow MPA report to determine if it should generate report process
68511        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
68512        ------------------------------------------------------------------------------------------
68513 
68514        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
68515        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
68516    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
68517    -- call ADRs
68518    -- Bug 4922099
68519    --
68520    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
68521         (NVL(l_actual_upg_option, 'N') = 'O') OR
68522         (NVL(l_enc_upg_option, 'N') = 'O')
68523       )
68524    THEN
68525    NULL;
68526    --
68527    --
68528    
68529   l_ccid := AcctDerRule_38(
68530            p_application_id           => p_application_id
68531          , p_ae_header_id             => l_ae_header_id 
68532 , p_source_15 => p_source_15
68533 , p_source_15_meaning => p_source_15_meaning
68534 , p_source_30 => p_source_30
68535 , p_source_36 => p_source_36
68536 , p_source_37 => p_source_37
68537          , x_transaction_coa_id       => l_adr_transaction_coa_id
68538          , x_accounting_coa_id        => l_adr_accounting_coa_id
68539          , x_value_type_code          => l_adr_value_type_code
68540          , p_side                     => 'CREDIT'
68541    );
68542 
68543    xla_ae_lines_pkg.set_ccid(
68544     p_code_combination_id          => l_ccid
68545   , p_value_type_code              => l_adr_value_type_code
68546   , p_transaction_coa_id           => l_adr_transaction_coa_id
68547   , p_accounting_coa_id            => l_adr_accounting_coa_id
68548   , p_adr_code                     => 'AP_REAL_GAIN'
68549   , p_adr_type_code                => 'S'
68550   , p_component_type               => l_component_type
68551   , p_component_code               => l_component_code
68552   , p_component_type_code          => l_component_type_code
68553   , p_component_appl_id            => l_component_appl_id
68554   , p_amb_context_code             => l_amb_context_code
68555   , p_side                         => 'CREDIT'
68556   );
68557 
68558 
68559   l_ccid := AcctDerRule_39(
68560            p_application_id           => p_application_id
68561          , p_ae_header_id             => l_ae_header_id 
68562 , p_source_15 => p_source_15
68563 , p_source_15_meaning => p_source_15_meaning
68564 , p_source_30 => p_source_30
68565 , p_source_38 => p_source_38
68566 , p_source_39 => p_source_39
68567          , x_transaction_coa_id       => l_adr_transaction_coa_id
68568          , x_accounting_coa_id        => l_adr_accounting_coa_id
68569          , x_value_type_code          => l_adr_value_type_code
68570          , p_side                     => 'DEBIT'
68571    );
68572 
68573    xla_ae_lines_pkg.set_ccid(
68574     p_code_combination_id          => l_ccid
68575   , p_value_type_code              => l_adr_value_type_code
68576   , p_transaction_coa_id           => l_adr_transaction_coa_id
68577   , p_accounting_coa_id            => l_adr_accounting_coa_id
68578   , p_adr_code                     => 'AP_REAL_LOSS'
68579   , p_adr_type_code                => 'S'
68580   , p_component_type               => l_component_type
68581   , p_component_code               => l_component_code
68582   , p_component_type_code          => l_component_type_code
68583   , p_component_appl_id            => l_component_appl_id
68584   , p_amb_context_code             => l_amb_context_code
68585   , p_side                         => 'DEBIT'
68586   );
68587 
68588 
68589    l_segment := AcctDerRule_22(
68590            p_application_id           => p_application_id
68591          , p_ae_header_id             => l_ae_header_id 
68592 , p_source_15 => p_source_15
68593 , p_source_15_meaning => p_source_15_meaning
68594 , p_source_30 => p_source_30
68595          , x_transaction_coa_id       => l_adr_transaction_coa_id
68596          , x_accounting_coa_id        => l_adr_accounting_coa_id
68597          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
68598          , x_flex_value_set_id        => l_adr_flex_value_set_id
68599          , x_value_type_code          => l_adr_value_type_code
68600          , x_value_combination_id     => l_adr_value_combination_id
68601          , x_value_segment_code       => l_adr_value_segment_code
68602          , p_side                     => 'ALL'
68603          , p_override_seg_flag        => 'Y'
68604    );
68605 
68606    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
68607 
68611         , p_from_segment_code       => l_adr_value_segment_code
68608       xla_ae_lines_pkg.set_segment(
68609           p_to_segment_code         => 'GL_BALANCING'
68610         , p_segment_value           => l_segment
68612         , p_from_combination_id     => l_adr_value_combination_id
68613         , p_value_type_code         => l_adr_value_type_code
68614         , p_transaction_coa_id      => l_adr_transaction_coa_id
68615         , p_accounting_coa_id       => l_adr_accounting_coa_id
68616         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
68617         , p_flex_value_set_id       => l_adr_flex_value_set_id
68618         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
68619         , p_adr_type_code           => 'S'
68620         , p_component_type          => l_component_type
68621         , p_component_code          => l_component_code
68622         , p_component_type_code     => l_component_type_code
68623         , p_component_appl_id       => l_component_appl_id
68624         , p_amb_context_code        => l_amb_context_code
68625         , p_entity_code             => 'AP_PAYMENTS'
68626         , p_event_class_code        => 'REFUNDS'
68627         , p_side                    => 'ALL'
68628         );
68629 
68630   END IF;
68631 
68632    l_segment := AcctDerRule_17(
68633            p_application_id           => p_application_id
68634          , p_ae_header_id             => l_ae_header_id 
68635 , p_source_15 => p_source_15
68636 , p_source_15_meaning => p_source_15_meaning
68637 , p_source_36 => p_source_36
68638 , p_source_37 => p_source_37
68639          , x_transaction_coa_id       => l_adr_transaction_coa_id
68640          , x_accounting_coa_id        => l_adr_accounting_coa_id
68641          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
68642          , x_flex_value_set_id        => l_adr_flex_value_set_id
68643          , x_value_type_code          => l_adr_value_type_code
68644          , x_value_combination_id     => l_adr_value_combination_id
68645          , x_value_segment_code       => l_adr_value_segment_code
68646          , p_side                     => 'CREDIT'
68647          , p_override_seg_flag        => 'Y'
68648    );
68649 
68650    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
68651 
68652       xla_ae_lines_pkg.set_segment(
68653           p_to_segment_code         => 'GL_ACCOUNT'
68654         , p_segment_value           => l_segment
68655         , p_from_segment_code       => l_adr_value_segment_code
68656         , p_from_combination_id     => l_adr_value_combination_id
68657         , p_value_type_code         => l_adr_value_type_code
68658         , p_transaction_coa_id      => l_adr_transaction_coa_id
68659         , p_accounting_coa_id       => l_adr_accounting_coa_id
68660         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
68661         , p_flex_value_set_id       => l_adr_flex_value_set_id
68662         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
68663         , p_adr_type_code           => 'S'
68664         , p_component_type          => l_component_type
68665         , p_component_code          => l_component_code
68666         , p_component_type_code     => l_component_type_code
68667         , p_component_appl_id       => l_component_appl_id
68668         , p_amb_context_code        => l_amb_context_code
68669         , p_entity_code             => 'AP_PAYMENTS'
68670         , p_event_class_code        => 'REFUNDS'
68671         , p_side                    => 'CREDIT'
68672         );
68673 
68674   END IF;
68675 
68676    l_segment := AcctDerRule_18(
68677            p_application_id           => p_application_id
68678          , p_ae_header_id             => l_ae_header_id 
68679 , p_source_15 => p_source_15
68680 , p_source_15_meaning => p_source_15_meaning
68681 , p_source_38 => p_source_38
68682 , p_source_39 => p_source_39
68683          , x_transaction_coa_id       => l_adr_transaction_coa_id
68684          , x_accounting_coa_id        => l_adr_accounting_coa_id
68685          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
68686          , x_flex_value_set_id        => l_adr_flex_value_set_id
68687          , x_value_type_code          => l_adr_value_type_code
68688          , x_value_combination_id     => l_adr_value_combination_id
68689          , x_value_segment_code       => l_adr_value_segment_code
68690          , p_side                     => 'DEBIT'
68691          , p_override_seg_flag        => 'Y'
68692    );
68693 
68694    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
68695 
68696       xla_ae_lines_pkg.set_segment(
68697           p_to_segment_code         => 'GL_ACCOUNT'
68698         , p_segment_value           => l_segment
68699         , p_from_segment_code       => l_adr_value_segment_code
68700         , p_from_combination_id     => l_adr_value_combination_id
68701         , p_value_type_code         => l_adr_value_type_code
68702         , p_transaction_coa_id      => l_adr_transaction_coa_id
68703         , p_accounting_coa_id       => l_adr_accounting_coa_id
68704         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
68705         , p_flex_value_set_id       => l_adr_flex_value_set_id
68706         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
68707         , p_adr_type_code           => 'S'
68708         , p_component_type          => l_component_type
68709         , p_component_code          => l_component_code
68710         , p_component_type_code     => l_component_type_code
68711         , p_component_appl_id       => l_component_appl_id
68712         , p_amb_context_code        => l_amb_context_code
68716         );
68713         , p_entity_code             => 'AP_PAYMENTS'
68714         , p_event_class_code        => 'REFUNDS'
68715         , p_side                    => 'DEBIT'
68717 
68718   END IF;
68719 
68720    --
68721    --
68722    END IF;
68723 
68724        --
68725        -- Update the line information that should be overwritten
68726        --
68727        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
68728                                          p_header_num   => 1);
68729        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
68730 
68731        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
68732 
68733        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
68734           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
68735        END IF;
68736 
68737       --
68738       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
68739       --
68740       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
68741           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
68742       ELSE
68743           ---------------------------------------------------------------------------------------------------
68744           -- 4262811a Switch Sign
68745           ---------------------------------------------------------------------------------------------------
68746           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
68747           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
68748                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68749           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
68750                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68751           -- 5132302
68752           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
68753                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
68754 
68755       END IF;
68756 
68757       -- 4955764
68758       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
68759       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
68760 
68761 
68762       XLA_AE_LINES_PKG.ValidateCurrentLine;
68763       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
68764 
68765       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
68766                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
68767                ,p_balance_type_code => l_balance_type_code);
68768 
68769    END IF;
68770 
68771    -----------------------------------------------------------------------------------------
68772    -- 4262811 Multiperiod Accounting
68773    -----------------------------------------------------------------------------------------
68774      -- No MPA option is assigned.
68775 
68776 
68777 END IF;
68778 END IF;
68779 --
68780 
68781 --
68782 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68783    trace
68784       (p_msg      => 'END of AcctLineType_129'
68785       ,p_level    => C_LEVEL_PROCEDURE
68786       ,p_module   => l_log_module);
68787 END IF;
68788 --
68789 EXCEPTION
68790   WHEN xla_exceptions_pkg.application_exception THEN
68791       RAISE;
68792   WHEN OTHERS THEN
68793        xla_exceptions_pkg.raise_message
68794            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_129');
68795 END AcctLineType_129;
68796 --
68797 
68798 ---------------------------------------
68799 --
68800 -- PRIVATE FUNCTION
68801 --         AcctLineType_130
68802 --
68803 ---------------------------------------
68804 PROCEDURE AcctLineType_130 (
68805   p_application_id        IN NUMBER
68806  ,p_event_id              IN NUMBER
68807  ,p_calculate_acctd_flag  IN VARCHAR2
68808  ,p_calculate_g_l_flag    IN VARCHAR2
68809  ,p_actual_flag           IN OUT VARCHAR2
68810  ,p_balance_type_code     OUT VARCHAR2
68811  ,p_gain_or_loss_ref      OUT VARCHAR2
68812  
68813 --Payment Currency Code
68814  , p_source_13            IN VARCHAR2
68815 --Automatic Offsets Value
68816  , p_source_15            IN VARCHAR2
68817  , p_source_15_meaning    IN VARCHAR2
68818 --Invoice Distribution Account
68819  , p_source_30            IN NUMBER
68820 --Internal Realized Gain Account
68821  , p_source_36            IN NUMBER
68822 --Bank Gain Account
68823  , p_source_37            IN NUMBER
68824 --Accounting Reversal Indicator
68825  , p_source_53            IN VARCHAR2
68826 --Distribution Link Type
68827  , p_source_55            IN VARCHAR2
68828 --Override Accounted Amount Indicator
68829  , p_source_80            IN VARCHAR2
68830  , p_source_80_meaning    IN VARCHAR2
68831 --Third Party Type
68832  , p_source_83            IN VARCHAR2
68833 --Invoice Distribution Tax Line Identifier
68834  , p_source_86            IN NUMBER
68835 --Invoice Distribution Summary Tax Line Identifier
68836  , p_source_88            IN NUMBER
68837 --Business Flow Accounts Payable Application Identifier
68838  , p_source_91            IN NUMBER
68842  , p_source_98            IN VARCHAR2
68839 --When to Account for Payment Option
68840  , p_source_97            IN VARCHAR2
68841 --Payment Distribution Type
68843  , p_source_98_meaning    IN VARCHAR2
68844 --Payment Distribution Amount
68845  , p_source_99            IN NUMBER
68846 --Business Flow Payment Distribution Type
68847  , p_source_100            IN VARCHAR2
68848 --Business Flow Payment Entity Code
68849  , p_source_101            IN VARCHAR2
68850 --Business Flow Payment Distribution Identifier
68851  , p_source_102            IN NUMBER
68852 --Business Flow Payment Identifier
68853  , p_source_103            IN NUMBER
68854 --Payment Distribution Identifier
68855  , p_source_104            IN NUMBER
68856 --Cleared Exchange Date
68857  , p_source_106            IN DATE
68858 --Cleared Exchange Rate
68859  , p_source_107            IN NUMBER
68860 --Cleared Exchange Rate Type
68861  , p_source_108            IN VARCHAR2
68862 --Payment Supplier Identifier
68863  , p_source_110            IN NUMBER
68864 --Payment Supplier Site Identifier
68865  , p_source_111            IN NUMBER
68866 --Payment Distribution Reversed Identifier
68867  , p_source_112            IN NUMBER
68868 --Payment Maturity Date
68869  , p_source_114            IN DATE
68870 --Gain or Loss Indicator between Maturity and Clearing
68871  , p_source_156            IN VARCHAR2
68872 --Maturity/Clearing Ledger Amount Difference
68873  , p_source_157            IN NUMBER
68874 )
68875 IS
68876 
68877 l_component_type              VARCHAR2(80);
68878 l_component_code              VARCHAR2(30);
68879 l_component_type_code         VARCHAR2(1);
68880 l_component_appl_id           INTEGER;
68881 l_amb_context_code            VARCHAR2(30);
68882 l_entity_code                 VARCHAR2(30);
68883 l_event_class_code            VARCHAR2(30);
68884 l_ae_header_id                NUMBER;
68885 l_event_type_code             VARCHAR2(30);
68886 l_line_definition_code        VARCHAR2(30);
68887 l_line_definition_owner_code  VARCHAR2(1);
68888 --
68889 -- adr variables
68890 l_segment                     VARCHAR2(30);
68891 l_ccid                        NUMBER;
68892 l_adr_transaction_coa_id      NUMBER;
68893 l_adr_accounting_coa_id       NUMBER;
68894 l_adr_flexfield_segment_code  VARCHAR2(30);
68895 l_adr_flex_value_set_id       NUMBER;
68896 l_adr_value_type_code         VARCHAR2(30);
68897 l_adr_value_combination_id    NUMBER;
68898 l_adr_value_segment_code      VARCHAR2(30);
68899 
68900 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
68901 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
68902 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
68903 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
68904 
68905 -- 4262811 Variables ------------------------------------------------------------------------------------------
68906 l_entered_amt_idx             NUMBER;
68907 l_accted_amt_idx              NUMBER;
68908 l_acc_rev_flag                VARCHAR2(1);
68909 l_accrual_line_num            NUMBER;
68910 l_tmp_amt                     NUMBER;
68911 l_acc_rev_natural_side_code   VARCHAR2(1);
68912 
68913 l_num_entries                 NUMBER;
68914 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
68915 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
68916 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
68917 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
68918 l_recog_line_1                NUMBER;
68919 l_recog_line_2                NUMBER;
68920 
68921 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
68922 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
68923 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
68924 
68925 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
68926 
68927 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
68928 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
68929 
68930 ---------------------------------------------------------------------------------------------------------------
68931 
68932 
68933 --
68934 -- bulk performance
68935 --
68936 l_balance_type_code           VARCHAR2(1);
68937 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
68938 l_log_module                  VARCHAR2(240);
68939 
68940 --
68941 -- Upgrade strategy
68942 --
68943 l_actual_upg_option           VARCHAR2(1);
68944 l_enc_upg_option           VARCHAR2(1);
68945 
68946 --
68947 BEGIN
68948 --
68949 IF g_log_enabled THEN
68950       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_130';
68951 END IF;
68952 --
68953 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68954 
68955       trace
68956          (p_msg      => 'BEGIN of AcctLineType_130'
68957          ,p_level    => C_LEVEL_PROCEDURE
68958          ,p_module   => l_log_module);
68959 
68960 END IF;
68961 --
68962 l_component_type             := 'AMB_JLT';
68963 l_component_code             := 'AP_GAIN_MAT_CLEAR';
68964 l_component_type_code        := 'S';
68965 l_component_appl_id          :=  200;
68966 l_amb_context_code           := 'DEFAULT';
68967 l_entity_code                := 'AP_PAYMENTS';
68971 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
68968 l_event_class_code           := 'RECONCILED PAYMENTS';
68969 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
68970 l_line_definition_owner_code := 'S';
68972 --
68973 l_balance_type_code          := 'A';
68974 l_segment                     := NULL;
68975 l_ccid                        := NULL;
68976 l_adr_transaction_coa_id      := NULL;
68977 l_adr_accounting_coa_id       := NULL;
68978 l_adr_flexfield_segment_code  := NULL;
68979 l_adr_flex_value_set_id       := NULL;
68980 l_adr_value_type_code         := NULL;
68981 l_adr_value_combination_id    := NULL;
68982 l_adr_value_segment_code      := NULL;
68983 
68984 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
68985 l_bflow_class_code           := '';    -- 4219869 Business Flow
68986 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
68987 l_budgetary_control_flag     := 'N';
68988 
68989 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
68990 l_bflow_applied_to_amt       := NULL; -- 5132302
68991 l_entered_amt_idx            := NULL;          -- 4262811
68992 l_accted_amt_idx             := NULL;          -- 4262811
68993 l_acc_rev_flag               := NULL;          -- 4262811
68994 l_accrual_line_num           := NULL;          -- 4262811
68995 l_tmp_amt                    := NULL;          -- 4262811
68996 --
68997 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
68998             (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
68999                return;
69000   END IF;
69001   
69002 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
69003     l_balance_type_code <> 'B' THEN
69004 IF NVL(p_source_97,'
69005 ') =  'ALWAYS_ALWAYS' AND 
69006 p_source_114 IS NOT NULL AND 
69007 NVL(p_source_156,'
69008 ') =  'GAIN' AND 
69009 NVL(p_source_98,'
69010 ') <>  'EXCHANGE RATE VARIANCE' AND 
69011 NVL(p_source_98,'
69012 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
69013 NVL(p_source_98,'
69014 ') <>  'BANK CHARGE' AND 
69015 NVL(p_source_98,'
69016 ') <>  'BANK ERROR'
69017  THEN 
69018 
69019    --
69020    XLA_AE_LINES_PKG.SetNewLine;
69021 
69022    p_balance_type_code          := l_balance_type_code;
69023    -- set the flag so later we will know whether the gain loss line needs to be created
69024    
69025    IF(l_balance_type_code = 'A' ) THEN
69026      p_actual_flag :='G';
69027    END IF;
69028 
69029    --
69030    -- bulk performance
69031    --
69032    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
69033                                       p_header_num   => 0); -- 4262811
69034    --
69035    -- set accounting line options
69036    --
69037    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
69038            p_natural_side_code          => 'C'
69039          , p_gain_or_loss_flag          => 'Y'
69040          , p_gl_transfer_mode_code      => 'S'
69041          , p_acct_entry_type_code       => 'A'
69042          , p_switch_side_flag           => 'Y'
69043          , p_merge_duplicate_code       => 'A'
69044          );
69045    --
69046    l_acc_rev_natural_side_code := 'D';  -- 4262811
69047    -- 
69048    --
69049    -- set accounting line type info
69050    --
69051    xla_ae_lines_pkg.SetAcctLineType
69052       (p_component_type             => l_component_type
69053       ,p_event_type_code            => l_event_type_code
69054       ,p_line_definition_owner_code => l_line_definition_owner_code
69055       ,p_line_definition_code       => l_line_definition_code
69056       ,p_accounting_line_code       => l_component_code
69057       ,p_accounting_line_type_code  => l_component_type_code
69058       ,p_accounting_line_appl_id    => l_component_appl_id
69059       ,p_amb_context_code           => l_amb_context_code
69060       ,p_entity_code                => l_entity_code
69061       ,p_event_class_code           => l_event_class_code);
69062    --
69063    -- set accounting class
69064    --
69065    xla_ae_lines_pkg.SetAcctClass(
69066            p_accounting_class_code  => 'GAIN'
69067          , p_ae_header_id           => l_ae_header_id
69068          );
69069 
69070    --
69071    -- set rounding class
69072    --
69073    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
69074                       'GAIN';
69075 
69076    --
69077    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
69078    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
69079    --
69080    -- bulk performance
69081    --
69082    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
69083 
69084    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
69085       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
69086 
69087    -- 4955764
69088    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
69089       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
69090 
69091    -- 4458381 Public Sector Enh
69092    
69093    --
69097    l_accted_amt_idx  := 15;
69094    -- set accounting attributes for the line type
69095    --
69096    l_entered_amt_idx := 10;
69098    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
69099    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
69100    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
69101    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
69102    l_rec_acct_attrs.array_num_value(2)  := p_source_99;
69103    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
69104    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
69105    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
69106    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
69107    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
69108    l_rec_acct_attrs.array_char_value(5)  := p_source_101;
69109    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
69110    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
69111    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
69112    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
69113    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
69114    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
69115    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
69116    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
69117    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
69118    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
69119    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
69120    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
69121    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
69122    l_rec_acct_attrs.array_date_value(12)  := p_source_106;
69123    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
69124    l_rec_acct_attrs.array_num_value(13)  := p_source_107;
69125    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
69126    l_rec_acct_attrs.array_char_value(14)  := p_source_108;
69127    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
69128    l_rec_acct_attrs.array_num_value(15)  := p_source_157;
69129    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
69130    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
69131    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
69132    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
69133    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
69134    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
69135    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
69136    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
69137    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
69138    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
69139    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
69140    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
69141    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
69142    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
69143    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
69144    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
69145    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
69146    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
69147 
69148    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
69149    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
69150 
69151    ---------------------------------------------------------------------------------------------------------------
69152    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
69153    ---------------------------------------------------------------------------------------------------------------
69154    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
69155 
69156    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69157    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69158 
69159    IF xla_accounting_cache_pkg.GetValueChar
69160          (p_source_code         => 'LEDGER_CATEGORY_CODE'
69161          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
69162    AND l_bflow_method_code = 'PRIOR_ENTRY'
69163 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
69164    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
69165          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
69166        )
69167    THEN
69168          xla_ae_lines_pkg.BflowUpgEntry
69169            (p_business_method_code    => l_bflow_method_code
69170            ,p_business_class_code     => l_bflow_class_code
69171            ,p_balance_type            => l_balance_type_code);
69172    ELSE
69173       NULL;
69174 -- No business flow processing for business flow method of NONE.
69175    END IF;
69176 
69177    --
69178    -- call analytical criteria
69179    --
69180    
69181    --
69182    -- call description
69183    --
69184    -- No description or it is inherited.
69185    --
69186    -- call ADRs
69187    -- Bug 4922099
69188    --
69189    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
69190         (NVL(l_actual_upg_option, 'N') = 'O') OR
69194    NULL;
69191         (NVL(l_enc_upg_option, 'N') = 'O')
69192       )
69193    THEN
69195    --
69196    --
69197    
69198   l_ccid := AcctDerRule_38(
69199            p_application_id           => p_application_id
69200          , p_ae_header_id             => l_ae_header_id 
69201 , p_source_15 => p_source_15
69202 , p_source_15_meaning => p_source_15_meaning
69203 , p_source_30 => p_source_30
69204 , p_source_36 => p_source_36
69205 , p_source_37 => p_source_37
69206          , x_transaction_coa_id       => l_adr_transaction_coa_id
69207          , x_accounting_coa_id        => l_adr_accounting_coa_id
69208          , x_value_type_code          => l_adr_value_type_code
69209          , p_side                     => 'NA'
69210    );
69211 
69212    xla_ae_lines_pkg.set_ccid(
69213     p_code_combination_id          => l_ccid
69214   , p_value_type_code              => l_adr_value_type_code
69215   , p_transaction_coa_id           => l_adr_transaction_coa_id
69216   , p_accounting_coa_id            => l_adr_accounting_coa_id
69217   , p_adr_code                     => 'AP_REAL_GAIN'
69218   , p_adr_type_code                => 'S'
69219   , p_component_type               => l_component_type
69220   , p_component_code               => l_component_code
69221   , p_component_type_code          => l_component_type_code
69222   , p_component_appl_id            => l_component_appl_id
69223   , p_amb_context_code             => l_amb_context_code
69224   , p_side                         => 'NA'
69225   );
69226 
69227 
69228    l_segment := AcctDerRule_22(
69229            p_application_id           => p_application_id
69230          , p_ae_header_id             => l_ae_header_id 
69231 , p_source_15 => p_source_15
69232 , p_source_15_meaning => p_source_15_meaning
69233 , p_source_30 => p_source_30
69234          , x_transaction_coa_id       => l_adr_transaction_coa_id
69235          , x_accounting_coa_id        => l_adr_accounting_coa_id
69236          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
69237          , x_flex_value_set_id        => l_adr_flex_value_set_id
69238          , x_value_type_code          => l_adr_value_type_code
69239          , x_value_combination_id     => l_adr_value_combination_id
69240          , x_value_segment_code       => l_adr_value_segment_code
69241          , p_side                     => 'NA'
69242          , p_override_seg_flag        => 'Y'
69243    );
69244 
69245    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
69246 
69247       xla_ae_lines_pkg.set_segment(
69248           p_to_segment_code         => 'GL_BALANCING'
69249         , p_segment_value           => l_segment
69250         , p_from_segment_code       => l_adr_value_segment_code
69251         , p_from_combination_id     => l_adr_value_combination_id
69252         , p_value_type_code         => l_adr_value_type_code
69253         , p_transaction_coa_id      => l_adr_transaction_coa_id
69254         , p_accounting_coa_id       => l_adr_accounting_coa_id
69255         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
69256         , p_flex_value_set_id       => l_adr_flex_value_set_id
69257         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
69258         , p_adr_type_code           => 'S'
69259         , p_component_type          => l_component_type
69260         , p_component_code          => l_component_code
69261         , p_component_type_code     => l_component_type_code
69262         , p_component_appl_id       => l_component_appl_id
69263         , p_amb_context_code        => l_amb_context_code
69264         , p_entity_code             => 'AP_PAYMENTS'
69265         , p_event_class_code        => 'RECONCILED PAYMENTS'
69266         , p_side                    => 'NA'
69267         );
69268 
69269   END IF;
69270 
69271    l_segment := AcctDerRule_17(
69272            p_application_id           => p_application_id
69273          , p_ae_header_id             => l_ae_header_id 
69274 , p_source_15 => p_source_15
69275 , p_source_15_meaning => p_source_15_meaning
69276 , p_source_36 => p_source_36
69277 , p_source_37 => p_source_37
69278          , x_transaction_coa_id       => l_adr_transaction_coa_id
69279          , x_accounting_coa_id        => l_adr_accounting_coa_id
69280          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
69281          , x_flex_value_set_id        => l_adr_flex_value_set_id
69282          , x_value_type_code          => l_adr_value_type_code
69283          , x_value_combination_id     => l_adr_value_combination_id
69284          , x_value_segment_code       => l_adr_value_segment_code
69285          , p_side                     => 'NA'
69286          , p_override_seg_flag        => 'Y'
69287    );
69288 
69289    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
69290 
69291       xla_ae_lines_pkg.set_segment(
69292           p_to_segment_code         => 'GL_ACCOUNT'
69293         , p_segment_value           => l_segment
69294         , p_from_segment_code       => l_adr_value_segment_code
69295         , p_from_combination_id     => l_adr_value_combination_id
69296         , p_value_type_code         => l_adr_value_type_code
69297         , p_transaction_coa_id      => l_adr_transaction_coa_id
69298         , p_accounting_coa_id       => l_adr_accounting_coa_id
69299         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
69300         , p_flex_value_set_id       => l_adr_flex_value_set_id
69301         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
69302         , p_adr_type_code           => 'S'
69303         , p_component_type          => l_component_type
69307         , p_amb_context_code        => l_amb_context_code
69304         , p_component_code          => l_component_code
69305         , p_component_type_code     => l_component_type_code
69306         , p_component_appl_id       => l_component_appl_id
69308         , p_entity_code             => 'AP_PAYMENTS'
69309         , p_event_class_code        => 'RECONCILED PAYMENTS'
69310         , p_side                    => 'NA'
69311         );
69312 
69313   END IF;
69314 
69315    --
69316    --
69317    END IF;
69318    --
69319    -- Bug 4922099
69320    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
69321           (NVL(l_enc_upg_option, 'N') = 'O')
69322         ) AND
69323         (l_bflow_method_code = 'PRIOR_ENTRY')
69324       )
69325    THEN
69326       IF
69327       --
69328       1 = 2
69329       --
69330       THEN
69331       xla_accounting_err_pkg.build_message
69332                                     (p_appli_s_name            => 'XLA'
69333                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
69334                                     ,p_token_1                 => 'LINE_NUMBER'
69335                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
69336                                     ,p_token_2                 => 'LINE_TYPE_NAME'
69337                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
69338                                                                              l_component_type
69339                                                                             ,l_component_code
69340                                                                             ,l_component_type_code
69341                                                                             ,l_component_appl_id
69342                                                                             ,l_amb_context_code
69343                                                                             ,l_entity_code
69344                                                                             ,l_event_class_code
69345                                                                            )
69346                                     ,p_token_3                 => 'OWNER'
69347                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
69348                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
69349                                                                           ,p_lookup_code    => l_component_type_code
69350                                                                          )
69351                                     ,p_token_4                 => 'PRODUCT_NAME'
69352                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
69353                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
69354                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
69355                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
69356                                     ,p_ae_header_id            =>  NULL
69357                                        );
69358 
69359         IF (C_LEVEL_ERROR>= g_log_level) THEN
69360                  trace
69361                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
69362                       ,p_level    => C_LEVEL_ERROR
69363                       ,p_module   => l_log_module);
69364         END IF;
69365       END IF;
69366    END IF;
69367    --
69368    --
69369    ------------------------------------------------------------------------------------------------
69370    -- 4219869 Business Flow
69371    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
69372    -- Prior Entry.  Currently, the following code is always generated.
69373    ------------------------------------------------------------------------------------------------
69374    XLA_AE_LINES_PKG.ValidateCurrentLine;
69375 
69376    ------------------------------------------------------------------------------------
69377    -- 4219869 Business Flow
69378    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
69379    ------------------------------------------------------------------------------------
69380    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
69381 
69382    ----------------------------------------------------------------------------------
69383    -- 4219869 Business Flow
69384    -- Update journal entry status -- Need to generate this within IF <condition>
69385    ----------------------------------------------------------------------------------
69386    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
69387          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
69388          ,p_balance_type_code => l_balance_type_code
69389          );
69390 
69391    -------------------------------------------------------------------------------------------
69392    -- 4262811 - Generate the Accrual Reversal lines
69393    -------------------------------------------------------------------------------------------
69394    BEGIN
69395       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
69396                               (g_array_event(p_event_id).array_value_num('header_index'));
69397       IF l_acc_rev_flag IS NULL THEN
69398          l_acc_rev_flag := 'N';
69399       END IF;
69400    EXCEPTION
69401       WHEN OTHERS THEN
69405    IF (l_acc_rev_flag = 'Y') THEN
69402          l_acc_rev_flag := 'N';
69403    END;
69404    --
69406 
69407        -- 4645092  ------------------------------------------------------------------------------
69408        -- To allow MPA report to determine if it should generate report process
69409        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
69410        ------------------------------------------------------------------------------------------
69411 
69412        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
69413        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
69414    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
69415    -- call ADRs
69416    -- Bug 4922099
69417    --
69418    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
69419         (NVL(l_actual_upg_option, 'N') = 'O') OR
69420         (NVL(l_enc_upg_option, 'N') = 'O')
69421       )
69422    THEN
69423    NULL;
69424    --
69425    --
69426    
69427   l_ccid := AcctDerRule_38(
69428            p_application_id           => p_application_id
69429          , p_ae_header_id             => l_ae_header_id 
69430 , p_source_15 => p_source_15
69431 , p_source_15_meaning => p_source_15_meaning
69432 , p_source_30 => p_source_30
69433 , p_source_36 => p_source_36
69434 , p_source_37 => p_source_37
69435          , x_transaction_coa_id       => l_adr_transaction_coa_id
69436          , x_accounting_coa_id        => l_adr_accounting_coa_id
69437          , x_value_type_code          => l_adr_value_type_code
69438          , p_side                     => 'NA'
69439    );
69440 
69441    xla_ae_lines_pkg.set_ccid(
69442     p_code_combination_id          => l_ccid
69443   , p_value_type_code              => l_adr_value_type_code
69444   , p_transaction_coa_id           => l_adr_transaction_coa_id
69445   , p_accounting_coa_id            => l_adr_accounting_coa_id
69446   , p_adr_code                     => 'AP_REAL_GAIN'
69447   , p_adr_type_code                => 'S'
69448   , p_component_type               => l_component_type
69449   , p_component_code               => l_component_code
69450   , p_component_type_code          => l_component_type_code
69451   , p_component_appl_id            => l_component_appl_id
69452   , p_amb_context_code             => l_amb_context_code
69453   , p_side                         => 'NA'
69454   );
69455 
69456 
69457    l_segment := AcctDerRule_22(
69458            p_application_id           => p_application_id
69459          , p_ae_header_id             => l_ae_header_id 
69460 , p_source_15 => p_source_15
69461 , p_source_15_meaning => p_source_15_meaning
69462 , p_source_30 => p_source_30
69463          , x_transaction_coa_id       => l_adr_transaction_coa_id
69464          , x_accounting_coa_id        => l_adr_accounting_coa_id
69465          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
69466          , x_flex_value_set_id        => l_adr_flex_value_set_id
69467          , x_value_type_code          => l_adr_value_type_code
69468          , x_value_combination_id     => l_adr_value_combination_id
69469          , x_value_segment_code       => l_adr_value_segment_code
69470          , p_side                     => 'NA'
69471          , p_override_seg_flag        => 'Y'
69472    );
69473 
69474    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
69475 
69476       xla_ae_lines_pkg.set_segment(
69477           p_to_segment_code         => 'GL_BALANCING'
69478         , p_segment_value           => l_segment
69479         , p_from_segment_code       => l_adr_value_segment_code
69480         , p_from_combination_id     => l_adr_value_combination_id
69481         , p_value_type_code         => l_adr_value_type_code
69482         , p_transaction_coa_id      => l_adr_transaction_coa_id
69483         , p_accounting_coa_id       => l_adr_accounting_coa_id
69484         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
69485         , p_flex_value_set_id       => l_adr_flex_value_set_id
69486         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
69487         , p_adr_type_code           => 'S'
69488         , p_component_type          => l_component_type
69489         , p_component_code          => l_component_code
69490         , p_component_type_code     => l_component_type_code
69491         , p_component_appl_id       => l_component_appl_id
69492         , p_amb_context_code        => l_amb_context_code
69493         , p_entity_code             => 'AP_PAYMENTS'
69494         , p_event_class_code        => 'RECONCILED PAYMENTS'
69495         , p_side                    => 'NA'
69496         );
69497 
69498   END IF;
69499 
69500    l_segment := AcctDerRule_17(
69501            p_application_id           => p_application_id
69502          , p_ae_header_id             => l_ae_header_id 
69503 , p_source_15 => p_source_15
69504 , p_source_15_meaning => p_source_15_meaning
69505 , p_source_36 => p_source_36
69506 , p_source_37 => p_source_37
69507          , x_transaction_coa_id       => l_adr_transaction_coa_id
69508          , x_accounting_coa_id        => l_adr_accounting_coa_id
69509          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
69510          , x_flex_value_set_id        => l_adr_flex_value_set_id
69511          , x_value_type_code          => l_adr_value_type_code
69512          , x_value_combination_id     => l_adr_value_combination_id
69513          , x_value_segment_code       => l_adr_value_segment_code
69514          , p_side                     => 'NA'
69515          , p_override_seg_flag        => 'Y'
69516    );
69517 
69521           p_to_segment_code         => 'GL_ACCOUNT'
69518    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
69519 
69520       xla_ae_lines_pkg.set_segment(
69522         , p_segment_value           => l_segment
69523         , p_from_segment_code       => l_adr_value_segment_code
69524         , p_from_combination_id     => l_adr_value_combination_id
69525         , p_value_type_code         => l_adr_value_type_code
69526         , p_transaction_coa_id      => l_adr_transaction_coa_id
69527         , p_accounting_coa_id       => l_adr_accounting_coa_id
69528         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
69529         , p_flex_value_set_id       => l_adr_flex_value_set_id
69530         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
69531         , p_adr_type_code           => 'S'
69532         , p_component_type          => l_component_type
69533         , p_component_code          => l_component_code
69534         , p_component_type_code     => l_component_type_code
69535         , p_component_appl_id       => l_component_appl_id
69536         , p_amb_context_code        => l_amb_context_code
69537         , p_entity_code             => 'AP_PAYMENTS'
69538         , p_event_class_code        => 'RECONCILED PAYMENTS'
69539         , p_side                    => 'NA'
69540         );
69541 
69542   END IF;
69543 
69544    --
69545    --
69546    END IF;
69547 
69548        --
69549        -- Update the line information that should be overwritten
69550        --
69551        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
69552                                          p_header_num   => 1);
69553        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
69554 
69555        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
69556 
69557        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
69558           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
69559        END IF;
69560 
69561       --
69562       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
69563       --
69564       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
69565           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
69566       ELSE
69567           ---------------------------------------------------------------------------------------------------
69568           -- 4262811a Switch Sign
69569           ---------------------------------------------------------------------------------------------------
69570           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
69571           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
69572                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69573           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
69574                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69575           -- 5132302
69576           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
69577                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
69578 
69579       END IF;
69580 
69581       -- 4955764
69582       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
69583       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
69584 
69585 
69586       XLA_AE_LINES_PKG.ValidateCurrentLine;
69587       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
69588 
69589       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
69590                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
69591                ,p_balance_type_code => l_balance_type_code);
69592 
69593    END IF;
69594 
69595    -----------------------------------------------------------------------------------------
69596    -- 4262811 Multiperiod Accounting
69597    -----------------------------------------------------------------------------------------
69598      -- No MPA option is assigned.
69599 
69600 
69601 END IF;
69602 END IF;
69603 --
69604 
69605 --
69606 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69607    trace
69608       (p_msg      => 'END of AcctLineType_130'
69609       ,p_level    => C_LEVEL_PROCEDURE
69610       ,p_module   => l_log_module);
69611 END IF;
69612 --
69613 EXCEPTION
69614   WHEN xla_exceptions_pkg.application_exception THEN
69615       RAISE;
69616   WHEN OTHERS THEN
69617        xla_exceptions_pkg.raise_message
69618            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_130');
69619 END AcctLineType_130;
69620 --
69621 
69622 ---------------------------------------
69623 --
69624 -- PRIVATE FUNCTION
69625 --         AcctLineType_131
69626 --
69627 ---------------------------------------
69628 PROCEDURE AcctLineType_131 (
69629   p_application_id        IN NUMBER
69630  ,p_event_id              IN NUMBER
69631  ,p_calculate_acctd_flag  IN VARCHAR2
69632  ,p_calculate_g_l_flag    IN VARCHAR2
69633  ,p_actual_flag           IN OUT VARCHAR2
69634  ,p_balance_type_code     OUT VARCHAR2
69638  , p_source_13            IN VARCHAR2
69635  ,p_gain_or_loss_ref      OUT VARCHAR2
69636  
69637 --Payment Currency Code
69639 --Automatic Offsets Value
69640  , p_source_15            IN VARCHAR2
69641  , p_source_15_meaning    IN VARCHAR2
69642 --Invoice Distribution Account
69643  , p_source_30            IN NUMBER
69644 --Internal Realized Gain Account
69645  , p_source_36            IN NUMBER
69646 --Bank Gain Account
69647  , p_source_37            IN NUMBER
69648 --Accounting Reversal Indicator
69649  , p_source_53            IN VARCHAR2
69650 --Distribution Link Type
69651  , p_source_55            IN VARCHAR2
69652 --Override Accounted Amount Indicator
69653  , p_source_80            IN VARCHAR2
69654  , p_source_80_meaning    IN VARCHAR2
69655 --Third Party Type
69656  , p_source_83            IN VARCHAR2
69657 --Invoice Distribution Tax Line Identifier
69658  , p_source_86            IN NUMBER
69659 --Invoice Distribution Tax Distribution Identifier from Tax
69660  , p_source_87            IN NUMBER
69661 --Invoice Distribution Summary Tax Line Identifier
69662  , p_source_88            IN NUMBER
69663 --Business Flow Accounts Payable Application Identifier
69664  , p_source_91            IN NUMBER
69665 --Business Flow Invoice Distribution Type
69666  , p_source_92            IN VARCHAR2
69667 --Business Flow Invoice Entity Code
69668  , p_source_93            IN VARCHAR2
69669 --Business Flow Invoice Distribution Identifier
69670  , p_source_94            IN NUMBER
69671 --Business Flow Invoice Identifier
69672  , p_source_95            IN NUMBER
69673 --When to Account for Payment Option
69674  , p_source_97            IN VARCHAR2
69675 --Payment Distribution Type
69676  , p_source_98            IN VARCHAR2
69677  , p_source_98_meaning    IN VARCHAR2
69678 --Payment Distribution Amount
69679  , p_source_99            IN NUMBER
69680 --Payment Distribution Identifier
69681  , p_source_104            IN NUMBER
69682 --Payment Supplier Identifier
69683  , p_source_110            IN NUMBER
69684 --Payment Supplier Site Identifier
69685  , p_source_111            IN NUMBER
69686 --Payment Distribution Reversed Identifier
69687  , p_source_112            IN NUMBER
69688 --Payment Exchange Date
69689  , p_source_117            IN DATE
69690 --Payment Exchange Rate
69691  , p_source_118            IN NUMBER
69692 --Payment Exchange Rate Type
69693  , p_source_119            IN VARCHAR2
69694 --Payment Type
69695  , p_source_122            IN VARCHAR2
69696  , p_source_122_meaning    IN VARCHAR2
69697 --Invoice Distribution Amount of the Payment Distribution
69698  , p_source_124            IN NUMBER
69699 --Invoice/Payment Ledger Amount Difference
69700  , p_source_153            IN NUMBER
69701 --Gain or Loss Indicator between Invoice and Payment
69702  , p_source_158            IN VARCHAR2
69703 )
69704 IS
69705 
69706 l_component_type              VARCHAR2(80);
69707 l_component_code              VARCHAR2(30);
69708 l_component_type_code         VARCHAR2(1);
69709 l_component_appl_id           INTEGER;
69710 l_amb_context_code            VARCHAR2(30);
69711 l_entity_code                 VARCHAR2(30);
69712 l_event_class_code            VARCHAR2(30);
69713 l_ae_header_id                NUMBER;
69714 l_event_type_code             VARCHAR2(30);
69715 l_line_definition_code        VARCHAR2(30);
69716 l_line_definition_owner_code  VARCHAR2(1);
69717 --
69718 -- adr variables
69719 l_segment                     VARCHAR2(30);
69720 l_ccid                        NUMBER;
69721 l_adr_transaction_coa_id      NUMBER;
69722 l_adr_accounting_coa_id       NUMBER;
69723 l_adr_flexfield_segment_code  VARCHAR2(30);
69724 l_adr_flex_value_set_id       NUMBER;
69725 l_adr_value_type_code         VARCHAR2(30);
69726 l_adr_value_combination_id    NUMBER;
69727 l_adr_value_segment_code      VARCHAR2(30);
69728 
69729 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
69730 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
69731 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
69732 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
69733 
69734 -- 4262811 Variables ------------------------------------------------------------------------------------------
69735 l_entered_amt_idx             NUMBER;
69736 l_accted_amt_idx              NUMBER;
69737 l_acc_rev_flag                VARCHAR2(1);
69738 l_accrual_line_num            NUMBER;
69739 l_tmp_amt                     NUMBER;
69740 l_acc_rev_natural_side_code   VARCHAR2(1);
69741 
69742 l_num_entries                 NUMBER;
69743 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
69744 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
69745 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
69746 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
69747 l_recog_line_1                NUMBER;
69748 l_recog_line_2                NUMBER;
69749 
69750 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
69751 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
69752 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
69753 
69754 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
69755 
69756 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
69760 
69757 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
69758 
69759 ---------------------------------------------------------------------------------------------------------------
69761 
69762 --
69763 -- bulk performance
69764 --
69765 l_balance_type_code           VARCHAR2(1);
69766 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
69767 l_log_module                  VARCHAR2(240);
69768 
69769 --
69770 -- Upgrade strategy
69771 --
69772 l_actual_upg_option           VARCHAR2(1);
69773 l_enc_upg_option           VARCHAR2(1);
69774 
69775 --
69776 BEGIN
69777 --
69778 IF g_log_enabled THEN
69779       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_131';
69780 END IF;
69781 --
69782 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69783 
69784       trace
69785          (p_msg      => 'BEGIN of AcctLineType_131'
69786          ,p_level    => C_LEVEL_PROCEDURE
69787          ,p_module   => l_log_module);
69788 
69789 END IF;
69790 --
69791 l_component_type             := 'AMB_JLT';
69792 l_component_code             := 'AP_GAIN_PMT';
69793 l_component_type_code        := 'S';
69794 l_component_appl_id          :=  200;
69795 l_amb_context_code           := 'DEFAULT';
69796 l_entity_code                := 'AP_PAYMENTS';
69797 l_event_class_code           := 'PAYMENTS';
69798 l_event_type_code            := 'PAYMENTS_ALL';
69799 l_line_definition_owner_code := 'S';
69800 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
69801 --
69802 l_balance_type_code          := 'A';
69803 l_segment                     := NULL;
69804 l_ccid                        := NULL;
69805 l_adr_transaction_coa_id      := NULL;
69806 l_adr_accounting_coa_id       := NULL;
69807 l_adr_flexfield_segment_code  := NULL;
69808 l_adr_flex_value_set_id       := NULL;
69809 l_adr_value_type_code         := NULL;
69810 l_adr_value_combination_id    := NULL;
69811 l_adr_value_segment_code      := NULL;
69812 
69813 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
69814 l_bflow_class_code           := '';    -- 4219869 Business Flow
69815 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
69816 l_budgetary_control_flag     := 'N';
69817 
69818 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
69819 l_bflow_applied_to_amt       := NULL; -- 5132302
69820 l_entered_amt_idx            := NULL;          -- 4262811
69821 l_accted_amt_idx             := NULL;          -- 4262811
69822 l_acc_rev_flag               := NULL;          -- 4262811
69823 l_accrual_line_num           := NULL;          -- 4262811
69824 l_tmp_amt                    := NULL;          -- 4262811
69825 --
69826 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
69827             (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
69828                return;
69829   END IF;
69830   
69831 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
69832     l_balance_type_code <> 'B' THEN
69833 IF (NVL(p_source_97,'
69834 ') <>  'CLEAR_CLEAR' AND 
69835 NVL(p_source_97,'
69836 ') <>  'ALWAYS_CLEAR') AND 
69837 NVL(p_source_158,'
69838 ') =  'GAIN' AND 
69839 NVL(p_source_98,'
69840 ') <>  'EXCHANGE RATE VARIANCE' AND 
69841 NVL(p_source_98,'
69842 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
69843 NVL(p_source_98,'
69844 ') <>  'BANK ERROR' AND 
69845 NVL(p_source_98,'
69846 ') <>  'BANK CHARGE' AND 
69847 NVL(p_source_98,'
69848 ') <>  'AWT' AND 
69849 NVL(p_source_122,'
69850 ') <>  'R'
69851  THEN 
69852 
69853    --
69854    XLA_AE_LINES_PKG.SetNewLine;
69855 
69856    p_balance_type_code          := l_balance_type_code;
69857    -- set the flag so later we will know whether the gain loss line needs to be created
69858    
69859    IF(l_balance_type_code = 'A' ) THEN
69860      p_actual_flag :='G';
69861    END IF;
69862 
69863    --
69864    -- bulk performance
69865    --
69866    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
69867                                       p_header_num   => 0); -- 4262811
69868    --
69869    -- set accounting line options
69870    --
69871    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
69872            p_natural_side_code          => 'C'
69873          , p_gain_or_loss_flag          => 'Y'
69874          , p_gl_transfer_mode_code      => 'S'
69875          , p_acct_entry_type_code       => 'A'
69876          , p_switch_side_flag           => 'Y'
69877          , p_merge_duplicate_code       => 'A'
69878          );
69879    --
69880    l_acc_rev_natural_side_code := 'D';  -- 4262811
69881    -- 
69882    --
69883    -- set accounting line type info
69884    --
69885    xla_ae_lines_pkg.SetAcctLineType
69886       (p_component_type             => l_component_type
69887       ,p_event_type_code            => l_event_type_code
69888       ,p_line_definition_owner_code => l_line_definition_owner_code
69889       ,p_line_definition_code       => l_line_definition_code
69890       ,p_accounting_line_code       => l_component_code
69891       ,p_accounting_line_type_code  => l_component_type_code
69892       ,p_accounting_line_appl_id    => l_component_appl_id
69896    --
69893       ,p_amb_context_code           => l_amb_context_code
69894       ,p_entity_code                => l_entity_code
69895       ,p_event_class_code           => l_event_class_code);
69897    -- set accounting class
69898    --
69899    xla_ae_lines_pkg.SetAcctClass(
69900            p_accounting_class_code  => 'GAIN'
69901          , p_ae_header_id           => l_ae_header_id
69902          );
69903 
69904    --
69905    -- set rounding class
69906    --
69907    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
69908                       'GAIN';
69909 
69910    --
69911    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
69912    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
69913    --
69914    -- bulk performance
69915    --
69916    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
69917 
69918    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
69919       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
69920 
69921    -- 4955764
69922    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
69923       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
69924 
69925    -- 4458381 Public Sector Enh
69926    
69927    --
69928    -- set accounting attributes for the line type
69929    --
69930    l_entered_amt_idx := 10;
69931    l_accted_amt_idx  := 15;
69932    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
69933    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
69934    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
69935    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
69936    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
69937    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
69938    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
69939    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
69940    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
69941    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
69942    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
69943    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
69944    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
69945    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
69946    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
69947    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
69948    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
69949    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
69950    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
69951    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
69952    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
69953    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
69954    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
69955    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
69956    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
69957    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
69958    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
69959    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
69960    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
69961    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
69962    l_rec_acct_attrs.array_num_value(15)  := p_source_153;
69963    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
69964    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
69965    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
69966    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
69967    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
69968    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
69969    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
69970    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
69971    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
69972    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
69973    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
69974    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
69975    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
69976    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
69977    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
69978    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
69979    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
69980    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
69981 
69982    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
69983    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
69984 
69985    ---------------------------------------------------------------------------------------------------------------
69986    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
69987    ---------------------------------------------------------------------------------------------------------------
69988    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
69989 
69993    IF xla_accounting_cache_pkg.GetValueChar
69990    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69991    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
69992 
69994          (p_source_code         => 'LEDGER_CATEGORY_CODE'
69995          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
69996    AND l_bflow_method_code = 'PRIOR_ENTRY'
69997 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
69998    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
69999          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
70000        )
70001    THEN
70002          xla_ae_lines_pkg.BflowUpgEntry
70003            (p_business_method_code    => l_bflow_method_code
70004            ,p_business_class_code     => l_bflow_class_code
70005            ,p_balance_type            => l_balance_type_code);
70006    ELSE
70007       NULL;
70008 -- No business flow processing for business flow method of NONE.
70009    END IF;
70010 
70011    --
70012    -- call analytical criteria
70013    --
70014    
70015    --
70016    -- call description
70017    --
70018    -- No description or it is inherited.
70019    --
70020    -- call ADRs
70021    -- Bug 4922099
70022    --
70023    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
70024         (NVL(l_actual_upg_option, 'N') = 'O') OR
70025         (NVL(l_enc_upg_option, 'N') = 'O')
70026       )
70027    THEN
70028    NULL;
70029    --
70030    --
70031    
70032   l_ccid := AcctDerRule_38(
70033            p_application_id           => p_application_id
70034          , p_ae_header_id             => l_ae_header_id 
70035 , p_source_15 => p_source_15
70036 , p_source_15_meaning => p_source_15_meaning
70037 , p_source_30 => p_source_30
70038 , p_source_36 => p_source_36
70039 , p_source_37 => p_source_37
70040          , x_transaction_coa_id       => l_adr_transaction_coa_id
70041          , x_accounting_coa_id        => l_adr_accounting_coa_id
70042          , x_value_type_code          => l_adr_value_type_code
70043          , p_side                     => 'NA'
70044    );
70045 
70046    xla_ae_lines_pkg.set_ccid(
70047     p_code_combination_id          => l_ccid
70048   , p_value_type_code              => l_adr_value_type_code
70049   , p_transaction_coa_id           => l_adr_transaction_coa_id
70050   , p_accounting_coa_id            => l_adr_accounting_coa_id
70051   , p_adr_code                     => 'AP_REAL_GAIN'
70052   , p_adr_type_code                => 'S'
70053   , p_component_type               => l_component_type
70054   , p_component_code               => l_component_code
70055   , p_component_type_code          => l_component_type_code
70056   , p_component_appl_id            => l_component_appl_id
70057   , p_amb_context_code             => l_amb_context_code
70058   , p_side                         => 'NA'
70059   );
70060 
70061 
70062    l_segment := AcctDerRule_22(
70063            p_application_id           => p_application_id
70064          , p_ae_header_id             => l_ae_header_id 
70065 , p_source_15 => p_source_15
70066 , p_source_15_meaning => p_source_15_meaning
70067 , p_source_30 => p_source_30
70068          , x_transaction_coa_id       => l_adr_transaction_coa_id
70069          , x_accounting_coa_id        => l_adr_accounting_coa_id
70070          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
70071          , x_flex_value_set_id        => l_adr_flex_value_set_id
70072          , x_value_type_code          => l_adr_value_type_code
70073          , x_value_combination_id     => l_adr_value_combination_id
70074          , x_value_segment_code       => l_adr_value_segment_code
70075          , p_side                     => 'NA'
70076          , p_override_seg_flag        => 'Y'
70077    );
70078 
70079    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
70080 
70081       xla_ae_lines_pkg.set_segment(
70082           p_to_segment_code         => 'GL_BALANCING'
70083         , p_segment_value           => l_segment
70084         , p_from_segment_code       => l_adr_value_segment_code
70085         , p_from_combination_id     => l_adr_value_combination_id
70086         , p_value_type_code         => l_adr_value_type_code
70087         , p_transaction_coa_id      => l_adr_transaction_coa_id
70088         , p_accounting_coa_id       => l_adr_accounting_coa_id
70089         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
70090         , p_flex_value_set_id       => l_adr_flex_value_set_id
70091         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
70092         , p_adr_type_code           => 'S'
70093         , p_component_type          => l_component_type
70094         , p_component_code          => l_component_code
70095         , p_component_type_code     => l_component_type_code
70096         , p_component_appl_id       => l_component_appl_id
70097         , p_amb_context_code        => l_amb_context_code
70098         , p_entity_code             => 'AP_PAYMENTS'
70099         , p_event_class_code        => 'PAYMENTS'
70100         , p_side                    => 'NA'
70101         );
70102 
70103   END IF;
70104 
70105    l_segment := AcctDerRule_17(
70106            p_application_id           => p_application_id
70107          , p_ae_header_id             => l_ae_header_id 
70108 , p_source_15 => p_source_15
70109 , p_source_15_meaning => p_source_15_meaning
70110 , p_source_36 => p_source_36
70111 , p_source_37 => p_source_37
70115          , x_flex_value_set_id        => l_adr_flex_value_set_id
70112          , x_transaction_coa_id       => l_adr_transaction_coa_id
70113          , x_accounting_coa_id        => l_adr_accounting_coa_id
70114          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
70116          , x_value_type_code          => l_adr_value_type_code
70117          , x_value_combination_id     => l_adr_value_combination_id
70118          , x_value_segment_code       => l_adr_value_segment_code
70119          , p_side                     => 'NA'
70120          , p_override_seg_flag        => 'Y'
70121    );
70122 
70123    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
70124 
70125       xla_ae_lines_pkg.set_segment(
70126           p_to_segment_code         => 'GL_ACCOUNT'
70127         , p_segment_value           => l_segment
70128         , p_from_segment_code       => l_adr_value_segment_code
70129         , p_from_combination_id     => l_adr_value_combination_id
70130         , p_value_type_code         => l_adr_value_type_code
70131         , p_transaction_coa_id      => l_adr_transaction_coa_id
70132         , p_accounting_coa_id       => l_adr_accounting_coa_id
70133         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
70134         , p_flex_value_set_id       => l_adr_flex_value_set_id
70135         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
70136         , p_adr_type_code           => 'S'
70137         , p_component_type          => l_component_type
70138         , p_component_code          => l_component_code
70139         , p_component_type_code     => l_component_type_code
70140         , p_component_appl_id       => l_component_appl_id
70141         , p_amb_context_code        => l_amb_context_code
70142         , p_entity_code             => 'AP_PAYMENTS'
70143         , p_event_class_code        => 'PAYMENTS'
70144         , p_side                    => 'NA'
70145         );
70146 
70147   END IF;
70148 
70149    --
70150    --
70151    END IF;
70152    --
70153    -- Bug 4922099
70154    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
70155           (NVL(l_enc_upg_option, 'N') = 'O')
70156         ) AND
70157         (l_bflow_method_code = 'PRIOR_ENTRY')
70158       )
70159    THEN
70160       IF
70161       --
70162       1 = 2
70163       --
70164       THEN
70165       xla_accounting_err_pkg.build_message
70166                                     (p_appli_s_name            => 'XLA'
70167                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
70168                                     ,p_token_1                 => 'LINE_NUMBER'
70169                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
70170                                     ,p_token_2                 => 'LINE_TYPE_NAME'
70171                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
70172                                                                              l_component_type
70173                                                                             ,l_component_code
70174                                                                             ,l_component_type_code
70175                                                                             ,l_component_appl_id
70176                                                                             ,l_amb_context_code
70177                                                                             ,l_entity_code
70178                                                                             ,l_event_class_code
70179                                                                            )
70180                                     ,p_token_3                 => 'OWNER'
70181                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
70182                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
70183                                                                           ,p_lookup_code    => l_component_type_code
70184                                                                          )
70185                                     ,p_token_4                 => 'PRODUCT_NAME'
70186                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
70187                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
70188                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
70189                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
70190                                     ,p_ae_header_id            =>  NULL
70191                                        );
70192 
70193         IF (C_LEVEL_ERROR>= g_log_level) THEN
70194                  trace
70195                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
70196                       ,p_level    => C_LEVEL_ERROR
70197                       ,p_module   => l_log_module);
70198         END IF;
70199       END IF;
70200    END IF;
70201    --
70202    --
70203    ------------------------------------------------------------------------------------------------
70204    -- 4219869 Business Flow
70205    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
70206    -- Prior Entry.  Currently, the following code is always generated.
70207    ------------------------------------------------------------------------------------------------
70211    -- 4219869 Business Flow
70208    XLA_AE_LINES_PKG.ValidateCurrentLine;
70209 
70210    ------------------------------------------------------------------------------------
70212    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
70213    ------------------------------------------------------------------------------------
70214    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
70215 
70216    ----------------------------------------------------------------------------------
70217    -- 4219869 Business Flow
70218    -- Update journal entry status -- Need to generate this within IF <condition>
70219    ----------------------------------------------------------------------------------
70220    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
70221          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
70222          ,p_balance_type_code => l_balance_type_code
70223          );
70224 
70225    -------------------------------------------------------------------------------------------
70226    -- 4262811 - Generate the Accrual Reversal lines
70227    -------------------------------------------------------------------------------------------
70228    BEGIN
70229       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
70230                               (g_array_event(p_event_id).array_value_num('header_index'));
70231       IF l_acc_rev_flag IS NULL THEN
70232          l_acc_rev_flag := 'N';
70233       END IF;
70234    EXCEPTION
70235       WHEN OTHERS THEN
70236          l_acc_rev_flag := 'N';
70237    END;
70238    --
70239    IF (l_acc_rev_flag = 'Y') THEN
70240 
70241        -- 4645092  ------------------------------------------------------------------------------
70242        -- To allow MPA report to determine if it should generate report process
70243        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
70244        ------------------------------------------------------------------------------------------
70245 
70246        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
70247        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
70248    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
70249    -- call ADRs
70250    -- Bug 4922099
70251    --
70252    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
70253         (NVL(l_actual_upg_option, 'N') = 'O') OR
70254         (NVL(l_enc_upg_option, 'N') = 'O')
70255       )
70256    THEN
70257    NULL;
70258    --
70259    --
70260    
70261   l_ccid := AcctDerRule_38(
70262            p_application_id           => p_application_id
70263          , p_ae_header_id             => l_ae_header_id 
70264 , p_source_15 => p_source_15
70265 , p_source_15_meaning => p_source_15_meaning
70266 , p_source_30 => p_source_30
70267 , p_source_36 => p_source_36
70268 , p_source_37 => p_source_37
70269          , x_transaction_coa_id       => l_adr_transaction_coa_id
70270          , x_accounting_coa_id        => l_adr_accounting_coa_id
70271          , x_value_type_code          => l_adr_value_type_code
70272          , p_side                     => 'NA'
70273    );
70274 
70275    xla_ae_lines_pkg.set_ccid(
70276     p_code_combination_id          => l_ccid
70277   , p_value_type_code              => l_adr_value_type_code
70278   , p_transaction_coa_id           => l_adr_transaction_coa_id
70279   , p_accounting_coa_id            => l_adr_accounting_coa_id
70280   , p_adr_code                     => 'AP_REAL_GAIN'
70281   , p_adr_type_code                => 'S'
70282   , p_component_type               => l_component_type
70283   , p_component_code               => l_component_code
70284   , p_component_type_code          => l_component_type_code
70285   , p_component_appl_id            => l_component_appl_id
70286   , p_amb_context_code             => l_amb_context_code
70287   , p_side                         => 'NA'
70288   );
70289 
70290 
70291    l_segment := AcctDerRule_22(
70292            p_application_id           => p_application_id
70293          , p_ae_header_id             => l_ae_header_id 
70294 , p_source_15 => p_source_15
70295 , p_source_15_meaning => p_source_15_meaning
70296 , p_source_30 => p_source_30
70297          , x_transaction_coa_id       => l_adr_transaction_coa_id
70298          , x_accounting_coa_id        => l_adr_accounting_coa_id
70299          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
70300          , x_flex_value_set_id        => l_adr_flex_value_set_id
70301          , x_value_type_code          => l_adr_value_type_code
70302          , x_value_combination_id     => l_adr_value_combination_id
70303          , x_value_segment_code       => l_adr_value_segment_code
70304          , p_side                     => 'NA'
70305          , p_override_seg_flag        => 'Y'
70306    );
70307 
70308    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
70309 
70310       xla_ae_lines_pkg.set_segment(
70311           p_to_segment_code         => 'GL_BALANCING'
70312         , p_segment_value           => l_segment
70313         , p_from_segment_code       => l_adr_value_segment_code
70314         , p_from_combination_id     => l_adr_value_combination_id
70315         , p_value_type_code         => l_adr_value_type_code
70316         , p_transaction_coa_id      => l_adr_transaction_coa_id
70317         , p_accounting_coa_id       => l_adr_accounting_coa_id
70318         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
70319         , p_flex_value_set_id       => l_adr_flex_value_set_id
70323         , p_component_code          => l_component_code
70320         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
70321         , p_adr_type_code           => 'S'
70322         , p_component_type          => l_component_type
70324         , p_component_type_code     => l_component_type_code
70325         , p_component_appl_id       => l_component_appl_id
70326         , p_amb_context_code        => l_amb_context_code
70327         , p_entity_code             => 'AP_PAYMENTS'
70328         , p_event_class_code        => 'PAYMENTS'
70329         , p_side                    => 'NA'
70330         );
70331 
70332   END IF;
70333 
70334    l_segment := AcctDerRule_17(
70335            p_application_id           => p_application_id
70336          , p_ae_header_id             => l_ae_header_id 
70337 , p_source_15 => p_source_15
70338 , p_source_15_meaning => p_source_15_meaning
70339 , p_source_36 => p_source_36
70340 , p_source_37 => p_source_37
70341          , x_transaction_coa_id       => l_adr_transaction_coa_id
70342          , x_accounting_coa_id        => l_adr_accounting_coa_id
70343          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
70344          , x_flex_value_set_id        => l_adr_flex_value_set_id
70345          , x_value_type_code          => l_adr_value_type_code
70346          , x_value_combination_id     => l_adr_value_combination_id
70347          , x_value_segment_code       => l_adr_value_segment_code
70348          , p_side                     => 'NA'
70349          , p_override_seg_flag        => 'Y'
70350    );
70351 
70352    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
70353 
70354       xla_ae_lines_pkg.set_segment(
70355           p_to_segment_code         => 'GL_ACCOUNT'
70356         , p_segment_value           => l_segment
70357         , p_from_segment_code       => l_adr_value_segment_code
70358         , p_from_combination_id     => l_adr_value_combination_id
70359         , p_value_type_code         => l_adr_value_type_code
70360         , p_transaction_coa_id      => l_adr_transaction_coa_id
70361         , p_accounting_coa_id       => l_adr_accounting_coa_id
70362         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
70363         , p_flex_value_set_id       => l_adr_flex_value_set_id
70364         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
70365         , p_adr_type_code           => 'S'
70366         , p_component_type          => l_component_type
70367         , p_component_code          => l_component_code
70368         , p_component_type_code     => l_component_type_code
70369         , p_component_appl_id       => l_component_appl_id
70370         , p_amb_context_code        => l_amb_context_code
70371         , p_entity_code             => 'AP_PAYMENTS'
70372         , p_event_class_code        => 'PAYMENTS'
70373         , p_side                    => 'NA'
70374         );
70375 
70376   END IF;
70377 
70378    --
70379    --
70380    END IF;
70381 
70382        --
70383        -- Update the line information that should be overwritten
70384        --
70385        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
70386                                          p_header_num   => 1);
70387        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
70388 
70389        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
70390 
70391        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
70392           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
70393        END IF;
70394 
70395       --
70396       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
70397       --
70398       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
70399           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
70400       ELSE
70401           ---------------------------------------------------------------------------------------------------
70402           -- 4262811a Switch Sign
70403           ---------------------------------------------------------------------------------------------------
70404           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
70405           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
70406                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70407           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
70408                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70409           -- 5132302
70410           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
70411                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
70412 
70413       END IF;
70414 
70415       -- 4955764
70416       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
70417       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
70418 
70419 
70420       XLA_AE_LINES_PKG.ValidateCurrentLine;
70421       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
70422 
70423       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
70427    END IF;
70424                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
70425                ,p_balance_type_code => l_balance_type_code);
70426 
70428 
70429    -----------------------------------------------------------------------------------------
70430    -- 4262811 Multiperiod Accounting
70431    -----------------------------------------------------------------------------------------
70432      -- No MPA option is assigned.
70433 
70434 
70435 END IF;
70436 END IF;
70437 --
70438 
70439 --
70440 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70441    trace
70442       (p_msg      => 'END of AcctLineType_131'
70443       ,p_level    => C_LEVEL_PROCEDURE
70444       ,p_module   => l_log_module);
70445 END IF;
70446 --
70447 EXCEPTION
70448   WHEN xla_exceptions_pkg.application_exception THEN
70449       RAISE;
70450   WHEN OTHERS THEN
70451        xla_exceptions_pkg.raise_message
70452            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_131');
70453 END AcctLineType_131;
70454 --
70455 
70456 ---------------------------------------
70457 --
70458 -- PRIVATE FUNCTION
70459 --         AcctLineType_132
70460 --
70461 ---------------------------------------
70462 PROCEDURE AcctLineType_132 (
70463   p_application_id        IN NUMBER
70464  ,p_event_id              IN NUMBER
70465  ,p_calculate_acctd_flag  IN VARCHAR2
70466  ,p_calculate_g_l_flag    IN VARCHAR2
70467  ,p_actual_flag           IN OUT VARCHAR2
70468  ,p_balance_type_code     OUT VARCHAR2
70469  ,p_gain_or_loss_ref      OUT VARCHAR2
70470  
70471 --Payment Currency Code
70472  , p_source_13            IN VARCHAR2
70473 --Automatic Offsets Value
70474  , p_source_15            IN VARCHAR2
70475  , p_source_15_meaning    IN VARCHAR2
70476 --Invoice Distribution Account
70477  , p_source_30            IN NUMBER
70478 --Internal Realized Gain Account
70479  , p_source_36            IN NUMBER
70480 --Bank Gain Account
70481  , p_source_37            IN NUMBER
70482 --Accounting Reversal Indicator
70483  , p_source_53            IN VARCHAR2
70484 --Distribution Link Type
70485  , p_source_55            IN VARCHAR2
70486 --Override Accounted Amount Indicator
70487  , p_source_80            IN VARCHAR2
70488  , p_source_80_meaning    IN VARCHAR2
70489 --Third Party Type
70490  , p_source_83            IN VARCHAR2
70491 --Invoice Distribution Tax Line Identifier
70492  , p_source_86            IN NUMBER
70493 --Invoice Distribution Summary Tax Line Identifier
70494  , p_source_88            IN NUMBER
70495 --Business Flow Accounts Payable Application Identifier
70496  , p_source_91            IN NUMBER
70497 --When to Account for Payment Option
70498  , p_source_97            IN VARCHAR2
70499 --Payment Distribution Type
70500  , p_source_98            IN VARCHAR2
70501  , p_source_98_meaning    IN VARCHAR2
70502 --Payment Distribution Amount
70503  , p_source_99            IN NUMBER
70504 --Business Flow Payment Distribution Type
70505  , p_source_100            IN VARCHAR2
70506 --Business Flow Payment Entity Code
70507  , p_source_101            IN VARCHAR2
70508 --Business Flow Payment Distribution Identifier
70509  , p_source_102            IN NUMBER
70510 --Business Flow Payment Identifier
70511  , p_source_103            IN NUMBER
70512 --Payment Distribution Identifier
70513  , p_source_104            IN NUMBER
70514 --Cleared Exchange Date
70515  , p_source_106            IN DATE
70516 --Cleared Exchange Rate
70517  , p_source_107            IN NUMBER
70518 --Cleared Exchange Rate Type
70519  , p_source_108            IN VARCHAR2
70520 --Payment Supplier Identifier
70521  , p_source_110            IN NUMBER
70522 --Payment Supplier Site Identifier
70523  , p_source_111            IN NUMBER
70524 --Payment Distribution Reversed Identifier
70525  , p_source_112            IN NUMBER
70526 --Payment Maturity Date
70527  , p_source_114            IN DATE
70528 --Gain or Loss Indicator between Payment and Clearing
70529  , p_source_159            IN VARCHAR2
70530 --Payment/Clearing Ledger Amount Difference
70531  , p_source_160            IN NUMBER
70532 )
70533 IS
70534 
70535 l_component_type              VARCHAR2(80);
70536 l_component_code              VARCHAR2(30);
70537 l_component_type_code         VARCHAR2(1);
70538 l_component_appl_id           INTEGER;
70539 l_amb_context_code            VARCHAR2(30);
70540 l_entity_code                 VARCHAR2(30);
70541 l_event_class_code            VARCHAR2(30);
70542 l_ae_header_id                NUMBER;
70543 l_event_type_code             VARCHAR2(30);
70544 l_line_definition_code        VARCHAR2(30);
70545 l_line_definition_owner_code  VARCHAR2(1);
70546 --
70547 -- adr variables
70548 l_segment                     VARCHAR2(30);
70549 l_ccid                        NUMBER;
70550 l_adr_transaction_coa_id      NUMBER;
70551 l_adr_accounting_coa_id       NUMBER;
70552 l_adr_flexfield_segment_code  VARCHAR2(30);
70553 l_adr_flex_value_set_id       NUMBER;
70554 l_adr_value_type_code         VARCHAR2(30);
70555 l_adr_value_combination_id    NUMBER;
70556 l_adr_value_segment_code      VARCHAR2(30);
70557 
70558 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
70559 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
70563 -- 4262811 Variables ------------------------------------------------------------------------------------------
70560 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
70561 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
70562 
70564 l_entered_amt_idx             NUMBER;
70565 l_accted_amt_idx              NUMBER;
70566 l_acc_rev_flag                VARCHAR2(1);
70567 l_accrual_line_num            NUMBER;
70568 l_tmp_amt                     NUMBER;
70569 l_acc_rev_natural_side_code   VARCHAR2(1);
70570 
70571 l_num_entries                 NUMBER;
70572 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
70573 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
70574 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
70575 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
70576 l_recog_line_1                NUMBER;
70577 l_recog_line_2                NUMBER;
70578 
70579 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
70580 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
70581 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
70582 
70583 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
70584 
70585 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
70586 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
70587 
70588 ---------------------------------------------------------------------------------------------------------------
70589 
70590 
70591 --
70592 -- bulk performance
70593 --
70594 l_balance_type_code           VARCHAR2(1);
70595 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
70596 l_log_module                  VARCHAR2(240);
70597 
70598 --
70599 -- Upgrade strategy
70600 --
70601 l_actual_upg_option           VARCHAR2(1);
70602 l_enc_upg_option           VARCHAR2(1);
70603 
70604 --
70605 BEGIN
70606 --
70607 IF g_log_enabled THEN
70608       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_132';
70609 END IF;
70610 --
70611 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70612 
70613       trace
70614          (p_msg      => 'BEGIN of AcctLineType_132'
70615          ,p_level    => C_LEVEL_PROCEDURE
70616          ,p_module   => l_log_module);
70617 
70618 END IF;
70619 --
70620 l_component_type             := 'AMB_JLT';
70621 l_component_code             := 'AP_GAIN_PMT_CLEAR';
70622 l_component_type_code        := 'S';
70623 l_component_appl_id          :=  200;
70624 l_amb_context_code           := 'DEFAULT';
70625 l_entity_code                := 'AP_PAYMENTS';
70626 l_event_class_code           := 'RECONCILED PAYMENTS';
70627 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
70628 l_line_definition_owner_code := 'S';
70629 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
70630 --
70631 l_balance_type_code          := 'A';
70632 l_segment                     := NULL;
70633 l_ccid                        := NULL;
70634 l_adr_transaction_coa_id      := NULL;
70635 l_adr_accounting_coa_id       := NULL;
70636 l_adr_flexfield_segment_code  := NULL;
70637 l_adr_flex_value_set_id       := NULL;
70638 l_adr_value_type_code         := NULL;
70639 l_adr_value_combination_id    := NULL;
70640 l_adr_value_segment_code      := NULL;
70641 
70642 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
70643 l_bflow_class_code           := '';    -- 4219869 Business Flow
70644 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
70645 l_budgetary_control_flag     := 'N';
70646 
70647 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
70648 l_bflow_applied_to_amt       := NULL; -- 5132302
70649 l_entered_amt_idx            := NULL;          -- 4262811
70650 l_accted_amt_idx             := NULL;          -- 4262811
70651 l_acc_rev_flag               := NULL;          -- 4262811
70652 l_accrual_line_num           := NULL;          -- 4262811
70653 l_tmp_amt                    := NULL;          -- 4262811
70654 --
70655 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
70656             (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
70657                return;
70658   END IF;
70659   
70660 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
70661     l_balance_type_code <> 'B' THEN
70662 IF NVL(p_source_97,'
70663 ') =  'ALWAYS_ALWAYS' AND 
70664 p_source_114 IS NULL AND 
70665 NVL(p_source_159,'
70666 ') =  'GAIN' AND 
70667 NVL(p_source_98,'
70668 ') <>  'EXCHANGE RATE VARIANCE' AND 
70669 NVL(p_source_98,'
70670 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
70671 NVL(p_source_98,'
70672 ') <>  'BANK CHARGE' AND 
70673 NVL(p_source_98,'
70674 ') <>  'BANK ERROR' AND 
70675 NVL(p_source_98,'
70676 ') <>  'AWT'
70677  THEN 
70678 
70679    --
70680    XLA_AE_LINES_PKG.SetNewLine;
70681 
70682    p_balance_type_code          := l_balance_type_code;
70683    -- set the flag so later we will know whether the gain loss line needs to be created
70684    
70685    IF(l_balance_type_code = 'A' ) THEN
70686      p_actual_flag :='G';
70687    END IF;
70688 
70689    --
70690    -- bulk performance
70691    --
70695    -- set accounting line options
70692    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
70693                                       p_header_num   => 0); -- 4262811
70694    --
70696    --
70697    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
70698            p_natural_side_code          => 'C'
70699          , p_gain_or_loss_flag          => 'Y'
70700          , p_gl_transfer_mode_code      => 'S'
70701          , p_acct_entry_type_code       => 'A'
70702          , p_switch_side_flag           => 'Y'
70703          , p_merge_duplicate_code       => 'A'
70704          );
70705    --
70706    l_acc_rev_natural_side_code := 'D';  -- 4262811
70707    -- 
70708    --
70709    -- set accounting line type info
70710    --
70711    xla_ae_lines_pkg.SetAcctLineType
70712       (p_component_type             => l_component_type
70713       ,p_event_type_code            => l_event_type_code
70714       ,p_line_definition_owner_code => l_line_definition_owner_code
70715       ,p_line_definition_code       => l_line_definition_code
70716       ,p_accounting_line_code       => l_component_code
70717       ,p_accounting_line_type_code  => l_component_type_code
70718       ,p_accounting_line_appl_id    => l_component_appl_id
70719       ,p_amb_context_code           => l_amb_context_code
70720       ,p_entity_code                => l_entity_code
70721       ,p_event_class_code           => l_event_class_code);
70722    --
70723    -- set accounting class
70724    --
70725    xla_ae_lines_pkg.SetAcctClass(
70726            p_accounting_class_code  => 'GAIN'
70727          , p_ae_header_id           => l_ae_header_id
70728          );
70729 
70730    --
70731    -- set rounding class
70732    --
70733    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
70734                       'GAIN';
70735 
70736    --
70737    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
70738    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
70739    --
70740    -- bulk performance
70741    --
70742    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
70743 
70744    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
70745       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
70746 
70747    -- 4955764
70748    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
70749       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
70750 
70751    -- 4458381 Public Sector Enh
70752    
70753    --
70754    -- set accounting attributes for the line type
70755    --
70756    l_entered_amt_idx := 10;
70757    l_accted_amt_idx  := 15;
70758    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
70759    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
70760    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
70761    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
70762    l_rec_acct_attrs.array_num_value(2)  := p_source_99;
70763    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
70764    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
70765    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
70766    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
70767    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
70768    l_rec_acct_attrs.array_char_value(5)  := p_source_101;
70769    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
70770    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
70771    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
70772    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
70773    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
70774    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
70775    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
70776    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
70777    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
70778    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
70779    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
70780    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
70781    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
70782    l_rec_acct_attrs.array_date_value(12)  := p_source_106;
70783    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
70784    l_rec_acct_attrs.array_num_value(13)  := p_source_107;
70785    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
70786    l_rec_acct_attrs.array_char_value(14)  := p_source_108;
70787    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
70788    l_rec_acct_attrs.array_num_value(15)  := p_source_160;
70789    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
70790    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
70791    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
70792    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
70793    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
70794    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
70795    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
70796    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
70797    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
70801    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
70798    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
70799    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
70800    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
70802    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
70803    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
70804    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
70805    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
70806    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
70807 
70808    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
70809    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
70810 
70811    ---------------------------------------------------------------------------------------------------------------
70812    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
70813    ---------------------------------------------------------------------------------------------------------------
70814    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
70815 
70816    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
70817    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
70818 
70819    IF xla_accounting_cache_pkg.GetValueChar
70820          (p_source_code         => 'LEDGER_CATEGORY_CODE'
70821          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
70822    AND l_bflow_method_code = 'PRIOR_ENTRY'
70823 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
70824    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
70825          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
70826        )
70827    THEN
70828          xla_ae_lines_pkg.BflowUpgEntry
70829            (p_business_method_code    => l_bflow_method_code
70830            ,p_business_class_code     => l_bflow_class_code
70831            ,p_balance_type            => l_balance_type_code);
70832    ELSE
70833       NULL;
70834 -- No business flow processing for business flow method of NONE.
70835    END IF;
70836 
70837    --
70838    -- call analytical criteria
70839    --
70840    
70841    --
70842    -- call description
70843    --
70844    -- No description or it is inherited.
70845    --
70846    -- call ADRs
70847    -- Bug 4922099
70848    --
70849    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
70850         (NVL(l_actual_upg_option, 'N') = 'O') OR
70851         (NVL(l_enc_upg_option, 'N') = 'O')
70852       )
70853    THEN
70854    NULL;
70855    --
70856    --
70857    
70858   l_ccid := AcctDerRule_38(
70859            p_application_id           => p_application_id
70860          , p_ae_header_id             => l_ae_header_id 
70861 , p_source_15 => p_source_15
70862 , p_source_15_meaning => p_source_15_meaning
70863 , p_source_30 => p_source_30
70864 , p_source_36 => p_source_36
70865 , p_source_37 => p_source_37
70866          , x_transaction_coa_id       => l_adr_transaction_coa_id
70867          , x_accounting_coa_id        => l_adr_accounting_coa_id
70868          , x_value_type_code          => l_adr_value_type_code
70869          , p_side                     => 'NA'
70870    );
70871 
70872    xla_ae_lines_pkg.set_ccid(
70873     p_code_combination_id          => l_ccid
70874   , p_value_type_code              => l_adr_value_type_code
70875   , p_transaction_coa_id           => l_adr_transaction_coa_id
70876   , p_accounting_coa_id            => l_adr_accounting_coa_id
70877   , p_adr_code                     => 'AP_REAL_GAIN'
70878   , p_adr_type_code                => 'S'
70879   , p_component_type               => l_component_type
70880   , p_component_code               => l_component_code
70881   , p_component_type_code          => l_component_type_code
70882   , p_component_appl_id            => l_component_appl_id
70883   , p_amb_context_code             => l_amb_context_code
70884   , p_side                         => 'NA'
70885   );
70886 
70887 
70888    l_segment := AcctDerRule_22(
70889            p_application_id           => p_application_id
70890          , p_ae_header_id             => l_ae_header_id 
70891 , p_source_15 => p_source_15
70892 , p_source_15_meaning => p_source_15_meaning
70893 , p_source_30 => p_source_30
70894          , x_transaction_coa_id       => l_adr_transaction_coa_id
70895          , x_accounting_coa_id        => l_adr_accounting_coa_id
70896          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
70897          , x_flex_value_set_id        => l_adr_flex_value_set_id
70898          , x_value_type_code          => l_adr_value_type_code
70899          , x_value_combination_id     => l_adr_value_combination_id
70900          , x_value_segment_code       => l_adr_value_segment_code
70901          , p_side                     => 'NA'
70902          , p_override_seg_flag        => 'Y'
70903    );
70904 
70905    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
70906 
70907       xla_ae_lines_pkg.set_segment(
70908           p_to_segment_code         => 'GL_BALANCING'
70909         , p_segment_value           => l_segment
70910         , p_from_segment_code       => l_adr_value_segment_code
70914         , p_accounting_coa_id       => l_adr_accounting_coa_id
70911         , p_from_combination_id     => l_adr_value_combination_id
70912         , p_value_type_code         => l_adr_value_type_code
70913         , p_transaction_coa_id      => l_adr_transaction_coa_id
70915         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
70916         , p_flex_value_set_id       => l_adr_flex_value_set_id
70917         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
70918         , p_adr_type_code           => 'S'
70919         , p_component_type          => l_component_type
70920         , p_component_code          => l_component_code
70921         , p_component_type_code     => l_component_type_code
70922         , p_component_appl_id       => l_component_appl_id
70923         , p_amb_context_code        => l_amb_context_code
70924         , p_entity_code             => 'AP_PAYMENTS'
70925         , p_event_class_code        => 'RECONCILED PAYMENTS'
70926         , p_side                    => 'NA'
70927         );
70928 
70929   END IF;
70930 
70931    l_segment := AcctDerRule_17(
70932            p_application_id           => p_application_id
70933          , p_ae_header_id             => l_ae_header_id 
70934 , p_source_15 => p_source_15
70935 , p_source_15_meaning => p_source_15_meaning
70936 , p_source_36 => p_source_36
70937 , p_source_37 => p_source_37
70938          , x_transaction_coa_id       => l_adr_transaction_coa_id
70939          , x_accounting_coa_id        => l_adr_accounting_coa_id
70940          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
70941          , x_flex_value_set_id        => l_adr_flex_value_set_id
70942          , x_value_type_code          => l_adr_value_type_code
70943          , x_value_combination_id     => l_adr_value_combination_id
70944          , x_value_segment_code       => l_adr_value_segment_code
70945          , p_side                     => 'NA'
70946          , p_override_seg_flag        => 'Y'
70947    );
70948 
70949    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
70950 
70951       xla_ae_lines_pkg.set_segment(
70952           p_to_segment_code         => 'GL_ACCOUNT'
70953         , p_segment_value           => l_segment
70954         , p_from_segment_code       => l_adr_value_segment_code
70955         , p_from_combination_id     => l_adr_value_combination_id
70956         , p_value_type_code         => l_adr_value_type_code
70957         , p_transaction_coa_id      => l_adr_transaction_coa_id
70958         , p_accounting_coa_id       => l_adr_accounting_coa_id
70959         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
70960         , p_flex_value_set_id       => l_adr_flex_value_set_id
70961         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
70962         , p_adr_type_code           => 'S'
70963         , p_component_type          => l_component_type
70964         , p_component_code          => l_component_code
70965         , p_component_type_code     => l_component_type_code
70966         , p_component_appl_id       => l_component_appl_id
70967         , p_amb_context_code        => l_amb_context_code
70968         , p_entity_code             => 'AP_PAYMENTS'
70969         , p_event_class_code        => 'RECONCILED PAYMENTS'
70970         , p_side                    => 'NA'
70971         );
70972 
70973   END IF;
70974 
70975    --
70976    --
70977    END IF;
70978    --
70979    -- Bug 4922099
70980    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
70981           (NVL(l_enc_upg_option, 'N') = 'O')
70982         ) AND
70983         (l_bflow_method_code = 'PRIOR_ENTRY')
70984       )
70985    THEN
70986       IF
70987       --
70988       1 = 2
70989       --
70990       THEN
70991       xla_accounting_err_pkg.build_message
70992                                     (p_appli_s_name            => 'XLA'
70993                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
70994                                     ,p_token_1                 => 'LINE_NUMBER'
70995                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
70996                                     ,p_token_2                 => 'LINE_TYPE_NAME'
70997                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
70998                                                                              l_component_type
70999                                                                             ,l_component_code
71000                                                                             ,l_component_type_code
71001                                                                             ,l_component_appl_id
71002                                                                             ,l_amb_context_code
71003                                                                             ,l_entity_code
71004                                                                             ,l_event_class_code
71005                                                                            )
71006                                     ,p_token_3                 => 'OWNER'
71007                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
71008                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
71009                                                                           ,p_lookup_code    => l_component_type_code
71010                                                                          )
71014                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
71011                                     ,p_token_4                 => 'PRODUCT_NAME'
71012                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
71013                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
71015                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
71016                                     ,p_ae_header_id            =>  NULL
71017                                        );
71018 
71019         IF (C_LEVEL_ERROR>= g_log_level) THEN
71020                  trace
71021                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
71022                       ,p_level    => C_LEVEL_ERROR
71023                       ,p_module   => l_log_module);
71024         END IF;
71025       END IF;
71026    END IF;
71027    --
71028    --
71029    ------------------------------------------------------------------------------------------------
71030    -- 4219869 Business Flow
71031    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
71032    -- Prior Entry.  Currently, the following code is always generated.
71033    ------------------------------------------------------------------------------------------------
71034    XLA_AE_LINES_PKG.ValidateCurrentLine;
71035 
71036    ------------------------------------------------------------------------------------
71037    -- 4219869 Business Flow
71038    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
71039    ------------------------------------------------------------------------------------
71040    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
71041 
71042    ----------------------------------------------------------------------------------
71043    -- 4219869 Business Flow
71044    -- Update journal entry status -- Need to generate this within IF <condition>
71045    ----------------------------------------------------------------------------------
71046    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
71047          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
71048          ,p_balance_type_code => l_balance_type_code
71049          );
71050 
71051    -------------------------------------------------------------------------------------------
71052    -- 4262811 - Generate the Accrual Reversal lines
71053    -------------------------------------------------------------------------------------------
71054    BEGIN
71055       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
71056                               (g_array_event(p_event_id).array_value_num('header_index'));
71057       IF l_acc_rev_flag IS NULL THEN
71058          l_acc_rev_flag := 'N';
71059       END IF;
71060    EXCEPTION
71061       WHEN OTHERS THEN
71062          l_acc_rev_flag := 'N';
71063    END;
71064    --
71065    IF (l_acc_rev_flag = 'Y') THEN
71066 
71067        -- 4645092  ------------------------------------------------------------------------------
71068        -- To allow MPA report to determine if it should generate report process
71069        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
71070        ------------------------------------------------------------------------------------------
71071 
71072        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
71073        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
71074    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
71075    -- call ADRs
71076    -- Bug 4922099
71077    --
71078    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
71079         (NVL(l_actual_upg_option, 'N') = 'O') OR
71080         (NVL(l_enc_upg_option, 'N') = 'O')
71081       )
71082    THEN
71083    NULL;
71084    --
71085    --
71086    
71087   l_ccid := AcctDerRule_38(
71088            p_application_id           => p_application_id
71089          , p_ae_header_id             => l_ae_header_id 
71090 , p_source_15 => p_source_15
71091 , p_source_15_meaning => p_source_15_meaning
71092 , p_source_30 => p_source_30
71093 , p_source_36 => p_source_36
71094 , p_source_37 => p_source_37
71095          , x_transaction_coa_id       => l_adr_transaction_coa_id
71096          , x_accounting_coa_id        => l_adr_accounting_coa_id
71097          , x_value_type_code          => l_adr_value_type_code
71098          , p_side                     => 'NA'
71099    );
71100 
71101    xla_ae_lines_pkg.set_ccid(
71102     p_code_combination_id          => l_ccid
71103   , p_value_type_code              => l_adr_value_type_code
71104   , p_transaction_coa_id           => l_adr_transaction_coa_id
71105   , p_accounting_coa_id            => l_adr_accounting_coa_id
71106   , p_adr_code                     => 'AP_REAL_GAIN'
71107   , p_adr_type_code                => 'S'
71108   , p_component_type               => l_component_type
71109   , p_component_code               => l_component_code
71110   , p_component_type_code          => l_component_type_code
71111   , p_component_appl_id            => l_component_appl_id
71112   , p_amb_context_code             => l_amb_context_code
71113   , p_side                         => 'NA'
71114   );
71115 
71116 
71117    l_segment := AcctDerRule_22(
71118            p_application_id           => p_application_id
71119          , p_ae_header_id             => l_ae_header_id 
71123          , x_transaction_coa_id       => l_adr_transaction_coa_id
71120 , p_source_15 => p_source_15
71121 , p_source_15_meaning => p_source_15_meaning
71122 , p_source_30 => p_source_30
71124          , x_accounting_coa_id        => l_adr_accounting_coa_id
71125          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
71126          , x_flex_value_set_id        => l_adr_flex_value_set_id
71127          , x_value_type_code          => l_adr_value_type_code
71128          , x_value_combination_id     => l_adr_value_combination_id
71129          , x_value_segment_code       => l_adr_value_segment_code
71130          , p_side                     => 'NA'
71131          , p_override_seg_flag        => 'Y'
71132    );
71133 
71134    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
71135 
71136       xla_ae_lines_pkg.set_segment(
71137           p_to_segment_code         => 'GL_BALANCING'
71138         , p_segment_value           => l_segment
71139         , p_from_segment_code       => l_adr_value_segment_code
71140         , p_from_combination_id     => l_adr_value_combination_id
71141         , p_value_type_code         => l_adr_value_type_code
71142         , p_transaction_coa_id      => l_adr_transaction_coa_id
71143         , p_accounting_coa_id       => l_adr_accounting_coa_id
71144         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
71145         , p_flex_value_set_id       => l_adr_flex_value_set_id
71146         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
71147         , p_adr_type_code           => 'S'
71148         , p_component_type          => l_component_type
71149         , p_component_code          => l_component_code
71150         , p_component_type_code     => l_component_type_code
71151         , p_component_appl_id       => l_component_appl_id
71152         , p_amb_context_code        => l_amb_context_code
71153         , p_entity_code             => 'AP_PAYMENTS'
71154         , p_event_class_code        => 'RECONCILED PAYMENTS'
71155         , p_side                    => 'NA'
71156         );
71157 
71158   END IF;
71159 
71160    l_segment := AcctDerRule_17(
71161            p_application_id           => p_application_id
71162          , p_ae_header_id             => l_ae_header_id 
71163 , p_source_15 => p_source_15
71164 , p_source_15_meaning => p_source_15_meaning
71165 , p_source_36 => p_source_36
71166 , p_source_37 => p_source_37
71167          , x_transaction_coa_id       => l_adr_transaction_coa_id
71168          , x_accounting_coa_id        => l_adr_accounting_coa_id
71169          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
71170          , x_flex_value_set_id        => l_adr_flex_value_set_id
71171          , x_value_type_code          => l_adr_value_type_code
71172          , x_value_combination_id     => l_adr_value_combination_id
71173          , x_value_segment_code       => l_adr_value_segment_code
71174          , p_side                     => 'NA'
71175          , p_override_seg_flag        => 'Y'
71176    );
71177 
71178    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
71179 
71180       xla_ae_lines_pkg.set_segment(
71181           p_to_segment_code         => 'GL_ACCOUNT'
71182         , p_segment_value           => l_segment
71183         , p_from_segment_code       => l_adr_value_segment_code
71184         , p_from_combination_id     => l_adr_value_combination_id
71185         , p_value_type_code         => l_adr_value_type_code
71186         , p_transaction_coa_id      => l_adr_transaction_coa_id
71187         , p_accounting_coa_id       => l_adr_accounting_coa_id
71188         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
71189         , p_flex_value_set_id       => l_adr_flex_value_set_id
71190         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
71191         , p_adr_type_code           => 'S'
71192         , p_component_type          => l_component_type
71193         , p_component_code          => l_component_code
71194         , p_component_type_code     => l_component_type_code
71195         , p_component_appl_id       => l_component_appl_id
71196         , p_amb_context_code        => l_amb_context_code
71197         , p_entity_code             => 'AP_PAYMENTS'
71198         , p_event_class_code        => 'RECONCILED PAYMENTS'
71199         , p_side                    => 'NA'
71200         );
71201 
71202   END IF;
71203 
71204    --
71205    --
71206    END IF;
71207 
71208        --
71209        -- Update the line information that should be overwritten
71210        --
71211        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
71212                                          p_header_num   => 1);
71213        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
71214 
71215        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
71216 
71217        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
71218           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
71219        END IF;
71220 
71221       --
71222       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
71223       --
71224       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
71225           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
71226       ELSE
71227           ---------------------------------------------------------------------------------------------------
71228           -- 4262811a Switch Sign
71232                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71229           ---------------------------------------------------------------------------------------------------
71230           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
71231           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
71233           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
71234                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71235           -- 5132302
71236           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
71237                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
71238 
71239       END IF;
71240 
71241       -- 4955764
71242       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
71243       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
71244 
71245 
71246       XLA_AE_LINES_PKG.ValidateCurrentLine;
71247       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
71248 
71249       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
71250                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
71251                ,p_balance_type_code => l_balance_type_code);
71252 
71253    END IF;
71254 
71255    -----------------------------------------------------------------------------------------
71256    -- 4262811 Multiperiod Accounting
71257    -----------------------------------------------------------------------------------------
71258      -- No MPA option is assigned.
71259 
71260 
71261 END IF;
71262 END IF;
71263 --
71264 
71265 --
71266 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71267    trace
71268       (p_msg      => 'END of AcctLineType_132'
71269       ,p_level    => C_LEVEL_PROCEDURE
71270       ,p_module   => l_log_module);
71271 END IF;
71272 --
71273 EXCEPTION
71274   WHEN xla_exceptions_pkg.application_exception THEN
71275       RAISE;
71276   WHEN OTHERS THEN
71277        xla_exceptions_pkg.raise_message
71278            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_132');
71279 END AcctLineType_132;
71280 --
71281 
71282 ---------------------------------------
71283 --
71284 -- PRIVATE FUNCTION
71285 --         AcctLineType_133
71286 --
71287 ---------------------------------------
71288 PROCEDURE AcctLineType_133 (
71289   p_application_id        IN NUMBER
71290  ,p_event_id              IN NUMBER
71291  ,p_calculate_acctd_flag  IN VARCHAR2
71292  ,p_calculate_g_l_flag    IN VARCHAR2
71293  ,p_actual_flag           IN OUT VARCHAR2
71294  ,p_balance_type_code     OUT VARCHAR2
71295  ,p_gain_or_loss_ref      OUT VARCHAR2
71296  
71297 --Payment Currency Code
71298  , p_source_13            IN VARCHAR2
71299 --Automatic Offsets Value
71300  , p_source_15            IN VARCHAR2
71301  , p_source_15_meaning    IN VARCHAR2
71302 --Invoice Distribution Account
71303  , p_source_30            IN NUMBER
71304 --Internal Realized Gain Account
71305  , p_source_36            IN NUMBER
71306 --Bank Gain Account
71307  , p_source_37            IN NUMBER
71308 --Accounting Reversal Indicator
71309  , p_source_53            IN VARCHAR2
71310 --Distribution Link Type
71311  , p_source_55            IN VARCHAR2
71312 --Override Accounted Amount Indicator
71313  , p_source_80            IN VARCHAR2
71314  , p_source_80_meaning    IN VARCHAR2
71315 --Third Party Type
71316  , p_source_83            IN VARCHAR2
71317 --Business Flow Accounts Payable Application Identifier
71318  , p_source_91            IN NUMBER
71319 --When to Account for Payment Option
71320  , p_source_97            IN VARCHAR2
71321 --Payment Distribution Type
71322  , p_source_98            IN VARCHAR2
71323  , p_source_98_meaning    IN VARCHAR2
71324 --Payment Distribution Amount
71325  , p_source_99            IN NUMBER
71326 --Business Flow Payment Distribution Type
71327  , p_source_100            IN VARCHAR2
71328 --Business Flow Payment Entity Code
71329  , p_source_101            IN VARCHAR2
71330 --Business Flow Payment Distribution Identifier
71331  , p_source_102            IN NUMBER
71332 --Business Flow Payment Identifier
71333  , p_source_103            IN NUMBER
71334 --Payment Distribution Identifier
71335  , p_source_104            IN NUMBER
71336 --Payment Supplier Identifier
71337  , p_source_110            IN NUMBER
71338 --Payment Supplier Site Identifier
71339  , p_source_111            IN NUMBER
71340 --Payment Distribution Reversed Identifier
71341  , p_source_112            IN NUMBER
71342 --Payment Maturity Date
71343  , p_source_114            IN DATE
71344 --Payment Exchange Date
71345  , p_source_117            IN DATE
71346 --Payment Exchange Rate
71347  , p_source_118            IN NUMBER
71348 --Payment Exchange Rate Type
71349  , p_source_119            IN VARCHAR2
71350 --Payment/Maturity Ledger Amount Difference
71351  , p_source_154            IN NUMBER
71352 --Gain or Loss Indicator between Payment and Maturity
71353  , p_source_161            IN VARCHAR2
71354 )
71355 IS
71356 
71357 l_component_type              VARCHAR2(80);
71358 l_component_code              VARCHAR2(30);
71359 l_component_type_code         VARCHAR2(1);
71360 l_component_appl_id           INTEGER;
71364 l_ae_header_id                NUMBER;
71361 l_amb_context_code            VARCHAR2(30);
71362 l_entity_code                 VARCHAR2(30);
71363 l_event_class_code            VARCHAR2(30);
71365 l_event_type_code             VARCHAR2(30);
71366 l_line_definition_code        VARCHAR2(30);
71367 l_line_definition_owner_code  VARCHAR2(1);
71368 --
71369 -- adr variables
71370 l_segment                     VARCHAR2(30);
71371 l_ccid                        NUMBER;
71372 l_adr_transaction_coa_id      NUMBER;
71373 l_adr_accounting_coa_id       NUMBER;
71374 l_adr_flexfield_segment_code  VARCHAR2(30);
71375 l_adr_flex_value_set_id       NUMBER;
71376 l_adr_value_type_code         VARCHAR2(30);
71377 l_adr_value_combination_id    NUMBER;
71378 l_adr_value_segment_code      VARCHAR2(30);
71379 
71380 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
71381 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
71382 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
71383 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
71384 
71385 -- 4262811 Variables ------------------------------------------------------------------------------------------
71386 l_entered_amt_idx             NUMBER;
71387 l_accted_amt_idx              NUMBER;
71388 l_acc_rev_flag                VARCHAR2(1);
71389 l_accrual_line_num            NUMBER;
71390 l_tmp_amt                     NUMBER;
71391 l_acc_rev_natural_side_code   VARCHAR2(1);
71392 
71393 l_num_entries                 NUMBER;
71394 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
71395 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
71396 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
71397 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
71398 l_recog_line_1                NUMBER;
71399 l_recog_line_2                NUMBER;
71400 
71401 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
71402 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
71403 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
71404 
71405 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
71406 
71407 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
71408 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
71409 
71410 ---------------------------------------------------------------------------------------------------------------
71411 
71412 
71413 --
71414 -- bulk performance
71415 --
71416 l_balance_type_code           VARCHAR2(1);
71417 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
71418 l_log_module                  VARCHAR2(240);
71419 
71420 --
71421 -- Upgrade strategy
71422 --
71423 l_actual_upg_option           VARCHAR2(1);
71424 l_enc_upg_option           VARCHAR2(1);
71425 
71426 --
71427 BEGIN
71428 --
71429 IF g_log_enabled THEN
71430       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_133';
71431 END IF;
71432 --
71433 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71434 
71435       trace
71436          (p_msg      => 'BEGIN of AcctLineType_133'
71437          ,p_level    => C_LEVEL_PROCEDURE
71438          ,p_module   => l_log_module);
71439 
71440 END IF;
71441 --
71442 l_component_type             := 'AMB_JLT';
71443 l_component_code             := 'AP_GAIN_PMT_MAT';
71444 l_component_type_code        := 'S';
71445 l_component_appl_id          :=  200;
71446 l_amb_context_code           := 'DEFAULT';
71447 l_entity_code                := 'AP_PAYMENTS';
71448 l_event_class_code           := 'FUTURE DATED PAYMENTS';
71449 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
71450 l_line_definition_owner_code := 'S';
71451 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
71452 --
71453 l_balance_type_code          := 'A';
71454 l_segment                     := NULL;
71455 l_ccid                        := NULL;
71456 l_adr_transaction_coa_id      := NULL;
71457 l_adr_accounting_coa_id       := NULL;
71458 l_adr_flexfield_segment_code  := NULL;
71459 l_adr_flex_value_set_id       := NULL;
71460 l_adr_value_type_code         := NULL;
71461 l_adr_value_combination_id    := NULL;
71462 l_adr_value_segment_code      := NULL;
71463 
71464 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
71465 l_bflow_class_code           := '';    -- 4219869 Business Flow
71466 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
71467 l_budgetary_control_flag     := 'N';
71468 
71469 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
71470 l_bflow_applied_to_amt       := NULL; -- 5132302
71471 l_entered_amt_idx            := NULL;          -- 4262811
71472 l_accted_amt_idx             := NULL;          -- 4262811
71473 l_acc_rev_flag               := NULL;          -- 4262811
71474 l_accrual_line_num           := NULL;          -- 4262811
71475 l_tmp_amt                    := NULL;          -- 4262811
71476 --
71477 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
71478             (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
71479                return;
71480   END IF;
71481   
71485 ') =  'ALWAYS_ALWAYS' OR 
71482 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
71483     l_balance_type_code <> 'B' THEN
71484 IF (NVL(p_source_97,'
71486 NVL(p_source_97,'
71487 ') =  'ISSUE_ISSUE') AND 
71488 p_source_114 IS NOT NULL AND 
71489 NVL(p_source_161,'
71490 ') =  'GAIN' AND 
71491 NVL(p_source_98,'
71492 ') <>  'EXCHANGE RATE VARIANCE' AND 
71493 NVL(p_source_98,'
71494 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
71495 NVL(p_source_98,'
71496 ') <>  'BANK CHARGE' AND 
71497 NVL(p_source_98,'
71498 ') <>  'BANK ERROR' AND 
71499 NVL(p_source_98,'
71500 ') <>  'AWT'
71501  THEN 
71502 
71503    --
71504    XLA_AE_LINES_PKG.SetNewLine;
71505 
71506    p_balance_type_code          := l_balance_type_code;
71507    -- set the flag so later we will know whether the gain loss line needs to be created
71508    
71509    IF(l_balance_type_code = 'A' ) THEN
71510      p_actual_flag :='G';
71511    END IF;
71512 
71513    --
71514    -- bulk performance
71515    --
71516    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
71517                                       p_header_num   => 0); -- 4262811
71518    --
71519    -- set accounting line options
71520    --
71521    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
71522            p_natural_side_code          => 'C'
71523          , p_gain_or_loss_flag          => 'Y'
71524          , p_gl_transfer_mode_code      => 'S'
71525          , p_acct_entry_type_code       => 'A'
71526          , p_switch_side_flag           => 'Y'
71527          , p_merge_duplicate_code       => 'A'
71528          );
71529    --
71530    l_acc_rev_natural_side_code := 'D';  -- 4262811
71531    -- 
71532    --
71533    -- set accounting line type info
71534    --
71535    xla_ae_lines_pkg.SetAcctLineType
71536       (p_component_type             => l_component_type
71537       ,p_event_type_code            => l_event_type_code
71538       ,p_line_definition_owner_code => l_line_definition_owner_code
71539       ,p_line_definition_code       => l_line_definition_code
71540       ,p_accounting_line_code       => l_component_code
71541       ,p_accounting_line_type_code  => l_component_type_code
71542       ,p_accounting_line_appl_id    => l_component_appl_id
71543       ,p_amb_context_code           => l_amb_context_code
71544       ,p_entity_code                => l_entity_code
71545       ,p_event_class_code           => l_event_class_code);
71546    --
71547    -- set accounting class
71548    --
71549    xla_ae_lines_pkg.SetAcctClass(
71550            p_accounting_class_code  => 'GAIN'
71551          , p_ae_header_id           => l_ae_header_id
71552          );
71553 
71554    --
71555    -- set rounding class
71556    --
71557    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
71558                       'GAIN';
71559 
71560    --
71561    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
71562    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
71563    --
71564    -- bulk performance
71565    --
71566    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
71567 
71568    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
71569       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
71570 
71571    -- 4955764
71572    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
71573       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
71574 
71575    -- 4458381 Public Sector Enh
71576    
71577    --
71578    -- set accounting attributes for the line type
71579    --
71580    l_entered_amt_idx := 9;
71581    l_accted_amt_idx  := 14;
71582    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
71583    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
71584    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
71585    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
71586    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
71587    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
71588    l_rec_acct_attrs.array_char_value(3)  := p_source_100;
71589    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
71590    l_rec_acct_attrs.array_char_value(4)  := p_source_101;
71591    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
71592    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_102);
71593    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
71594    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_103);
71595    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
71596    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
71597    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
71598    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
71599    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
71600    l_rec_acct_attrs.array_num_value(9)  := p_source_99;
71601    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
71602    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
71606    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
71603    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
71604    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
71605    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
71607    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
71608    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
71609    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
71610    l_rec_acct_attrs.array_num_value(14)  := p_source_154;
71611    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
71612    l_rec_acct_attrs.array_char_value(15)  := p_source_80;
71613    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
71614    l_rec_acct_attrs.array_num_value(16)  := p_source_110;
71615    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
71616    l_rec_acct_attrs.array_num_value(17)  := p_source_111;
71617    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
71618    l_rec_acct_attrs.array_char_value(18)  := p_source_83;
71619    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
71620    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_112);
71621    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
71622    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
71623 
71624    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
71625    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
71626 
71627    ---------------------------------------------------------------------------------------------------------------
71628    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
71629    ---------------------------------------------------------------------------------------------------------------
71630    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
71631 
71632    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
71633    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
71634 
71635    IF xla_accounting_cache_pkg.GetValueChar
71636          (p_source_code         => 'LEDGER_CATEGORY_CODE'
71637          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
71638    AND l_bflow_method_code = 'PRIOR_ENTRY'
71639 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
71640    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
71641          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
71642        )
71643    THEN
71644          xla_ae_lines_pkg.BflowUpgEntry
71645            (p_business_method_code    => l_bflow_method_code
71646            ,p_business_class_code     => l_bflow_class_code
71647            ,p_balance_type            => l_balance_type_code);
71648    ELSE
71649       NULL;
71650 -- No business flow processing for business flow method of NONE.
71651    END IF;
71652 
71653    --
71654    -- call analytical criteria
71655    --
71656    
71657    --
71658    -- call description
71659    --
71660    -- No description or it is inherited.
71661    --
71662    -- call ADRs
71663    -- Bug 4922099
71664    --
71665    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
71666         (NVL(l_actual_upg_option, 'N') = 'O') OR
71667         (NVL(l_enc_upg_option, 'N') = 'O')
71668       )
71669    THEN
71670    NULL;
71671    --
71672    --
71673    
71674   l_ccid := AcctDerRule_38(
71675            p_application_id           => p_application_id
71676          , p_ae_header_id             => l_ae_header_id 
71677 , p_source_15 => p_source_15
71678 , p_source_15_meaning => p_source_15_meaning
71679 , p_source_30 => p_source_30
71680 , p_source_36 => p_source_36
71681 , p_source_37 => p_source_37
71682          , x_transaction_coa_id       => l_adr_transaction_coa_id
71683          , x_accounting_coa_id        => l_adr_accounting_coa_id
71684          , x_value_type_code          => l_adr_value_type_code
71685          , p_side                     => 'NA'
71686    );
71687 
71688    xla_ae_lines_pkg.set_ccid(
71689     p_code_combination_id          => l_ccid
71690   , p_value_type_code              => l_adr_value_type_code
71691   , p_transaction_coa_id           => l_adr_transaction_coa_id
71692   , p_accounting_coa_id            => l_adr_accounting_coa_id
71693   , p_adr_code                     => 'AP_REAL_GAIN'
71694   , p_adr_type_code                => 'S'
71695   , p_component_type               => l_component_type
71696   , p_component_code               => l_component_code
71697   , p_component_type_code          => l_component_type_code
71698   , p_component_appl_id            => l_component_appl_id
71699   , p_amb_context_code             => l_amb_context_code
71700   , p_side                         => 'NA'
71701   );
71702 
71703 
71704    l_segment := AcctDerRule_22(
71705            p_application_id           => p_application_id
71706          , p_ae_header_id             => l_ae_header_id 
71707 , p_source_15 => p_source_15
71708 , p_source_15_meaning => p_source_15_meaning
71709 , p_source_30 => p_source_30
71710          , x_transaction_coa_id       => l_adr_transaction_coa_id
71711          , x_accounting_coa_id        => l_adr_accounting_coa_id
71712          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
71716          , x_value_segment_code       => l_adr_value_segment_code
71713          , x_flex_value_set_id        => l_adr_flex_value_set_id
71714          , x_value_type_code          => l_adr_value_type_code
71715          , x_value_combination_id     => l_adr_value_combination_id
71717          , p_side                     => 'NA'
71718          , p_override_seg_flag        => 'Y'
71719    );
71720 
71721    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
71722 
71723       xla_ae_lines_pkg.set_segment(
71724           p_to_segment_code         => 'GL_BALANCING'
71725         , p_segment_value           => l_segment
71726         , p_from_segment_code       => l_adr_value_segment_code
71727         , p_from_combination_id     => l_adr_value_combination_id
71728         , p_value_type_code         => l_adr_value_type_code
71729         , p_transaction_coa_id      => l_adr_transaction_coa_id
71730         , p_accounting_coa_id       => l_adr_accounting_coa_id
71731         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
71732         , p_flex_value_set_id       => l_adr_flex_value_set_id
71733         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
71734         , p_adr_type_code           => 'S'
71735         , p_component_type          => l_component_type
71736         , p_component_code          => l_component_code
71737         , p_component_type_code     => l_component_type_code
71738         , p_component_appl_id       => l_component_appl_id
71739         , p_amb_context_code        => l_amb_context_code
71740         , p_entity_code             => 'AP_PAYMENTS'
71741         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
71742         , p_side                    => 'NA'
71743         );
71744 
71745   END IF;
71746 
71747    l_segment := AcctDerRule_17(
71748            p_application_id           => p_application_id
71749          , p_ae_header_id             => l_ae_header_id 
71750 , p_source_15 => p_source_15
71751 , p_source_15_meaning => p_source_15_meaning
71752 , p_source_36 => p_source_36
71753 , p_source_37 => p_source_37
71754          , x_transaction_coa_id       => l_adr_transaction_coa_id
71755          , x_accounting_coa_id        => l_adr_accounting_coa_id
71756          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
71757          , x_flex_value_set_id        => l_adr_flex_value_set_id
71758          , x_value_type_code          => l_adr_value_type_code
71759          , x_value_combination_id     => l_adr_value_combination_id
71760          , x_value_segment_code       => l_adr_value_segment_code
71761          , p_side                     => 'NA'
71762          , p_override_seg_flag        => 'Y'
71763    );
71764 
71765    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
71766 
71767       xla_ae_lines_pkg.set_segment(
71768           p_to_segment_code         => 'GL_ACCOUNT'
71769         , p_segment_value           => l_segment
71770         , p_from_segment_code       => l_adr_value_segment_code
71771         , p_from_combination_id     => l_adr_value_combination_id
71772         , p_value_type_code         => l_adr_value_type_code
71773         , p_transaction_coa_id      => l_adr_transaction_coa_id
71774         , p_accounting_coa_id       => l_adr_accounting_coa_id
71775         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
71776         , p_flex_value_set_id       => l_adr_flex_value_set_id
71777         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
71778         , p_adr_type_code           => 'S'
71779         , p_component_type          => l_component_type
71780         , p_component_code          => l_component_code
71781         , p_component_type_code     => l_component_type_code
71782         , p_component_appl_id       => l_component_appl_id
71783         , p_amb_context_code        => l_amb_context_code
71784         , p_entity_code             => 'AP_PAYMENTS'
71785         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
71786         , p_side                    => 'NA'
71787         );
71788 
71789   END IF;
71790 
71791    --
71792    --
71793    END IF;
71794    --
71795    -- Bug 4922099
71796    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
71797           (NVL(l_enc_upg_option, 'N') = 'O')
71798         ) AND
71799         (l_bflow_method_code = 'PRIOR_ENTRY')
71800       )
71801    THEN
71802       IF
71803       --
71804       1 = 2
71805       --
71806       THEN
71807       xla_accounting_err_pkg.build_message
71808                                     (p_appli_s_name            => 'XLA'
71809                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
71810                                     ,p_token_1                 => 'LINE_NUMBER'
71811                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
71812                                     ,p_token_2                 => 'LINE_TYPE_NAME'
71813                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
71814                                                                              l_component_type
71815                                                                             ,l_component_code
71816                                                                             ,l_component_type_code
71817                                                                             ,l_component_appl_id
71818                                                                             ,l_amb_context_code
71819                                                                             ,l_entity_code
71823                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
71820                                                                             ,l_event_class_code
71821                                                                            )
71822                                     ,p_token_3                 => 'OWNER'
71824                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
71825                                                                           ,p_lookup_code    => l_component_type_code
71826                                                                          )
71827                                     ,p_token_4                 => 'PRODUCT_NAME'
71828                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
71829                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
71830                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
71831                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
71832                                     ,p_ae_header_id            =>  NULL
71833                                        );
71834 
71835         IF (C_LEVEL_ERROR>= g_log_level) THEN
71836                  trace
71837                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
71838                       ,p_level    => C_LEVEL_ERROR
71839                       ,p_module   => l_log_module);
71840         END IF;
71841       END IF;
71842    END IF;
71843    --
71844    --
71845    ------------------------------------------------------------------------------------------------
71846    -- 4219869 Business Flow
71847    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
71848    -- Prior Entry.  Currently, the following code is always generated.
71849    ------------------------------------------------------------------------------------------------
71850    XLA_AE_LINES_PKG.ValidateCurrentLine;
71851 
71852    ------------------------------------------------------------------------------------
71853    -- 4219869 Business Flow
71854    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
71855    ------------------------------------------------------------------------------------
71856    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
71857 
71858    ----------------------------------------------------------------------------------
71859    -- 4219869 Business Flow
71860    -- Update journal entry status -- Need to generate this within IF <condition>
71861    ----------------------------------------------------------------------------------
71862    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
71863          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
71864          ,p_balance_type_code => l_balance_type_code
71865          );
71866 
71867    -------------------------------------------------------------------------------------------
71868    -- 4262811 - Generate the Accrual Reversal lines
71869    -------------------------------------------------------------------------------------------
71870    BEGIN
71871       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
71872                               (g_array_event(p_event_id).array_value_num('header_index'));
71873       IF l_acc_rev_flag IS NULL THEN
71874          l_acc_rev_flag := 'N';
71875       END IF;
71876    EXCEPTION
71877       WHEN OTHERS THEN
71878          l_acc_rev_flag := 'N';
71879    END;
71880    --
71881    IF (l_acc_rev_flag = 'Y') THEN
71882 
71883        -- 4645092  ------------------------------------------------------------------------------
71884        -- To allow MPA report to determine if it should generate report process
71885        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
71886        ------------------------------------------------------------------------------------------
71887 
71888        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
71889        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
71890    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
71891    -- call ADRs
71892    -- Bug 4922099
71893    --
71894    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
71895         (NVL(l_actual_upg_option, 'N') = 'O') OR
71896         (NVL(l_enc_upg_option, 'N') = 'O')
71897       )
71898    THEN
71899    NULL;
71900    --
71901    --
71902    
71903   l_ccid := AcctDerRule_38(
71904            p_application_id           => p_application_id
71905          , p_ae_header_id             => l_ae_header_id 
71906 , p_source_15 => p_source_15
71907 , p_source_15_meaning => p_source_15_meaning
71908 , p_source_30 => p_source_30
71909 , p_source_36 => p_source_36
71910 , p_source_37 => p_source_37
71911          , x_transaction_coa_id       => l_adr_transaction_coa_id
71912          , x_accounting_coa_id        => l_adr_accounting_coa_id
71913          , x_value_type_code          => l_adr_value_type_code
71914          , p_side                     => 'NA'
71915    );
71916 
71917    xla_ae_lines_pkg.set_ccid(
71918     p_code_combination_id          => l_ccid
71919   , p_value_type_code              => l_adr_value_type_code
71920   , p_transaction_coa_id           => l_adr_transaction_coa_id
71921   , p_accounting_coa_id            => l_adr_accounting_coa_id
71922   , p_adr_code                     => 'AP_REAL_GAIN'
71926   , p_component_type_code          => l_component_type_code
71923   , p_adr_type_code                => 'S'
71924   , p_component_type               => l_component_type
71925   , p_component_code               => l_component_code
71927   , p_component_appl_id            => l_component_appl_id
71928   , p_amb_context_code             => l_amb_context_code
71929   , p_side                         => 'NA'
71930   );
71931 
71932 
71933    l_segment := AcctDerRule_22(
71934            p_application_id           => p_application_id
71935          , p_ae_header_id             => l_ae_header_id 
71936 , p_source_15 => p_source_15
71937 , p_source_15_meaning => p_source_15_meaning
71938 , p_source_30 => p_source_30
71939          , x_transaction_coa_id       => l_adr_transaction_coa_id
71940          , x_accounting_coa_id        => l_adr_accounting_coa_id
71941          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
71942          , x_flex_value_set_id        => l_adr_flex_value_set_id
71943          , x_value_type_code          => l_adr_value_type_code
71944          , x_value_combination_id     => l_adr_value_combination_id
71945          , x_value_segment_code       => l_adr_value_segment_code
71946          , p_side                     => 'NA'
71947          , p_override_seg_flag        => 'Y'
71948    );
71949 
71950    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
71951 
71952       xla_ae_lines_pkg.set_segment(
71953           p_to_segment_code         => 'GL_BALANCING'
71954         , p_segment_value           => l_segment
71955         , p_from_segment_code       => l_adr_value_segment_code
71956         , p_from_combination_id     => l_adr_value_combination_id
71957         , p_value_type_code         => l_adr_value_type_code
71958         , p_transaction_coa_id      => l_adr_transaction_coa_id
71959         , p_accounting_coa_id       => l_adr_accounting_coa_id
71960         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
71961         , p_flex_value_set_id       => l_adr_flex_value_set_id
71962         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
71963         , p_adr_type_code           => 'S'
71964         , p_component_type          => l_component_type
71965         , p_component_code          => l_component_code
71966         , p_component_type_code     => l_component_type_code
71967         , p_component_appl_id       => l_component_appl_id
71968         , p_amb_context_code        => l_amb_context_code
71969         , p_entity_code             => 'AP_PAYMENTS'
71970         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
71971         , p_side                    => 'NA'
71972         );
71973 
71974   END IF;
71975 
71976    l_segment := AcctDerRule_17(
71977            p_application_id           => p_application_id
71978          , p_ae_header_id             => l_ae_header_id 
71979 , p_source_15 => p_source_15
71980 , p_source_15_meaning => p_source_15_meaning
71981 , p_source_36 => p_source_36
71982 , p_source_37 => p_source_37
71983          , x_transaction_coa_id       => l_adr_transaction_coa_id
71984          , x_accounting_coa_id        => l_adr_accounting_coa_id
71985          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
71986          , x_flex_value_set_id        => l_adr_flex_value_set_id
71987          , x_value_type_code          => l_adr_value_type_code
71988          , x_value_combination_id     => l_adr_value_combination_id
71989          , x_value_segment_code       => l_adr_value_segment_code
71990          , p_side                     => 'NA'
71991          , p_override_seg_flag        => 'Y'
71992    );
71993 
71994    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
71995 
71996       xla_ae_lines_pkg.set_segment(
71997           p_to_segment_code         => 'GL_ACCOUNT'
71998         , p_segment_value           => l_segment
71999         , p_from_segment_code       => l_adr_value_segment_code
72000         , p_from_combination_id     => l_adr_value_combination_id
72001         , p_value_type_code         => l_adr_value_type_code
72002         , p_transaction_coa_id      => l_adr_transaction_coa_id
72003         , p_accounting_coa_id       => l_adr_accounting_coa_id
72004         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
72005         , p_flex_value_set_id       => l_adr_flex_value_set_id
72006         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
72007         , p_adr_type_code           => 'S'
72008         , p_component_type          => l_component_type
72009         , p_component_code          => l_component_code
72010         , p_component_type_code     => l_component_type_code
72011         , p_component_appl_id       => l_component_appl_id
72012         , p_amb_context_code        => l_amb_context_code
72013         , p_entity_code             => 'AP_PAYMENTS'
72014         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
72015         , p_side                    => 'NA'
72016         );
72017 
72018   END IF;
72019 
72020    --
72021    --
72022    END IF;
72023 
72024        --
72025        -- Update the line information that should be overwritten
72026        --
72027        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
72028                                          p_header_num   => 1);
72029        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
72030 
72031        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
72032 
72033        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
72034           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
72038       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
72035        END IF;
72036 
72037       --
72039       --
72040       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
72041           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
72042       ELSE
72043           ---------------------------------------------------------------------------------------------------
72044           -- 4262811a Switch Sign
72045           ---------------------------------------------------------------------------------------------------
72046           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
72047           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
72048                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72049           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
72050                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72051           -- 5132302
72052           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
72053                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72054 
72055       END IF;
72056 
72057       -- 4955764
72058       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
72059       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
72060 
72061 
72062       XLA_AE_LINES_PKG.ValidateCurrentLine;
72063       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
72064 
72065       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
72066                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
72067                ,p_balance_type_code => l_balance_type_code);
72068 
72069    END IF;
72070 
72071    -----------------------------------------------------------------------------------------
72072    -- 4262811 Multiperiod Accounting
72073    -----------------------------------------------------------------------------------------
72074      -- No MPA option is assigned.
72075 
72076 
72077 END IF;
72078 END IF;
72079 --
72080 
72081 --
72082 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72083    trace
72084       (p_msg      => 'END of AcctLineType_133'
72085       ,p_level    => C_LEVEL_PROCEDURE
72086       ,p_module   => l_log_module);
72087 END IF;
72088 --
72089 EXCEPTION
72090   WHEN xla_exceptions_pkg.application_exception THEN
72091       RAISE;
72092   WHEN OTHERS THEN
72093        xla_exceptions_pkg.raise_message
72094            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_133');
72095 END AcctLineType_133;
72096 --
72097 
72098 ---------------------------------------
72099 --
72100 -- PRIVATE FUNCTION
72101 --         AcctLineType_134
72102 --
72103 ---------------------------------------
72104 PROCEDURE AcctLineType_134 (
72105   p_application_id        IN NUMBER
72106  ,p_event_id              IN NUMBER
72107  ,p_calculate_acctd_flag  IN VARCHAR2
72108  ,p_calculate_g_l_flag    IN VARCHAR2
72109  ,p_actual_flag           IN OUT VARCHAR2
72110  ,p_balance_type_code     OUT VARCHAR2
72111  ,p_gain_or_loss_ref      OUT VARCHAR2
72112  
72113 --Automatic Offsets Value
72114  , p_source_15            IN VARCHAR2
72115  , p_source_15_meaning    IN VARCHAR2
72116 --Invoice Distribution Account
72117  , p_source_30            IN NUMBER
72118 --Internal Realized Gain Account
72119  , p_source_36            IN NUMBER
72120 --Bank Gain Account
72121  , p_source_37            IN NUMBER
72122 --Accounting Reversal Indicator
72123  , p_source_53            IN VARCHAR2
72124 --Distribution Link Type
72125  , p_source_55            IN VARCHAR2
72126 --Invoice Identifier
72127  , p_source_58            IN NUMBER
72128 --Payables Encumbrance Upgrade Credit Account
72129  , p_source_65            IN NUMBER
72130 --Payables Encumbrance Upgrade Credit Amount
72131  , p_source_66            IN NUMBER
72132 --Invoice Currency Code
72133  , p_source_67            IN VARCHAR2
72134 --Payables Encumbrance Upgrade Credit Base Amount
72135  , p_source_68            IN NUMBER
72136 --Payables Encumbrance Upgrade Debit Account
72137  , p_source_69            IN NUMBER
72138 --Payables Encumbrance Upgrade Debit Amount
72139  , p_source_70            IN NUMBER
72140 --Payables Encumbrance Upgrade Debit Base Amount
72141  , p_source_71            IN NUMBER
72142 --Payables Encumbrance Upgrade Option
72143  , p_source_72            IN VARCHAR2
72144 --Deferred Accounting End Date
72145  , p_source_77            IN DATE
72146 --Deferred Accounting Option
72147  , p_source_78            IN VARCHAR2
72148 --Deferred Accounting Start Date
72149  , p_source_79            IN DATE
72150 --Override Accounted Amount Indicator
72151  , p_source_80            IN VARCHAR2
72152  , p_source_80_meaning    IN VARCHAR2
72153 --Invoice Supplier Identifier
72154  , p_source_81            IN NUMBER
72155 --Invoice Supplier Site Identifier
72156  , p_source_82            IN NUMBER
72157 --Third Party Type
72158  , p_source_83            IN VARCHAR2
72159 --Invoice Distribution Tax Line Identifier
72160  , p_source_86            IN NUMBER
72164  , p_source_88            IN NUMBER
72161 --Invoice Distribution Tax Distribution Identifier from Tax
72162  , p_source_87            IN NUMBER
72163 --Invoice Distribution Summary Tax Line Identifier
72165 --Payables Upgrade Credit Encumbrance Type Identifier
72166  , p_source_89            IN NUMBER
72167 --Payables Upgrade Debit Encumbrance Type Identifier
72168  , p_source_90            IN NUMBER
72169 --Business Flow Accounts Payable Application Identifier
72170  , p_source_91            IN NUMBER
72171 --Prepayment Distribution Type
72172  , p_source_125            IN VARCHAR2
72173 --Prepayment Application Distribution Identifier
72174  , p_source_127            IN NUMBER
72175 --Upgrade Encumbrance Credit Account Class
72176  , p_source_132            IN VARCHAR2
72177 --Upgrade Encumbrance Debit Account Class
72178  , p_source_133            IN VARCHAR2
72179 --Prepayment Distribution Amount
72180  , p_source_134            IN NUMBER
72181 --Identifier of the Prepayment Application Reversed
72182  , p_source_136            IN NUMBER
72183 --Invoice Exchange Date
72184  , p_source_143            IN DATE
72185 --Invoice Exchange Rate
72186  , p_source_144            IN NUMBER
72187 --Invoice Exchange Rate Type
72188  , p_source_145            IN VARCHAR2
72189 --Business Flow Prepayment Invoice Distribution Type
72190  , p_source_146            IN VARCHAR2
72191 --Business Flow Prepayment Invoice Entity Code
72192  , p_source_147            IN VARCHAR2
72193 --Business Flow Prepayment Invoice Distribution Identifier
72194  , p_source_148            IN NUMBER
72195 --Business Flow Prepayment Invoice Identifier
72196  , p_source_149            IN NUMBER
72197 --Prepayment/Invoice Ledger Amount Difference
72198  , p_source_155            IN NUMBER
72199 --Gain or Loss Indicator between Prepayment and Invoice
72200  , p_source_162            IN VARCHAR2
72201 )
72202 IS
72203 
72204 l_component_type              VARCHAR2(80);
72205 l_component_code              VARCHAR2(30);
72206 l_component_type_code         VARCHAR2(1);
72207 l_component_appl_id           INTEGER;
72208 l_amb_context_code            VARCHAR2(30);
72209 l_entity_code                 VARCHAR2(30);
72210 l_event_class_code            VARCHAR2(30);
72211 l_ae_header_id                NUMBER;
72212 l_event_type_code             VARCHAR2(30);
72213 l_line_definition_code        VARCHAR2(30);
72214 l_line_definition_owner_code  VARCHAR2(1);
72215 --
72216 -- adr variables
72217 l_segment                     VARCHAR2(30);
72218 l_ccid                        NUMBER;
72219 l_adr_transaction_coa_id      NUMBER;
72220 l_adr_accounting_coa_id       NUMBER;
72221 l_adr_flexfield_segment_code  VARCHAR2(30);
72222 l_adr_flex_value_set_id       NUMBER;
72223 l_adr_value_type_code         VARCHAR2(30);
72224 l_adr_value_combination_id    NUMBER;
72225 l_adr_value_segment_code      VARCHAR2(30);
72226 
72227 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
72228 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
72229 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
72230 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
72231 
72232 -- 4262811 Variables ------------------------------------------------------------------------------------------
72233 l_entered_amt_idx             NUMBER;
72234 l_accted_amt_idx              NUMBER;
72235 l_acc_rev_flag                VARCHAR2(1);
72236 l_accrual_line_num            NUMBER;
72237 l_tmp_amt                     NUMBER;
72238 l_acc_rev_natural_side_code   VARCHAR2(1);
72239 
72240 l_num_entries                 NUMBER;
72241 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
72242 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
72243 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
72244 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
72245 l_recog_line_1                NUMBER;
72246 l_recog_line_2                NUMBER;
72247 
72248 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
72249 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
72250 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
72251 
72252 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
72253 
72254 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
72255 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
72256 
72257 ---------------------------------------------------------------------------------------------------------------
72258 
72259 
72260 --
72261 -- bulk performance
72262 --
72263 l_balance_type_code           VARCHAR2(1);
72264 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
72265 l_log_module                  VARCHAR2(240);
72266 
72267 --
72268 -- Upgrade strategy
72269 --
72270 l_actual_upg_option           VARCHAR2(1);
72271 l_enc_upg_option           VARCHAR2(1);
72272 
72273 --
72274 BEGIN
72275 --
72276 IF g_log_enabled THEN
72277       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_134';
72278 END IF;
72279 --
72280 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72281 
72282       trace
72283          (p_msg      => 'BEGIN of AcctLineType_134'
72284          ,p_level    => C_LEVEL_PROCEDURE
72288 --
72285          ,p_module   => l_log_module);
72286 
72287 END IF;
72289 l_component_type             := 'AMB_JLT';
72290 l_component_code             := 'AP_GAIN_PREPAY_APP';
72291 l_component_type_code        := 'S';
72292 l_component_appl_id          :=  200;
72293 l_amb_context_code           := 'DEFAULT';
72294 l_entity_code                := 'AP_INVOICES';
72295 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
72296 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
72297 l_line_definition_owner_code := 'S';
72298 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
72299 --
72300 l_balance_type_code          := 'A';
72301 l_segment                     := NULL;
72302 l_ccid                        := NULL;
72303 l_adr_transaction_coa_id      := NULL;
72304 l_adr_accounting_coa_id       := NULL;
72305 l_adr_flexfield_segment_code  := NULL;
72306 l_adr_flex_value_set_id       := NULL;
72307 l_adr_value_type_code         := NULL;
72308 l_adr_value_combination_id    := NULL;
72309 l_adr_value_segment_code      := NULL;
72310 
72311 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
72312 l_bflow_class_code           := '';    -- 4219869 Business Flow
72313 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
72314 l_budgetary_control_flag     := 'N';
72315 
72316 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
72317 l_bflow_applied_to_amt       := NULL; -- 5132302
72318 l_entered_amt_idx            := NULL;          -- 4262811
72319 l_accted_amt_idx             := NULL;          -- 4262811
72320 l_acc_rev_flag               := NULL;          -- 4262811
72321 l_accrual_line_num           := NULL;          -- 4262811
72322 l_tmp_amt                    := NULL;          -- 4262811
72323 --
72324 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
72325             (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
72326                return;
72327   END IF;
72328   
72329 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
72330     l_balance_type_code <> 'B' THEN
72331 IF NVL(p_source_125,'
72332 ') =  'PREPAY APPL' AND 
72333 NVL(p_source_162,'
72334 ') =  'GAIN'
72335  THEN 
72336 
72337    --
72338    XLA_AE_LINES_PKG.SetNewLine;
72339 
72340    p_balance_type_code          := l_balance_type_code;
72341    -- set the flag so later we will know whether the gain loss line needs to be created
72342    
72343    IF(l_balance_type_code = 'A' ) THEN
72344      p_actual_flag :='G';
72345    END IF;
72346 
72347    --
72348    -- bulk performance
72349    --
72350    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
72351                                       p_header_num   => 0); -- 4262811
72352    --
72353    -- set accounting line options
72354    --
72355    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
72356            p_natural_side_code          => 'D'
72357          , p_gain_or_loss_flag          => 'Y'
72358          , p_gl_transfer_mode_code      => 'S'
72359          , p_acct_entry_type_code       => 'A'
72360          , p_switch_side_flag           => 'Y'
72361          , p_merge_duplicate_code       => 'A'
72362          );
72363    --
72364    l_acc_rev_natural_side_code := 'C';  -- 4262811
72365    -- 
72366    --
72367    -- set accounting line type info
72368    --
72369    xla_ae_lines_pkg.SetAcctLineType
72370       (p_component_type             => l_component_type
72371       ,p_event_type_code            => l_event_type_code
72372       ,p_line_definition_owner_code => l_line_definition_owner_code
72373       ,p_line_definition_code       => l_line_definition_code
72374       ,p_accounting_line_code       => l_component_code
72375       ,p_accounting_line_type_code  => l_component_type_code
72376       ,p_accounting_line_appl_id    => l_component_appl_id
72377       ,p_amb_context_code           => l_amb_context_code
72378       ,p_entity_code                => l_entity_code
72379       ,p_event_class_code           => l_event_class_code);
72380    --
72381    -- set accounting class
72382    --
72383    xla_ae_lines_pkg.SetAcctClass(
72384            p_accounting_class_code  => 'GAIN'
72385          , p_ae_header_id           => l_ae_header_id
72386          );
72387 
72388    --
72389    -- set rounding class
72390    --
72391    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
72392                       'GAIN';
72393 
72394    --
72395    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
72396    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
72397    --
72398    -- bulk performance
72399    --
72400    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
72401 
72402    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
72403       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
72404 
72405    -- 4955764
72406    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
72410    
72407       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
72408 
72409    -- 4458381 Public Sector Enh
72411    --
72412    -- set accounting attributes for the line type
72413    --
72414    l_entered_amt_idx := 25;
72415    l_accted_amt_idx  := 30;
72416    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
72417    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
72418    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
72419    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
72420    l_rec_acct_attrs.array_num_value(2)  := 
72421 xla_ae_sources_pkg.GetSystemSourceNum(
72422    p_source_code           => 'XLA_EVENT_APPL_ID'
72423  , p_source_type_code      => 'Y'
72424  , p_source_application_id =>  602
72425 );
72426    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
72427    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
72428    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
72429    l_rec_acct_attrs.array_char_value(4)  := 
72430 xla_ae_sources_pkg.GetSystemSourceChar(
72431    p_source_code           => 'XLA_ENTITY_CODE'
72432  , p_source_type_code      => 'Y'
72433  , p_source_application_id =>  602
72434 );
72435    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
72436    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_127);
72437    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
72438    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
72439    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
72440    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
72441    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
72442    l_rec_acct_attrs.array_char_value(8)  := p_source_146;
72443    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
72444    l_rec_acct_attrs.array_char_value(9)  := p_source_147;
72445    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
72446    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_148);
72447    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
72448    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_149);
72449    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
72450    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_127);
72451    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
72452    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
72453    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
72454    l_rec_acct_attrs.array_char_value(14)  := p_source_132;
72455    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
72456    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
72457    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
72458    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
72459    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
72460    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
72461    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
72462    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
72463    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
72464    l_rec_acct_attrs.array_char_value(19)  := p_source_133;
72465    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
72466    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
72467    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
72468    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
72469    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
72470    l_rec_acct_attrs.array_char_value(22)  := p_source_67;
72471    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
72472    l_rec_acct_attrs.array_num_value(23)  := p_source_71;
72473    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
72474    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
72475    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
72476    l_rec_acct_attrs.array_num_value(25)  := p_source_134;
72477    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
72478    l_rec_acct_attrs.array_char_value(26)  := p_source_67;
72479    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
72480    l_rec_acct_attrs.array_date_value(27)  := p_source_143;
72481    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
72482    l_rec_acct_attrs.array_num_value(28)  := p_source_144;
72483    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
72484    l_rec_acct_attrs.array_char_value(29)  := p_source_145;
72485    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
72486    l_rec_acct_attrs.array_num_value(30)  := p_source_155;
72487    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
72488    l_rec_acct_attrs.array_date_value(31)  := p_source_77;
72489    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
72490    l_rec_acct_attrs.array_char_value(32)  := p_source_78;
72491    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
72492    l_rec_acct_attrs.array_date_value(33)  := p_source_79;
72493    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
72494    l_rec_acct_attrs.array_char_value(34)  := p_source_80;
72495    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
72496    l_rec_acct_attrs.array_num_value(35)  := p_source_81;
72497    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
72498    l_rec_acct_attrs.array_num_value(36)  := p_source_82;
72502    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_136);
72499    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
72500    l_rec_acct_attrs.array_char_value(37)  := p_source_83;
72501    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
72503    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
72504    l_rec_acct_attrs.array_char_value(39)  := p_source_55;
72505    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
72506    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
72507    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
72508    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
72509    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
72510    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
72511    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
72512    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
72513    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
72514    l_rec_acct_attrs.array_num_value(44)  := p_source_90;
72515 
72516    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
72517    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
72518 
72519    ---------------------------------------------------------------------------------------------------------------
72520    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
72521    ---------------------------------------------------------------------------------------------------------------
72522    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
72523 
72524    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
72525    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
72526 
72527    IF xla_accounting_cache_pkg.GetValueChar
72528          (p_source_code         => 'LEDGER_CATEGORY_CODE'
72529          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
72530    AND l_bflow_method_code = 'PRIOR_ENTRY'
72531 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
72532    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
72533          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
72534        )
72535    THEN
72536          xla_ae_lines_pkg.BflowUpgEntry
72537            (p_business_method_code    => l_bflow_method_code
72538            ,p_business_class_code     => l_bflow_class_code
72539            ,p_balance_type            => l_balance_type_code);
72540    ELSE
72541       NULL;
72542 -- No business flow processing for business flow method of NONE.
72543    END IF;
72544 
72545    --
72546    -- call analytical criteria
72547    --
72548    
72549    --
72550    -- call description
72551    --
72552    -- No description or it is inherited.
72553    --
72554    -- call ADRs
72555    -- Bug 4922099
72556    --
72557    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
72558         (NVL(l_actual_upg_option, 'N') = 'O') OR
72559         (NVL(l_enc_upg_option, 'N') = 'O')
72560       )
72561    THEN
72562    NULL;
72563    --
72564    --
72565    
72566   l_ccid := AcctDerRule_38(
72567            p_application_id           => p_application_id
72568          , p_ae_header_id             => l_ae_header_id 
72569 , p_source_15 => p_source_15
72570 , p_source_15_meaning => p_source_15_meaning
72571 , p_source_30 => p_source_30
72572 , p_source_36 => p_source_36
72573 , p_source_37 => p_source_37
72574          , x_transaction_coa_id       => l_adr_transaction_coa_id
72575          , x_accounting_coa_id        => l_adr_accounting_coa_id
72576          , x_value_type_code          => l_adr_value_type_code
72577          , p_side                     => 'NA'
72578    );
72579 
72580    xla_ae_lines_pkg.set_ccid(
72581     p_code_combination_id          => l_ccid
72582   , p_value_type_code              => l_adr_value_type_code
72583   , p_transaction_coa_id           => l_adr_transaction_coa_id
72584   , p_accounting_coa_id            => l_adr_accounting_coa_id
72585   , p_adr_code                     => 'AP_REAL_GAIN'
72586   , p_adr_type_code                => 'S'
72587   , p_component_type               => l_component_type
72588   , p_component_code               => l_component_code
72589   , p_component_type_code          => l_component_type_code
72590   , p_component_appl_id            => l_component_appl_id
72591   , p_amb_context_code             => l_amb_context_code
72592   , p_side                         => 'NA'
72593   );
72594 
72595 
72596    l_segment := AcctDerRule_22(
72597            p_application_id           => p_application_id
72598          , p_ae_header_id             => l_ae_header_id 
72599 , p_source_15 => p_source_15
72600 , p_source_15_meaning => p_source_15_meaning
72601 , p_source_30 => p_source_30
72602          , x_transaction_coa_id       => l_adr_transaction_coa_id
72603          , x_accounting_coa_id        => l_adr_accounting_coa_id
72604          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
72605          , x_flex_value_set_id        => l_adr_flex_value_set_id
72606          , x_value_type_code          => l_adr_value_type_code
72607          , x_value_combination_id     => l_adr_value_combination_id
72608          , x_value_segment_code       => l_adr_value_segment_code
72609          , p_side                     => 'NA'
72610          , p_override_seg_flag        => 'Y'
72611    );
72612 
72616           p_to_segment_code         => 'GL_BALANCING'
72613    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
72614 
72615       xla_ae_lines_pkg.set_segment(
72617         , p_segment_value           => l_segment
72618         , p_from_segment_code       => l_adr_value_segment_code
72619         , p_from_combination_id     => l_adr_value_combination_id
72620         , p_value_type_code         => l_adr_value_type_code
72621         , p_transaction_coa_id      => l_adr_transaction_coa_id
72622         , p_accounting_coa_id       => l_adr_accounting_coa_id
72623         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
72624         , p_flex_value_set_id       => l_adr_flex_value_set_id
72625         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
72626         , p_adr_type_code           => 'S'
72627         , p_component_type          => l_component_type
72628         , p_component_code          => l_component_code
72629         , p_component_type_code     => l_component_type_code
72630         , p_component_appl_id       => l_component_appl_id
72631         , p_amb_context_code        => l_amb_context_code
72632         , p_entity_code             => 'AP_INVOICES'
72633         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
72634         , p_side                    => 'NA'
72635         );
72636 
72637   END IF;
72638 
72639    l_segment := AcctDerRule_17(
72640            p_application_id           => p_application_id
72641          , p_ae_header_id             => l_ae_header_id 
72642 , p_source_15 => p_source_15
72643 , p_source_15_meaning => p_source_15_meaning
72644 , p_source_36 => p_source_36
72645 , p_source_37 => p_source_37
72646          , x_transaction_coa_id       => l_adr_transaction_coa_id
72647          , x_accounting_coa_id        => l_adr_accounting_coa_id
72648          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
72649          , x_flex_value_set_id        => l_adr_flex_value_set_id
72650          , x_value_type_code          => l_adr_value_type_code
72651          , x_value_combination_id     => l_adr_value_combination_id
72652          , x_value_segment_code       => l_adr_value_segment_code
72653          , p_side                     => 'NA'
72654          , p_override_seg_flag        => 'Y'
72655    );
72656 
72657    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
72658 
72659       xla_ae_lines_pkg.set_segment(
72660           p_to_segment_code         => 'GL_ACCOUNT'
72661         , p_segment_value           => l_segment
72662         , p_from_segment_code       => l_adr_value_segment_code
72663         , p_from_combination_id     => l_adr_value_combination_id
72664         , p_value_type_code         => l_adr_value_type_code
72665         , p_transaction_coa_id      => l_adr_transaction_coa_id
72666         , p_accounting_coa_id       => l_adr_accounting_coa_id
72667         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
72668         , p_flex_value_set_id       => l_adr_flex_value_set_id
72669         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
72670         , p_adr_type_code           => 'S'
72671         , p_component_type          => l_component_type
72672         , p_component_code          => l_component_code
72673         , p_component_type_code     => l_component_type_code
72674         , p_component_appl_id       => l_component_appl_id
72675         , p_amb_context_code        => l_amb_context_code
72676         , p_entity_code             => 'AP_INVOICES'
72677         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
72678         , p_side                    => 'NA'
72679         );
72680 
72681   END IF;
72682 
72683    --
72684    --
72685    END IF;
72686    --
72687    -- Bug 4922099
72688    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
72689           (NVL(l_enc_upg_option, 'N') = 'O')
72690         ) AND
72691         (l_bflow_method_code = 'PRIOR_ENTRY')
72692       )
72693    THEN
72694       IF
72695       --
72696       1 = 2
72697       --
72698       THEN
72699       xla_accounting_err_pkg.build_message
72700                                     (p_appli_s_name            => 'XLA'
72701                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
72702                                     ,p_token_1                 => 'LINE_NUMBER'
72703                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
72704                                     ,p_token_2                 => 'LINE_TYPE_NAME'
72705                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
72706                                                                              l_component_type
72707                                                                             ,l_component_code
72708                                                                             ,l_component_type_code
72709                                                                             ,l_component_appl_id
72710                                                                             ,l_amb_context_code
72711                                                                             ,l_entity_code
72712                                                                             ,l_event_class_code
72713                                                                            )
72714                                     ,p_token_3                 => 'OWNER'
72715                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
72719                                     ,p_token_4                 => 'PRODUCT_NAME'
72716                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
72717                                                                           ,p_lookup_code    => l_component_type_code
72718                                                                          )
72720                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
72721                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
72722                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
72723                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
72724                                     ,p_ae_header_id            =>  NULL
72725                                        );
72726 
72727         IF (C_LEVEL_ERROR>= g_log_level) THEN
72728                  trace
72729                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
72730                       ,p_level    => C_LEVEL_ERROR
72731                       ,p_module   => l_log_module);
72732         END IF;
72733       END IF;
72734    END IF;
72735    --
72736    --
72737    ------------------------------------------------------------------------------------------------
72738    -- 4219869 Business Flow
72739    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
72740    -- Prior Entry.  Currently, the following code is always generated.
72741    ------------------------------------------------------------------------------------------------
72742    XLA_AE_LINES_PKG.ValidateCurrentLine;
72743 
72744    ------------------------------------------------------------------------------------
72745    -- 4219869 Business Flow
72746    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
72747    ------------------------------------------------------------------------------------
72748    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
72749 
72750    ----------------------------------------------------------------------------------
72751    -- 4219869 Business Flow
72752    -- Update journal entry status -- Need to generate this within IF <condition>
72753    ----------------------------------------------------------------------------------
72754    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
72755          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
72756          ,p_balance_type_code => l_balance_type_code
72757          );
72758 
72759    -------------------------------------------------------------------------------------------
72760    -- 4262811 - Generate the Accrual Reversal lines
72761    -------------------------------------------------------------------------------------------
72762    BEGIN
72763       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
72764                               (g_array_event(p_event_id).array_value_num('header_index'));
72765       IF l_acc_rev_flag IS NULL THEN
72766          l_acc_rev_flag := 'N';
72767       END IF;
72768    EXCEPTION
72769       WHEN OTHERS THEN
72770          l_acc_rev_flag := 'N';
72771    END;
72772    --
72773    IF (l_acc_rev_flag = 'Y') THEN
72774 
72775        -- 4645092  ------------------------------------------------------------------------------
72776        -- To allow MPA report to determine if it should generate report process
72777        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
72778        ------------------------------------------------------------------------------------------
72779 
72780        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
72781        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
72782    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
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_38(
72796            p_application_id           => p_application_id
72797          , p_ae_header_id             => l_ae_header_id 
72798 , p_source_15 => p_source_15
72799 , p_source_15_meaning => p_source_15_meaning
72800 , p_source_30 => p_source_30
72801 , p_source_36 => p_source_36
72802 , p_source_37 => p_source_37
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'
72825    l_segment := AcctDerRule_22(
72822   );
72823 
72824 
72826            p_application_id           => p_application_id
72827          , p_ae_header_id             => l_ae_header_id 
72828 , p_source_15 => p_source_15
72829 , p_source_15_meaning => p_source_15_meaning
72830 , p_source_30 => p_source_30
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
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
72854         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
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_INVOICES'
72862         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
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_15 => p_source_15
72872 , p_source_15_meaning => p_source_15_meaning
72873 , p_source_36 => p_source_36
72874 , p_source_37 => p_source_37
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_INVOICES'
72906         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
72907         , p_side                    => 'NA'
72908         );
72909 
72910   END IF;
72911 
72912    --
72913    --
72914    END IF;
72915 
72916        --
72917        -- Update the line information that should be overwritten
72918        --
72919        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
72920                                          p_header_num   => 1);
72921        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
72922 
72923        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
72924 
72925        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
72926           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
72927        END IF;
72928 
72929       --
72930       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
72931       --
72932       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
72936           -- 4262811a Switch Sign
72933           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
72934       ELSE
72935           ---------------------------------------------------------------------------------------------------
72937           ---------------------------------------------------------------------------------------------------
72938           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
72939           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
72940                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72941           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
72942                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72943           -- 5132302
72944           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
72945                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
72946 
72947       END IF;
72948 
72949       -- 4955764
72950       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
72951       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
72952 
72953 
72954       XLA_AE_LINES_PKG.ValidateCurrentLine;
72955       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
72956 
72957       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
72958                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
72959                ,p_balance_type_code => l_balance_type_code);
72960 
72961    END IF;
72962 
72963    -----------------------------------------------------------------------------------------
72964    -- 4262811 Multiperiod Accounting
72965    -----------------------------------------------------------------------------------------
72966      -- No MPA option is assigned.
72967 
72968 
72969 END IF;
72970 END IF;
72971 --
72972 
72973 --
72974 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72975    trace
72976       (p_msg      => 'END of AcctLineType_134'
72977       ,p_level    => C_LEVEL_PROCEDURE
72978       ,p_module   => l_log_module);
72979 END IF;
72980 --
72981 EXCEPTION
72982   WHEN xla_exceptions_pkg.application_exception THEN
72983       RAISE;
72984   WHEN OTHERS THEN
72985        xla_exceptions_pkg.raise_message
72986            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_134');
72987 END AcctLineType_134;
72988 --
72989 
72990 ---------------------------------------
72991 --
72992 -- PRIVATE FUNCTION
72993 --         AcctLineType_135
72994 --
72995 ---------------------------------------
72996 PROCEDURE AcctLineType_135 (
72997   p_application_id        IN NUMBER
72998  ,p_event_id              IN NUMBER
72999  ,p_calculate_acctd_flag  IN VARCHAR2
73000  ,p_calculate_g_l_flag    IN VARCHAR2
73001  ,p_actual_flag           IN OUT VARCHAR2
73002  ,p_balance_type_code     OUT VARCHAR2
73003  ,p_gain_or_loss_ref      OUT VARCHAR2
73004  
73005 --Payment Currency Code
73006  , p_source_13            IN VARCHAR2
73007 --Automatic Offsets Value
73008  , p_source_15            IN VARCHAR2
73009  , p_source_15_meaning    IN VARCHAR2
73010 --Invoice Distribution Account
73011  , p_source_30            IN NUMBER
73012 --Internal Realized Gain Account
73013  , p_source_36            IN NUMBER
73014 --Bank Gain Account
73015  , p_source_37            IN NUMBER
73016 --Accounting Reversal Indicator
73017  , p_source_53            IN VARCHAR2
73018 --Distribution Link Type
73019  , p_source_55            IN VARCHAR2
73020 --Override Accounted Amount Indicator
73021  , p_source_80            IN VARCHAR2
73022  , p_source_80_meaning    IN VARCHAR2
73023 --Third Party Type
73024  , p_source_83            IN VARCHAR2
73025 --Invoice Distribution Tax Line Identifier
73026  , p_source_86            IN NUMBER
73027 --Invoice Distribution Tax Distribution Identifier from Tax
73028  , p_source_87            IN NUMBER
73029 --Invoice Distribution Summary Tax Line Identifier
73030  , p_source_88            IN NUMBER
73031 --Business Flow Accounts Payable Application Identifier
73032  , p_source_91            IN NUMBER
73033 --Business Flow Invoice Distribution Type
73034  , p_source_92            IN VARCHAR2
73035 --Business Flow Invoice Entity Code
73036  , p_source_93            IN VARCHAR2
73037 --Business Flow Invoice Distribution Identifier
73038  , p_source_94            IN NUMBER
73039 --Business Flow Invoice Identifier
73040  , p_source_95            IN NUMBER
73041 --When to Account for Payment Option
73042  , p_source_97            IN VARCHAR2
73043 --Payment Distribution Type
73044  , p_source_98            IN VARCHAR2
73045  , p_source_98_meaning    IN VARCHAR2
73046 --Payment Distribution Amount
73047  , p_source_99            IN NUMBER
73048 --Payment Distribution Identifier
73049  , p_source_104            IN NUMBER
73050 --Payment Supplier Identifier
73051  , p_source_110            IN NUMBER
73052 --Payment Supplier Site Identifier
73053  , p_source_111            IN NUMBER
73054 --Payment Distribution Reversed Identifier
73055  , p_source_112            IN NUMBER
73056 --Payment Exchange Date
73057  , p_source_117            IN DATE
73061  , p_source_119            IN VARCHAR2
73058 --Payment Exchange Rate
73059  , p_source_118            IN NUMBER
73060 --Payment Exchange Rate Type
73062 --Payment Type
73063  , p_source_122            IN VARCHAR2
73064  , p_source_122_meaning    IN VARCHAR2
73065 --Invoice/Payment Ledger Amount Difference
73066  , p_source_153            IN NUMBER
73067 --Gain or Loss Indicator between Invoice and Payment
73068  , p_source_158            IN VARCHAR2
73069 )
73070 IS
73071 
73072 l_component_type              VARCHAR2(80);
73073 l_component_code              VARCHAR2(30);
73074 l_component_type_code         VARCHAR2(1);
73075 l_component_appl_id           INTEGER;
73076 l_amb_context_code            VARCHAR2(30);
73077 l_entity_code                 VARCHAR2(30);
73078 l_event_class_code            VARCHAR2(30);
73079 l_ae_header_id                NUMBER;
73080 l_event_type_code             VARCHAR2(30);
73081 l_line_definition_code        VARCHAR2(30);
73082 l_line_definition_owner_code  VARCHAR2(1);
73083 --
73084 -- adr variables
73085 l_segment                     VARCHAR2(30);
73086 l_ccid                        NUMBER;
73087 l_adr_transaction_coa_id      NUMBER;
73088 l_adr_accounting_coa_id       NUMBER;
73089 l_adr_flexfield_segment_code  VARCHAR2(30);
73090 l_adr_flex_value_set_id       NUMBER;
73091 l_adr_value_type_code         VARCHAR2(30);
73092 l_adr_value_combination_id    NUMBER;
73093 l_adr_value_segment_code      VARCHAR2(30);
73094 
73095 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
73096 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
73097 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
73098 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
73099 
73100 -- 4262811 Variables ------------------------------------------------------------------------------------------
73101 l_entered_amt_idx             NUMBER;
73102 l_accted_amt_idx              NUMBER;
73103 l_acc_rev_flag                VARCHAR2(1);
73104 l_accrual_line_num            NUMBER;
73105 l_tmp_amt                     NUMBER;
73106 l_acc_rev_natural_side_code   VARCHAR2(1);
73107 
73108 l_num_entries                 NUMBER;
73109 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
73110 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
73111 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
73112 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
73113 l_recog_line_1                NUMBER;
73114 l_recog_line_2                NUMBER;
73115 
73116 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
73117 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
73118 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
73119 
73120 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
73121 
73122 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
73123 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
73124 
73125 ---------------------------------------------------------------------------------------------------------------
73126 
73127 
73128 --
73129 -- bulk performance
73130 --
73131 l_balance_type_code           VARCHAR2(1);
73132 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
73133 l_log_module                  VARCHAR2(240);
73134 
73135 --
73136 -- Upgrade strategy
73137 --
73138 l_actual_upg_option           VARCHAR2(1);
73139 l_enc_upg_option           VARCHAR2(1);
73140 
73141 --
73142 BEGIN
73143 --
73144 IF g_log_enabled THEN
73145       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_135';
73146 END IF;
73147 --
73148 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73149 
73150       trace
73151          (p_msg      => 'BEGIN of AcctLineType_135'
73152          ,p_level    => C_LEVEL_PROCEDURE
73153          ,p_module   => l_log_module);
73154 
73155 END IF;
73156 --
73157 l_component_type             := 'AMB_JLT';
73158 l_component_code             := 'AP_GAIN_REF';
73159 l_component_type_code        := 'S';
73160 l_component_appl_id          :=  200;
73161 l_amb_context_code           := 'DEFAULT';
73162 l_entity_code                := 'AP_PAYMENTS';
73163 l_event_class_code           := 'REFUNDS';
73164 l_event_type_code            := 'REFUNDS_ALL';
73165 l_line_definition_owner_code := 'S';
73166 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
73167 --
73168 l_balance_type_code          := 'A';
73169 l_segment                     := NULL;
73170 l_ccid                        := NULL;
73171 l_adr_transaction_coa_id      := NULL;
73172 l_adr_accounting_coa_id       := NULL;
73173 l_adr_flexfield_segment_code  := NULL;
73174 l_adr_flex_value_set_id       := NULL;
73175 l_adr_value_type_code         := NULL;
73176 l_adr_value_combination_id    := NULL;
73177 l_adr_value_segment_code      := NULL;
73178 
73179 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
73180 l_bflow_class_code           := '';    -- 4219869 Business Flow
73181 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
73182 l_budgetary_control_flag     := 'N';
73183 
73184 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
73185 l_bflow_applied_to_amt       := NULL; -- 5132302
73189 l_accrual_line_num           := NULL;          -- 4262811
73186 l_entered_amt_idx            := NULL;          -- 4262811
73187 l_accted_amt_idx             := NULL;          -- 4262811
73188 l_acc_rev_flag               := NULL;          -- 4262811
73190 l_tmp_amt                    := NULL;          -- 4262811
73191 --
73192 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
73193             (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
73194                return;
73195   END IF;
73196   
73197 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
73198     l_balance_type_code <> 'B' THEN
73199 IF (NVL(p_source_97,'
73200 ') <>  'CLEAR_CLEAR' AND 
73201 NVL(p_source_97,'
73202 ') <>  'ALWAYS_CLEAR') AND 
73203 NVL(p_source_158,'
73204 ') =  'GAIN' AND 
73205 NVL(p_source_122,'
73206 ') =  'R' AND 
73207 NVL(p_source_98,'
73208 ') <>  'EXCHANGE RATE VARIANCE' AND 
73209 NVL(p_source_98,'
73210 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
73211 NVL(p_source_98,'
73212 ') <>  'BANK CHARGE' AND 
73213 NVL(p_source_98,'
73214 ') <>  'BANK ERROR'
73215  THEN 
73216 
73217    --
73218    XLA_AE_LINES_PKG.SetNewLine;
73219 
73220    p_balance_type_code          := l_balance_type_code;
73221    -- set the flag so later we will know whether the gain loss line needs to be created
73222    
73223    IF(l_balance_type_code = 'A' ) THEN
73224      p_actual_flag :='G';
73225    END IF;
73226 
73227    --
73228    -- bulk performance
73229    --
73230    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
73231                                       p_header_num   => 0); -- 4262811
73232    --
73233    -- set accounting line options
73234    --
73235    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
73236            p_natural_side_code          => 'C'
73237          , p_gain_or_loss_flag          => 'Y'
73238          , p_gl_transfer_mode_code      => 'S'
73239          , p_acct_entry_type_code       => 'A'
73240          , p_switch_side_flag           => 'Y'
73241          , p_merge_duplicate_code       => 'A'
73242          );
73243    --
73244    l_acc_rev_natural_side_code := 'D';  -- 4262811
73245    -- 
73246    --
73247    -- set accounting line type info
73248    --
73249    xla_ae_lines_pkg.SetAcctLineType
73250       (p_component_type             => l_component_type
73251       ,p_event_type_code            => l_event_type_code
73252       ,p_line_definition_owner_code => l_line_definition_owner_code
73253       ,p_line_definition_code       => l_line_definition_code
73254       ,p_accounting_line_code       => l_component_code
73255       ,p_accounting_line_type_code  => l_component_type_code
73256       ,p_accounting_line_appl_id    => l_component_appl_id
73257       ,p_amb_context_code           => l_amb_context_code
73258       ,p_entity_code                => l_entity_code
73259       ,p_event_class_code           => l_event_class_code);
73260    --
73261    -- set accounting class
73262    --
73263    xla_ae_lines_pkg.SetAcctClass(
73264            p_accounting_class_code  => 'GAIN'
73265          , p_ae_header_id           => l_ae_header_id
73266          );
73267 
73268    --
73269    -- set rounding class
73270    --
73271    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
73272                       'GAIN';
73273 
73274    --
73275    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
73276    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
73277    --
73278    -- bulk performance
73279    --
73280    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
73281 
73282    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
73283       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
73284 
73285    -- 4955764
73286    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
73287       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
73288 
73289    -- 4458381 Public Sector Enh
73290    
73291    --
73292    -- set accounting attributes for the line type
73293    --
73294    l_entered_amt_idx := 9;
73295    l_accted_amt_idx  := 14;
73296    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
73297    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
73298    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
73299    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
73300    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
73301    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
73302    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
73303    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
73304    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
73305    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
73306    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
73307    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
73308    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
73309    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
73313    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
73310    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
73311    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
73312    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
73314    l_rec_acct_attrs.array_num_value(9)  := p_source_99;
73315    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
73316    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
73317    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
73318    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
73319    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
73320    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
73321    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
73322    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
73323    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
73324    l_rec_acct_attrs.array_num_value(14)  := p_source_153;
73325    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
73326    l_rec_acct_attrs.array_char_value(15)  := p_source_80;
73327    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
73328    l_rec_acct_attrs.array_num_value(16)  := p_source_110;
73329    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
73330    l_rec_acct_attrs.array_num_value(17)  := p_source_111;
73331    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
73332    l_rec_acct_attrs.array_char_value(18)  := p_source_83;
73333    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
73334    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_112);
73335    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
73336    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
73337    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
73338    l_rec_acct_attrs.array_num_value(21)  := p_source_86;
73339    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
73340    l_rec_acct_attrs.array_num_value(22)  := p_source_87;
73341    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
73342    l_rec_acct_attrs.array_num_value(23)  := p_source_88;
73343 
73344    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
73345    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
73346 
73347    ---------------------------------------------------------------------------------------------------------------
73348    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
73349    ---------------------------------------------------------------------------------------------------------------
73350    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
73351 
73352    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
73353    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
73354 
73355    IF xla_accounting_cache_pkg.GetValueChar
73356          (p_source_code         => 'LEDGER_CATEGORY_CODE'
73357          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
73358    AND l_bflow_method_code = 'PRIOR_ENTRY'
73359 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
73360    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
73361          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
73362        )
73363    THEN
73364          xla_ae_lines_pkg.BflowUpgEntry
73365            (p_business_method_code    => l_bflow_method_code
73366            ,p_business_class_code     => l_bflow_class_code
73367            ,p_balance_type            => l_balance_type_code);
73368    ELSE
73369       NULL;
73370 -- No business flow processing for business flow method of NONE.
73371    END IF;
73372 
73373    --
73374    -- call analytical criteria
73375    --
73376    
73377    --
73378    -- call description
73379    --
73380    -- No description or it is inherited.
73381    --
73382    -- call ADRs
73383    -- Bug 4922099
73384    --
73385    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
73386         (NVL(l_actual_upg_option, 'N') = 'O') OR
73387         (NVL(l_enc_upg_option, 'N') = 'O')
73388       )
73389    THEN
73390    NULL;
73391    --
73392    --
73393    
73394   l_ccid := AcctDerRule_38(
73395            p_application_id           => p_application_id
73396          , p_ae_header_id             => l_ae_header_id 
73397 , p_source_15 => p_source_15
73398 , p_source_15_meaning => p_source_15_meaning
73399 , p_source_30 => p_source_30
73400 , p_source_36 => p_source_36
73401 , p_source_37 => p_source_37
73402          , x_transaction_coa_id       => l_adr_transaction_coa_id
73403          , x_accounting_coa_id        => l_adr_accounting_coa_id
73404          , x_value_type_code          => l_adr_value_type_code
73405          , p_side                     => 'NA'
73406    );
73407 
73408    xla_ae_lines_pkg.set_ccid(
73409     p_code_combination_id          => l_ccid
73410   , p_value_type_code              => l_adr_value_type_code
73411   , p_transaction_coa_id           => l_adr_transaction_coa_id
73412   , p_accounting_coa_id            => l_adr_accounting_coa_id
73413   , p_adr_code                     => 'AP_REAL_GAIN'
73414   , p_adr_type_code                => 'S'
73415   , p_component_type               => l_component_type
73419   , p_amb_context_code             => l_amb_context_code
73416   , p_component_code               => l_component_code
73417   , p_component_type_code          => l_component_type_code
73418   , p_component_appl_id            => l_component_appl_id
73420   , p_side                         => 'NA'
73421   );
73422 
73423 
73424    l_segment := AcctDerRule_22(
73425            p_application_id           => p_application_id
73426          , p_ae_header_id             => l_ae_header_id 
73427 , p_source_15 => p_source_15
73428 , p_source_15_meaning => p_source_15_meaning
73429 , p_source_30 => p_source_30
73430          , x_transaction_coa_id       => l_adr_transaction_coa_id
73431          , x_accounting_coa_id        => l_adr_accounting_coa_id
73432          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
73433          , x_flex_value_set_id        => l_adr_flex_value_set_id
73434          , x_value_type_code          => l_adr_value_type_code
73435          , x_value_combination_id     => l_adr_value_combination_id
73436          , x_value_segment_code       => l_adr_value_segment_code
73437          , p_side                     => 'NA'
73438          , p_override_seg_flag        => 'Y'
73439    );
73440 
73441    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
73442 
73443       xla_ae_lines_pkg.set_segment(
73444           p_to_segment_code         => 'GL_BALANCING'
73445         , p_segment_value           => l_segment
73446         , p_from_segment_code       => l_adr_value_segment_code
73447         , p_from_combination_id     => l_adr_value_combination_id
73448         , p_value_type_code         => l_adr_value_type_code
73449         , p_transaction_coa_id      => l_adr_transaction_coa_id
73450         , p_accounting_coa_id       => l_adr_accounting_coa_id
73451         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
73452         , p_flex_value_set_id       => l_adr_flex_value_set_id
73453         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
73454         , p_adr_type_code           => 'S'
73455         , p_component_type          => l_component_type
73456         , p_component_code          => l_component_code
73457         , p_component_type_code     => l_component_type_code
73458         , p_component_appl_id       => l_component_appl_id
73459         , p_amb_context_code        => l_amb_context_code
73460         , p_entity_code             => 'AP_PAYMENTS'
73461         , p_event_class_code        => 'REFUNDS'
73462         , p_side                    => 'NA'
73463         );
73464 
73465   END IF;
73466 
73467    l_segment := AcctDerRule_17(
73468            p_application_id           => p_application_id
73469          , p_ae_header_id             => l_ae_header_id 
73470 , p_source_15 => p_source_15
73471 , p_source_15_meaning => p_source_15_meaning
73472 , p_source_36 => p_source_36
73473 , p_source_37 => p_source_37
73474          , x_transaction_coa_id       => l_adr_transaction_coa_id
73475          , x_accounting_coa_id        => l_adr_accounting_coa_id
73476          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
73477          , x_flex_value_set_id        => l_adr_flex_value_set_id
73478          , x_value_type_code          => l_adr_value_type_code
73479          , x_value_combination_id     => l_adr_value_combination_id
73480          , x_value_segment_code       => l_adr_value_segment_code
73481          , p_side                     => 'NA'
73482          , p_override_seg_flag        => 'Y'
73483    );
73484 
73485    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
73486 
73487       xla_ae_lines_pkg.set_segment(
73488           p_to_segment_code         => 'GL_ACCOUNT'
73489         , p_segment_value           => l_segment
73490         , p_from_segment_code       => l_adr_value_segment_code
73491         , p_from_combination_id     => l_adr_value_combination_id
73492         , p_value_type_code         => l_adr_value_type_code
73493         , p_transaction_coa_id      => l_adr_transaction_coa_id
73494         , p_accounting_coa_id       => l_adr_accounting_coa_id
73495         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
73496         , p_flex_value_set_id       => l_adr_flex_value_set_id
73497         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
73498         , p_adr_type_code           => 'S'
73499         , p_component_type          => l_component_type
73500         , p_component_code          => l_component_code
73501         , p_component_type_code     => l_component_type_code
73502         , p_component_appl_id       => l_component_appl_id
73503         , p_amb_context_code        => l_amb_context_code
73504         , p_entity_code             => 'AP_PAYMENTS'
73505         , p_event_class_code        => 'REFUNDS'
73506         , p_side                    => 'NA'
73507         );
73508 
73509   END IF;
73510 
73511    --
73512    --
73513    END IF;
73514    --
73515    -- Bug 4922099
73516    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
73517           (NVL(l_enc_upg_option, 'N') = 'O')
73518         ) AND
73519         (l_bflow_method_code = 'PRIOR_ENTRY')
73520       )
73521    THEN
73522       IF
73523       --
73524       1 = 2
73525       --
73526       THEN
73527       xla_accounting_err_pkg.build_message
73528                                     (p_appli_s_name            => 'XLA'
73529                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
73530                                     ,p_token_1                 => 'LINE_NUMBER'
73531                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
73535                                                                             ,l_component_code
73532                                     ,p_token_2                 => 'LINE_TYPE_NAME'
73533                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
73534                                                                              l_component_type
73536                                                                             ,l_component_type_code
73537                                                                             ,l_component_appl_id
73538                                                                             ,l_amb_context_code
73539                                                                             ,l_entity_code
73540                                                                             ,l_event_class_code
73541                                                                            )
73542                                     ,p_token_3                 => 'OWNER'
73543                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
73544                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
73545                                                                           ,p_lookup_code    => l_component_type_code
73546                                                                          )
73547                                     ,p_token_4                 => 'PRODUCT_NAME'
73548                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
73549                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
73550                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
73551                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
73552                                     ,p_ae_header_id            =>  NULL
73553                                        );
73554 
73555         IF (C_LEVEL_ERROR>= g_log_level) THEN
73556                  trace
73557                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
73558                       ,p_level    => C_LEVEL_ERROR
73559                       ,p_module   => l_log_module);
73560         END IF;
73561       END IF;
73562    END IF;
73563    --
73564    --
73565    ------------------------------------------------------------------------------------------------
73566    -- 4219869 Business Flow
73567    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
73568    -- Prior Entry.  Currently, the following code is always generated.
73569    ------------------------------------------------------------------------------------------------
73570    XLA_AE_LINES_PKG.ValidateCurrentLine;
73571 
73572    ------------------------------------------------------------------------------------
73573    -- 4219869 Business Flow
73574    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
73575    ------------------------------------------------------------------------------------
73576    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
73577 
73578    ----------------------------------------------------------------------------------
73579    -- 4219869 Business Flow
73580    -- Update journal entry status -- Need to generate this within IF <condition>
73581    ----------------------------------------------------------------------------------
73582    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
73583          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
73584          ,p_balance_type_code => l_balance_type_code
73585          );
73586 
73587    -------------------------------------------------------------------------------------------
73588    -- 4262811 - Generate the Accrual Reversal lines
73589    -------------------------------------------------------------------------------------------
73590    BEGIN
73591       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
73592                               (g_array_event(p_event_id).array_value_num('header_index'));
73593       IF l_acc_rev_flag IS NULL THEN
73594          l_acc_rev_flag := 'N';
73595       END IF;
73596    EXCEPTION
73597       WHEN OTHERS THEN
73598          l_acc_rev_flag := 'N';
73599    END;
73600    --
73601    IF (l_acc_rev_flag = 'Y') THEN
73602 
73603        -- 4645092  ------------------------------------------------------------------------------
73604        -- To allow MPA report to determine if it should generate report process
73605        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
73606        ------------------------------------------------------------------------------------------
73607 
73608        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
73609        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
73610    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
73611    -- call ADRs
73612    -- Bug 4922099
73613    --
73614    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
73615         (NVL(l_actual_upg_option, 'N') = 'O') OR
73616         (NVL(l_enc_upg_option, 'N') = 'O')
73617       )
73618    THEN
73619    NULL;
73620    --
73621    --
73622    
73623   l_ccid := AcctDerRule_38(
73624            p_application_id           => p_application_id
73625          , p_ae_header_id             => l_ae_header_id 
73626 , p_source_15 => p_source_15
73630 , p_source_37 => p_source_37
73627 , p_source_15_meaning => p_source_15_meaning
73628 , p_source_30 => p_source_30
73629 , p_source_36 => p_source_36
73631          , x_transaction_coa_id       => l_adr_transaction_coa_id
73632          , x_accounting_coa_id        => l_adr_accounting_coa_id
73633          , x_value_type_code          => l_adr_value_type_code
73634          , p_side                     => 'NA'
73635    );
73636 
73637    xla_ae_lines_pkg.set_ccid(
73638     p_code_combination_id          => l_ccid
73639   , p_value_type_code              => l_adr_value_type_code
73640   , p_transaction_coa_id           => l_adr_transaction_coa_id
73641   , p_accounting_coa_id            => l_adr_accounting_coa_id
73642   , p_adr_code                     => 'AP_REAL_GAIN'
73643   , p_adr_type_code                => 'S'
73644   , p_component_type               => l_component_type
73645   , p_component_code               => l_component_code
73646   , p_component_type_code          => l_component_type_code
73647   , p_component_appl_id            => l_component_appl_id
73648   , p_amb_context_code             => l_amb_context_code
73649   , p_side                         => 'NA'
73650   );
73651 
73652 
73653    l_segment := AcctDerRule_22(
73654            p_application_id           => p_application_id
73655          , p_ae_header_id             => l_ae_header_id 
73656 , p_source_15 => p_source_15
73657 , p_source_15_meaning => p_source_15_meaning
73658 , p_source_30 => p_source_30
73659          , x_transaction_coa_id       => l_adr_transaction_coa_id
73660          , x_accounting_coa_id        => l_adr_accounting_coa_id
73661          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
73662          , x_flex_value_set_id        => l_adr_flex_value_set_id
73663          , x_value_type_code          => l_adr_value_type_code
73664          , x_value_combination_id     => l_adr_value_combination_id
73665          , x_value_segment_code       => l_adr_value_segment_code
73666          , p_side                     => 'NA'
73667          , p_override_seg_flag        => 'Y'
73668    );
73669 
73670    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
73671 
73672       xla_ae_lines_pkg.set_segment(
73673           p_to_segment_code         => 'GL_BALANCING'
73674         , p_segment_value           => l_segment
73675         , p_from_segment_code       => l_adr_value_segment_code
73676         , p_from_combination_id     => l_adr_value_combination_id
73677         , p_value_type_code         => l_adr_value_type_code
73678         , p_transaction_coa_id      => l_adr_transaction_coa_id
73679         , p_accounting_coa_id       => l_adr_accounting_coa_id
73680         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
73681         , p_flex_value_set_id       => l_adr_flex_value_set_id
73682         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
73683         , p_adr_type_code           => 'S'
73684         , p_component_type          => l_component_type
73685         , p_component_code          => l_component_code
73686         , p_component_type_code     => l_component_type_code
73687         , p_component_appl_id       => l_component_appl_id
73688         , p_amb_context_code        => l_amb_context_code
73689         , p_entity_code             => 'AP_PAYMENTS'
73690         , p_event_class_code        => 'REFUNDS'
73691         , p_side                    => 'NA'
73692         );
73693 
73694   END IF;
73695 
73696    l_segment := AcctDerRule_17(
73697            p_application_id           => p_application_id
73698          , p_ae_header_id             => l_ae_header_id 
73699 , p_source_15 => p_source_15
73700 , p_source_15_meaning => p_source_15_meaning
73701 , p_source_36 => p_source_36
73702 , p_source_37 => p_source_37
73703          , x_transaction_coa_id       => l_adr_transaction_coa_id
73704          , x_accounting_coa_id        => l_adr_accounting_coa_id
73705          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
73706          , x_flex_value_set_id        => l_adr_flex_value_set_id
73707          , x_value_type_code          => l_adr_value_type_code
73708          , x_value_combination_id     => l_adr_value_combination_id
73709          , x_value_segment_code       => l_adr_value_segment_code
73710          , p_side                     => 'NA'
73711          , p_override_seg_flag        => 'Y'
73712    );
73713 
73714    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
73715 
73716       xla_ae_lines_pkg.set_segment(
73717           p_to_segment_code         => 'GL_ACCOUNT'
73718         , p_segment_value           => l_segment
73719         , p_from_segment_code       => l_adr_value_segment_code
73720         , p_from_combination_id     => l_adr_value_combination_id
73721         , p_value_type_code         => l_adr_value_type_code
73722         , p_transaction_coa_id      => l_adr_transaction_coa_id
73723         , p_accounting_coa_id       => l_adr_accounting_coa_id
73724         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
73725         , p_flex_value_set_id       => l_adr_flex_value_set_id
73726         , p_adr_code                => 'AP_REAL_GAIN_NAT_ACCT_SEG'
73727         , p_adr_type_code           => 'S'
73728         , p_component_type          => l_component_type
73729         , p_component_code          => l_component_code
73730         , p_component_type_code     => l_component_type_code
73731         , p_component_appl_id       => l_component_appl_id
73732         , p_amb_context_code        => l_amb_context_code
73733         , p_entity_code             => 'AP_PAYMENTS'
73737 
73734         , p_event_class_code        => 'REFUNDS'
73735         , p_side                    => 'NA'
73736         );
73738   END IF;
73739 
73740    --
73741    --
73742    END IF;
73743 
73744        --
73745        -- Update the line information that should be overwritten
73746        --
73747        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
73748                                          p_header_num   => 1);
73749        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
73750 
73751        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
73752 
73753        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
73754           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
73755        END IF;
73756 
73757       --
73758       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
73759       --
73760       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
73761           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
73762       ELSE
73763           ---------------------------------------------------------------------------------------------------
73764           -- 4262811a Switch Sign
73765           ---------------------------------------------------------------------------------------------------
73766           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
73767           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
73768                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73769           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
73770                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73771           -- 5132302
73772           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
73773                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
73774 
73775       END IF;
73776 
73777       -- 4955764
73778       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
73779       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
73780 
73781 
73782       XLA_AE_LINES_PKG.ValidateCurrentLine;
73783       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
73784 
73785       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
73786                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
73787                ,p_balance_type_code => l_balance_type_code);
73788 
73789    END IF;
73790 
73791    -----------------------------------------------------------------------------------------
73792    -- 4262811 Multiperiod Accounting
73793    -----------------------------------------------------------------------------------------
73794      -- No MPA option is assigned.
73795 
73796 
73797 END IF;
73798 END IF;
73799 --
73800 
73801 --
73802 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73803    trace
73804       (p_msg      => 'END of AcctLineType_135'
73805       ,p_level    => C_LEVEL_PROCEDURE
73806       ,p_module   => l_log_module);
73807 END IF;
73808 --
73809 EXCEPTION
73810   WHEN xla_exceptions_pkg.application_exception THEN
73811       RAISE;
73812   WHEN OTHERS THEN
73813        xla_exceptions_pkg.raise_message
73814            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_135');
73815 END AcctLineType_135;
73816 --
73817 
73818 ---------------------------------------
73819 --
73820 -- PRIVATE FUNCTION
73821 --         AcctLineType_136
73822 --
73823 ---------------------------------------
73824 PROCEDURE AcctLineType_136 (
73825   p_application_id        IN NUMBER
73826  ,p_event_id              IN NUMBER
73827  ,p_calculate_acctd_flag  IN VARCHAR2
73828  ,p_calculate_g_l_flag    IN VARCHAR2
73829  ,p_actual_flag           IN OUT VARCHAR2
73830  ,p_balance_type_code     OUT VARCHAR2
73831  ,p_gain_or_loss_ref      OUT VARCHAR2
73832  
73833 --Payment Currency Code
73834  , p_source_13            IN VARCHAR2
73835 --Interest Account
73836  , p_source_28            IN NUMBER
73837 --Prorate Interest Invoice Across Distributions Option
73838  , p_source_29            IN VARCHAR2
73839 --Invoice Distribution Account
73840  , p_source_30            IN NUMBER
73841 --Invoice Distribution Type
73842  , p_source_33            IN VARCHAR2
73843  , p_source_33_meaning    IN VARCHAR2
73844 --Accounting Reversal Indicator
73845  , p_source_53            IN VARCHAR2
73846 --Distribution Link Type
73847  , p_source_55            IN VARCHAR2
73848 --Override Accounted Amount Indicator
73849  , p_source_80            IN VARCHAR2
73850  , p_source_80_meaning    IN VARCHAR2
73851 --Third Party Type
73852  , p_source_83            IN VARCHAR2
73853 --Invoice Distribution Tax Line Identifier
73854  , p_source_86            IN NUMBER
73855 --Invoice Distribution Summary Tax Line Identifier
73856  , p_source_88            IN NUMBER
73857 --Business Flow Accounts Payable Application Identifier
73858  , p_source_91            IN NUMBER
73862  , p_source_98            IN VARCHAR2
73859 --When to Account for Payment Option
73860  , p_source_97            IN VARCHAR2
73861 --Payment Distribution Type
73863  , p_source_98_meaning    IN VARCHAR2
73864 --Payment Distribution Amount
73865  , p_source_99            IN NUMBER
73866 --Business Flow Payment Distribution Type
73867  , p_source_100            IN VARCHAR2
73868 --Business Flow Payment Entity Code
73869  , p_source_101            IN VARCHAR2
73870 --Business Flow Payment Distribution Identifier
73871  , p_source_102            IN NUMBER
73872 --Business Flow Payment Identifier
73873  , p_source_103            IN NUMBER
73874 --Payment Distribution Identifier
73875  , p_source_104            IN NUMBER
73876 --Cleared Exchange Date
73877  , p_source_106            IN DATE
73878 --Cleared Exchange Rate
73879  , p_source_107            IN NUMBER
73880 --Cleared Exchange Rate Type
73881  , p_source_108            IN VARCHAR2
73882 --Payment Distribution (Cleared Rate) Ledger Amount
73883  , p_source_109            IN NUMBER
73884 --Payment Supplier Identifier
73885  , p_source_110            IN NUMBER
73886 --Payment Supplier Site Identifier
73887  , p_source_111            IN NUMBER
73888 --Payment Distribution Reversed Identifier
73889  , p_source_112            IN NUMBER
73890 --Payment Type
73891  , p_source_122            IN VARCHAR2
73892  , p_source_122_meaning    IN VARCHAR2
73893 --Invoice Type Paid
73894  , p_source_163            IN VARCHAR2
73895  , p_source_163_meaning    IN VARCHAR2
73896 )
73897 IS
73898 
73899 l_component_type              VARCHAR2(80);
73900 l_component_code              VARCHAR2(30);
73901 l_component_type_code         VARCHAR2(1);
73902 l_component_appl_id           INTEGER;
73903 l_amb_context_code            VARCHAR2(30);
73904 l_entity_code                 VARCHAR2(30);
73905 l_event_class_code            VARCHAR2(30);
73906 l_ae_header_id                NUMBER;
73907 l_event_type_code             VARCHAR2(30);
73908 l_line_definition_code        VARCHAR2(30);
73909 l_line_definition_owner_code  VARCHAR2(1);
73910 --
73911 -- adr variables
73912 l_segment                     VARCHAR2(30);
73913 l_ccid                        NUMBER;
73914 l_adr_transaction_coa_id      NUMBER;
73915 l_adr_accounting_coa_id       NUMBER;
73916 l_adr_flexfield_segment_code  VARCHAR2(30);
73917 l_adr_flex_value_set_id       NUMBER;
73918 l_adr_value_type_code         VARCHAR2(30);
73919 l_adr_value_combination_id    NUMBER;
73920 l_adr_value_segment_code      VARCHAR2(30);
73921 
73922 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
73923 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
73924 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
73925 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
73926 
73927 -- 4262811 Variables ------------------------------------------------------------------------------------------
73928 l_entered_amt_idx             NUMBER;
73929 l_accted_amt_idx              NUMBER;
73930 l_acc_rev_flag                VARCHAR2(1);
73931 l_accrual_line_num            NUMBER;
73932 l_tmp_amt                     NUMBER;
73933 l_acc_rev_natural_side_code   VARCHAR2(1);
73934 
73935 l_num_entries                 NUMBER;
73936 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
73937 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
73938 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
73939 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
73940 l_recog_line_1                NUMBER;
73941 l_recog_line_2                NUMBER;
73942 
73943 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
73944 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
73945 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
73946 
73947 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
73948 
73949 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
73950 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
73951 
73952 ---------------------------------------------------------------------------------------------------------------
73953 
73954 
73955 --
73956 -- bulk performance
73957 --
73958 l_balance_type_code           VARCHAR2(1);
73959 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
73960 l_log_module                  VARCHAR2(240);
73961 
73962 --
73963 -- Upgrade strategy
73964 --
73965 l_actual_upg_option           VARCHAR2(1);
73966 l_enc_upg_option           VARCHAR2(1);
73967 
73968 --
73969 BEGIN
73970 --
73971 IF g_log_enabled THEN
73972       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_136';
73973 END IF;
73974 --
73975 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73976 
73977       trace
73978          (p_msg      => 'BEGIN of AcctLineType_136'
73979          ,p_level    => C_LEVEL_PROCEDURE
73980          ,p_module   => l_log_module);
73981 
73982 END IF;
73983 --
73984 l_component_type             := 'AMB_JLT';
73985 l_component_code             := 'AP_INTEREST_EXPENSE_CLEAR';
73986 l_component_type_code        := 'S';
73987 l_component_appl_id          :=  200;
73988 l_amb_context_code           := 'DEFAULT';
73989 l_entity_code                := 'AP_PAYMENTS';
73990 l_event_class_code           := 'RECONCILED PAYMENTS';
73994 --
73991 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
73992 l_line_definition_owner_code := 'S';
73993 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
73995 l_balance_type_code          := 'A';
73996 l_segment                     := NULL;
73997 l_ccid                        := NULL;
73998 l_adr_transaction_coa_id      := NULL;
73999 l_adr_accounting_coa_id       := NULL;
74000 l_adr_flexfield_segment_code  := NULL;
74001 l_adr_flex_value_set_id       := NULL;
74002 l_adr_value_type_code         := NULL;
74003 l_adr_value_combination_id    := NULL;
74004 l_adr_value_segment_code      := NULL;
74005 
74006 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
74007 l_bflow_class_code           := '';    -- 4219869 Business Flow
74008 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
74009 l_budgetary_control_flag     := 'N';
74010 
74011 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
74012 l_bflow_applied_to_amt       := NULL; -- 5132302
74013 l_entered_amt_idx            := NULL;          -- 4262811
74014 l_accted_amt_idx             := NULL;          -- 4262811
74015 l_acc_rev_flag               := NULL;          -- 4262811
74016 l_accrual_line_num           := NULL;          -- 4262811
74017 l_tmp_amt                    := NULL;          -- 4262811
74018 --
74019  
74020 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
74021     l_balance_type_code <> 'B' THEN
74022 IF NVL(p_source_97,'
74023 ') =  'CLEAR_CLEAR' AND 
74024 NVL(p_source_33,'
74025 ') =  'ITEM' AND 
74026 NVL(p_source_163,'
74027 ') =  'INTEREST' AND 
74028 (NVL(p_source_98,'
74029 ') =  'CASH' OR 
74030 NVL(p_source_98,'
74031 ') =  'DISCOUNT') AND 
74032 NVL(p_source_122,'
74033 ') <>  'R'
74034  THEN 
74035 
74036    --
74037    XLA_AE_LINES_PKG.SetNewLine;
74038 
74039    p_balance_type_code          := l_balance_type_code;
74040    -- set the flag so later we will know whether the gain loss line needs to be created
74041    
74042    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
74043      p_actual_flag :='A';
74044    END IF;
74045 
74046    --
74047    -- bulk performance
74048    --
74049    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
74050                                       p_header_num   => 0); -- 4262811
74051    --
74052    -- set accounting line options
74053    --
74054    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
74055            p_natural_side_code          => 'D'
74056          , p_gain_or_loss_flag          => 'N'
74057          , p_gl_transfer_mode_code      => 'S'
74058          , p_acct_entry_type_code       => 'A'
74059          , p_switch_side_flag           => 'Y'
74060          , p_merge_duplicate_code       => 'A'
74061          );
74062    --
74063    l_acc_rev_natural_side_code := 'C';  -- 4262811
74064    -- 
74065    --
74066    -- set accounting line type info
74067    --
74068    xla_ae_lines_pkg.SetAcctLineType
74069       (p_component_type             => l_component_type
74070       ,p_event_type_code            => l_event_type_code
74071       ,p_line_definition_owner_code => l_line_definition_owner_code
74072       ,p_line_definition_code       => l_line_definition_code
74073       ,p_accounting_line_code       => l_component_code
74074       ,p_accounting_line_type_code  => l_component_type_code
74075       ,p_accounting_line_appl_id    => l_component_appl_id
74076       ,p_amb_context_code           => l_amb_context_code
74077       ,p_entity_code                => l_entity_code
74078       ,p_event_class_code           => l_event_class_code);
74079    --
74080    -- set accounting class
74081    --
74082    xla_ae_lines_pkg.SetAcctClass(
74083            p_accounting_class_code  => 'INTEREST_EXPENSE'
74084          , p_ae_header_id           => l_ae_header_id
74085          );
74086 
74087    --
74088    -- set rounding class
74089    --
74090    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
74091                       'INTEREST_EXPENSE';
74092 
74093    --
74094    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
74095    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
74096    --
74097    -- bulk performance
74098    --
74099    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
74100 
74101    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
74102       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
74103 
74104    -- 4955764
74105    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
74106       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
74107 
74108    -- 4458381 Public Sector Enh
74109    
74110    --
74111    -- set accounting attributes for the line type
74112    --
74113    l_entered_amt_idx := 10;
74114    l_accted_amt_idx  := 15;
74115    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
74116    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
74117    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
74118    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
74119    l_rec_acct_attrs.array_num_value(2)  := p_source_99;
74123    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
74120    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
74121    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
74122    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
74124    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
74125    l_rec_acct_attrs.array_char_value(5)  := p_source_101;
74126    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
74127    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
74128    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
74129    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
74130    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
74131    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
74132    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
74133    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
74134    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
74135    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
74136    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
74137    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
74138    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
74139    l_rec_acct_attrs.array_date_value(12)  := p_source_106;
74140    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
74141    l_rec_acct_attrs.array_num_value(13)  := p_source_107;
74142    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
74143    l_rec_acct_attrs.array_char_value(14)  := p_source_108;
74144    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
74145    l_rec_acct_attrs.array_num_value(15)  := p_source_109;
74146    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
74147    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
74148    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
74149    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
74150    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
74151    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
74152    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
74153    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
74154    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
74155    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
74156    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
74157    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
74158    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
74159    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
74160    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
74161    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
74162    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
74163    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
74164 
74165    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
74166    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
74167 
74168    ---------------------------------------------------------------------------------------------------------------
74169    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
74170    ---------------------------------------------------------------------------------------------------------------
74171    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
74172 
74173    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
74174    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
74175 
74176    IF xla_accounting_cache_pkg.GetValueChar
74177          (p_source_code         => 'LEDGER_CATEGORY_CODE'
74178          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
74179    AND l_bflow_method_code = 'PRIOR_ENTRY'
74180 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
74181    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
74182          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
74183        )
74184    THEN
74185          xla_ae_lines_pkg.BflowUpgEntry
74186            (p_business_method_code    => l_bflow_method_code
74187            ,p_business_class_code     => l_bflow_class_code
74188            ,p_balance_type            => l_balance_type_code);
74189    ELSE
74190       NULL;
74191 -- No business flow processing for business flow method of NONE.
74192    END IF;
74193 
74194    --
74195    -- call analytical criteria
74196    --
74197    
74198    --
74199    -- call description
74200    --
74201    -- No description or it is inherited.
74202    --
74203    -- call ADRs
74204    -- Bug 4922099
74205    --
74206    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
74207         (NVL(l_actual_upg_option, 'N') = 'O') OR
74208         (NVL(l_enc_upg_option, 'N') = 'O')
74209       )
74210    THEN
74211    NULL;
74212    --
74213    --
74214    
74215   l_ccid := AcctDerRule_32(
74216            p_application_id           => p_application_id
74217          , p_ae_header_id             => l_ae_header_id 
74218 , p_source_28 => p_source_28
74219 , p_source_29 => p_source_29
74220 , p_source_30 => p_source_30
74224          , p_side                     => 'NA'
74221          , x_transaction_coa_id       => l_adr_transaction_coa_id
74222          , x_accounting_coa_id        => l_adr_accounting_coa_id
74223          , x_value_type_code          => l_adr_value_type_code
74225    );
74226 
74227    xla_ae_lines_pkg.set_ccid(
74228     p_code_combination_id          => l_ccid
74229   , p_value_type_code              => l_adr_value_type_code
74230   , p_transaction_coa_id           => l_adr_transaction_coa_id
74231   , p_accounting_coa_id            => l_adr_accounting_coa_id
74232   , p_adr_code                     => 'AP_INTEREST'
74233   , p_adr_type_code                => 'S'
74234   , p_component_type               => l_component_type
74235   , p_component_code               => l_component_code
74236   , p_component_type_code          => l_component_type_code
74237   , p_component_appl_id            => l_component_appl_id
74238   , p_amb_context_code             => l_amb_context_code
74239   , p_side                         => 'NA'
74240   );
74241 
74242 
74243    l_segment := AcctDerRule_12(
74244            p_application_id           => p_application_id
74245          , p_ae_header_id             => l_ae_header_id 
74246 , p_source_28 => p_source_28
74247 , p_source_29 => p_source_29
74248          , x_transaction_coa_id       => l_adr_transaction_coa_id
74249          , x_accounting_coa_id        => l_adr_accounting_coa_id
74250          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
74251          , x_flex_value_set_id        => l_adr_flex_value_set_id
74252          , x_value_type_code          => l_adr_value_type_code
74253          , x_value_combination_id     => l_adr_value_combination_id
74254          , x_value_segment_code       => l_adr_value_segment_code
74255          , p_side                     => 'NA'
74256          , p_override_seg_flag        => 'Y'
74257    );
74258 
74259    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
74260 
74261       xla_ae_lines_pkg.set_segment(
74262           p_to_segment_code         => 'GL_ACCOUNT'
74263         , p_segment_value           => l_segment
74264         , p_from_segment_code       => l_adr_value_segment_code
74265         , p_from_combination_id     => l_adr_value_combination_id
74266         , p_value_type_code         => l_adr_value_type_code
74267         , p_transaction_coa_id      => l_adr_transaction_coa_id
74268         , p_accounting_coa_id       => l_adr_accounting_coa_id
74269         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
74270         , p_flex_value_set_id       => l_adr_flex_value_set_id
74271         , p_adr_code                => 'AP_INTEREST_NAT_ACCT_SEG'
74272         , p_adr_type_code           => 'S'
74273         , p_component_type          => l_component_type
74274         , p_component_code          => l_component_code
74275         , p_component_type_code     => l_component_type_code
74276         , p_component_appl_id       => l_component_appl_id
74277         , p_amb_context_code        => l_amb_context_code
74278         , p_entity_code             => 'AP_PAYMENTS'
74279         , p_event_class_code        => 'RECONCILED PAYMENTS'
74280         , p_side                    => 'NA'
74281         );
74282 
74283   END IF;
74284 
74285    --
74286    --
74287    END IF;
74288    --
74289    -- Bug 4922099
74290    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
74291           (NVL(l_enc_upg_option, 'N') = 'O')
74292         ) AND
74293         (l_bflow_method_code = 'PRIOR_ENTRY')
74294       )
74295    THEN
74296       IF
74297       --
74298       1 = 2
74299       --
74300       THEN
74301       xla_accounting_err_pkg.build_message
74302                                     (p_appli_s_name            => 'XLA'
74303                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
74304                                     ,p_token_1                 => 'LINE_NUMBER'
74305                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
74306                                     ,p_token_2                 => 'LINE_TYPE_NAME'
74307                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
74308                                                                              l_component_type
74309                                                                             ,l_component_code
74310                                                                             ,l_component_type_code
74311                                                                             ,l_component_appl_id
74312                                                                             ,l_amb_context_code
74313                                                                             ,l_entity_code
74314                                                                             ,l_event_class_code
74315                                                                            )
74316                                     ,p_token_3                 => 'OWNER'
74317                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
74318                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
74319                                                                           ,p_lookup_code    => l_component_type_code
74320                                                                          )
74321                                     ,p_token_4                 => 'PRODUCT_NAME'
74325                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
74322                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
74323                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
74324                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
74326                                     ,p_ae_header_id            =>  NULL
74327                                        );
74328 
74329         IF (C_LEVEL_ERROR>= g_log_level) THEN
74330                  trace
74331                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
74332                       ,p_level    => C_LEVEL_ERROR
74333                       ,p_module   => l_log_module);
74334         END IF;
74335       END IF;
74336    END IF;
74337    --
74338    --
74339    ------------------------------------------------------------------------------------------------
74340    -- 4219869 Business Flow
74341    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
74342    -- Prior Entry.  Currently, the following code is always generated.
74343    ------------------------------------------------------------------------------------------------
74344    XLA_AE_LINES_PKG.ValidateCurrentLine;
74345 
74346    ------------------------------------------------------------------------------------
74347    -- 4219869 Business Flow
74348    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
74349    ------------------------------------------------------------------------------------
74350    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
74351 
74352    ----------------------------------------------------------------------------------
74353    -- 4219869 Business Flow
74354    -- Update journal entry status -- Need to generate this within IF <condition>
74355    ----------------------------------------------------------------------------------
74356    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
74357          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
74358          ,p_balance_type_code => l_balance_type_code
74359          );
74360 
74361    -------------------------------------------------------------------------------------------
74362    -- 4262811 - Generate the Accrual Reversal lines
74363    -------------------------------------------------------------------------------------------
74364    BEGIN
74365       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
74366                               (g_array_event(p_event_id).array_value_num('header_index'));
74367       IF l_acc_rev_flag IS NULL THEN
74368          l_acc_rev_flag := 'N';
74369       END IF;
74370    EXCEPTION
74371       WHEN OTHERS THEN
74372          l_acc_rev_flag := 'N';
74373    END;
74374    --
74375    IF (l_acc_rev_flag = 'Y') THEN
74376 
74377        -- 4645092  ------------------------------------------------------------------------------
74378        -- To allow MPA report to determine if it should generate report process
74379        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
74380        ------------------------------------------------------------------------------------------
74381 
74382        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
74383        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
74384    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
74385    -- call ADRs
74386    -- Bug 4922099
74387    --
74388    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
74389         (NVL(l_actual_upg_option, 'N') = 'O') OR
74390         (NVL(l_enc_upg_option, 'N') = 'O')
74391       )
74392    THEN
74393    NULL;
74394    --
74395    --
74396    
74397   l_ccid := AcctDerRule_32(
74398            p_application_id           => p_application_id
74399          , p_ae_header_id             => l_ae_header_id 
74400 , p_source_28 => p_source_28
74401 , p_source_29 => p_source_29
74402 , p_source_30 => p_source_30
74403          , x_transaction_coa_id       => l_adr_transaction_coa_id
74404          , x_accounting_coa_id        => l_adr_accounting_coa_id
74405          , x_value_type_code          => l_adr_value_type_code
74406          , p_side                     => 'NA'
74407    );
74408 
74409    xla_ae_lines_pkg.set_ccid(
74410     p_code_combination_id          => l_ccid
74411   , p_value_type_code              => l_adr_value_type_code
74412   , p_transaction_coa_id           => l_adr_transaction_coa_id
74413   , p_accounting_coa_id            => l_adr_accounting_coa_id
74414   , p_adr_code                     => 'AP_INTEREST'
74415   , p_adr_type_code                => 'S'
74416   , p_component_type               => l_component_type
74417   , p_component_code               => l_component_code
74418   , p_component_type_code          => l_component_type_code
74419   , p_component_appl_id            => l_component_appl_id
74420   , p_amb_context_code             => l_amb_context_code
74421   , p_side                         => 'NA'
74422   );
74423 
74424 
74425    l_segment := AcctDerRule_12(
74426            p_application_id           => p_application_id
74427          , p_ae_header_id             => l_ae_header_id 
74428 , p_source_28 => p_source_28
74429 , p_source_29 => p_source_29
74430          , x_transaction_coa_id       => l_adr_transaction_coa_id
74431          , x_accounting_coa_id        => l_adr_accounting_coa_id
74435          , x_value_combination_id     => l_adr_value_combination_id
74432          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
74433          , x_flex_value_set_id        => l_adr_flex_value_set_id
74434          , x_value_type_code          => l_adr_value_type_code
74436          , x_value_segment_code       => l_adr_value_segment_code
74437          , p_side                     => 'NA'
74438          , p_override_seg_flag        => 'Y'
74439    );
74440 
74441    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
74442 
74443       xla_ae_lines_pkg.set_segment(
74444           p_to_segment_code         => 'GL_ACCOUNT'
74445         , p_segment_value           => l_segment
74446         , p_from_segment_code       => l_adr_value_segment_code
74447         , p_from_combination_id     => l_adr_value_combination_id
74448         , p_value_type_code         => l_adr_value_type_code
74449         , p_transaction_coa_id      => l_adr_transaction_coa_id
74450         , p_accounting_coa_id       => l_adr_accounting_coa_id
74451         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
74452         , p_flex_value_set_id       => l_adr_flex_value_set_id
74453         , p_adr_code                => 'AP_INTEREST_NAT_ACCT_SEG'
74454         , p_adr_type_code           => 'S'
74455         , p_component_type          => l_component_type
74456         , p_component_code          => l_component_code
74457         , p_component_type_code     => l_component_type_code
74458         , p_component_appl_id       => l_component_appl_id
74459         , p_amb_context_code        => l_amb_context_code
74460         , p_entity_code             => 'AP_PAYMENTS'
74461         , p_event_class_code        => 'RECONCILED PAYMENTS'
74462         , p_side                    => 'NA'
74463         );
74464 
74465   END IF;
74466 
74467    --
74468    --
74469    END IF;
74470 
74471        --
74472        -- Update the line information that should be overwritten
74473        --
74474        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
74475                                          p_header_num   => 1);
74476        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
74477 
74478        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
74479 
74480        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
74481           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
74482        END IF;
74483 
74484       --
74485       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
74486       --
74487       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
74488           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
74489       ELSE
74490           ---------------------------------------------------------------------------------------------------
74491           -- 4262811a Switch Sign
74492           ---------------------------------------------------------------------------------------------------
74493           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
74494           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
74495                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74496           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
74497                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74498           -- 5132302
74499           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
74500                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
74501 
74502       END IF;
74503 
74504       -- 4955764
74505       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
74506       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
74507 
74508 
74509       XLA_AE_LINES_PKG.ValidateCurrentLine;
74510       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
74511 
74512       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
74513                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
74514                ,p_balance_type_code => l_balance_type_code);
74515 
74516    END IF;
74517 
74518    -----------------------------------------------------------------------------------------
74519    -- 4262811 Multiperiod Accounting
74520    -----------------------------------------------------------------------------------------
74521      -- No MPA option is assigned.
74522 
74523 
74524 END IF;
74525 END IF;
74526 --
74527 
74528 --
74529 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74530    trace
74531       (p_msg      => 'END of AcctLineType_136'
74532       ,p_level    => C_LEVEL_PROCEDURE
74533       ,p_module   => l_log_module);
74534 END IF;
74535 --
74536 EXCEPTION
74537   WHEN xla_exceptions_pkg.application_exception THEN
74538       RAISE;
74539   WHEN OTHERS THEN
74540        xla_exceptions_pkg.raise_message
74541            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_136');
74542 END AcctLineType_136;
74543 --
74544 
74545 ---------------------------------------
74546 --
74550 ---------------------------------------
74547 -- PRIVATE FUNCTION
74548 --         AcctLineType_137
74549 --
74551 PROCEDURE AcctLineType_137 (
74552   p_application_id        IN NUMBER
74553  ,p_event_id              IN NUMBER
74554  ,p_calculate_acctd_flag  IN VARCHAR2
74555  ,p_calculate_g_l_flag    IN VARCHAR2
74556  ,p_actual_flag           IN OUT VARCHAR2
74557  ,p_balance_type_code     OUT VARCHAR2
74558  ,p_gain_or_loss_ref      OUT VARCHAR2
74559  
74560 --Payment Currency Code
74561  , p_source_13            IN VARCHAR2
74562 --Interest Account
74563  , p_source_28            IN NUMBER
74564 --Prorate Interest Invoice Across Distributions Option
74565  , p_source_29            IN VARCHAR2
74566 --Invoice Distribution Account
74567  , p_source_30            IN NUMBER
74568 --Invoice Distribution Type
74569  , p_source_33            IN VARCHAR2
74570  , p_source_33_meaning    IN VARCHAR2
74571 --Accounting Reversal Indicator
74572  , p_source_53            IN VARCHAR2
74573 --Distribution Link Type
74574  , p_source_55            IN VARCHAR2
74575 --Override Accounted Amount Indicator
74576  , p_source_80            IN VARCHAR2
74577  , p_source_80_meaning    IN VARCHAR2
74578 --Third Party Type
74579  , p_source_83            IN VARCHAR2
74580 --Invoice Distribution Tax Line Identifier
74581  , p_source_86            IN NUMBER
74582 --Invoice Distribution Tax Distribution Identifier from Tax
74583  , p_source_87            IN NUMBER
74584 --Invoice Distribution Summary Tax Line Identifier
74585  , p_source_88            IN NUMBER
74586 --Business Flow Accounts Payable Application Identifier
74587  , p_source_91            IN NUMBER
74588 --Business Flow Invoice Distribution Type
74589  , p_source_92            IN VARCHAR2
74590 --Business Flow Invoice Entity Code
74591  , p_source_93            IN VARCHAR2
74592 --Business Flow Invoice Distribution Identifier
74593  , p_source_94            IN NUMBER
74594 --Business Flow Invoice Identifier
74595  , p_source_95            IN NUMBER
74596 --When to Account for Payment Option
74597  , p_source_97            IN VARCHAR2
74598 --Payment Distribution Type
74599  , p_source_98            IN VARCHAR2
74600  , p_source_98_meaning    IN VARCHAR2
74601 --Payment Distribution Amount
74602  , p_source_99            IN NUMBER
74603 --Payment Distribution Identifier
74604  , p_source_104            IN NUMBER
74605 --Payment Supplier Identifier
74606  , p_source_110            IN NUMBER
74607 --Payment Supplier Site Identifier
74608  , p_source_111            IN NUMBER
74609 --Payment Distribution Reversed Identifier
74610  , p_source_112            IN NUMBER
74611 --Payment Distribution (Payment Rate) Ledger Amount
74612  , p_source_115            IN NUMBER
74613 --Payment Exchange Date
74614  , p_source_117            IN DATE
74615 --Payment Exchange Rate
74616  , p_source_118            IN NUMBER
74617 --Payment Exchange Rate Type
74618  , p_source_119            IN VARCHAR2
74619 --Payment Processing Type
74620  , p_source_123            IN VARCHAR2
74621 --Invoice Distribution Amount of the Payment Distribution
74622  , p_source_124            IN NUMBER
74623 --Invoice Type Paid
74624  , p_source_163            IN VARCHAR2
74625  , p_source_163_meaning    IN VARCHAR2
74626 )
74627 IS
74628 
74629 l_component_type              VARCHAR2(80);
74630 l_component_code              VARCHAR2(30);
74631 l_component_type_code         VARCHAR2(1);
74632 l_component_appl_id           INTEGER;
74633 l_amb_context_code            VARCHAR2(30);
74634 l_entity_code                 VARCHAR2(30);
74635 l_event_class_code            VARCHAR2(30);
74636 l_ae_header_id                NUMBER;
74637 l_event_type_code             VARCHAR2(30);
74638 l_line_definition_code        VARCHAR2(30);
74639 l_line_definition_owner_code  VARCHAR2(1);
74640 --
74641 -- adr variables
74642 l_segment                     VARCHAR2(30);
74643 l_ccid                        NUMBER;
74644 l_adr_transaction_coa_id      NUMBER;
74645 l_adr_accounting_coa_id       NUMBER;
74646 l_adr_flexfield_segment_code  VARCHAR2(30);
74647 l_adr_flex_value_set_id       NUMBER;
74648 l_adr_value_type_code         VARCHAR2(30);
74649 l_adr_value_combination_id    NUMBER;
74650 l_adr_value_segment_code      VARCHAR2(30);
74651 
74652 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
74653 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
74654 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
74655 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
74656 
74657 -- 4262811 Variables ------------------------------------------------------------------------------------------
74658 l_entered_amt_idx             NUMBER;
74659 l_accted_amt_idx              NUMBER;
74660 l_acc_rev_flag                VARCHAR2(1);
74661 l_accrual_line_num            NUMBER;
74662 l_tmp_amt                     NUMBER;
74663 l_acc_rev_natural_side_code   VARCHAR2(1);
74664 
74665 l_num_entries                 NUMBER;
74666 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
74667 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
74668 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
74669 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
74670 l_recog_line_1                NUMBER;
74671 l_recog_line_2                NUMBER;
74672 
74673 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
74677 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
74674 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
74675 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
74676 
74678 
74679 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
74680 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
74681 
74682 ---------------------------------------------------------------------------------------------------------------
74683 
74684 
74685 --
74686 -- bulk performance
74687 --
74688 l_balance_type_code           VARCHAR2(1);
74689 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
74690 l_log_module                  VARCHAR2(240);
74691 
74692 --
74693 -- Upgrade strategy
74694 --
74695 l_actual_upg_option           VARCHAR2(1);
74696 l_enc_upg_option           VARCHAR2(1);
74697 
74698 --
74699 BEGIN
74700 --
74701 IF g_log_enabled THEN
74702       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_137';
74703 END IF;
74704 --
74705 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74706 
74707       trace
74708          (p_msg      => 'BEGIN of AcctLineType_137'
74709          ,p_level    => C_LEVEL_PROCEDURE
74710          ,p_module   => l_log_module);
74711 
74712 END IF;
74713 --
74714 l_component_type             := 'AMB_JLT';
74715 l_component_code             := 'AP_INTEREST_EXPENSE_PMT';
74716 l_component_type_code        := 'S';
74717 l_component_appl_id          :=  200;
74718 l_amb_context_code           := 'DEFAULT';
74719 l_entity_code                := 'AP_PAYMENTS';
74720 l_event_class_code           := 'PAYMENTS';
74721 l_event_type_code            := 'PAYMENTS_ALL';
74722 l_line_definition_owner_code := 'S';
74723 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
74724 --
74725 l_balance_type_code          := 'A';
74726 l_segment                     := NULL;
74727 l_ccid                        := NULL;
74728 l_adr_transaction_coa_id      := NULL;
74729 l_adr_accounting_coa_id       := NULL;
74730 l_adr_flexfield_segment_code  := NULL;
74731 l_adr_flex_value_set_id       := NULL;
74732 l_adr_value_type_code         := NULL;
74733 l_adr_value_combination_id    := NULL;
74734 l_adr_value_segment_code      := NULL;
74735 
74736 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
74737 l_bflow_class_code           := '';    -- 4219869 Business Flow
74738 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
74739 l_budgetary_control_flag     := 'N';
74740 
74741 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
74742 l_bflow_applied_to_amt       := NULL; -- 5132302
74743 l_entered_amt_idx            := NULL;          -- 4262811
74744 l_accted_amt_idx             := NULL;          -- 4262811
74745 l_acc_rev_flag               := NULL;          -- 4262811
74746 l_accrual_line_num           := NULL;          -- 4262811
74747 l_tmp_amt                    := NULL;          -- 4262811
74748 --
74749  
74750 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
74751     l_balance_type_code <> 'B' THEN
74752 IF NVL(p_source_97,'
74753 ') <>  'CLEAR_CLEAR' AND 
74754 NVL(p_source_163,'
74755 ') =  'INTEREST' AND 
74756 NVL(p_source_33,'
74757 ') =  'ITEM' AND 
74758 (NVL(p_source_98,'
74759 ') =  'CASH' OR 
74760 NVL(p_source_98,'
74761 ') =  'DISCOUNT') AND 
74762 NVL(p_source_123,'
74763 ') <>  'PAYMENTCARD'
74764  THEN 
74765 
74766    --
74767    XLA_AE_LINES_PKG.SetNewLine;
74768 
74769    p_balance_type_code          := l_balance_type_code;
74770    -- set the flag so later we will know whether the gain loss line needs to be created
74771    
74772    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
74773      p_actual_flag :='A';
74774    END IF;
74775 
74776    --
74777    -- bulk performance
74778    --
74779    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
74780                                       p_header_num   => 0); -- 4262811
74781    --
74782    -- set accounting line options
74783    --
74784    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
74785            p_natural_side_code          => 'D'
74786          , p_gain_or_loss_flag          => 'N'
74787          , p_gl_transfer_mode_code      => 'S'
74788          , p_acct_entry_type_code       => 'A'
74789          , p_switch_side_flag           => 'Y'
74790          , p_merge_duplicate_code       => 'A'
74791          );
74792    --
74793    l_acc_rev_natural_side_code := 'C';  -- 4262811
74794    -- 
74795    --
74796    -- set accounting line type info
74797    --
74798    xla_ae_lines_pkg.SetAcctLineType
74799       (p_component_type             => l_component_type
74800       ,p_event_type_code            => l_event_type_code
74801       ,p_line_definition_owner_code => l_line_definition_owner_code
74802       ,p_line_definition_code       => l_line_definition_code
74803       ,p_accounting_line_code       => l_component_code
74804       ,p_accounting_line_type_code  => l_component_type_code
74805       ,p_accounting_line_appl_id    => l_component_appl_id
74806       ,p_amb_context_code           => l_amb_context_code
74807       ,p_entity_code                => l_entity_code
74808       ,p_event_class_code           => l_event_class_code);
74809    --
74810    -- set accounting class
74811    --
74815          );
74812    xla_ae_lines_pkg.SetAcctClass(
74813            p_accounting_class_code  => 'INTEREST_EXPENSE'
74814          , p_ae_header_id           => l_ae_header_id
74816 
74817    --
74818    -- set rounding class
74819    --
74820    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
74821                       'INTEREST_EXPENSE';
74822 
74823    --
74824    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
74825    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
74826    --
74827    -- bulk performance
74828    --
74829    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
74830 
74831    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
74832       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
74833 
74834    -- 4955764
74835    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
74836       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
74837 
74838    -- 4458381 Public Sector Enh
74839    
74840    --
74841    -- set accounting attributes for the line type
74842    --
74843    l_entered_amt_idx := 10;
74844    l_accted_amt_idx  := 15;
74845    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
74846    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
74847    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
74848    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
74849    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
74850    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
74851    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
74852    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
74853    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
74854    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
74855    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
74856    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
74857    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
74858    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
74859    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
74860    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
74861    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
74862    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
74863    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
74864    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
74865    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
74866    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
74867    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
74868    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
74869    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
74870    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
74871    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
74872    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
74873    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
74874    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
74875    l_rec_acct_attrs.array_num_value(15)  := p_source_115;
74876    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
74877    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
74878    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
74879    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
74880    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
74881    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
74882    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
74883    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
74884    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
74885    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
74886    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
74887    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
74888    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
74889    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
74890    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
74891    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
74892    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
74893    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
74894 
74895    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
74896    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
74897 
74898    ---------------------------------------------------------------------------------------------------------------
74899    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
74900    ---------------------------------------------------------------------------------------------------------------
74901    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
74902 
74903    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
74907          (p_source_code         => 'LEDGER_CATEGORY_CODE'
74904    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
74905 
74906    IF xla_accounting_cache_pkg.GetValueChar
74908          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
74909    AND l_bflow_method_code = 'PRIOR_ENTRY'
74910 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
74911    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
74912          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
74913        )
74914    THEN
74915          xla_ae_lines_pkg.BflowUpgEntry
74916            (p_business_method_code    => l_bflow_method_code
74917            ,p_business_class_code     => l_bflow_class_code
74918            ,p_balance_type            => l_balance_type_code);
74919    ELSE
74920       NULL;
74921 -- No business flow processing for business flow method of NONE.
74922    END IF;
74923 
74924    --
74925    -- call analytical criteria
74926    --
74927    
74928    --
74929    -- call description
74930    --
74931    -- No description or it is inherited.
74932    --
74933    -- call ADRs
74934    -- Bug 4922099
74935    --
74936    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
74937         (NVL(l_actual_upg_option, 'N') = 'O') OR
74938         (NVL(l_enc_upg_option, 'N') = 'O')
74939       )
74940    THEN
74941    NULL;
74942    --
74943    --
74944    
74945   l_ccid := AcctDerRule_32(
74946            p_application_id           => p_application_id
74947          , p_ae_header_id             => l_ae_header_id 
74948 , p_source_28 => p_source_28
74949 , p_source_29 => p_source_29
74950 , p_source_30 => p_source_30
74951          , x_transaction_coa_id       => l_adr_transaction_coa_id
74952          , x_accounting_coa_id        => l_adr_accounting_coa_id
74953          , x_value_type_code          => l_adr_value_type_code
74954          , p_side                     => 'NA'
74955    );
74956 
74957    xla_ae_lines_pkg.set_ccid(
74958     p_code_combination_id          => l_ccid
74959   , p_value_type_code              => l_adr_value_type_code
74960   , p_transaction_coa_id           => l_adr_transaction_coa_id
74961   , p_accounting_coa_id            => l_adr_accounting_coa_id
74962   , p_adr_code                     => 'AP_INTEREST'
74963   , p_adr_type_code                => 'S'
74964   , p_component_type               => l_component_type
74965   , p_component_code               => l_component_code
74966   , p_component_type_code          => l_component_type_code
74967   , p_component_appl_id            => l_component_appl_id
74968   , p_amb_context_code             => l_amb_context_code
74969   , p_side                         => 'NA'
74970   );
74971 
74972 
74973    l_segment := AcctDerRule_12(
74974            p_application_id           => p_application_id
74975          , p_ae_header_id             => l_ae_header_id 
74976 , p_source_28 => p_source_28
74977 , p_source_29 => p_source_29
74978          , x_transaction_coa_id       => l_adr_transaction_coa_id
74979          , x_accounting_coa_id        => l_adr_accounting_coa_id
74980          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
74981          , x_flex_value_set_id        => l_adr_flex_value_set_id
74982          , x_value_type_code          => l_adr_value_type_code
74983          , x_value_combination_id     => l_adr_value_combination_id
74984          , x_value_segment_code       => l_adr_value_segment_code
74985          , p_side                     => 'NA'
74986          , p_override_seg_flag        => 'Y'
74987    );
74988 
74989    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
74990 
74991       xla_ae_lines_pkg.set_segment(
74992           p_to_segment_code         => 'GL_ACCOUNT'
74993         , p_segment_value           => l_segment
74994         , p_from_segment_code       => l_adr_value_segment_code
74995         , p_from_combination_id     => l_adr_value_combination_id
74996         , p_value_type_code         => l_adr_value_type_code
74997         , p_transaction_coa_id      => l_adr_transaction_coa_id
74998         , p_accounting_coa_id       => l_adr_accounting_coa_id
74999         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
75000         , p_flex_value_set_id       => l_adr_flex_value_set_id
75001         , p_adr_code                => 'AP_INTEREST_NAT_ACCT_SEG'
75002         , p_adr_type_code           => 'S'
75003         , p_component_type          => l_component_type
75004         , p_component_code          => l_component_code
75005         , p_component_type_code     => l_component_type_code
75006         , p_component_appl_id       => l_component_appl_id
75007         , p_amb_context_code        => l_amb_context_code
75008         , p_entity_code             => 'AP_PAYMENTS'
75009         , p_event_class_code        => 'PAYMENTS'
75010         , p_side                    => 'NA'
75011         );
75012 
75013   END IF;
75014 
75015    --
75016    --
75017    END IF;
75018    --
75019    -- Bug 4922099
75020    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
75021           (NVL(l_enc_upg_option, 'N') = 'O')
75022         ) AND
75023         (l_bflow_method_code = 'PRIOR_ENTRY')
75024       )
75025    THEN
75026       IF
75027       --
75028       1 = 2
75029       --
75030       THEN
75031       xla_accounting_err_pkg.build_message
75035                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
75032                                     (p_appli_s_name            => 'XLA'
75033                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
75034                                     ,p_token_1                 => 'LINE_NUMBER'
75036                                     ,p_token_2                 => 'LINE_TYPE_NAME'
75037                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
75038                                                                              l_component_type
75039                                                                             ,l_component_code
75040                                                                             ,l_component_type_code
75041                                                                             ,l_component_appl_id
75042                                                                             ,l_amb_context_code
75043                                                                             ,l_entity_code
75044                                                                             ,l_event_class_code
75045                                                                            )
75046                                     ,p_token_3                 => 'OWNER'
75047                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
75048                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
75049                                                                           ,p_lookup_code    => l_component_type_code
75050                                                                          )
75051                                     ,p_token_4                 => 'PRODUCT_NAME'
75052                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
75053                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
75054                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
75055                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
75056                                     ,p_ae_header_id            =>  NULL
75057                                        );
75058 
75059         IF (C_LEVEL_ERROR>= g_log_level) THEN
75060                  trace
75061                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
75062                       ,p_level    => C_LEVEL_ERROR
75063                       ,p_module   => l_log_module);
75064         END IF;
75065       END IF;
75066    END IF;
75067    --
75068    --
75069    ------------------------------------------------------------------------------------------------
75070    -- 4219869 Business Flow
75071    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
75072    -- Prior Entry.  Currently, the following code is always generated.
75073    ------------------------------------------------------------------------------------------------
75074    XLA_AE_LINES_PKG.ValidateCurrentLine;
75075 
75076    ------------------------------------------------------------------------------------
75077    -- 4219869 Business Flow
75078    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
75079    ------------------------------------------------------------------------------------
75080    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
75081 
75082    ----------------------------------------------------------------------------------
75083    -- 4219869 Business Flow
75084    -- Update journal entry status -- Need to generate this within IF <condition>
75085    ----------------------------------------------------------------------------------
75086    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
75087          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
75088          ,p_balance_type_code => l_balance_type_code
75089          );
75090 
75091    -------------------------------------------------------------------------------------------
75092    -- 4262811 - Generate the Accrual Reversal lines
75093    -------------------------------------------------------------------------------------------
75094    BEGIN
75095       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
75096                               (g_array_event(p_event_id).array_value_num('header_index'));
75097       IF l_acc_rev_flag IS NULL THEN
75098          l_acc_rev_flag := 'N';
75099       END IF;
75100    EXCEPTION
75101       WHEN OTHERS THEN
75102          l_acc_rev_flag := 'N';
75103    END;
75104    --
75105    IF (l_acc_rev_flag = 'Y') THEN
75106 
75107        -- 4645092  ------------------------------------------------------------------------------
75108        -- To allow MPA report to determine if it should generate report process
75109        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
75110        ------------------------------------------------------------------------------------------
75111 
75112        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
75113        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
75114    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
75115    -- call ADRs
75116    -- Bug 4922099
75117    --
75118    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
75119         (NVL(l_actual_upg_option, 'N') = 'O') OR
75123    NULL;
75120         (NVL(l_enc_upg_option, 'N') = 'O')
75121       )
75122    THEN
75124    --
75125    --
75126    
75127   l_ccid := AcctDerRule_32(
75128            p_application_id           => p_application_id
75129          , p_ae_header_id             => l_ae_header_id 
75130 , p_source_28 => p_source_28
75131 , p_source_29 => p_source_29
75132 , p_source_30 => p_source_30
75133          , x_transaction_coa_id       => l_adr_transaction_coa_id
75134          , x_accounting_coa_id        => l_adr_accounting_coa_id
75135          , x_value_type_code          => l_adr_value_type_code
75136          , p_side                     => 'NA'
75137    );
75138 
75139    xla_ae_lines_pkg.set_ccid(
75140     p_code_combination_id          => l_ccid
75141   , p_value_type_code              => l_adr_value_type_code
75142   , p_transaction_coa_id           => l_adr_transaction_coa_id
75143   , p_accounting_coa_id            => l_adr_accounting_coa_id
75144   , p_adr_code                     => 'AP_INTEREST'
75145   , p_adr_type_code                => 'S'
75146   , p_component_type               => l_component_type
75147   , p_component_code               => l_component_code
75148   , p_component_type_code          => l_component_type_code
75149   , p_component_appl_id            => l_component_appl_id
75150   , p_amb_context_code             => l_amb_context_code
75151   , p_side                         => 'NA'
75152   );
75153 
75154 
75155    l_segment := AcctDerRule_12(
75156            p_application_id           => p_application_id
75157          , p_ae_header_id             => l_ae_header_id 
75158 , p_source_28 => p_source_28
75159 , p_source_29 => p_source_29
75160          , x_transaction_coa_id       => l_adr_transaction_coa_id
75161          , x_accounting_coa_id        => l_adr_accounting_coa_id
75162          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
75163          , x_flex_value_set_id        => l_adr_flex_value_set_id
75164          , x_value_type_code          => l_adr_value_type_code
75165          , x_value_combination_id     => l_adr_value_combination_id
75166          , x_value_segment_code       => l_adr_value_segment_code
75167          , p_side                     => 'NA'
75168          , p_override_seg_flag        => 'Y'
75169    );
75170 
75171    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
75172 
75173       xla_ae_lines_pkg.set_segment(
75174           p_to_segment_code         => 'GL_ACCOUNT'
75175         , p_segment_value           => l_segment
75176         , p_from_segment_code       => l_adr_value_segment_code
75177         , p_from_combination_id     => l_adr_value_combination_id
75178         , p_value_type_code         => l_adr_value_type_code
75179         , p_transaction_coa_id      => l_adr_transaction_coa_id
75180         , p_accounting_coa_id       => l_adr_accounting_coa_id
75181         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
75182         , p_flex_value_set_id       => l_adr_flex_value_set_id
75183         , p_adr_code                => 'AP_INTEREST_NAT_ACCT_SEG'
75184         , p_adr_type_code           => 'S'
75185         , p_component_type          => l_component_type
75186         , p_component_code          => l_component_code
75187         , p_component_type_code     => l_component_type_code
75188         , p_component_appl_id       => l_component_appl_id
75189         , p_amb_context_code        => l_amb_context_code
75190         , p_entity_code             => 'AP_PAYMENTS'
75191         , p_event_class_code        => 'PAYMENTS'
75192         , p_side                    => 'NA'
75193         );
75194 
75195   END IF;
75196 
75197    --
75198    --
75199    END IF;
75200 
75201        --
75202        -- Update the line information that should be overwritten
75203        --
75204        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
75205                                          p_header_num   => 1);
75206        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
75207 
75208        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
75209 
75210        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
75211           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
75212        END IF;
75213 
75214       --
75215       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
75216       --
75217       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
75218           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
75219       ELSE
75220           ---------------------------------------------------------------------------------------------------
75221           -- 4262811a Switch Sign
75222           ---------------------------------------------------------------------------------------------------
75223           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
75224           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
75225                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75226           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
75227                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75228           -- 5132302
75232       END IF;
75229           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
75230                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75231 
75233 
75234       -- 4955764
75235       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
75236       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
75237 
75238 
75239       XLA_AE_LINES_PKG.ValidateCurrentLine;
75240       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
75241 
75242       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
75243                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
75244                ,p_balance_type_code => l_balance_type_code);
75245 
75246    END IF;
75247 
75248    -----------------------------------------------------------------------------------------
75249    -- 4262811 Multiperiod Accounting
75250    -----------------------------------------------------------------------------------------
75251      -- No MPA option is assigned.
75252 
75253 
75254 END IF;
75255 END IF;
75256 --
75257 
75258 --
75259 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75260    trace
75261       (p_msg      => 'END of AcctLineType_137'
75262       ,p_level    => C_LEVEL_PROCEDURE
75263       ,p_module   => l_log_module);
75264 END IF;
75265 --
75266 EXCEPTION
75267   WHEN xla_exceptions_pkg.application_exception THEN
75268       RAISE;
75269   WHEN OTHERS THEN
75270        xla_exceptions_pkg.raise_message
75271            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_137');
75272 END AcctLineType_137;
75273 --
75274 
75275 ---------------------------------------
75276 --
75277 -- PRIVATE FUNCTION
75278 --         AcctLineType_138
75279 --
75280 ---------------------------------------
75281 PROCEDURE AcctLineType_138 (
75282   p_application_id        IN NUMBER
75283  ,p_event_id              IN NUMBER
75284  ,p_calculate_acctd_flag  IN VARCHAR2
75285  ,p_calculate_g_l_flag    IN VARCHAR2
75286  ,p_actual_flag           IN OUT VARCHAR2
75287  ,p_balance_type_code     OUT VARCHAR2
75288  ,p_gain_or_loss_ref      OUT VARCHAR2
75289  
75290 --Invoice Distribution Description
75291  , p_source_1            IN VARCHAR2
75292 --Invoice Distribution Ledger Amount
75293  , p_source_21            IN NUMBER
75294 --Invoice Distribution Account
75295  , p_source_30            IN NUMBER
75296 --Invoice Distribution Type
75297  , p_source_33            IN VARCHAR2
75298  , p_source_33_meaning    IN VARCHAR2
75299 --Accounting Reversal Indicator
75300  , p_source_53            IN VARCHAR2
75301 --Distribution Link Type
75302  , p_source_55            IN VARCHAR2
75303 --Allocation to Main Distribution Identifier
75304  , p_source_57            IN NUMBER
75305 --Invoice Identifier
75306  , p_source_58            IN NUMBER
75307 --Invoice Distribution Identifier
75308  , p_source_64            IN NUMBER
75309 --Payables Encumbrance Upgrade Credit Account
75310  , p_source_65            IN NUMBER
75311 --Payables Encumbrance Upgrade Credit Amount
75312  , p_source_66            IN NUMBER
75313 --Invoice Currency Code
75314  , p_source_67            IN VARCHAR2
75315 --Payables Encumbrance Upgrade Credit Base Amount
75316  , p_source_68            IN NUMBER
75317 --Payables Encumbrance Upgrade Debit Account
75318  , p_source_69            IN NUMBER
75319 --Payables Encumbrance Upgrade Debit Amount
75320  , p_source_70            IN NUMBER
75321 --Payables Encumbrance Upgrade Debit Base Amount
75322  , p_source_71            IN NUMBER
75323 --Payables Encumbrance Upgrade Option
75324  , p_source_72            IN VARCHAR2
75325 --Invoice Distribution Amount
75326  , p_source_73            IN NUMBER
75327 --Deferred Accounting End Date
75328  , p_source_77            IN DATE
75329 --Deferred Accounting Option
75330  , p_source_78            IN VARCHAR2
75331 --Deferred Accounting Start Date
75332  , p_source_79            IN DATE
75333 --Override Accounted Amount Indicator
75334  , p_source_80            IN VARCHAR2
75335  , p_source_80_meaning    IN VARCHAR2
75336 --Invoice Supplier Identifier
75337  , p_source_81            IN NUMBER
75338 --Invoice Supplier Site Identifier
75339  , p_source_82            IN NUMBER
75340 --Third Party Type
75341  , p_source_83            IN VARCHAR2
75342 --Parent Reversal Identifier
75343  , p_source_84            IN NUMBER
75344 --Invoice Distribution Statistical Amount
75345  , p_source_85            IN NUMBER
75346 --Invoice Distribution Tax Line Identifier
75347  , p_source_86            IN NUMBER
75348 --Invoice Distribution Tax Distribution Identifier from Tax
75349  , p_source_87            IN NUMBER
75350 --Invoice Distribution Summary Tax Line Identifier
75351  , p_source_88            IN NUMBER
75352 --Payables Upgrade Credit Encumbrance Type Identifier
75353  , p_source_89            IN NUMBER
75354 --Payables Upgrade Debit Encumbrance Type Identifier
75355  , p_source_90            IN NUMBER
75356 --Business Flow Accounts Payable Application Identifier
75357  , p_source_91            IN NUMBER
75358 --Business Flow Invoice Distribution Type
75359  , p_source_92            IN VARCHAR2
75360 --Business Flow Invoice Entity Code
75361  , p_source_93            IN VARCHAR2
75362 --Business Flow Invoice Distribution Identifier
75363  , p_source_94            IN NUMBER
75364 --Business Flow Invoice Identifier
75368  , p_source_96_meaning    IN VARCHAR2
75365  , p_source_95            IN NUMBER
75366 --Accrue on Receipt Option
75367  , p_source_96            IN VARCHAR2
75369 --Invoice Exchange Date
75370  , p_source_143            IN DATE
75371 --Invoice Exchange Rate
75372  , p_source_144            IN NUMBER
75373 --Invoice Exchange Rate Type
75374  , p_source_145            IN VARCHAR2
75375 )
75376 IS
75377 
75378 l_component_type              VARCHAR2(80);
75379 l_component_code              VARCHAR2(30);
75380 l_component_type_code         VARCHAR2(1);
75381 l_component_appl_id           INTEGER;
75382 l_amb_context_code            VARCHAR2(30);
75383 l_entity_code                 VARCHAR2(30);
75384 l_event_class_code            VARCHAR2(30);
75385 l_ae_header_id                NUMBER;
75386 l_event_type_code             VARCHAR2(30);
75387 l_line_definition_code        VARCHAR2(30);
75388 l_line_definition_owner_code  VARCHAR2(1);
75389 --
75390 -- adr variables
75391 l_segment                     VARCHAR2(30);
75392 l_ccid                        NUMBER;
75393 l_adr_transaction_coa_id      NUMBER;
75394 l_adr_accounting_coa_id       NUMBER;
75395 l_adr_flexfield_segment_code  VARCHAR2(30);
75396 l_adr_flex_value_set_id       NUMBER;
75397 l_adr_value_type_code         VARCHAR2(30);
75398 l_adr_value_combination_id    NUMBER;
75399 l_adr_value_segment_code      VARCHAR2(30);
75400 
75401 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
75402 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
75403 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
75404 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
75405 
75406 -- 4262811 Variables ------------------------------------------------------------------------------------------
75407 l_entered_amt_idx             NUMBER;
75408 l_accted_amt_idx              NUMBER;
75409 l_acc_rev_flag                VARCHAR2(1);
75410 l_accrual_line_num            NUMBER;
75411 l_tmp_amt                     NUMBER;
75412 l_acc_rev_natural_side_code   VARCHAR2(1);
75413 
75414 l_num_entries                 NUMBER;
75415 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
75416 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
75417 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
75418 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
75419 l_recog_line_1                NUMBER;
75420 l_recog_line_2                NUMBER;
75421 
75422 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
75423 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
75424 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
75425 
75426 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
75427 
75428 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
75429 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
75430 
75431 ---------------------------------------------------------------------------------------------------------------
75432 
75433 
75434 --
75435 -- bulk performance
75436 --
75437 l_balance_type_code           VARCHAR2(1);
75438 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
75439 l_log_module                  VARCHAR2(240);
75440 
75441 --
75442 -- Upgrade strategy
75443 --
75444 l_actual_upg_option           VARCHAR2(1);
75445 l_enc_upg_option           VARCHAR2(1);
75446 
75447 --
75448 BEGIN
75449 --
75450 IF g_log_enabled THEN
75451       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_138';
75452 END IF;
75453 --
75454 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75455 
75456       trace
75457          (p_msg      => 'BEGIN of AcctLineType_138'
75458          ,p_level    => C_LEVEL_PROCEDURE
75459          ,p_module   => l_log_module);
75460 
75461 END IF;
75462 --
75463 l_component_type             := 'AMB_JLT';
75464 l_component_code             := 'AP_INV_PRICE_VAR_CM';
75465 l_component_type_code        := 'S';
75466 l_component_appl_id          :=  200;
75467 l_amb_context_code           := 'DEFAULT';
75468 l_entity_code                := 'AP_INVOICES';
75469 l_event_class_code           := 'CREDIT MEMOS';
75470 l_event_type_code            := 'CREDIT MEMOS_ALL';
75471 l_line_definition_owner_code := 'S';
75472 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
75473 --
75474 l_balance_type_code          := 'A';
75475 l_segment                     := NULL;
75476 l_ccid                        := NULL;
75477 l_adr_transaction_coa_id      := NULL;
75478 l_adr_accounting_coa_id       := NULL;
75479 l_adr_flexfield_segment_code  := NULL;
75480 l_adr_flex_value_set_id       := NULL;
75481 l_adr_value_type_code         := NULL;
75482 l_adr_value_combination_id    := NULL;
75483 l_adr_value_segment_code      := NULL;
75484 
75485 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
75486 l_bflow_class_code           := '';    -- 4219869 Business Flow
75487 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
75488 l_budgetary_control_flag     := 'N';
75489 
75490 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
75491 l_bflow_applied_to_amt       := NULL; -- 5132302
75492 l_entered_amt_idx            := NULL;          -- 4262811
75493 l_accted_amt_idx             := NULL;          -- 4262811
75494 l_acc_rev_flag               := NULL;          -- 4262811
75498  
75495 l_accrual_line_num           := NULL;          -- 4262811
75496 l_tmp_amt                    := NULL;          -- 4262811
75497 --
75499 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
75500     l_balance_type_code <> 'B' THEN
75501 IF NVL(p_source_33,'
75502 ') =  'IPV' AND 
75503 NVL(p_source_96,'
75504 ') =  'Y'
75505  THEN 
75506 
75507    --
75508    XLA_AE_LINES_PKG.SetNewLine;
75509 
75510    p_balance_type_code          := l_balance_type_code;
75511    -- set the flag so later we will know whether the gain loss line needs to be created
75512    
75513    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
75514      p_actual_flag :='A';
75515    END IF;
75516 
75517    --
75518    -- bulk performance
75519    --
75520    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
75521                                       p_header_num   => 0); -- 4262811
75522    --
75523    -- set accounting line options
75524    --
75525    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
75526            p_natural_side_code          => 'D'
75527          , p_gain_or_loss_flag          => 'N'
75528          , p_gl_transfer_mode_code      => 'S'
75529          , p_acct_entry_type_code       => 'A'
75530          , p_switch_side_flag           => 'Y'
75531          , p_merge_duplicate_code       => 'A'
75532          );
75533    --
75534    l_acc_rev_natural_side_code := 'C';  -- 4262811
75535    -- 
75536    --
75537    -- set accounting line type info
75538    --
75539    xla_ae_lines_pkg.SetAcctLineType
75540       (p_component_type             => l_component_type
75541       ,p_event_type_code            => l_event_type_code
75542       ,p_line_definition_owner_code => l_line_definition_owner_code
75543       ,p_line_definition_code       => l_line_definition_code
75544       ,p_accounting_line_code       => l_component_code
75545       ,p_accounting_line_type_code  => l_component_type_code
75546       ,p_accounting_line_appl_id    => l_component_appl_id
75547       ,p_amb_context_code           => l_amb_context_code
75548       ,p_entity_code                => l_entity_code
75549       ,p_event_class_code           => l_event_class_code);
75550    --
75551    -- set accounting class
75552    --
75553    xla_ae_lines_pkg.SetAcctClass(
75554            p_accounting_class_code  => 'IPV'
75555          , p_ae_header_id           => l_ae_header_id
75556          );
75557 
75558    --
75559    -- set rounding class
75560    --
75561    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
75562                       'IPV';
75563 
75564    --
75565    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
75566    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
75567    --
75568    -- bulk performance
75569    --
75570    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
75571 
75572    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
75573       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
75574 
75575    -- 4955764
75576    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
75577       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
75578 
75579    -- 4458381 Public Sector Enh
75580    
75581    --
75582    -- set accounting attributes for the line type
75583    --
75584    l_entered_amt_idx := 23;
75585    l_accted_amt_idx  := 28;
75586    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
75587    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
75588    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
75589    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
75590    l_rec_acct_attrs.array_num_value(2)  := 
75591 xla_ae_sources_pkg.GetSystemSourceNum(
75592    p_source_code           => 'XLA_EVENT_APPL_ID'
75593  , p_source_type_code      => 'Y'
75594  , p_source_application_id =>  602
75595 );
75596    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
75597    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
75598    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
75599    l_rec_acct_attrs.array_char_value(4)  := 
75600 xla_ae_sources_pkg.GetSystemSourceChar(
75601    p_source_code           => 'XLA_ENTITY_CODE'
75602  , p_source_type_code      => 'Y'
75603  , p_source_application_id =>  602
75604 );
75605    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
75606    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
75607    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
75608    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
75609    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
75610    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
75611    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
75612    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
75613    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
75614    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
75615    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
75616    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
75620    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
75617    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
75618    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
75619    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
75621    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
75622    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
75623    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
75624    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
75625    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
75626    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
75627    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
75628    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
75629    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
75630    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
75631    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
75632    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
75633    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
75634    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
75635    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
75636    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
75637    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
75638    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
75639    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
75640    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
75641    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
75642    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
75643    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
75644    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
75645    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
75646    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
75647    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
75648    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
75649    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
75650    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
75651    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
75652    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
75653    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
75654    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
75655    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
75656    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
75657    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
75658    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
75659    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
75660    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
75661    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
75662    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
75663    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
75664    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
75665    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
75666    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
75667    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
75668    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
75669    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
75670    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
75671    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
75672    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
75673    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
75674    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
75675    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
75676    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
75677    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
75678    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
75679    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
75680    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
75681    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
75682    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
75683 
75684    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
75685    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
75686 
75687    ---------------------------------------------------------------------------------------------------------------
75688    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
75689    ---------------------------------------------------------------------------------------------------------------
75690    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
75691 
75692    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
75693    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
75694 
75695    IF xla_accounting_cache_pkg.GetValueChar
75696          (p_source_code         => 'LEDGER_CATEGORY_CODE'
75697          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
75701          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
75698    AND l_bflow_method_code = 'PRIOR_ENTRY'
75699 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
75700    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
75702        )
75703    THEN
75704          xla_ae_lines_pkg.BflowUpgEntry
75705            (p_business_method_code    => l_bflow_method_code
75706            ,p_business_class_code     => l_bflow_class_code
75707            ,p_balance_type            => l_balance_type_code);
75708    ELSE
75709       NULL;
75710 -- No business flow processing for business flow method of NONE.
75711    END IF;
75712 
75713    --
75714    -- call analytical criteria
75715    --
75716    
75717    --
75718    -- call description
75719    --
75720    
75721 xla_ae_lines_pkg.SetLineDescription(
75722    p_ae_header_id => l_ae_header_id
75723   ,p_description  => Description_1 (
75724      p_application_id         => p_application_id
75725    , p_ae_header_id           => l_ae_header_id 
75726 , p_source_1 => p_source_1
75727    )
75728 );
75729 
75730 
75731    --
75732    -- call ADRs
75733    -- Bug 4922099
75734    --
75735    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
75736         (NVL(l_actual_upg_option, 'N') = 'O') OR
75737         (NVL(l_enc_upg_option, 'N') = 'O')
75738       )
75739    THEN
75740    NULL;
75741    --
75742    --
75743    
75744   l_ccid := AcctDerRule_33(
75745            p_application_id           => p_application_id
75746          , p_ae_header_id             => l_ae_header_id 
75747 , p_source_30 => p_source_30
75748          , x_transaction_coa_id       => l_adr_transaction_coa_id
75749          , x_accounting_coa_id        => l_adr_accounting_coa_id
75750          , x_value_type_code          => l_adr_value_type_code
75751          , p_side                     => 'NA'
75752    );
75753 
75754    xla_ae_lines_pkg.set_ccid(
75755     p_code_combination_id          => l_ccid
75756   , p_value_type_code              => l_adr_value_type_code
75757   , p_transaction_coa_id           => l_adr_transaction_coa_id
75758   , p_accounting_coa_id            => l_adr_accounting_coa_id
75759   , p_adr_code                     => 'AP_INVOICE_DIST'
75760   , p_adr_type_code                => 'S'
75761   , p_component_type               => l_component_type
75762   , p_component_code               => l_component_code
75763   , p_component_type_code          => l_component_type_code
75764   , p_component_appl_id            => l_component_appl_id
75765   , p_amb_context_code             => l_amb_context_code
75766   , p_side                         => 'NA'
75767   );
75768 
75769 
75770    --
75771    --
75772    END IF;
75773    --
75774    -- Bug 4922099
75775    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
75776           (NVL(l_enc_upg_option, 'N') = 'O')
75777         ) AND
75778         (l_bflow_method_code = 'PRIOR_ENTRY')
75779       )
75780    THEN
75781       IF
75782       --
75783       1 = 2
75784       --
75785       THEN
75786       xla_accounting_err_pkg.build_message
75787                                     (p_appli_s_name            => 'XLA'
75788                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
75789                                     ,p_token_1                 => 'LINE_NUMBER'
75790                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
75791                                     ,p_token_2                 => 'LINE_TYPE_NAME'
75792                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
75793                                                                              l_component_type
75794                                                                             ,l_component_code
75795                                                                             ,l_component_type_code
75796                                                                             ,l_component_appl_id
75797                                                                             ,l_amb_context_code
75798                                                                             ,l_entity_code
75799                                                                             ,l_event_class_code
75800                                                                            )
75801                                     ,p_token_3                 => 'OWNER'
75802                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
75803                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
75804                                                                           ,p_lookup_code    => l_component_type_code
75805                                                                          )
75806                                     ,p_token_4                 => 'PRODUCT_NAME'
75807                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
75808                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
75809                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
75810                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
75814         IF (C_LEVEL_ERROR>= g_log_level) THEN
75811                                     ,p_ae_header_id            =>  NULL
75812                                        );
75813 
75815                  trace
75816                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
75817                       ,p_level    => C_LEVEL_ERROR
75818                       ,p_module   => l_log_module);
75819         END IF;
75820       END IF;
75821    END IF;
75822    --
75823    --
75824    ------------------------------------------------------------------------------------------------
75825    -- 4219869 Business Flow
75826    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
75827    -- Prior Entry.  Currently, the following code is always generated.
75828    ------------------------------------------------------------------------------------------------
75829    XLA_AE_LINES_PKG.ValidateCurrentLine;
75830 
75831    ------------------------------------------------------------------------------------
75832    -- 4219869 Business Flow
75833    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
75834    ------------------------------------------------------------------------------------
75835    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
75836 
75837    ----------------------------------------------------------------------------------
75838    -- 4219869 Business Flow
75839    -- Update journal entry status -- Need to generate this within IF <condition>
75840    ----------------------------------------------------------------------------------
75841    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
75842          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
75843          ,p_balance_type_code => l_balance_type_code
75844          );
75845 
75846    -------------------------------------------------------------------------------------------
75847    -- 4262811 - Generate the Accrual Reversal lines
75848    -------------------------------------------------------------------------------------------
75849    BEGIN
75850       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
75851                               (g_array_event(p_event_id).array_value_num('header_index'));
75852       IF l_acc_rev_flag IS NULL THEN
75853          l_acc_rev_flag := 'N';
75854       END IF;
75855    EXCEPTION
75856       WHEN OTHERS THEN
75857          l_acc_rev_flag := 'N';
75858    END;
75859    --
75860    IF (l_acc_rev_flag = 'Y') THEN
75861 
75862        -- 4645092  ------------------------------------------------------------------------------
75863        -- To allow MPA report to determine if it should generate report process
75864        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
75865        ------------------------------------------------------------------------------------------
75866 
75867        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
75868        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
75869    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
75870    -- call ADRs
75871    -- Bug 4922099
75872    --
75873    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
75874         (NVL(l_actual_upg_option, 'N') = 'O') OR
75875         (NVL(l_enc_upg_option, 'N') = 'O')
75876       )
75877    THEN
75878    NULL;
75879    --
75880    --
75881    
75882   l_ccid := AcctDerRule_33(
75883            p_application_id           => p_application_id
75884          , p_ae_header_id             => l_ae_header_id 
75885 , p_source_30 => p_source_30
75886          , x_transaction_coa_id       => l_adr_transaction_coa_id
75887          , x_accounting_coa_id        => l_adr_accounting_coa_id
75888          , x_value_type_code          => l_adr_value_type_code
75889          , p_side                     => 'NA'
75890    );
75891 
75892    xla_ae_lines_pkg.set_ccid(
75893     p_code_combination_id          => l_ccid
75894   , p_value_type_code              => l_adr_value_type_code
75895   , p_transaction_coa_id           => l_adr_transaction_coa_id
75896   , p_accounting_coa_id            => l_adr_accounting_coa_id
75897   , p_adr_code                     => 'AP_INVOICE_DIST'
75898   , p_adr_type_code                => 'S'
75899   , p_component_type               => l_component_type
75900   , p_component_code               => l_component_code
75901   , p_component_type_code          => l_component_type_code
75902   , p_component_appl_id            => l_component_appl_id
75903   , p_amb_context_code             => l_amb_context_code
75904   , p_side                         => 'NA'
75905   );
75906 
75907 
75908    --
75909    --
75910    END IF;
75911 
75912        --
75913        -- Update the line information that should be overwritten
75914        --
75915        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
75916                                          p_header_num   => 1);
75917        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
75918 
75919        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
75920 
75921        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
75922           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
75923        END IF;
75924 
75925       --
75926       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
75930       ELSE
75927       --
75928       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
75929           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
75931           ---------------------------------------------------------------------------------------------------
75932           -- 4262811a Switch Sign
75933           ---------------------------------------------------------------------------------------------------
75934           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
75935           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
75936                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75937           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
75938                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75939           -- 5132302
75940           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
75941                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
75942 
75943       END IF;
75944 
75945       -- 4955764
75946       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
75947       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
75948 
75949 
75950       XLA_AE_LINES_PKG.ValidateCurrentLine;
75951       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
75952 
75953       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
75954                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
75955                ,p_balance_type_code => l_balance_type_code);
75956 
75957    END IF;
75958 
75959    -----------------------------------------------------------------------------------------
75960    -- 4262811 Multiperiod Accounting
75961    -----------------------------------------------------------------------------------------
75962      -- No MPA option is assigned.
75963 
75964 
75965 END IF;
75966 END IF;
75967 --
75968 
75969 --
75970 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75971    trace
75972       (p_msg      => 'END of AcctLineType_138'
75973       ,p_level    => C_LEVEL_PROCEDURE
75974       ,p_module   => l_log_module);
75975 END IF;
75976 --
75977 EXCEPTION
75978   WHEN xla_exceptions_pkg.application_exception THEN
75979       RAISE;
75980   WHEN OTHERS THEN
75981        xla_exceptions_pkg.raise_message
75982            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_138');
75983 END AcctLineType_138;
75984 --
75985 
75986 ---------------------------------------
75987 --
75988 -- PRIVATE FUNCTION
75989 --         AcctLineType_139
75990 --
75991 ---------------------------------------
75992 PROCEDURE AcctLineType_139 (
75993   p_application_id        IN NUMBER
75994  ,p_event_id              IN NUMBER
75995  ,p_calculate_acctd_flag  IN VARCHAR2
75996  ,p_calculate_g_l_flag    IN VARCHAR2
75997  ,p_actual_flag           IN OUT VARCHAR2
75998  ,p_balance_type_code     OUT VARCHAR2
75999  ,p_gain_or_loss_ref      OUT VARCHAR2
76000  
76001 --Invoice Distribution Description
76002  , p_source_1            IN VARCHAR2
76003 --Invoice Distribution Ledger Amount
76004  , p_source_21            IN NUMBER
76005 --Invoice Distribution Account
76006  , p_source_30            IN NUMBER
76007 --Invoice Distribution Type
76008  , p_source_33            IN VARCHAR2
76009  , p_source_33_meaning    IN VARCHAR2
76010 --Accounting Reversal Indicator
76011  , p_source_53            IN VARCHAR2
76012 --Distribution Link Type
76013  , p_source_55            IN VARCHAR2
76014 --Allocation to Main Distribution Identifier
76015  , p_source_57            IN NUMBER
76016 --Invoice Identifier
76017  , p_source_58            IN NUMBER
76018 --Invoice Distribution Identifier
76019  , p_source_64            IN NUMBER
76020 --Payables Encumbrance Upgrade Credit Account
76021  , p_source_65            IN NUMBER
76022 --Payables Encumbrance Upgrade Credit Amount
76023  , p_source_66            IN NUMBER
76024 --Invoice Currency Code
76025  , p_source_67            IN VARCHAR2
76026 --Payables Encumbrance Upgrade Credit Base Amount
76027  , p_source_68            IN NUMBER
76028 --Payables Encumbrance Upgrade Debit Account
76029  , p_source_69            IN NUMBER
76030 --Payables Encumbrance Upgrade Debit Amount
76031  , p_source_70            IN NUMBER
76032 --Payables Encumbrance Upgrade Debit Base Amount
76033  , p_source_71            IN NUMBER
76034 --Payables Encumbrance Upgrade Option
76035  , p_source_72            IN VARCHAR2
76036 --Invoice Distribution Amount
76037  , p_source_73            IN NUMBER
76038 --Deferred Accounting End Date
76039  , p_source_77            IN DATE
76040 --Deferred Accounting Option
76041  , p_source_78            IN VARCHAR2
76042 --Deferred Accounting Start Date
76043  , p_source_79            IN DATE
76044 --Override Accounted Amount Indicator
76045  , p_source_80            IN VARCHAR2
76046  , p_source_80_meaning    IN VARCHAR2
76047 --Invoice Supplier Identifier
76048  , p_source_81            IN NUMBER
76049 --Invoice Supplier Site Identifier
76050  , p_source_82            IN NUMBER
76051 --Third Party Type
76052  , p_source_83            IN VARCHAR2
76056  , p_source_86            IN NUMBER
76053 --Parent Reversal Identifier
76054  , p_source_84            IN NUMBER
76055 --Invoice Distribution Tax Line Identifier
76057 --Invoice Distribution Tax Distribution Identifier from Tax
76058  , p_source_87            IN NUMBER
76059 --Invoice Distribution Summary Tax Line Identifier
76060  , p_source_88            IN NUMBER
76061 --Payables Upgrade Credit Encumbrance Type Identifier
76062  , p_source_89            IN NUMBER
76063 --Payables Upgrade Debit Encumbrance Type Identifier
76064  , p_source_90            IN NUMBER
76065 --Business Flow Accounts Payable Application Identifier
76066  , p_source_91            IN NUMBER
76067 --Business Flow Invoice Distribution Type
76068  , p_source_92            IN VARCHAR2
76069 --Business Flow Invoice Entity Code
76070  , p_source_93            IN VARCHAR2
76071 --Business Flow Invoice Distribution Identifier
76072  , p_source_94            IN NUMBER
76073 --Business Flow Invoice Identifier
76074  , p_source_95            IN NUMBER
76075 --Accrue on Receipt Option
76076  , p_source_96            IN VARCHAR2
76077  , p_source_96_meaning    IN VARCHAR2
76078 --Invoice Exchange Date
76079  , p_source_143            IN DATE
76080 --Invoice Exchange Rate
76081  , p_source_144            IN NUMBER
76082 --Invoice Exchange Rate Type
76083  , p_source_145            IN VARCHAR2
76084 )
76085 IS
76086 
76087 l_component_type              VARCHAR2(80);
76088 l_component_code              VARCHAR2(30);
76089 l_component_type_code         VARCHAR2(1);
76090 l_component_appl_id           INTEGER;
76091 l_amb_context_code            VARCHAR2(30);
76092 l_entity_code                 VARCHAR2(30);
76093 l_event_class_code            VARCHAR2(30);
76094 l_ae_header_id                NUMBER;
76095 l_event_type_code             VARCHAR2(30);
76096 l_line_definition_code        VARCHAR2(30);
76097 l_line_definition_owner_code  VARCHAR2(1);
76098 --
76099 -- adr variables
76100 l_segment                     VARCHAR2(30);
76101 l_ccid                        NUMBER;
76102 l_adr_transaction_coa_id      NUMBER;
76103 l_adr_accounting_coa_id       NUMBER;
76104 l_adr_flexfield_segment_code  VARCHAR2(30);
76105 l_adr_flex_value_set_id       NUMBER;
76106 l_adr_value_type_code         VARCHAR2(30);
76107 l_adr_value_combination_id    NUMBER;
76108 l_adr_value_segment_code      VARCHAR2(30);
76109 
76110 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
76111 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
76112 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
76113 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
76114 
76115 -- 4262811 Variables ------------------------------------------------------------------------------------------
76116 l_entered_amt_idx             NUMBER;
76117 l_accted_amt_idx              NUMBER;
76118 l_acc_rev_flag                VARCHAR2(1);
76119 l_accrual_line_num            NUMBER;
76120 l_tmp_amt                     NUMBER;
76121 l_acc_rev_natural_side_code   VARCHAR2(1);
76122 
76123 l_num_entries                 NUMBER;
76124 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
76125 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
76126 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
76127 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
76128 l_recog_line_1                NUMBER;
76129 l_recog_line_2                NUMBER;
76130 
76131 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
76132 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
76133 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
76134 
76135 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
76136 
76137 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
76138 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
76139 
76140 ---------------------------------------------------------------------------------------------------------------
76141 
76142 
76143 --
76144 -- bulk performance
76145 --
76146 l_balance_type_code           VARCHAR2(1);
76147 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
76148 l_log_module                  VARCHAR2(240);
76149 
76150 --
76151 -- Upgrade strategy
76152 --
76153 l_actual_upg_option           VARCHAR2(1);
76154 l_enc_upg_option           VARCHAR2(1);
76155 
76156 --
76157 BEGIN
76158 --
76159 IF g_log_enabled THEN
76160       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_139';
76161 END IF;
76162 --
76163 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76164 
76165       trace
76166          (p_msg      => 'BEGIN of AcctLineType_139'
76167          ,p_level    => C_LEVEL_PROCEDURE
76168          ,p_module   => l_log_module);
76169 
76170 END IF;
76171 --
76172 l_component_type             := 'AMB_JLT';
76173 l_component_code             := 'AP_INV_PRICE_VAR_DM';
76174 l_component_type_code        := 'S';
76175 l_component_appl_id          :=  200;
76176 l_amb_context_code           := 'DEFAULT';
76177 l_entity_code                := 'AP_INVOICES';
76178 l_event_class_code           := 'DEBIT MEMOS';
76179 l_event_type_code            := 'DEBIT MEMOS_ALL';
76180 l_line_definition_owner_code := 'S';
76181 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
76182 --
76183 l_balance_type_code          := 'A';
76187 l_adr_accounting_coa_id       := NULL;
76184 l_segment                     := NULL;
76185 l_ccid                        := NULL;
76186 l_adr_transaction_coa_id      := NULL;
76188 l_adr_flexfield_segment_code  := NULL;
76189 l_adr_flex_value_set_id       := NULL;
76190 l_adr_value_type_code         := NULL;
76191 l_adr_value_combination_id    := NULL;
76192 l_adr_value_segment_code      := NULL;
76193 
76194 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
76195 l_bflow_class_code           := '';    -- 4219869 Business Flow
76196 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
76197 l_budgetary_control_flag     := 'N';
76198 
76199 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
76200 l_bflow_applied_to_amt       := NULL; -- 5132302
76201 l_entered_amt_idx            := NULL;          -- 4262811
76202 l_accted_amt_idx             := NULL;          -- 4262811
76203 l_acc_rev_flag               := NULL;          -- 4262811
76204 l_accrual_line_num           := NULL;          -- 4262811
76205 l_tmp_amt                    := NULL;          -- 4262811
76206 --
76207  
76208 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
76209     l_balance_type_code <> 'B' THEN
76210 IF NVL(p_source_33,'
76211 ') =  'IPV' AND 
76212 NVL(p_source_96,'
76213 ') =  'Y'
76214  THEN 
76215 
76216    --
76217    XLA_AE_LINES_PKG.SetNewLine;
76218 
76219    p_balance_type_code          := l_balance_type_code;
76220    -- set the flag so later we will know whether the gain loss line needs to be created
76221    
76222    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
76223      p_actual_flag :='A';
76224    END IF;
76225 
76226    --
76227    -- bulk performance
76228    --
76229    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
76230                                       p_header_num   => 0); -- 4262811
76231    --
76232    -- set accounting line options
76233    --
76234    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
76235            p_natural_side_code          => 'D'
76236          , p_gain_or_loss_flag          => 'N'
76237          , p_gl_transfer_mode_code      => 'S'
76238          , p_acct_entry_type_code       => 'A'
76239          , p_switch_side_flag           => 'Y'
76240          , p_merge_duplicate_code       => 'A'
76241          );
76242    --
76243    l_acc_rev_natural_side_code := 'C';  -- 4262811
76244    -- 
76245    --
76246    -- set accounting line type info
76247    --
76248    xla_ae_lines_pkg.SetAcctLineType
76249       (p_component_type             => l_component_type
76250       ,p_event_type_code            => l_event_type_code
76251       ,p_line_definition_owner_code => l_line_definition_owner_code
76252       ,p_line_definition_code       => l_line_definition_code
76253       ,p_accounting_line_code       => l_component_code
76254       ,p_accounting_line_type_code  => l_component_type_code
76255       ,p_accounting_line_appl_id    => l_component_appl_id
76256       ,p_amb_context_code           => l_amb_context_code
76257       ,p_entity_code                => l_entity_code
76258       ,p_event_class_code           => l_event_class_code);
76259    --
76260    -- set accounting class
76261    --
76262    xla_ae_lines_pkg.SetAcctClass(
76263            p_accounting_class_code  => 'IPV'
76264          , p_ae_header_id           => l_ae_header_id
76265          );
76266 
76267    --
76268    -- set rounding class
76269    --
76270    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
76271                       'IPV';
76272 
76273    --
76274    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
76275    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
76276    --
76277    -- bulk performance
76278    --
76279    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
76280 
76281    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
76282       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
76283 
76284    -- 4955764
76285    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
76286       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
76287 
76288    -- 4458381 Public Sector Enh
76289    
76290    --
76291    -- set accounting attributes for the line type
76292    --
76293    l_entered_amt_idx := 23;
76294    l_accted_amt_idx  := 28;
76295    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
76296    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
76297    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
76298    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
76299    l_rec_acct_attrs.array_num_value(2)  := 
76300 xla_ae_sources_pkg.GetSystemSourceNum(
76301    p_source_code           => 'XLA_EVENT_APPL_ID'
76302  , p_source_type_code      => 'Y'
76303  , p_source_application_id =>  602
76304 );
76305    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
76306    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
76307    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
76308    l_rec_acct_attrs.array_char_value(4)  := 
76309 xla_ae_sources_pkg.GetSystemSourceChar(
76313 );
76310    p_source_code           => 'XLA_ENTITY_CODE'
76311  , p_source_type_code      => 'Y'
76312  , p_source_application_id =>  602
76314    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
76315    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
76316    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
76317    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
76318    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
76319    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
76320    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
76321    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
76322    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
76323    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
76324    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
76325    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
76326    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
76327    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
76328    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
76329    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
76330    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
76331    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
76332    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
76333    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
76334    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
76335    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
76336    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
76337    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
76338    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
76339    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
76340    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
76341    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
76342    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
76343    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
76344    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
76345    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
76346    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
76347    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
76348    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
76349    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
76350    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
76351    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
76352    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
76353    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
76354    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
76355    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
76356    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
76357    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
76358    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
76359    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
76360    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
76361    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
76362    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
76363    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
76364    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
76365    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
76366    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
76367    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
76368    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
76369    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
76370    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
76371    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
76372    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
76373    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
76374    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
76375    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
76376    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
76377    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
76378    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
76379    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
76380    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
76381    l_rec_acct_attrs.array_num_value(38)  := p_source_86;
76382    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
76383    l_rec_acct_attrs.array_num_value(39)  := p_source_87;
76384    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
76385    l_rec_acct_attrs.array_num_value(40)  := p_source_88;
76386    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
76387    l_rec_acct_attrs.array_num_value(41)  := p_source_89;
76388    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
76389    l_rec_acct_attrs.array_num_value(42)  := p_source_90;
76390 
76391    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
76392    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
76393 
76397    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
76394    ---------------------------------------------------------------------------------------------------------------
76395    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
76396    ---------------------------------------------------------------------------------------------------------------
76398 
76399    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
76400    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
76401 
76402    IF xla_accounting_cache_pkg.GetValueChar
76403          (p_source_code         => 'LEDGER_CATEGORY_CODE'
76404          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
76405    AND l_bflow_method_code = 'PRIOR_ENTRY'
76406 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
76407    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
76408          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
76409        )
76410    THEN
76411          xla_ae_lines_pkg.BflowUpgEntry
76412            (p_business_method_code    => l_bflow_method_code
76413            ,p_business_class_code     => l_bflow_class_code
76414            ,p_balance_type            => l_balance_type_code);
76415    ELSE
76416       NULL;
76417 -- No business flow processing for business flow method of NONE.
76418    END IF;
76419 
76420    --
76421    -- call analytical criteria
76422    --
76423    
76424    --
76425    -- call description
76426    --
76427    
76428 xla_ae_lines_pkg.SetLineDescription(
76429    p_ae_header_id => l_ae_header_id
76430   ,p_description  => Description_1 (
76431      p_application_id         => p_application_id
76432    , p_ae_header_id           => l_ae_header_id 
76433 , p_source_1 => p_source_1
76434    )
76435 );
76436 
76437 
76438    --
76439    -- call ADRs
76440    -- Bug 4922099
76441    --
76442    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
76443         (NVL(l_actual_upg_option, 'N') = 'O') OR
76444         (NVL(l_enc_upg_option, 'N') = 'O')
76445       )
76446    THEN
76447    NULL;
76448    --
76449    --
76450    
76451   l_ccid := AcctDerRule_33(
76452            p_application_id           => p_application_id
76453          , p_ae_header_id             => l_ae_header_id 
76454 , p_source_30 => p_source_30
76455          , x_transaction_coa_id       => l_adr_transaction_coa_id
76456          , x_accounting_coa_id        => l_adr_accounting_coa_id
76457          , x_value_type_code          => l_adr_value_type_code
76458          , p_side                     => 'NA'
76459    );
76460 
76461    xla_ae_lines_pkg.set_ccid(
76462     p_code_combination_id          => l_ccid
76463   , p_value_type_code              => l_adr_value_type_code
76464   , p_transaction_coa_id           => l_adr_transaction_coa_id
76465   , p_accounting_coa_id            => l_adr_accounting_coa_id
76466   , p_adr_code                     => 'AP_INVOICE_DIST'
76467   , p_adr_type_code                => 'S'
76468   , p_component_type               => l_component_type
76469   , p_component_code               => l_component_code
76470   , p_component_type_code          => l_component_type_code
76471   , p_component_appl_id            => l_component_appl_id
76472   , p_amb_context_code             => l_amb_context_code
76473   , p_side                         => 'NA'
76474   );
76475 
76476 
76477    --
76478    --
76479    END IF;
76480    --
76481    -- Bug 4922099
76482    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
76483           (NVL(l_enc_upg_option, 'N') = 'O')
76484         ) AND
76485         (l_bflow_method_code = 'PRIOR_ENTRY')
76486       )
76487    THEN
76488       IF
76489       --
76490       1 = 2
76491       --
76492       THEN
76493       xla_accounting_err_pkg.build_message
76494                                     (p_appli_s_name            => 'XLA'
76495                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
76496                                     ,p_token_1                 => 'LINE_NUMBER'
76497                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
76498                                     ,p_token_2                 => 'LINE_TYPE_NAME'
76499                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
76500                                                                              l_component_type
76501                                                                             ,l_component_code
76502                                                                             ,l_component_type_code
76503                                                                             ,l_component_appl_id
76504                                                                             ,l_amb_context_code
76505                                                                             ,l_entity_code
76506                                                                             ,l_event_class_code
76507                                                                            )
76508                                     ,p_token_3                 => 'OWNER'
76512                                                                          )
76509                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
76510                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
76511                                                                           ,p_lookup_code    => l_component_type_code
76513                                     ,p_token_4                 => 'PRODUCT_NAME'
76514                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
76515                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
76516                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
76517                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
76518                                     ,p_ae_header_id            =>  NULL
76519                                        );
76520 
76521         IF (C_LEVEL_ERROR>= g_log_level) THEN
76522                  trace
76523                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
76524                       ,p_level    => C_LEVEL_ERROR
76525                       ,p_module   => l_log_module);
76526         END IF;
76527       END IF;
76528    END IF;
76529    --
76530    --
76531    ------------------------------------------------------------------------------------------------
76532    -- 4219869 Business Flow
76533    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
76534    -- Prior Entry.  Currently, the following code is always generated.
76535    ------------------------------------------------------------------------------------------------
76536    XLA_AE_LINES_PKG.ValidateCurrentLine;
76537 
76538    ------------------------------------------------------------------------------------
76539    -- 4219869 Business Flow
76540    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
76541    ------------------------------------------------------------------------------------
76542    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
76543 
76544    ----------------------------------------------------------------------------------
76545    -- 4219869 Business Flow
76546    -- Update journal entry status -- Need to generate this within IF <condition>
76547    ----------------------------------------------------------------------------------
76548    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
76549          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
76550          ,p_balance_type_code => l_balance_type_code
76551          );
76552 
76553    -------------------------------------------------------------------------------------------
76554    -- 4262811 - Generate the Accrual Reversal lines
76555    -------------------------------------------------------------------------------------------
76556    BEGIN
76557       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
76558                               (g_array_event(p_event_id).array_value_num('header_index'));
76559       IF l_acc_rev_flag IS NULL THEN
76560          l_acc_rev_flag := 'N';
76561       END IF;
76562    EXCEPTION
76563       WHEN OTHERS THEN
76564          l_acc_rev_flag := 'N';
76565    END;
76566    --
76567    IF (l_acc_rev_flag = 'Y') THEN
76568 
76569        -- 4645092  ------------------------------------------------------------------------------
76570        -- To allow MPA report to determine if it should generate report process
76571        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
76572        ------------------------------------------------------------------------------------------
76573 
76574        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
76575        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
76576    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
76577    -- call ADRs
76578    -- Bug 4922099
76579    --
76580    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
76581         (NVL(l_actual_upg_option, 'N') = 'O') OR
76582         (NVL(l_enc_upg_option, 'N') = 'O')
76583       )
76584    THEN
76585    NULL;
76586    --
76587    --
76588    
76589   l_ccid := AcctDerRule_33(
76590            p_application_id           => p_application_id
76591          , p_ae_header_id             => l_ae_header_id 
76592 , p_source_30 => p_source_30
76593          , x_transaction_coa_id       => l_adr_transaction_coa_id
76594          , x_accounting_coa_id        => l_adr_accounting_coa_id
76595          , x_value_type_code          => l_adr_value_type_code
76596          , p_side                     => 'NA'
76597    );
76598 
76599    xla_ae_lines_pkg.set_ccid(
76600     p_code_combination_id          => l_ccid
76601   , p_value_type_code              => l_adr_value_type_code
76602   , p_transaction_coa_id           => l_adr_transaction_coa_id
76603   , p_accounting_coa_id            => l_adr_accounting_coa_id
76604   , p_adr_code                     => 'AP_INVOICE_DIST'
76605   , p_adr_type_code                => 'S'
76606   , p_component_type               => l_component_type
76607   , p_component_code               => l_component_code
76608   , p_component_type_code          => l_component_type_code
76609   , p_component_appl_id            => l_component_appl_id
76610   , p_amb_context_code             => l_amb_context_code
76611   , p_side                         => 'NA'
76612   );
76613 
76614 
76618 
76615    --
76616    --
76617    END IF;
76619        --
76620        -- Update the line information that should be overwritten
76621        --
76622        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
76623                                          p_header_num   => 1);
76624        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
76625 
76626        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
76627 
76628        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
76629           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
76630        END IF;
76631 
76632       --
76633       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
76634       --
76635       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
76636           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
76637       ELSE
76638           ---------------------------------------------------------------------------------------------------
76639           -- 4262811a Switch Sign
76640           ---------------------------------------------------------------------------------------------------
76641           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
76642           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
76643                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76644           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
76645                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76646           -- 5132302
76647           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
76648                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
76649 
76650       END IF;
76651 
76652       -- 4955764
76653       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
76654       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
76655 
76656 
76657       XLA_AE_LINES_PKG.ValidateCurrentLine;
76658       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
76659 
76660       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
76661                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
76662                ,p_balance_type_code => l_balance_type_code);
76663 
76664    END IF;
76665 
76666    -----------------------------------------------------------------------------------------
76667    -- 4262811 Multiperiod Accounting
76668    -----------------------------------------------------------------------------------------
76669      -- No MPA option is assigned.
76670 
76671 
76672 END IF;
76673 END IF;
76674 --
76675 
76676 --
76677 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76678    trace
76679       (p_msg      => 'END of AcctLineType_139'
76680       ,p_level    => C_LEVEL_PROCEDURE
76681       ,p_module   => l_log_module);
76682 END IF;
76683 --
76684 EXCEPTION
76685   WHEN xla_exceptions_pkg.application_exception THEN
76686       RAISE;
76687   WHEN OTHERS THEN
76688        xla_exceptions_pkg.raise_message
76689            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_139');
76690 END AcctLineType_139;
76691 --
76692 
76693 ---------------------------------------
76694 --
76695 -- PRIVATE FUNCTION
76696 --         AcctLineType_140
76697 --
76698 ---------------------------------------
76699 PROCEDURE AcctLineType_140 (
76700   p_application_id        IN NUMBER
76701  ,p_event_id              IN NUMBER
76702  ,p_calculate_acctd_flag  IN VARCHAR2
76703  ,p_calculate_g_l_flag    IN VARCHAR2
76704  ,p_actual_flag           IN OUT VARCHAR2
76705  ,p_balance_type_code     OUT VARCHAR2
76706  ,p_gain_or_loss_ref      OUT VARCHAR2
76707  
76708 --Invoice Distribution Description
76709  , p_source_1            IN VARCHAR2
76710 --Invoice Distribution Ledger Amount
76711  , p_source_21            IN NUMBER
76712 --Invoice Distribution Account
76713  , p_source_30            IN NUMBER
76714 --Invoice Distribution Type
76715  , p_source_33            IN VARCHAR2
76716  , p_source_33_meaning    IN VARCHAR2
76717 --Accounting Reversal Indicator
76718  , p_source_53            IN VARCHAR2
76719 --Distribution Link Type
76720  , p_source_55            IN VARCHAR2
76721 --Allocation to Main Distribution Identifier
76722  , p_source_57            IN NUMBER
76723 --Invoice Identifier
76724  , p_source_58            IN NUMBER
76725 --Invoice Distribution Identifier
76726  , p_source_64            IN NUMBER
76727 --Payables Encumbrance Upgrade Credit Account
76728  , p_source_65            IN NUMBER
76729 --Payables Encumbrance Upgrade Credit Amount
76730  , p_source_66            IN NUMBER
76731 --Invoice Currency Code
76732  , p_source_67            IN VARCHAR2
76733 --Payables Encumbrance Upgrade Credit Base Amount
76734  , p_source_68            IN NUMBER
76735 --Payables Encumbrance Upgrade Debit Account
76736  , p_source_69            IN NUMBER
76737 --Payables Encumbrance Upgrade Debit Amount
76738  , p_source_70            IN NUMBER
76742  , p_source_72            IN VARCHAR2
76739 --Payables Encumbrance Upgrade Debit Base Amount
76740  , p_source_71            IN NUMBER
76741 --Payables Encumbrance Upgrade Option
76743 --Invoice Distribution Amount
76744  , p_source_73            IN NUMBER
76745 --Deferred Accounting End Date
76746  , p_source_77            IN DATE
76747 --Deferred Accounting Option
76748  , p_source_78            IN VARCHAR2
76749 --Deferred Accounting Start Date
76750  , p_source_79            IN DATE
76751 --Override Accounted Amount Indicator
76752  , p_source_80            IN VARCHAR2
76753  , p_source_80_meaning    IN VARCHAR2
76754 --Invoice Supplier Identifier
76755  , p_source_81            IN NUMBER
76756 --Invoice Supplier Site Identifier
76757  , p_source_82            IN NUMBER
76758 --Third Party Type
76759  , p_source_83            IN VARCHAR2
76760 --Parent Reversal Identifier
76761  , p_source_84            IN NUMBER
76762 --Invoice Distribution Statistical Amount
76763  , p_source_85            IN NUMBER
76764 --Invoice Distribution Tax Line Identifier
76765  , p_source_86            IN NUMBER
76766 --Invoice Distribution Tax Distribution Identifier from Tax
76767  , p_source_87            IN NUMBER
76768 --Invoice Distribution Summary Tax Line Identifier
76769  , p_source_88            IN NUMBER
76770 --Payables Upgrade Credit Encumbrance Type Identifier
76771  , p_source_89            IN NUMBER
76772 --Payables Upgrade Debit Encumbrance Type Identifier
76773  , p_source_90            IN NUMBER
76774 --Business Flow Accounts Payable Application Identifier
76775  , p_source_91            IN NUMBER
76776 --Business Flow Invoice Distribution Type
76777  , p_source_92            IN VARCHAR2
76778 --Business Flow Invoice Entity Code
76779  , p_source_93            IN VARCHAR2
76780 --Business Flow Invoice Distribution Identifier
76781  , p_source_94            IN NUMBER
76782 --Business Flow Invoice Identifier
76783  , p_source_95            IN NUMBER
76784 --Accrue on Receipt Option
76785  , p_source_96            IN VARCHAR2
76786  , p_source_96_meaning    IN VARCHAR2
76787 --Invoice Exchange Date
76788  , p_source_143            IN DATE
76789 --Invoice Exchange Rate
76790  , p_source_144            IN NUMBER
76791 --Invoice Exchange Rate Type
76792  , p_source_145            IN VARCHAR2
76793 )
76794 IS
76795 
76796 l_component_type              VARCHAR2(80);
76797 l_component_code              VARCHAR2(30);
76798 l_component_type_code         VARCHAR2(1);
76799 l_component_appl_id           INTEGER;
76800 l_amb_context_code            VARCHAR2(30);
76801 l_entity_code                 VARCHAR2(30);
76802 l_event_class_code            VARCHAR2(30);
76803 l_ae_header_id                NUMBER;
76804 l_event_type_code             VARCHAR2(30);
76805 l_line_definition_code        VARCHAR2(30);
76806 l_line_definition_owner_code  VARCHAR2(1);
76807 --
76808 -- adr variables
76809 l_segment                     VARCHAR2(30);
76810 l_ccid                        NUMBER;
76811 l_adr_transaction_coa_id      NUMBER;
76812 l_adr_accounting_coa_id       NUMBER;
76813 l_adr_flexfield_segment_code  VARCHAR2(30);
76814 l_adr_flex_value_set_id       NUMBER;
76815 l_adr_value_type_code         VARCHAR2(30);
76816 l_adr_value_combination_id    NUMBER;
76817 l_adr_value_segment_code      VARCHAR2(30);
76818 
76819 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
76820 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
76821 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
76822 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
76823 
76824 -- 4262811 Variables ------------------------------------------------------------------------------------------
76825 l_entered_amt_idx             NUMBER;
76826 l_accted_amt_idx              NUMBER;
76827 l_acc_rev_flag                VARCHAR2(1);
76828 l_accrual_line_num            NUMBER;
76829 l_tmp_amt                     NUMBER;
76830 l_acc_rev_natural_side_code   VARCHAR2(1);
76831 
76832 l_num_entries                 NUMBER;
76833 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
76834 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
76835 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
76836 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
76837 l_recog_line_1                NUMBER;
76838 l_recog_line_2                NUMBER;
76839 
76840 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
76841 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
76842 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
76843 
76844 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
76845 
76846 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
76847 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
76848 
76849 ---------------------------------------------------------------------------------------------------------------
76850 
76851 
76852 --
76853 -- bulk performance
76854 --
76855 l_balance_type_code           VARCHAR2(1);
76856 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
76857 l_log_module                  VARCHAR2(240);
76858 
76859 --
76860 -- Upgrade strategy
76861 --
76862 l_actual_upg_option           VARCHAR2(1);
76863 l_enc_upg_option           VARCHAR2(1);
76864 
76865 --
76869       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_140';
76866 BEGIN
76867 --
76868 IF g_log_enabled THEN
76870 END IF;
76871 --
76872 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76873 
76874       trace
76875          (p_msg      => 'BEGIN of AcctLineType_140'
76876          ,p_level    => C_LEVEL_PROCEDURE
76877          ,p_module   => l_log_module);
76878 
76879 END IF;
76880 --
76881 l_component_type             := 'AMB_JLT';
76882 l_component_code             := 'AP_INV_PRICE_VAR_INV';
76883 l_component_type_code        := 'S';
76884 l_component_appl_id          :=  200;
76885 l_amb_context_code           := 'DEFAULT';
76886 l_entity_code                := 'AP_INVOICES';
76887 l_event_class_code           := 'INVOICES';
76888 l_event_type_code            := 'INVOICES_ALL';
76889 l_line_definition_owner_code := 'S';
76890 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
76891 --
76892 l_balance_type_code          := 'A';
76893 l_segment                     := NULL;
76894 l_ccid                        := NULL;
76895 l_adr_transaction_coa_id      := NULL;
76896 l_adr_accounting_coa_id       := NULL;
76897 l_adr_flexfield_segment_code  := NULL;
76898 l_adr_flex_value_set_id       := NULL;
76899 l_adr_value_type_code         := NULL;
76900 l_adr_value_combination_id    := NULL;
76901 l_adr_value_segment_code      := NULL;
76902 
76903 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
76904 l_bflow_class_code           := '';    -- 4219869 Business Flow
76905 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
76906 l_budgetary_control_flag     := 'N';
76907 
76908 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
76909 l_bflow_applied_to_amt       := NULL; -- 5132302
76910 l_entered_amt_idx            := NULL;          -- 4262811
76911 l_accted_amt_idx             := NULL;          -- 4262811
76912 l_acc_rev_flag               := NULL;          -- 4262811
76913 l_accrual_line_num           := NULL;          -- 4262811
76914 l_tmp_amt                    := NULL;          -- 4262811
76915 --
76916  
76917 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
76918     l_balance_type_code <> 'B' THEN
76919 IF NVL(p_source_33,'
76920 ') =  'IPV' AND 
76921 NVL(p_source_96,'
76922 ') =  'Y'
76923  THEN 
76924 
76925    --
76926    XLA_AE_LINES_PKG.SetNewLine;
76927 
76928    p_balance_type_code          := l_balance_type_code;
76929    -- set the flag so later we will know whether the gain loss line needs to be created
76930    
76931    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
76932      p_actual_flag :='A';
76933    END IF;
76934 
76935    --
76936    -- bulk performance
76937    --
76938    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
76939                                       p_header_num   => 0); -- 4262811
76940    --
76941    -- set accounting line options
76942    --
76943    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
76944            p_natural_side_code          => 'D'
76945          , p_gain_or_loss_flag          => 'N'
76946          , p_gl_transfer_mode_code      => 'S'
76947          , p_acct_entry_type_code       => 'A'
76948          , p_switch_side_flag           => 'Y'
76949          , p_merge_duplicate_code       => 'A'
76950          );
76951    --
76952    l_acc_rev_natural_side_code := 'C';  -- 4262811
76953    -- 
76954    --
76955    -- set accounting line type info
76956    --
76957    xla_ae_lines_pkg.SetAcctLineType
76958       (p_component_type             => l_component_type
76959       ,p_event_type_code            => l_event_type_code
76960       ,p_line_definition_owner_code => l_line_definition_owner_code
76961       ,p_line_definition_code       => l_line_definition_code
76962       ,p_accounting_line_code       => l_component_code
76963       ,p_accounting_line_type_code  => l_component_type_code
76964       ,p_accounting_line_appl_id    => l_component_appl_id
76965       ,p_amb_context_code           => l_amb_context_code
76966       ,p_entity_code                => l_entity_code
76967       ,p_event_class_code           => l_event_class_code);
76968    --
76969    -- set accounting class
76970    --
76971    xla_ae_lines_pkg.SetAcctClass(
76972            p_accounting_class_code  => 'IPV'
76973          , p_ae_header_id           => l_ae_header_id
76974          );
76975 
76976    --
76977    -- set rounding class
76978    --
76979    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
76980                       'IPV';
76981 
76982    --
76983    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
76984    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
76985    --
76986    -- bulk performance
76987    --
76988    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
76989 
76990    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
76991       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
76992 
76993    -- 4955764
76994    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
76995       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
76996 
76997    -- 4458381 Public Sector Enh
76998    
76999    --
77003    l_accted_amt_idx  := 29;
77000    -- set accounting attributes for the line type
77001    --
77002    l_entered_amt_idx := 24;
77004    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
77005    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
77006    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
77007    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
77008    l_rec_acct_attrs.array_num_value(2)  := 
77009 xla_ae_sources_pkg.GetSystemSourceNum(
77010    p_source_code           => 'XLA_EVENT_APPL_ID'
77011  , p_source_type_code      => 'Y'
77012  , p_source_application_id =>  602
77013 );
77014    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
77015    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
77016    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
77017    l_rec_acct_attrs.array_char_value(4)  := 
77018 xla_ae_sources_pkg.GetSystemSourceChar(
77019    p_source_code           => 'XLA_ENTITY_CODE'
77020  , p_source_type_code      => 'Y'
77021  , p_source_application_id =>  602
77022 );
77023    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
77024    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
77025    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
77026    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
77027    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
77028    l_rec_acct_attrs.array_num_value(7)  := p_source_73;
77029    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
77030    l_rec_acct_attrs.array_num_value(8)  := p_source_91;
77031    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
77032    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
77033    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
77034    l_rec_acct_attrs.array_char_value(10)  := p_source_93;
77035    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
77036    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
77037    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
77038    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_95);
77039    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
77040    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_64);
77041    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
77042    l_rec_acct_attrs.array_char_value(14)  := p_source_55;
77043    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
77044    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
77045    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
77046    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
77047    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
77048    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
77049    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
77050    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
77051    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
77052    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
77053    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
77054    l_rec_acct_attrs.array_num_value(20)  := p_source_70;
77055    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
77056    l_rec_acct_attrs.array_char_value(21)  := p_source_67;
77057    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
77058    l_rec_acct_attrs.array_num_value(22)  := p_source_71;
77059    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
77060    l_rec_acct_attrs.array_char_value(23)  := p_source_72;
77061    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
77062    l_rec_acct_attrs.array_num_value(24)  := p_source_73;
77063    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
77064    l_rec_acct_attrs.array_char_value(25)  := p_source_67;
77065    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
77066    l_rec_acct_attrs.array_date_value(26)  := p_source_143;
77067    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
77068    l_rec_acct_attrs.array_num_value(27)  := p_source_144;
77069    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
77070    l_rec_acct_attrs.array_char_value(28)  := p_source_145;
77071    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
77072    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
77073    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
77074    l_rec_acct_attrs.array_date_value(30)  := p_source_77;
77075    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
77076    l_rec_acct_attrs.array_char_value(31)  := p_source_78;
77077    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
77078    l_rec_acct_attrs.array_date_value(32)  := p_source_79;
77079    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
77080    l_rec_acct_attrs.array_char_value(33)  := p_source_80;
77081    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
77082    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
77083    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
77084    l_rec_acct_attrs.array_num_value(35)  := p_source_82;
77085    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
77086    l_rec_acct_attrs.array_char_value(36)  := p_source_83;
77087    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
77091    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
77088    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_84);
77089    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
77090    l_rec_acct_attrs.array_char_value(38)  := p_source_55;
77092    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
77093    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
77094    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
77095    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
77096    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
77097    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
77098    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
77099    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
77100    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
77101    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
77102    l_rec_acct_attrs.array_num_value(44)  := p_source_90;
77103 
77104    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
77105    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
77106 
77107    ---------------------------------------------------------------------------------------------------------------
77108    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
77109    ---------------------------------------------------------------------------------------------------------------
77110    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
77111 
77112    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
77113    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
77114 
77115    IF xla_accounting_cache_pkg.GetValueChar
77116          (p_source_code         => 'LEDGER_CATEGORY_CODE'
77117          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
77118    AND l_bflow_method_code = 'PRIOR_ENTRY'
77119 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
77120    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
77121          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
77122        )
77123    THEN
77124          xla_ae_lines_pkg.BflowUpgEntry
77125            (p_business_method_code    => l_bflow_method_code
77126            ,p_business_class_code     => l_bflow_class_code
77127            ,p_balance_type            => l_balance_type_code);
77128    ELSE
77129       NULL;
77130 -- No business flow processing for business flow method of NONE.
77131    END IF;
77132 
77133    --
77134    -- call analytical criteria
77135    --
77136    
77137    --
77138    -- call description
77139    --
77140    
77141 xla_ae_lines_pkg.SetLineDescription(
77142    p_ae_header_id => l_ae_header_id
77143   ,p_description  => Description_1 (
77144      p_application_id         => p_application_id
77145    , p_ae_header_id           => l_ae_header_id 
77146 , p_source_1 => p_source_1
77147    )
77148 );
77149 
77150 
77151    --
77152    -- call ADRs
77153    -- Bug 4922099
77154    --
77155    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
77156         (NVL(l_actual_upg_option, 'N') = 'O') OR
77157         (NVL(l_enc_upg_option, 'N') = 'O')
77158       )
77159    THEN
77160    NULL;
77161    --
77162    --
77163    
77164   l_ccid := AcctDerRule_33(
77165            p_application_id           => p_application_id
77166          , p_ae_header_id             => l_ae_header_id 
77167 , p_source_30 => p_source_30
77168          , x_transaction_coa_id       => l_adr_transaction_coa_id
77169          , x_accounting_coa_id        => l_adr_accounting_coa_id
77170          , x_value_type_code          => l_adr_value_type_code
77171          , p_side                     => 'NA'
77172    );
77173 
77174    xla_ae_lines_pkg.set_ccid(
77175     p_code_combination_id          => l_ccid
77176   , p_value_type_code              => l_adr_value_type_code
77177   , p_transaction_coa_id           => l_adr_transaction_coa_id
77178   , p_accounting_coa_id            => l_adr_accounting_coa_id
77179   , p_adr_code                     => 'AP_INVOICE_DIST'
77180   , p_adr_type_code                => 'S'
77181   , p_component_type               => l_component_type
77182   , p_component_code               => l_component_code
77183   , p_component_type_code          => l_component_type_code
77184   , p_component_appl_id            => l_component_appl_id
77185   , p_amb_context_code             => l_amb_context_code
77186   , p_side                         => 'NA'
77187   );
77188 
77189 
77190    --
77191    --
77192    END IF;
77193    --
77194    -- Bug 4922099
77195    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
77196           (NVL(l_enc_upg_option, 'N') = 'O')
77197         ) AND
77198         (l_bflow_method_code = 'PRIOR_ENTRY')
77199       )
77200    THEN
77201       IF
77202       --
77203       1 = 2
77204       --
77205       THEN
77206       xla_accounting_err_pkg.build_message
77207                                     (p_appli_s_name            => 'XLA'
77208                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
77212                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
77209                                     ,p_token_1                 => 'LINE_NUMBER'
77210                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
77211                                     ,p_token_2                 => 'LINE_TYPE_NAME'
77213                                                                              l_component_type
77214                                                                             ,l_component_code
77215                                                                             ,l_component_type_code
77216                                                                             ,l_component_appl_id
77217                                                                             ,l_amb_context_code
77218                                                                             ,l_entity_code
77219                                                                             ,l_event_class_code
77220                                                                            )
77221                                     ,p_token_3                 => 'OWNER'
77222                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
77223                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
77224                                                                           ,p_lookup_code    => l_component_type_code
77225                                                                          )
77226                                     ,p_token_4                 => 'PRODUCT_NAME'
77227                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
77228                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
77229                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
77230                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
77231                                     ,p_ae_header_id            =>  NULL
77232                                        );
77233 
77234         IF (C_LEVEL_ERROR>= g_log_level) THEN
77235                  trace
77236                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
77237                       ,p_level    => C_LEVEL_ERROR
77238                       ,p_module   => l_log_module);
77239         END IF;
77240       END IF;
77241    END IF;
77242    --
77243    --
77244    ------------------------------------------------------------------------------------------------
77245    -- 4219869 Business Flow
77246    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
77247    -- Prior Entry.  Currently, the following code is always generated.
77248    ------------------------------------------------------------------------------------------------
77249    XLA_AE_LINES_PKG.ValidateCurrentLine;
77250 
77251    ------------------------------------------------------------------------------------
77252    -- 4219869 Business Flow
77253    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
77254    ------------------------------------------------------------------------------------
77255    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
77256 
77257    ----------------------------------------------------------------------------------
77258    -- 4219869 Business Flow
77259    -- Update journal entry status -- Need to generate this within IF <condition>
77260    ----------------------------------------------------------------------------------
77261    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
77262          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
77263          ,p_balance_type_code => l_balance_type_code
77264          );
77265 
77266    -------------------------------------------------------------------------------------------
77267    -- 4262811 - Generate the Accrual Reversal lines
77268    -------------------------------------------------------------------------------------------
77269    BEGIN
77270       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
77271                               (g_array_event(p_event_id).array_value_num('header_index'));
77272       IF l_acc_rev_flag IS NULL THEN
77273          l_acc_rev_flag := 'N';
77274       END IF;
77275    EXCEPTION
77276       WHEN OTHERS THEN
77277          l_acc_rev_flag := 'N';
77278    END;
77279    --
77280    IF (l_acc_rev_flag = 'Y') THEN
77281 
77282        -- 4645092  ------------------------------------------------------------------------------
77283        -- To allow MPA report to determine if it should generate report process
77284        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
77285        ------------------------------------------------------------------------------------------
77286 
77287        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
77288        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
77289    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
77290    -- call ADRs
77291    -- Bug 4922099
77292    --
77293    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
77294         (NVL(l_actual_upg_option, 'N') = 'O') OR
77295         (NVL(l_enc_upg_option, 'N') = 'O')
77296       )
77297    THEN
77298    NULL;
77299    --
77300    --
77301    
77302   l_ccid := AcctDerRule_33(
77306          , x_transaction_coa_id       => l_adr_transaction_coa_id
77303            p_application_id           => p_application_id
77304          , p_ae_header_id             => l_ae_header_id 
77305 , p_source_30 => p_source_30
77307          , x_accounting_coa_id        => l_adr_accounting_coa_id
77308          , x_value_type_code          => l_adr_value_type_code
77309          , p_side                     => 'NA'
77310    );
77311 
77312    xla_ae_lines_pkg.set_ccid(
77313     p_code_combination_id          => l_ccid
77314   , p_value_type_code              => l_adr_value_type_code
77315   , p_transaction_coa_id           => l_adr_transaction_coa_id
77316   , p_accounting_coa_id            => l_adr_accounting_coa_id
77317   , p_adr_code                     => 'AP_INVOICE_DIST'
77318   , p_adr_type_code                => 'S'
77319   , p_component_type               => l_component_type
77320   , p_component_code               => l_component_code
77321   , p_component_type_code          => l_component_type_code
77322   , p_component_appl_id            => l_component_appl_id
77323   , p_amb_context_code             => l_amb_context_code
77324   , p_side                         => 'NA'
77325   );
77326 
77327 
77328    --
77329    --
77330    END IF;
77331 
77332        --
77333        -- Update the line information that should be overwritten
77334        --
77335        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
77336                                          p_header_num   => 1);
77337        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
77338 
77339        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
77340 
77341        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
77342           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
77343        END IF;
77344 
77345       --
77346       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
77347       --
77348       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
77349           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
77350       ELSE
77351           ---------------------------------------------------------------------------------------------------
77352           -- 4262811a Switch Sign
77353           ---------------------------------------------------------------------------------------------------
77354           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
77355           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
77356                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77357           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
77358                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77359           -- 5132302
77360           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
77361                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
77362 
77363       END IF;
77364 
77365       -- 4955764
77366       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
77367       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
77368 
77369 
77370       XLA_AE_LINES_PKG.ValidateCurrentLine;
77371       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
77372 
77373       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
77374                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
77375                ,p_balance_type_code => l_balance_type_code);
77376 
77377    END IF;
77378 
77379    -----------------------------------------------------------------------------------------
77380    -- 4262811 Multiperiod Accounting
77381    -----------------------------------------------------------------------------------------
77382      -- No MPA option is assigned.
77383 
77384 
77385 END IF;
77386 END IF;
77387 --
77388 
77389 --
77390 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77391    trace
77392       (p_msg      => 'END of AcctLineType_140'
77393       ,p_level    => C_LEVEL_PROCEDURE
77394       ,p_module   => l_log_module);
77395 END IF;
77396 --
77397 EXCEPTION
77398   WHEN xla_exceptions_pkg.application_exception THEN
77399       RAISE;
77400   WHEN OTHERS THEN
77401        xla_exceptions_pkg.raise_message
77402            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_140');
77403 END AcctLineType_140;
77404 --
77405 
77406 ---------------------------------------
77407 --
77408 -- PRIVATE FUNCTION
77409 --         AcctLineType_141
77410 --
77411 ---------------------------------------
77412 PROCEDURE AcctLineType_141 (
77413   p_application_id        IN NUMBER
77414  ,p_event_id              IN NUMBER
77415  ,p_calculate_acctd_flag  IN VARCHAR2
77416  ,p_calculate_g_l_flag    IN VARCHAR2
77417  ,p_actual_flag           IN OUT VARCHAR2
77418  ,p_balance_type_code     OUT VARCHAR2
77419  ,p_gain_or_loss_ref      OUT VARCHAR2
77420  
77421 --Invoice Distribution Description
77422  , p_source_1            IN VARCHAR2
77423 --Invoice Distribution Ledger Amount
77424  , p_source_21            IN NUMBER
77428  , p_source_33            IN VARCHAR2
77425 --Invoice Distribution Account
77426  , p_source_30            IN NUMBER
77427 --Invoice Distribution Type
77429  , p_source_33_meaning    IN VARCHAR2
77430 --Accounting Reversal Indicator
77431  , p_source_53            IN VARCHAR2
77432 --Distribution Link Type
77433  , p_source_55            IN VARCHAR2
77434 --Allocation to Main Distribution Identifier
77435  , p_source_57            IN NUMBER
77436 --Invoice Identifier
77437  , p_source_58            IN NUMBER
77438 --Invoice Distribution Identifier
77439  , p_source_64            IN NUMBER
77440 --Payables Encumbrance Upgrade Credit Account
77441  , p_source_65            IN NUMBER
77442 --Payables Encumbrance Upgrade Credit Amount
77443  , p_source_66            IN NUMBER
77444 --Invoice Currency Code
77445  , p_source_67            IN VARCHAR2
77446 --Payables Encumbrance Upgrade Credit Base Amount
77447  , p_source_68            IN NUMBER
77448 --Payables Encumbrance Upgrade Debit Account
77449  , p_source_69            IN NUMBER
77450 --Payables Encumbrance Upgrade Debit Amount
77451  , p_source_70            IN NUMBER
77452 --Payables Encumbrance Upgrade Debit Base Amount
77453  , p_source_71            IN NUMBER
77454 --Payables Encumbrance Upgrade Option
77455  , p_source_72            IN VARCHAR2
77456 --Invoice Distribution Amount
77457  , p_source_73            IN NUMBER
77458 --Deferred Accounting End Date
77459  , p_source_77            IN DATE
77460 --Deferred Accounting Option
77461  , p_source_78            IN VARCHAR2
77462 --Deferred Accounting Start Date
77463  , p_source_79            IN DATE
77464 --Override Accounted Amount Indicator
77465  , p_source_80            IN VARCHAR2
77466  , p_source_80_meaning    IN VARCHAR2
77467 --Invoice Supplier Identifier
77468  , p_source_81            IN NUMBER
77469 --Invoice Supplier Site Identifier
77470  , p_source_82            IN NUMBER
77471 --Third Party Type
77472  , p_source_83            IN VARCHAR2
77473 --Parent Reversal Identifier
77474  , p_source_84            IN NUMBER
77475 --Invoice Distribution Statistical Amount
77476  , p_source_85            IN NUMBER
77477 --Invoice Distribution Tax Line Identifier
77478  , p_source_86            IN NUMBER
77479 --Invoice Distribution Tax Distribution Identifier from Tax
77480  , p_source_87            IN NUMBER
77481 --Invoice Distribution Summary Tax Line Identifier
77482  , p_source_88            IN NUMBER
77483 --Payables Upgrade Credit Encumbrance Type Identifier
77484  , p_source_89            IN NUMBER
77485 --Payables Upgrade Debit Encumbrance Type Identifier
77486  , p_source_90            IN NUMBER
77487 --Business Flow Accounts Payable Application Identifier
77488  , p_source_91            IN NUMBER
77489 --Business Flow Invoice Distribution Type
77490  , p_source_92            IN VARCHAR2
77491 --Business Flow Invoice Entity Code
77492  , p_source_93            IN VARCHAR2
77493 --Business Flow Invoice Distribution Identifier
77494  , p_source_94            IN NUMBER
77495 --Business Flow Invoice Identifier
77496  , p_source_95            IN NUMBER
77497 --Accrue on Receipt Option
77498  , p_source_96            IN VARCHAR2
77499  , p_source_96_meaning    IN VARCHAR2
77500 --Invoice Exchange Date
77501  , p_source_143            IN DATE
77502 --Invoice Exchange Rate
77503  , p_source_144            IN NUMBER
77504 --Invoice Exchange Rate Type
77505  , p_source_145            IN VARCHAR2
77506 )
77507 IS
77508 
77509 l_component_type              VARCHAR2(80);
77510 l_component_code              VARCHAR2(30);
77511 l_component_type_code         VARCHAR2(1);
77512 l_component_appl_id           INTEGER;
77513 l_amb_context_code            VARCHAR2(30);
77514 l_entity_code                 VARCHAR2(30);
77515 l_event_class_code            VARCHAR2(30);
77516 l_ae_header_id                NUMBER;
77517 l_event_type_code             VARCHAR2(30);
77518 l_line_definition_code        VARCHAR2(30);
77519 l_line_definition_owner_code  VARCHAR2(1);
77520 --
77521 -- adr variables
77522 l_segment                     VARCHAR2(30);
77523 l_ccid                        NUMBER;
77524 l_adr_transaction_coa_id      NUMBER;
77525 l_adr_accounting_coa_id       NUMBER;
77526 l_adr_flexfield_segment_code  VARCHAR2(30);
77527 l_adr_flex_value_set_id       NUMBER;
77528 l_adr_value_type_code         VARCHAR2(30);
77529 l_adr_value_combination_id    NUMBER;
77530 l_adr_value_segment_code      VARCHAR2(30);
77531 
77532 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
77533 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
77534 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
77535 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
77536 
77537 -- 4262811 Variables ------------------------------------------------------------------------------------------
77538 l_entered_amt_idx             NUMBER;
77539 l_accted_amt_idx              NUMBER;
77540 l_acc_rev_flag                VARCHAR2(1);
77541 l_accrual_line_num            NUMBER;
77542 l_tmp_amt                     NUMBER;
77543 l_acc_rev_natural_side_code   VARCHAR2(1);
77544 
77545 l_num_entries                 NUMBER;
77546 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
77547 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
77548 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
77549 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
77550 l_recog_line_1                NUMBER;
77554 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
77551 l_recog_line_2                NUMBER;
77552 
77553 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
77555 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
77556 
77557 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
77558 
77559 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
77560 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
77561 
77562 ---------------------------------------------------------------------------------------------------------------
77563 
77564 
77565 --
77566 -- bulk performance
77567 --
77568 l_balance_type_code           VARCHAR2(1);
77569 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
77570 l_log_module                  VARCHAR2(240);
77571 
77572 --
77573 -- Upgrade strategy
77574 --
77575 l_actual_upg_option           VARCHAR2(1);
77576 l_enc_upg_option           VARCHAR2(1);
77577 
77578 --
77579 BEGIN
77580 --
77581 IF g_log_enabled THEN
77582       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_141';
77583 END IF;
77584 --
77585 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77586 
77587       trace
77588          (p_msg      => 'BEGIN of AcctLineType_141'
77589          ,p_level    => C_LEVEL_PROCEDURE
77590          ,p_module   => l_log_module);
77591 
77592 END IF;
77593 --
77594 l_component_type             := 'AMB_JLT';
77595 l_component_code             := 'AP_INV_PRICE_VAR_PREPAY';
77596 l_component_type_code        := 'S';
77597 l_component_appl_id          :=  200;
77598 l_amb_context_code           := 'DEFAULT';
77599 l_entity_code                := 'AP_INVOICES';
77600 l_event_class_code           := 'PREPAYMENTS';
77601 l_event_type_code            := 'PREPAYMENTS_ALL';
77602 l_line_definition_owner_code := 'S';
77603 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
77604 --
77605 l_balance_type_code          := 'A';
77606 l_segment                     := NULL;
77607 l_ccid                        := NULL;
77608 l_adr_transaction_coa_id      := NULL;
77609 l_adr_accounting_coa_id       := NULL;
77610 l_adr_flexfield_segment_code  := NULL;
77611 l_adr_flex_value_set_id       := NULL;
77612 l_adr_value_type_code         := NULL;
77613 l_adr_value_combination_id    := NULL;
77614 l_adr_value_segment_code      := NULL;
77615 
77616 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
77617 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
77618 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
77619 l_budgetary_control_flag     := 'N';
77620 
77621 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
77622 l_bflow_applied_to_amt       := NULL; -- 5132302
77623 l_entered_amt_idx            := NULL;          -- 4262811
77624 l_accted_amt_idx             := NULL;          -- 4262811
77625 l_acc_rev_flag               := NULL;          -- 4262811
77626 l_accrual_line_num           := NULL;          -- 4262811
77627 l_tmp_amt                    := NULL;          -- 4262811
77628 --
77629  
77630 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
77631     l_balance_type_code <> 'B' THEN
77632 IF NVL(p_source_33,'
77633 ') =  'IPV' AND 
77634 NVL(p_source_96,'
77635 ') =  'Y'
77636  THEN 
77637 
77638    --
77639    XLA_AE_LINES_PKG.SetNewLine;
77640 
77641    p_balance_type_code          := l_balance_type_code;
77642    -- set the flag so later we will know whether the gain loss line needs to be created
77643    
77644    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
77645      p_actual_flag :='A';
77646    END IF;
77647 
77648    --
77649    -- bulk performance
77650    --
77651    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
77652                                       p_header_num   => 0); -- 4262811
77653    --
77654    -- set accounting line options
77655    --
77656    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
77657            p_natural_side_code          => 'D'
77658          , p_gain_or_loss_flag          => 'N'
77659          , p_gl_transfer_mode_code      => 'S'
77660          , p_acct_entry_type_code       => 'A'
77661          , p_switch_side_flag           => 'Y'
77662          , p_merge_duplicate_code       => 'A'
77663          );
77664    --
77665    l_acc_rev_natural_side_code := 'C';  -- 4262811
77666    -- 
77667    --
77668    -- set accounting line type info
77669    --
77670    xla_ae_lines_pkg.SetAcctLineType
77671       (p_component_type             => l_component_type
77672       ,p_event_type_code            => l_event_type_code
77673       ,p_line_definition_owner_code => l_line_definition_owner_code
77674       ,p_line_definition_code       => l_line_definition_code
77675       ,p_accounting_line_code       => l_component_code
77676       ,p_accounting_line_type_code  => l_component_type_code
77677       ,p_accounting_line_appl_id    => l_component_appl_id
77678       ,p_amb_context_code           => l_amb_context_code
77679       ,p_entity_code                => l_entity_code
77680       ,p_event_class_code           => l_event_class_code);
77681    --
77682    -- set accounting class
77683    --
77684    xla_ae_lines_pkg.SetAcctClass(
77685            p_accounting_class_code  => 'IPV'
77686          , p_ae_header_id           => l_ae_header_id
77687          );
77691    --
77688 
77689    --
77690    -- set rounding class
77692    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
77693                       'IPV';
77694 
77695    --
77696    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
77697    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
77698    --
77699    -- bulk performance
77700    --
77701    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
77702 
77703    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
77704       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
77705 
77706    -- 4955764
77707    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
77708       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
77709 
77710    -- 4458381 Public Sector Enh
77711    
77712    --
77713    -- set accounting attributes for the line type
77714    --
77715    l_entered_amt_idx := 23;
77716    l_accted_amt_idx  := 28;
77717    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
77718    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
77719    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
77720    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
77721    l_rec_acct_attrs.array_num_value(2)  := 
77722 xla_ae_sources_pkg.GetSystemSourceNum(
77723    p_source_code           => 'XLA_EVENT_APPL_ID'
77724  , p_source_type_code      => 'Y'
77725  , p_source_application_id =>  602
77726 );
77727    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
77728    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
77729    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
77730    l_rec_acct_attrs.array_char_value(4)  := 
77731 xla_ae_sources_pkg.GetSystemSourceChar(
77732    p_source_code           => 'XLA_ENTITY_CODE'
77733  , p_source_type_code      => 'Y'
77734  , p_source_application_id =>  602
77735 );
77736    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
77737    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
77738    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
77739    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
77740    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
77741    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
77742    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
77743    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
77744    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
77745    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
77746    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
77747    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
77748    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
77749    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
77750    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
77751    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
77752    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
77753    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
77754    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
77755    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
77756    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
77757    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
77758    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
77759    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
77760    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
77761    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
77762    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
77763    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
77764    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
77765    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
77766    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
77767    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
77768    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
77769    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
77770    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
77771    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
77772    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
77773    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
77774    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
77775    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
77776    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
77777    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
77778    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
77779    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
77780    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
77781    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
77782    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
77783    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
77784    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
77788    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
77785    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
77786    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
77787    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
77789    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
77790    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
77791    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
77792    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
77793    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
77794    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
77795    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
77796    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
77797    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
77798    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
77799    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
77800    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
77801    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
77802    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
77803    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
77804    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
77805    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
77806    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
77807    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
77808    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
77809    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
77810    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
77811    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
77812    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
77813    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
77814 
77815    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
77816    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
77817 
77818    ---------------------------------------------------------------------------------------------------------------
77819    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
77820    ---------------------------------------------------------------------------------------------------------------
77821    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
77822 
77823    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
77824    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
77825 
77826    IF xla_accounting_cache_pkg.GetValueChar
77827          (p_source_code         => 'LEDGER_CATEGORY_CODE'
77828          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
77829    AND l_bflow_method_code = 'PRIOR_ENTRY'
77830 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
77831    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
77832          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
77833        )
77834    THEN
77835          xla_ae_lines_pkg.BflowUpgEntry
77836            (p_business_method_code    => l_bflow_method_code
77837            ,p_business_class_code     => l_bflow_class_code
77838            ,p_balance_type            => l_balance_type_code);
77839    ELSE
77840       NULL;
77841 -- No business flow processing for business flow method of NONE.
77842    END IF;
77843 
77844    --
77845    -- call analytical criteria
77846    --
77847    
77848    --
77849    -- call description
77850    --
77851    
77852 xla_ae_lines_pkg.SetLineDescription(
77853    p_ae_header_id => l_ae_header_id
77854   ,p_description  => Description_1 (
77855      p_application_id         => p_application_id
77856    , p_ae_header_id           => l_ae_header_id 
77857 , p_source_1 => p_source_1
77858    )
77859 );
77860 
77861 
77862    --
77863    -- call ADRs
77864    -- Bug 4922099
77865    --
77866    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
77867         (NVL(l_actual_upg_option, 'N') = 'O') OR
77868         (NVL(l_enc_upg_option, 'N') = 'O')
77869       )
77870    THEN
77871    NULL;
77872    --
77873    --
77874    
77875   l_ccid := AcctDerRule_33(
77876            p_application_id           => p_application_id
77877          , p_ae_header_id             => l_ae_header_id 
77878 , p_source_30 => p_source_30
77879          , x_transaction_coa_id       => l_adr_transaction_coa_id
77880          , x_accounting_coa_id        => l_adr_accounting_coa_id
77881          , x_value_type_code          => l_adr_value_type_code
77882          , p_side                     => 'NA'
77883    );
77884 
77885    xla_ae_lines_pkg.set_ccid(
77886     p_code_combination_id          => l_ccid
77887   , p_value_type_code              => l_adr_value_type_code
77888   , p_transaction_coa_id           => l_adr_transaction_coa_id
77889   , p_accounting_coa_id            => l_adr_accounting_coa_id
77890   , p_adr_code                     => 'AP_INVOICE_DIST'
77891   , p_adr_type_code                => 'S'
77892   , p_component_type               => l_component_type
77893   , p_component_code               => l_component_code
77894   , p_component_type_code          => l_component_type_code
77898   );
77895   , p_component_appl_id            => l_component_appl_id
77896   , p_amb_context_code             => l_amb_context_code
77897   , p_side                         => 'NA'
77899 
77900 
77901    --
77902    --
77903    END IF;
77904    --
77905    -- Bug 4922099
77906    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
77907           (NVL(l_enc_upg_option, 'N') = 'O')
77908         ) AND
77909         (l_bflow_method_code = 'PRIOR_ENTRY')
77910       )
77911    THEN
77912       IF
77913       --
77914       1 = 2
77915       --
77916       THEN
77917       xla_accounting_err_pkg.build_message
77918                                     (p_appli_s_name            => 'XLA'
77919                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
77920                                     ,p_token_1                 => 'LINE_NUMBER'
77921                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
77922                                     ,p_token_2                 => 'LINE_TYPE_NAME'
77923                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
77924                                                                              l_component_type
77925                                                                             ,l_component_code
77926                                                                             ,l_component_type_code
77927                                                                             ,l_component_appl_id
77928                                                                             ,l_amb_context_code
77929                                                                             ,l_entity_code
77930                                                                             ,l_event_class_code
77931                                                                            )
77932                                     ,p_token_3                 => 'OWNER'
77933                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
77934                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
77935                                                                           ,p_lookup_code    => l_component_type_code
77936                                                                          )
77937                                     ,p_token_4                 => 'PRODUCT_NAME'
77938                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
77939                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
77940                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
77941                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
77942                                     ,p_ae_header_id            =>  NULL
77943                                        );
77944 
77945         IF (C_LEVEL_ERROR>= g_log_level) THEN
77946                  trace
77947                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
77948                       ,p_level    => C_LEVEL_ERROR
77949                       ,p_module   => l_log_module);
77950         END IF;
77951       END IF;
77952    END IF;
77953    --
77954    --
77955    ------------------------------------------------------------------------------------------------
77956    -- 4219869 Business Flow
77957    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
77958    -- Prior Entry.  Currently, the following code is always generated.
77959    ------------------------------------------------------------------------------------------------
77960    XLA_AE_LINES_PKG.ValidateCurrentLine;
77961 
77962    ------------------------------------------------------------------------------------
77963    -- 4219869 Business Flow
77964    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
77965    ------------------------------------------------------------------------------------
77966    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
77967 
77968    ----------------------------------------------------------------------------------
77969    -- 4219869 Business Flow
77970    -- Update journal entry status -- Need to generate this within IF <condition>
77971    ----------------------------------------------------------------------------------
77972    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
77973          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
77974          ,p_balance_type_code => l_balance_type_code
77975          );
77976 
77977    -------------------------------------------------------------------------------------------
77978    -- 4262811 - Generate the Accrual Reversal lines
77979    -------------------------------------------------------------------------------------------
77980    BEGIN
77981       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
77982                               (g_array_event(p_event_id).array_value_num('header_index'));
77983       IF l_acc_rev_flag IS NULL THEN
77984          l_acc_rev_flag := 'N';
77985       END IF;
77986    EXCEPTION
77987       WHEN OTHERS THEN
77988          l_acc_rev_flag := 'N';
77989    END;
77990    --
77991    IF (l_acc_rev_flag = 'Y') THEN
77992 
77996        ------------------------------------------------------------------------------------------
77993        -- 4645092  ------------------------------------------------------------------------------
77994        -- To allow MPA report to determine if it should generate report process
77995        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
77997 
77998        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
77999        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
78000    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
78001    -- call ADRs
78002    -- Bug 4922099
78003    --
78004    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
78005         (NVL(l_actual_upg_option, 'N') = 'O') OR
78006         (NVL(l_enc_upg_option, 'N') = 'O')
78007       )
78008    THEN
78009    NULL;
78010    --
78011    --
78012    
78013   l_ccid := AcctDerRule_33(
78014            p_application_id           => p_application_id
78015          , p_ae_header_id             => l_ae_header_id 
78016 , p_source_30 => p_source_30
78017          , x_transaction_coa_id       => l_adr_transaction_coa_id
78018          , x_accounting_coa_id        => l_adr_accounting_coa_id
78019          , x_value_type_code          => l_adr_value_type_code
78020          , p_side                     => 'NA'
78021    );
78022 
78023    xla_ae_lines_pkg.set_ccid(
78024     p_code_combination_id          => l_ccid
78025   , p_value_type_code              => l_adr_value_type_code
78026   , p_transaction_coa_id           => l_adr_transaction_coa_id
78027   , p_accounting_coa_id            => l_adr_accounting_coa_id
78028   , p_adr_code                     => 'AP_INVOICE_DIST'
78029   , p_adr_type_code                => 'S'
78030   , p_component_type               => l_component_type
78031   , p_component_code               => l_component_code
78032   , p_component_type_code          => l_component_type_code
78033   , p_component_appl_id            => l_component_appl_id
78034   , p_amb_context_code             => l_amb_context_code
78035   , p_side                         => 'NA'
78036   );
78037 
78038 
78039    --
78040    --
78041    END IF;
78042 
78043        --
78044        -- Update the line information that should be overwritten
78045        --
78046        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
78047                                          p_header_num   => 1);
78048        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
78049 
78050        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
78051 
78052        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
78053           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
78054        END IF;
78055 
78056       --
78057       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
78058       --
78059       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
78060           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
78061       ELSE
78062           ---------------------------------------------------------------------------------------------------
78063           -- 4262811a Switch Sign
78064           ---------------------------------------------------------------------------------------------------
78065           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
78066           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
78067                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78068           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
78069                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78070           -- 5132302
78071           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
78072                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78073 
78074       END IF;
78075 
78076       -- 4955764
78077       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
78078       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
78079 
78080 
78081       XLA_AE_LINES_PKG.ValidateCurrentLine;
78082       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
78083 
78084       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
78085                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
78086                ,p_balance_type_code => l_balance_type_code);
78087 
78088    END IF;
78089 
78090    -----------------------------------------------------------------------------------------
78091    -- 4262811 Multiperiod Accounting
78092    -----------------------------------------------------------------------------------------
78093      -- No MPA option is assigned.
78094 
78095 
78096 END IF;
78097 END IF;
78098 --
78099 
78100 --
78101 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78102    trace
78103       (p_msg      => 'END of AcctLineType_141'
78104       ,p_level    => C_LEVEL_PROCEDURE
78105       ,p_module   => l_log_module);
78106 END IF;
78107 --
78108 EXCEPTION
78109   WHEN xla_exceptions_pkg.application_exception THEN
78113            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_141');
78110       RAISE;
78111   WHEN OTHERS THEN
78112        xla_exceptions_pkg.raise_message
78114 END AcctLineType_141;
78115 --
78116 
78117 ---------------------------------------
78118 --
78119 -- PRIVATE FUNCTION
78120 --         AcctLineType_142
78121 --
78122 ---------------------------------------
78123 PROCEDURE AcctLineType_142 (
78124   p_application_id        IN NUMBER
78125  ,p_event_id              IN NUMBER
78126  ,p_calculate_acctd_flag  IN VARCHAR2
78127  ,p_calculate_g_l_flag    IN VARCHAR2
78128  ,p_actual_flag           IN OUT VARCHAR2
78129  ,p_balance_type_code     OUT VARCHAR2
78130  ,p_gain_or_loss_ref      OUT VARCHAR2
78131  
78132 --Invoice Distribution Description
78133  , p_source_1            IN VARCHAR2
78134 --Invoice Distribution Ledger Amount
78135  , p_source_21            IN NUMBER
78136 --Invoice Distribution Account
78137  , p_source_30            IN NUMBER
78138 --Invoice Distribution Type
78139  , p_source_33            IN VARCHAR2
78140  , p_source_33_meaning    IN VARCHAR2
78141 --Accounting Reversal Indicator
78142  , p_source_53            IN VARCHAR2
78143 --Distribution Link Type
78144  , p_source_55            IN VARCHAR2
78145 --Allocation to Main Distribution Identifier
78146  , p_source_57            IN NUMBER
78147 --Invoice Identifier
78148  , p_source_58            IN NUMBER
78149 --Invoice Distribution Identifier
78150  , p_source_64            IN NUMBER
78151 --Payables Encumbrance Upgrade Credit Account
78152  , p_source_65            IN NUMBER
78153 --Payables Encumbrance Upgrade Credit Amount
78154  , p_source_66            IN NUMBER
78155 --Invoice Currency Code
78156  , p_source_67            IN VARCHAR2
78157 --Payables Encumbrance Upgrade Credit Base Amount
78158  , p_source_68            IN NUMBER
78159 --Payables Encumbrance Upgrade Debit Account
78160  , p_source_69            IN NUMBER
78161 --Payables Encumbrance Upgrade Debit Amount
78162  , p_source_70            IN NUMBER
78163 --Payables Encumbrance Upgrade Debit Base Amount
78164  , p_source_71            IN NUMBER
78165 --Payables Encumbrance Upgrade Option
78166  , p_source_72            IN VARCHAR2
78167 --Invoice Distribution Amount
78168  , p_source_73            IN NUMBER
78169 --Deferred Accounting End Date
78170  , p_source_77            IN DATE
78171 --Deferred Accounting Option
78172  , p_source_78            IN VARCHAR2
78173 --Deferred Accounting Start Date
78174  , p_source_79            IN DATE
78175 --Override Accounted Amount Indicator
78176  , p_source_80            IN VARCHAR2
78177  , p_source_80_meaning    IN VARCHAR2
78178 --Invoice Supplier Identifier
78179  , p_source_81            IN NUMBER
78180 --Invoice Supplier Site Identifier
78181  , p_source_82            IN NUMBER
78182 --Third Party Type
78183  , p_source_83            IN VARCHAR2
78184 --Parent Reversal Identifier
78185  , p_source_84            IN NUMBER
78186 --Invoice Distribution Statistical Amount
78187  , p_source_85            IN NUMBER
78188 --Invoice Distribution Tax Line Identifier
78189  , p_source_86            IN NUMBER
78190 --Invoice Distribution Tax Distribution Identifier from Tax
78191  , p_source_87            IN NUMBER
78192 --Invoice Distribution Summary Tax Line Identifier
78193  , p_source_88            IN NUMBER
78194 --Payables Upgrade Credit Encumbrance Type Identifier
78195  , p_source_89            IN NUMBER
78196 --Payables Upgrade Debit Encumbrance Type Identifier
78197  , p_source_90            IN NUMBER
78198 --Business Flow Accounts Payable Application Identifier
78199  , p_source_91            IN NUMBER
78200 --Business Flow Invoice Distribution Type
78201  , p_source_92            IN VARCHAR2
78202 --Business Flow Invoice Entity Code
78203  , p_source_93            IN VARCHAR2
78204 --Business Flow Invoice Distribution Identifier
78205  , p_source_94            IN NUMBER
78206 --Business Flow Invoice Identifier
78207  , p_source_95            IN NUMBER
78208 --Accrue on Receipt Option
78209  , p_source_96            IN VARCHAR2
78210  , p_source_96_meaning    IN VARCHAR2
78211 --Invoice Exchange Date
78212  , p_source_143            IN DATE
78213 --Invoice Exchange Rate
78214  , p_source_144            IN NUMBER
78215 --Invoice Exchange Rate Type
78216  , p_source_145            IN VARCHAR2
78217 )
78218 IS
78219 
78220 l_component_type              VARCHAR2(80);
78221 l_component_code              VARCHAR2(30);
78222 l_component_type_code         VARCHAR2(1);
78223 l_component_appl_id           INTEGER;
78224 l_amb_context_code            VARCHAR2(30);
78225 l_entity_code                 VARCHAR2(30);
78226 l_event_class_code            VARCHAR2(30);
78227 l_ae_header_id                NUMBER;
78228 l_event_type_code             VARCHAR2(30);
78229 l_line_definition_code        VARCHAR2(30);
78230 l_line_definition_owner_code  VARCHAR2(1);
78231 --
78232 -- adr variables
78233 l_segment                     VARCHAR2(30);
78234 l_ccid                        NUMBER;
78235 l_adr_transaction_coa_id      NUMBER;
78236 l_adr_accounting_coa_id       NUMBER;
78237 l_adr_flexfield_segment_code  VARCHAR2(30);
78238 l_adr_flex_value_set_id       NUMBER;
78239 l_adr_value_type_code         VARCHAR2(30);
78240 l_adr_value_combination_id    NUMBER;
78241 l_adr_value_segment_code      VARCHAR2(30);
78242 
78246 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
78243 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
78244 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
78245 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
78247 
78248 -- 4262811 Variables ------------------------------------------------------------------------------------------
78249 l_entered_amt_idx             NUMBER;
78250 l_accted_amt_idx              NUMBER;
78251 l_acc_rev_flag                VARCHAR2(1);
78252 l_accrual_line_num            NUMBER;
78253 l_tmp_amt                     NUMBER;
78254 l_acc_rev_natural_side_code   VARCHAR2(1);
78255 
78256 l_num_entries                 NUMBER;
78257 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
78258 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
78259 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
78260 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
78261 l_recog_line_1                NUMBER;
78262 l_recog_line_2                NUMBER;
78263 
78264 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
78265 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
78266 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
78267 
78268 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
78269 
78270 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
78271 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
78272 
78273 ---------------------------------------------------------------------------------------------------------------
78274 
78275 
78276 --
78277 -- bulk performance
78278 --
78279 l_balance_type_code           VARCHAR2(1);
78280 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
78281 l_log_module                  VARCHAR2(240);
78282 
78283 --
78284 -- Upgrade strategy
78285 --
78286 l_actual_upg_option           VARCHAR2(1);
78287 l_enc_upg_option           VARCHAR2(1);
78288 
78289 --
78290 BEGIN
78291 --
78292 IF g_log_enabled THEN
78293       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_142';
78294 END IF;
78295 --
78296 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78297 
78298       trace
78299          (p_msg      => 'BEGIN of AcctLineType_142'
78300          ,p_level    => C_LEVEL_PROCEDURE
78301          ,p_module   => l_log_module);
78302 
78303 END IF;
78304 --
78305 l_component_type             := 'AMB_JLT';
78306 l_component_code             := 'AP_ITEM_EXPENSE_CM';
78307 l_component_type_code        := 'S';
78308 l_component_appl_id          :=  200;
78309 l_amb_context_code           := 'DEFAULT';
78310 l_entity_code                := 'AP_INVOICES';
78311 l_event_class_code           := 'CREDIT MEMOS';
78312 l_event_type_code            := 'CREDIT MEMOS_ALL';
78313 l_line_definition_owner_code := 'S';
78314 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
78315 --
78316 l_balance_type_code          := 'A';
78317 l_segment                     := NULL;
78318 l_ccid                        := NULL;
78319 l_adr_transaction_coa_id      := NULL;
78320 l_adr_accounting_coa_id       := NULL;
78321 l_adr_flexfield_segment_code  := NULL;
78322 l_adr_flex_value_set_id       := NULL;
78323 l_adr_value_type_code         := NULL;
78324 l_adr_value_combination_id    := NULL;
78325 l_adr_value_segment_code      := NULL;
78326 
78327 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
78328 l_bflow_class_code           := '';    -- 4219869 Business Flow
78329 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
78330 l_budgetary_control_flag     := 'N';
78331 
78332 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
78333 l_bflow_applied_to_amt       := NULL; -- 5132302
78334 l_entered_amt_idx            := NULL;          -- 4262811
78335 l_accted_amt_idx             := NULL;          -- 4262811
78336 l_acc_rev_flag               := NULL;          -- 4262811
78337 l_accrual_line_num           := NULL;          -- 4262811
78338 l_tmp_amt                    := NULL;          -- 4262811
78339 --
78340  
78341 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
78342     l_balance_type_code <> 'B' THEN
78343 IF NVL(p_source_33,'
78344 ') =  'RETROEXPENSE' OR 
78345 NVL(p_source_33,'
78346 ') =  'ITEM' OR 
78347 (NVL(p_source_33,'
78348 ') =  'ERV' AND 
78349 NVL(p_source_96,'
78350 ') <>  'Y') OR 
78351 (NVL(p_source_33,'
78352 ') =  'IPV' AND 
78353 NVL(p_source_96,'
78354 ') <>  'Y')
78355  THEN 
78356 
78357    --
78358    XLA_AE_LINES_PKG.SetNewLine;
78359 
78360    p_balance_type_code          := l_balance_type_code;
78361    -- set the flag so later we will know whether the gain loss line needs to be created
78362    
78363    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
78364      p_actual_flag :='A';
78365    END IF;
78366 
78367    --
78368    -- bulk performance
78369    --
78370    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
78371                                       p_header_num   => 0); -- 4262811
78372    --
78373    -- set accounting line options
78374    --
78375    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
78376            p_natural_side_code          => 'D'
78377          , p_gain_or_loss_flag          => 'N'
78381          , p_merge_duplicate_code       => 'A'
78378          , p_gl_transfer_mode_code      => 'S'
78379          , p_acct_entry_type_code       => 'A'
78380          , p_switch_side_flag           => 'Y'
78382          );
78383    --
78384    l_acc_rev_natural_side_code := 'C';  -- 4262811
78385    -- 
78386    --
78387    -- set accounting line type info
78388    --
78389    xla_ae_lines_pkg.SetAcctLineType
78390       (p_component_type             => l_component_type
78391       ,p_event_type_code            => l_event_type_code
78392       ,p_line_definition_owner_code => l_line_definition_owner_code
78393       ,p_line_definition_code       => l_line_definition_code
78394       ,p_accounting_line_code       => l_component_code
78395       ,p_accounting_line_type_code  => l_component_type_code
78396       ,p_accounting_line_appl_id    => l_component_appl_id
78397       ,p_amb_context_code           => l_amb_context_code
78398       ,p_entity_code                => l_entity_code
78399       ,p_event_class_code           => l_event_class_code);
78400    --
78401    -- set accounting class
78402    --
78403    xla_ae_lines_pkg.SetAcctClass(
78404            p_accounting_class_code  => 'ITEM EXPENSE'
78405          , p_ae_header_id           => l_ae_header_id
78406          );
78407 
78408    --
78409    -- set rounding class
78410    --
78411    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
78412                       'ITEM EXPENSE';
78413 
78414    --
78415    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
78416    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
78417    --
78418    -- bulk performance
78419    --
78420    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
78421 
78422    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
78423       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
78424 
78425    -- 4955764
78426    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
78427       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
78428 
78429    -- 4458381 Public Sector Enh
78430    
78431    --
78432    -- set accounting attributes for the line type
78433    --
78434    l_entered_amt_idx := 23;
78435    l_accted_amt_idx  := 28;
78436    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
78437    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
78438    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
78439    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
78440    l_rec_acct_attrs.array_num_value(2)  := 
78441 xla_ae_sources_pkg.GetSystemSourceNum(
78442    p_source_code           => 'XLA_EVENT_APPL_ID'
78443  , p_source_type_code      => 'Y'
78444  , p_source_application_id =>  602
78445 );
78446    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
78447    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
78448    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
78449    l_rec_acct_attrs.array_char_value(4)  := 
78450 xla_ae_sources_pkg.GetSystemSourceChar(
78451    p_source_code           => 'XLA_ENTITY_CODE'
78452  , p_source_type_code      => 'Y'
78453  , p_source_application_id =>  602
78454 );
78455    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
78456    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
78457    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
78458    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
78459    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
78460    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
78461    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
78462    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
78463    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
78464    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
78465    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
78466    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
78467    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
78468    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
78469    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
78470    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
78471    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
78472    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
78473    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
78474    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
78475    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
78476    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
78477    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
78478    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
78479    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
78480    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
78481    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
78482    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
78483    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
78487    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
78484    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
78485    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
78486    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
78488    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
78489    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
78490    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
78491    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
78492    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
78493    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
78494    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
78495    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
78496    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
78497    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
78498    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
78499    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
78500    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
78501    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
78502    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
78503    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
78504    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
78505    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
78506    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
78507    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
78508    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
78509    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
78510    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
78511    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
78512    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
78513    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
78514    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
78515    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
78516    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
78517    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
78518    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
78519    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
78520    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
78521    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
78522    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
78523    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
78524    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
78525    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
78526    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
78527    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
78528    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
78529    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
78530    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
78531    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
78532    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
78533 
78534    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
78535    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
78536 
78537    ---------------------------------------------------------------------------------------------------------------
78538    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
78539    ---------------------------------------------------------------------------------------------------------------
78540    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
78541 
78542    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
78543    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
78544 
78545    IF xla_accounting_cache_pkg.GetValueChar
78546          (p_source_code         => 'LEDGER_CATEGORY_CODE'
78547          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
78548    AND l_bflow_method_code = 'PRIOR_ENTRY'
78549 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
78550    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
78551          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
78552        )
78553    THEN
78554          xla_ae_lines_pkg.BflowUpgEntry
78555            (p_business_method_code    => l_bflow_method_code
78556            ,p_business_class_code     => l_bflow_class_code
78557            ,p_balance_type            => l_balance_type_code);
78558    ELSE
78559       NULL;
78560 -- No business flow processing for business flow method of NONE.
78561    END IF;
78562 
78563    --
78564    -- call analytical criteria
78565    --
78566    
78567    --
78568    -- call description
78569    --
78570    
78571 xla_ae_lines_pkg.SetLineDescription(
78572    p_ae_header_id => l_ae_header_id
78573   ,p_description  => Description_1 (
78574      p_application_id         => p_application_id
78575    , p_ae_header_id           => l_ae_header_id 
78576 , p_source_1 => p_source_1
78577    )
78578 );
78579 
78580 
78581    --
78582    -- call ADRs
78586         (NVL(l_actual_upg_option, 'N') = 'O') OR
78583    -- Bug 4922099
78584    --
78585    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
78587         (NVL(l_enc_upg_option, 'N') = 'O')
78588       )
78589    THEN
78590    NULL;
78591    --
78592    --
78593    
78594   l_ccid := AcctDerRule_33(
78595            p_application_id           => p_application_id
78596          , p_ae_header_id             => l_ae_header_id 
78597 , p_source_30 => p_source_30
78598          , x_transaction_coa_id       => l_adr_transaction_coa_id
78599          , x_accounting_coa_id        => l_adr_accounting_coa_id
78600          , x_value_type_code          => l_adr_value_type_code
78601          , p_side                     => 'NA'
78602    );
78603 
78604    xla_ae_lines_pkg.set_ccid(
78605     p_code_combination_id          => l_ccid
78606   , p_value_type_code              => l_adr_value_type_code
78607   , p_transaction_coa_id           => l_adr_transaction_coa_id
78608   , p_accounting_coa_id            => l_adr_accounting_coa_id
78609   , p_adr_code                     => 'AP_INVOICE_DIST'
78610   , p_adr_type_code                => 'S'
78611   , p_component_type               => l_component_type
78612   , p_component_code               => l_component_code
78613   , p_component_type_code          => l_component_type_code
78614   , p_component_appl_id            => l_component_appl_id
78615   , p_amb_context_code             => l_amb_context_code
78616   , p_side                         => 'NA'
78617   );
78618 
78619 
78620    --
78621    --
78622    END IF;
78623    --
78624    -- Bug 4922099
78625    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
78626           (NVL(l_enc_upg_option, 'N') = 'O')
78627         ) AND
78628         (l_bflow_method_code = 'PRIOR_ENTRY')
78629       )
78630    THEN
78631       IF
78632       --
78633       1 = 2
78634       --
78635       THEN
78636       xla_accounting_err_pkg.build_message
78637                                     (p_appli_s_name            => 'XLA'
78638                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
78639                                     ,p_token_1                 => 'LINE_NUMBER'
78640                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
78641                                     ,p_token_2                 => 'LINE_TYPE_NAME'
78642                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
78643                                                                              l_component_type
78644                                                                             ,l_component_code
78645                                                                             ,l_component_type_code
78646                                                                             ,l_component_appl_id
78647                                                                             ,l_amb_context_code
78648                                                                             ,l_entity_code
78649                                                                             ,l_event_class_code
78650                                                                            )
78651                                     ,p_token_3                 => 'OWNER'
78652                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
78653                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
78654                                                                           ,p_lookup_code    => l_component_type_code
78655                                                                          )
78656                                     ,p_token_4                 => 'PRODUCT_NAME'
78657                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
78658                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
78659                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
78660                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
78661                                     ,p_ae_header_id            =>  NULL
78662                                        );
78663 
78664         IF (C_LEVEL_ERROR>= g_log_level) THEN
78665                  trace
78666                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
78667                       ,p_level    => C_LEVEL_ERROR
78668                       ,p_module   => l_log_module);
78669         END IF;
78670       END IF;
78671    END IF;
78672    --
78673    --
78674    ------------------------------------------------------------------------------------------------
78675    -- 4219869 Business Flow
78676    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
78677    -- Prior Entry.  Currently, the following code is always generated.
78678    ------------------------------------------------------------------------------------------------
78679    XLA_AE_LINES_PKG.ValidateCurrentLine;
78680 
78681    ------------------------------------------------------------------------------------
78682    -- 4219869 Business Flow
78683    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
78684    ------------------------------------------------------------------------------------
78688    -- 4219869 Business Flow
78685    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
78686 
78687    ----------------------------------------------------------------------------------
78689    -- Update journal entry status -- Need to generate this within IF <condition>
78690    ----------------------------------------------------------------------------------
78691    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
78692          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
78693          ,p_balance_type_code => l_balance_type_code
78694          );
78695 
78696    -------------------------------------------------------------------------------------------
78697    -- 4262811 - Generate the Accrual Reversal lines
78698    -------------------------------------------------------------------------------------------
78699    BEGIN
78700       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
78701                               (g_array_event(p_event_id).array_value_num('header_index'));
78702       IF l_acc_rev_flag IS NULL THEN
78703          l_acc_rev_flag := 'N';
78704       END IF;
78705    EXCEPTION
78706       WHEN OTHERS THEN
78707          l_acc_rev_flag := 'N';
78708    END;
78709    --
78710    IF (l_acc_rev_flag = 'Y') THEN
78711 
78712        -- 4645092  ------------------------------------------------------------------------------
78713        -- To allow MPA report to determine if it should generate report process
78714        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
78715        ------------------------------------------------------------------------------------------
78716 
78717        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
78718        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
78719    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
78720    -- call ADRs
78721    -- Bug 4922099
78722    --
78723    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
78724         (NVL(l_actual_upg_option, 'N') = 'O') OR
78725         (NVL(l_enc_upg_option, 'N') = 'O')
78726       )
78727    THEN
78728    NULL;
78729    --
78730    --
78731    
78732   l_ccid := AcctDerRule_33(
78733            p_application_id           => p_application_id
78734          , p_ae_header_id             => l_ae_header_id 
78735 , p_source_30 => p_source_30
78736          , x_transaction_coa_id       => l_adr_transaction_coa_id
78737          , x_accounting_coa_id        => l_adr_accounting_coa_id
78738          , x_value_type_code          => l_adr_value_type_code
78739          , p_side                     => 'NA'
78740    );
78741 
78742    xla_ae_lines_pkg.set_ccid(
78743     p_code_combination_id          => l_ccid
78744   , p_value_type_code              => l_adr_value_type_code
78745   , p_transaction_coa_id           => l_adr_transaction_coa_id
78746   , p_accounting_coa_id            => l_adr_accounting_coa_id
78747   , p_adr_code                     => 'AP_INVOICE_DIST'
78748   , p_adr_type_code                => 'S'
78749   , p_component_type               => l_component_type
78750   , p_component_code               => l_component_code
78751   , p_component_type_code          => l_component_type_code
78752   , p_component_appl_id            => l_component_appl_id
78753   , p_amb_context_code             => l_amb_context_code
78754   , p_side                         => 'NA'
78755   );
78756 
78757 
78758    --
78759    --
78760    END IF;
78761 
78762        --
78763        -- Update the line information that should be overwritten
78764        --
78765        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
78766                                          p_header_num   => 1);
78767        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
78768 
78769        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
78770 
78771        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
78772           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
78773        END IF;
78774 
78775       --
78776       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
78777       --
78778       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
78779           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
78780       ELSE
78781           ---------------------------------------------------------------------------------------------------
78782           -- 4262811a Switch Sign
78783           ---------------------------------------------------------------------------------------------------
78784           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
78785           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
78786                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78787           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
78788                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78789           -- 5132302
78790           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
78791                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
78792 
78793       END IF;
78794 
78795       -- 4955764
78799 
78796       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
78797       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
78798 
78800       XLA_AE_LINES_PKG.ValidateCurrentLine;
78801       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
78802 
78803       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
78804                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
78805                ,p_balance_type_code => l_balance_type_code);
78806 
78807    END IF;
78808 
78809    -----------------------------------------------------------------------------------------
78810    -- 4262811 Multiperiod Accounting
78811    -----------------------------------------------------------------------------------------
78812      -- No MPA option is assigned.
78813 
78814 
78815 END IF;
78816 END IF;
78817 --
78818 
78819 --
78820 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78821    trace
78822       (p_msg      => 'END of AcctLineType_142'
78823       ,p_level    => C_LEVEL_PROCEDURE
78824       ,p_module   => l_log_module);
78825 END IF;
78826 --
78827 EXCEPTION
78828   WHEN xla_exceptions_pkg.application_exception THEN
78829       RAISE;
78830   WHEN OTHERS THEN
78831        xla_exceptions_pkg.raise_message
78832            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_142');
78833 END AcctLineType_142;
78834 --
78835 
78836 ---------------------------------------
78837 --
78838 -- PRIVATE FUNCTION
78839 --         AcctLineType_143
78840 --
78841 ---------------------------------------
78842 PROCEDURE AcctLineType_143 (
78843   p_application_id        IN NUMBER
78844  ,p_event_id              IN NUMBER
78845  ,p_calculate_acctd_flag  IN VARCHAR2
78846  ,p_calculate_g_l_flag    IN VARCHAR2
78847  ,p_actual_flag           IN OUT VARCHAR2
78848  ,p_balance_type_code     OUT VARCHAR2
78849  ,p_gain_or_loss_ref      OUT VARCHAR2
78850  
78851 --Invoice Distribution Description
78852  , p_source_1            IN VARCHAR2
78853 --Invoice Distribution Ledger Amount
78854  , p_source_21            IN NUMBER
78855 --Invoice Distribution Account
78856  , p_source_30            IN NUMBER
78857 --Invoice Distribution Type
78858  , p_source_33            IN VARCHAR2
78859  , p_source_33_meaning    IN VARCHAR2
78860 --Accounting Reversal Indicator
78861  , p_source_53            IN VARCHAR2
78862 --Distribution Link Type
78863  , p_source_55            IN VARCHAR2
78864 --Allocation to Main Distribution Identifier
78865  , p_source_57            IN NUMBER
78866 --Invoice Identifier
78867  , p_source_58            IN NUMBER
78868 --Invoice Distribution Identifier
78869  , p_source_64            IN NUMBER
78870 --Payables Encumbrance Upgrade Credit Account
78871  , p_source_65            IN NUMBER
78872 --Payables Encumbrance Upgrade Credit Amount
78873  , p_source_66            IN NUMBER
78874 --Invoice Currency Code
78875  , p_source_67            IN VARCHAR2
78876 --Payables Encumbrance Upgrade Credit Base Amount
78877  , p_source_68            IN NUMBER
78878 --Payables Encumbrance Upgrade Debit Account
78879  , p_source_69            IN NUMBER
78880 --Payables Encumbrance Upgrade Debit Amount
78881  , p_source_70            IN NUMBER
78882 --Payables Encumbrance Upgrade Debit Base Amount
78883  , p_source_71            IN NUMBER
78884 --Payables Encumbrance Upgrade Option
78885  , p_source_72            IN VARCHAR2
78886 --Invoice Distribution Amount
78887  , p_source_73            IN NUMBER
78888 --Deferred Accounting End Date
78889  , p_source_77            IN DATE
78890 --Deferred Accounting Option
78891  , p_source_78            IN VARCHAR2
78892 --Deferred Accounting Start Date
78893  , p_source_79            IN DATE
78894 --Override Accounted Amount Indicator
78895  , p_source_80            IN VARCHAR2
78896  , p_source_80_meaning    IN VARCHAR2
78897 --Invoice Supplier Identifier
78898  , p_source_81            IN NUMBER
78899 --Invoice Supplier Site Identifier
78900  , p_source_82            IN NUMBER
78901 --Third Party Type
78902  , p_source_83            IN VARCHAR2
78903 --Parent Reversal Identifier
78904  , p_source_84            IN NUMBER
78905 --Invoice Distribution Tax Line Identifier
78906  , p_source_86            IN NUMBER
78907 --Invoice Distribution Tax Distribution Identifier from Tax
78908  , p_source_87            IN NUMBER
78909 --Invoice Distribution Summary Tax Line Identifier
78910  , p_source_88            IN NUMBER
78911 --Payables Upgrade Credit Encumbrance Type Identifier
78912  , p_source_89            IN NUMBER
78913 --Payables Upgrade Debit Encumbrance Type Identifier
78914  , p_source_90            IN NUMBER
78915 --Business Flow Accounts Payable Application Identifier
78916  , p_source_91            IN NUMBER
78917 --Business Flow Invoice Distribution Type
78918  , p_source_92            IN VARCHAR2
78919 --Business Flow Invoice Entity Code
78920  , p_source_93            IN VARCHAR2
78921 --Business Flow Invoice Distribution Identifier
78922  , p_source_94            IN NUMBER
78923 --Business Flow Invoice Identifier
78924  , p_source_95            IN NUMBER
78925 --Accrue on Receipt Option
78926  , p_source_96            IN VARCHAR2
78927  , p_source_96_meaning    IN VARCHAR2
78928 --Invoice Exchange Date
78929  , p_source_143            IN DATE
78933  , p_source_145            IN VARCHAR2
78930 --Invoice Exchange Rate
78931  , p_source_144            IN NUMBER
78932 --Invoice Exchange Rate Type
78934 )
78935 IS
78936 
78937 l_component_type              VARCHAR2(80);
78938 l_component_code              VARCHAR2(30);
78939 l_component_type_code         VARCHAR2(1);
78940 l_component_appl_id           INTEGER;
78941 l_amb_context_code            VARCHAR2(30);
78942 l_entity_code                 VARCHAR2(30);
78943 l_event_class_code            VARCHAR2(30);
78944 l_ae_header_id                NUMBER;
78945 l_event_type_code             VARCHAR2(30);
78946 l_line_definition_code        VARCHAR2(30);
78947 l_line_definition_owner_code  VARCHAR2(1);
78948 --
78949 -- adr variables
78950 l_segment                     VARCHAR2(30);
78951 l_ccid                        NUMBER;
78952 l_adr_transaction_coa_id      NUMBER;
78953 l_adr_accounting_coa_id       NUMBER;
78954 l_adr_flexfield_segment_code  VARCHAR2(30);
78955 l_adr_flex_value_set_id       NUMBER;
78956 l_adr_value_type_code         VARCHAR2(30);
78957 l_adr_value_combination_id    NUMBER;
78958 l_adr_value_segment_code      VARCHAR2(30);
78959 
78960 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
78961 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
78962 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
78963 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
78964 
78965 -- 4262811 Variables ------------------------------------------------------------------------------------------
78966 l_entered_amt_idx             NUMBER;
78967 l_accted_amt_idx              NUMBER;
78968 l_acc_rev_flag                VARCHAR2(1);
78969 l_accrual_line_num            NUMBER;
78970 l_tmp_amt                     NUMBER;
78971 l_acc_rev_natural_side_code   VARCHAR2(1);
78972 
78973 l_num_entries                 NUMBER;
78974 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
78975 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
78976 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
78977 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
78978 l_recog_line_1                NUMBER;
78979 l_recog_line_2                NUMBER;
78980 
78981 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
78982 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
78983 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
78984 
78985 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
78986 
78987 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
78988 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
78989 
78990 ---------------------------------------------------------------------------------------------------------------
78991 
78992 
78993 --
78994 -- bulk performance
78995 --
78996 l_balance_type_code           VARCHAR2(1);
78997 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
78998 l_log_module                  VARCHAR2(240);
78999 
79000 --
79001 -- Upgrade strategy
79002 --
79003 l_actual_upg_option           VARCHAR2(1);
79004 l_enc_upg_option           VARCHAR2(1);
79005 
79006 --
79007 BEGIN
79008 --
79009 IF g_log_enabled THEN
79010       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_143';
79011 END IF;
79012 --
79013 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79014 
79015       trace
79016          (p_msg      => 'BEGIN of AcctLineType_143'
79017          ,p_level    => C_LEVEL_PROCEDURE
79018          ,p_module   => l_log_module);
79019 
79020 END IF;
79021 --
79022 l_component_type             := 'AMB_JLT';
79023 l_component_code             := 'AP_ITEM_EXPENSE_DM';
79024 l_component_type_code        := 'S';
79025 l_component_appl_id          :=  200;
79026 l_amb_context_code           := 'DEFAULT';
79027 l_entity_code                := 'AP_INVOICES';
79028 l_event_class_code           := 'DEBIT MEMOS';
79029 l_event_type_code            := 'DEBIT MEMOS_ALL';
79030 l_line_definition_owner_code := 'S';
79031 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
79032 --
79033 l_balance_type_code          := 'A';
79034 l_segment                     := NULL;
79035 l_ccid                        := NULL;
79036 l_adr_transaction_coa_id      := NULL;
79037 l_adr_accounting_coa_id       := NULL;
79038 l_adr_flexfield_segment_code  := NULL;
79039 l_adr_flex_value_set_id       := NULL;
79040 l_adr_value_type_code         := NULL;
79041 l_adr_value_combination_id    := NULL;
79042 l_adr_value_segment_code      := NULL;
79043 
79044 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
79045 l_bflow_class_code           := '';    -- 4219869 Business Flow
79046 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
79047 l_budgetary_control_flag     := 'N';
79048 
79049 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
79050 l_bflow_applied_to_amt       := NULL; -- 5132302
79051 l_entered_amt_idx            := NULL;          -- 4262811
79052 l_accted_amt_idx             := NULL;          -- 4262811
79053 l_acc_rev_flag               := NULL;          -- 4262811
79054 l_accrual_line_num           := NULL;          -- 4262811
79055 l_tmp_amt                    := NULL;          -- 4262811
79056 --
79057  
79058 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
79062 NVL(p_source_33,'
79059     l_balance_type_code <> 'B' THEN
79060 IF NVL(p_source_33,'
79061 ') =  'RETROEXPENSE' OR 
79063 ') =  'ITEM' OR 
79064 (NVL(p_source_33,'
79065 ') =  'ERV' AND 
79066 NVL(p_source_96,'
79067 ') <>  'Y') OR 
79068 (NVL(p_source_33,'
79069 ') =  'IPV' AND 
79070 NVL(p_source_96,'
79071 ') <>  'Y')
79072  THEN 
79073 
79074    --
79075    XLA_AE_LINES_PKG.SetNewLine;
79076 
79077    p_balance_type_code          := l_balance_type_code;
79078    -- set the flag so later we will know whether the gain loss line needs to be created
79079    
79080    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
79081      p_actual_flag :='A';
79082    END IF;
79083 
79084    --
79085    -- bulk performance
79086    --
79087    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
79088                                       p_header_num   => 0); -- 4262811
79089    --
79090    -- set accounting line options
79091    --
79092    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
79093            p_natural_side_code          => 'D'
79094          , p_gain_or_loss_flag          => 'N'
79095          , p_gl_transfer_mode_code      => 'S'
79096          , p_acct_entry_type_code       => 'A'
79097          , p_switch_side_flag           => 'Y'
79098          , p_merge_duplicate_code       => 'A'
79099          );
79100    --
79101    l_acc_rev_natural_side_code := 'C';  -- 4262811
79102    -- 
79103    --
79104    -- set accounting line type info
79105    --
79106    xla_ae_lines_pkg.SetAcctLineType
79107       (p_component_type             => l_component_type
79108       ,p_event_type_code            => l_event_type_code
79109       ,p_line_definition_owner_code => l_line_definition_owner_code
79110       ,p_line_definition_code       => l_line_definition_code
79111       ,p_accounting_line_code       => l_component_code
79112       ,p_accounting_line_type_code  => l_component_type_code
79113       ,p_accounting_line_appl_id    => l_component_appl_id
79114       ,p_amb_context_code           => l_amb_context_code
79115       ,p_entity_code                => l_entity_code
79116       ,p_event_class_code           => l_event_class_code);
79117    --
79118    -- set accounting class
79119    --
79120    xla_ae_lines_pkg.SetAcctClass(
79121            p_accounting_class_code  => 'ITEM EXPENSE'
79122          , p_ae_header_id           => l_ae_header_id
79123          );
79124 
79125    --
79126    -- set rounding class
79127    --
79128    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
79129                       'ITEM EXPENSE';
79130 
79131    --
79132    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
79133    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
79134    --
79135    -- bulk performance
79136    --
79137    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
79138 
79139    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
79140       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
79141 
79142    -- 4955764
79143    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
79144       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
79145 
79146    -- 4458381 Public Sector Enh
79147    
79148    --
79149    -- set accounting attributes for the line type
79150    --
79151    l_entered_amt_idx := 23;
79152    l_accted_amt_idx  := 28;
79153    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
79154    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
79155    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
79156    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
79157    l_rec_acct_attrs.array_num_value(2)  := 
79158 xla_ae_sources_pkg.GetSystemSourceNum(
79159    p_source_code           => 'XLA_EVENT_APPL_ID'
79160  , p_source_type_code      => 'Y'
79161  , p_source_application_id =>  602
79162 );
79163    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
79164    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
79165    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
79166    l_rec_acct_attrs.array_char_value(4)  := 
79167 xla_ae_sources_pkg.GetSystemSourceChar(
79168    p_source_code           => 'XLA_ENTITY_CODE'
79169  , p_source_type_code      => 'Y'
79170  , p_source_application_id =>  602
79171 );
79172    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
79173    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
79174    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
79175    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
79176    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
79177    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
79178    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
79179    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
79180    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
79181    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
79182    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
79186    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
79183    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
79184    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
79185    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
79187    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
79188    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
79189    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
79190    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
79191    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
79192    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
79193    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
79194    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
79195    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
79196    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
79197    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
79198    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
79199    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
79200    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
79201    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
79202    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
79203    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
79204    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
79205    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
79206    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
79207    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
79208    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
79209    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
79210    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
79211    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
79212    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
79213    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
79214    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
79215    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
79216    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
79217    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
79218    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
79219    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
79220    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
79221    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
79222    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
79223    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
79224    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
79225    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
79226    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
79227    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
79228    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
79229    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
79230    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
79231    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
79232    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
79233    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
79234    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
79235    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
79236    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
79237    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
79238    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
79239    l_rec_acct_attrs.array_num_value(38)  := p_source_86;
79240    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
79241    l_rec_acct_attrs.array_num_value(39)  := p_source_87;
79242    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
79243    l_rec_acct_attrs.array_num_value(40)  := p_source_88;
79244    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
79245    l_rec_acct_attrs.array_num_value(41)  := p_source_89;
79246    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
79247    l_rec_acct_attrs.array_num_value(42)  := p_source_90;
79248 
79249    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
79250    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
79251 
79252    ---------------------------------------------------------------------------------------------------------------
79253    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
79254    ---------------------------------------------------------------------------------------------------------------
79255    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
79256 
79257    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
79258    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
79259 
79260    IF xla_accounting_cache_pkg.GetValueChar
79261          (p_source_code         => 'LEDGER_CATEGORY_CODE'
79262          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
79263    AND l_bflow_method_code = 'PRIOR_ENTRY'
79267        )
79264 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
79265    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
79266          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
79268    THEN
79269          xla_ae_lines_pkg.BflowUpgEntry
79270            (p_business_method_code    => l_bflow_method_code
79271            ,p_business_class_code     => l_bflow_class_code
79272            ,p_balance_type            => l_balance_type_code);
79273    ELSE
79274       NULL;
79275 -- No business flow processing for business flow method of NONE.
79276    END IF;
79277 
79278    --
79279    -- call analytical criteria
79280    --
79281    
79282    --
79283    -- call description
79284    --
79285    
79286 xla_ae_lines_pkg.SetLineDescription(
79287    p_ae_header_id => l_ae_header_id
79288   ,p_description  => Description_1 (
79289      p_application_id         => p_application_id
79290    , p_ae_header_id           => l_ae_header_id 
79291 , p_source_1 => p_source_1
79292    )
79293 );
79294 
79295 
79296    --
79297    -- call ADRs
79298    -- Bug 4922099
79299    --
79300    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
79301         (NVL(l_actual_upg_option, 'N') = 'O') OR
79302         (NVL(l_enc_upg_option, 'N') = 'O')
79303       )
79304    THEN
79305    NULL;
79306    --
79307    --
79308    
79309   l_ccid := AcctDerRule_33(
79310            p_application_id           => p_application_id
79311          , p_ae_header_id             => l_ae_header_id 
79312 , p_source_30 => p_source_30
79313          , x_transaction_coa_id       => l_adr_transaction_coa_id
79314          , x_accounting_coa_id        => l_adr_accounting_coa_id
79315          , x_value_type_code          => l_adr_value_type_code
79316          , p_side                     => 'NA'
79317    );
79318 
79319    xla_ae_lines_pkg.set_ccid(
79320     p_code_combination_id          => l_ccid
79321   , p_value_type_code              => l_adr_value_type_code
79322   , p_transaction_coa_id           => l_adr_transaction_coa_id
79323   , p_accounting_coa_id            => l_adr_accounting_coa_id
79324   , p_adr_code                     => 'AP_INVOICE_DIST'
79325   , p_adr_type_code                => 'S'
79326   , p_component_type               => l_component_type
79327   , p_component_code               => l_component_code
79328   , p_component_type_code          => l_component_type_code
79329   , p_component_appl_id            => l_component_appl_id
79330   , p_amb_context_code             => l_amb_context_code
79331   , p_side                         => 'NA'
79332   );
79333 
79334 
79335    --
79336    --
79337    END IF;
79338    --
79339    -- Bug 4922099
79340    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
79341           (NVL(l_enc_upg_option, 'N') = 'O')
79342         ) AND
79343         (l_bflow_method_code = 'PRIOR_ENTRY')
79344       )
79345    THEN
79346       IF
79347       --
79348       1 = 2
79349       --
79350       THEN
79351       xla_accounting_err_pkg.build_message
79352                                     (p_appli_s_name            => 'XLA'
79353                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
79354                                     ,p_token_1                 => 'LINE_NUMBER'
79355                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
79356                                     ,p_token_2                 => 'LINE_TYPE_NAME'
79357                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
79358                                                                              l_component_type
79359                                                                             ,l_component_code
79360                                                                             ,l_component_type_code
79361                                                                             ,l_component_appl_id
79362                                                                             ,l_amb_context_code
79363                                                                             ,l_entity_code
79364                                                                             ,l_event_class_code
79365                                                                            )
79366                                     ,p_token_3                 => 'OWNER'
79367                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
79368                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
79369                                                                           ,p_lookup_code    => l_component_type_code
79370                                                                          )
79371                                     ,p_token_4                 => 'PRODUCT_NAME'
79372                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
79373                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
79374                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
79375                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
79376                                     ,p_ae_header_id            =>  NULL
79377                                        );
79378 
79382                       ,p_level    => C_LEVEL_ERROR
79379         IF (C_LEVEL_ERROR>= g_log_level) THEN
79380                  trace
79381                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
79383                       ,p_module   => l_log_module);
79384         END IF;
79385       END IF;
79386    END IF;
79387    --
79388    --
79389    ------------------------------------------------------------------------------------------------
79390    -- 4219869 Business Flow
79391    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
79392    -- Prior Entry.  Currently, the following code is always generated.
79393    ------------------------------------------------------------------------------------------------
79394    XLA_AE_LINES_PKG.ValidateCurrentLine;
79395 
79396    ------------------------------------------------------------------------------------
79397    -- 4219869 Business Flow
79398    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
79399    ------------------------------------------------------------------------------------
79400    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
79401 
79402    ----------------------------------------------------------------------------------
79403    -- 4219869 Business Flow
79404    -- Update journal entry status -- Need to generate this within IF <condition>
79405    ----------------------------------------------------------------------------------
79406    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
79407          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
79408          ,p_balance_type_code => l_balance_type_code
79409          );
79410 
79411    -------------------------------------------------------------------------------------------
79412    -- 4262811 - Generate the Accrual Reversal lines
79413    -------------------------------------------------------------------------------------------
79414    BEGIN
79415       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
79416                               (g_array_event(p_event_id).array_value_num('header_index'));
79417       IF l_acc_rev_flag IS NULL THEN
79418          l_acc_rev_flag := 'N';
79419       END IF;
79420    EXCEPTION
79421       WHEN OTHERS THEN
79422          l_acc_rev_flag := 'N';
79423    END;
79424    --
79425    IF (l_acc_rev_flag = 'Y') THEN
79426 
79427        -- 4645092  ------------------------------------------------------------------------------
79428        -- To allow MPA report to determine if it should generate report process
79429        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
79430        ------------------------------------------------------------------------------------------
79431 
79432        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
79433        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
79434    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
79435    -- call ADRs
79436    -- Bug 4922099
79437    --
79438    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
79439         (NVL(l_actual_upg_option, 'N') = 'O') OR
79440         (NVL(l_enc_upg_option, 'N') = 'O')
79441       )
79442    THEN
79443    NULL;
79444    --
79445    --
79446    
79447   l_ccid := AcctDerRule_33(
79448            p_application_id           => p_application_id
79449          , p_ae_header_id             => l_ae_header_id 
79450 , p_source_30 => p_source_30
79451          , x_transaction_coa_id       => l_adr_transaction_coa_id
79452          , x_accounting_coa_id        => l_adr_accounting_coa_id
79453          , x_value_type_code          => l_adr_value_type_code
79454          , p_side                     => 'NA'
79455    );
79456 
79457    xla_ae_lines_pkg.set_ccid(
79458     p_code_combination_id          => l_ccid
79459   , p_value_type_code              => l_adr_value_type_code
79460   , p_transaction_coa_id           => l_adr_transaction_coa_id
79461   , p_accounting_coa_id            => l_adr_accounting_coa_id
79462   , p_adr_code                     => 'AP_INVOICE_DIST'
79463   , p_adr_type_code                => 'S'
79464   , p_component_type               => l_component_type
79465   , p_component_code               => l_component_code
79466   , p_component_type_code          => l_component_type_code
79467   , p_component_appl_id            => l_component_appl_id
79468   , p_amb_context_code             => l_amb_context_code
79469   , p_side                         => 'NA'
79470   );
79471 
79472 
79473    --
79474    --
79475    END IF;
79476 
79477        --
79478        -- Update the line information that should be overwritten
79479        --
79480        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
79481                                          p_header_num   => 1);
79482        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
79483 
79484        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
79485 
79486        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
79487           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
79488        END IF;
79489 
79490       --
79491       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
79492       --
79493       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
79497           -- 4262811a Switch Sign
79494           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
79495       ELSE
79496           ---------------------------------------------------------------------------------------------------
79498           ---------------------------------------------------------------------------------------------------
79499           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
79500           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
79501                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
79502           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
79503                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
79504           -- 5132302
79505           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
79506                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
79507 
79508       END IF;
79509 
79510       -- 4955764
79511       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
79512       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
79513 
79514 
79515       XLA_AE_LINES_PKG.ValidateCurrentLine;
79516       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
79517 
79518       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
79519                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
79520                ,p_balance_type_code => l_balance_type_code);
79521 
79522    END IF;
79523 
79524    -----------------------------------------------------------------------------------------
79525    -- 4262811 Multiperiod Accounting
79526    -----------------------------------------------------------------------------------------
79527      -- No MPA option is assigned.
79528 
79529 
79530 END IF;
79531 END IF;
79532 --
79533 
79534 --
79535 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79536    trace
79537       (p_msg      => 'END of AcctLineType_143'
79538       ,p_level    => C_LEVEL_PROCEDURE
79539       ,p_module   => l_log_module);
79540 END IF;
79541 --
79542 EXCEPTION
79543   WHEN xla_exceptions_pkg.application_exception THEN
79544       RAISE;
79545   WHEN OTHERS THEN
79546        xla_exceptions_pkg.raise_message
79547            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_143');
79548 END AcctLineType_143;
79549 --
79550 
79551 ---------------------------------------
79552 --
79553 -- PRIVATE FUNCTION
79554 --         AcctLineType_144
79555 --
79556 ---------------------------------------
79557 PROCEDURE AcctLineType_144 (
79558   p_application_id        IN NUMBER
79559  ,p_event_id              IN NUMBER
79560  ,p_calculate_acctd_flag  IN VARCHAR2
79561  ,p_calculate_g_l_flag    IN VARCHAR2
79562  ,p_actual_flag           IN OUT VARCHAR2
79563  ,p_balance_type_code     OUT VARCHAR2
79564  ,p_gain_or_loss_ref      OUT VARCHAR2
79565  
79566 --Invoice Distribution Description
79567  , p_source_1            IN VARCHAR2
79568 --Invoice Distribution Ledger Amount
79569  , p_source_21            IN NUMBER
79570 --Invoice Distribution Account
79571  , p_source_30            IN NUMBER
79572 --Invoice Distribution Type
79573  , p_source_33            IN VARCHAR2
79574  , p_source_33_meaning    IN VARCHAR2
79575 --Accounting Reversal Indicator
79576  , p_source_53            IN VARCHAR2
79577 --Distribution Link Type
79578  , p_source_55            IN VARCHAR2
79579 --Allocation to Main Distribution Identifier
79580  , p_source_57            IN NUMBER
79581 --Invoice Identifier
79582  , p_source_58            IN NUMBER
79583 --Invoice Distribution Identifier
79584  , p_source_64            IN NUMBER
79585 --Payables Encumbrance Upgrade Credit Account
79586  , p_source_65            IN NUMBER
79587 --Payables Encumbrance Upgrade Credit Amount
79588  , p_source_66            IN NUMBER
79589 --Invoice Currency Code
79590  , p_source_67            IN VARCHAR2
79591 --Payables Encumbrance Upgrade Credit Base Amount
79592  , p_source_68            IN NUMBER
79593 --Payables Encumbrance Upgrade Debit Account
79594  , p_source_69            IN NUMBER
79595 --Payables Encumbrance Upgrade Debit Amount
79596  , p_source_70            IN NUMBER
79597 --Payables Encumbrance Upgrade Debit Base Amount
79598  , p_source_71            IN NUMBER
79599 --Payables Encumbrance Upgrade Option
79600  , p_source_72            IN VARCHAR2
79601 --Invoice Distribution Amount
79602  , p_source_73            IN NUMBER
79603 --Deferred Accounting End Date
79604  , p_source_77            IN DATE
79605 --Deferred Accounting Option
79606  , p_source_78            IN VARCHAR2
79607 --Deferred Accounting Start Date
79608  , p_source_79            IN DATE
79609 --Override Accounted Amount Indicator
79610  , p_source_80            IN VARCHAR2
79611  , p_source_80_meaning    IN VARCHAR2
79612 --Invoice Supplier Identifier
79613  , p_source_81            IN NUMBER
79614 --Invoice Supplier Site Identifier
79615  , p_source_82            IN NUMBER
79616 --Third Party Type
79617  , p_source_83            IN VARCHAR2
79618 --Parent Reversal Identifier
79619  , p_source_84            IN NUMBER
79620 --Invoice Distribution Statistical Amount
79621  , p_source_85            IN NUMBER
79625  , p_source_87            IN NUMBER
79622 --Invoice Distribution Tax Line Identifier
79623  , p_source_86            IN NUMBER
79624 --Invoice Distribution Tax Distribution Identifier from Tax
79626 --Invoice Distribution Summary Tax Line Identifier
79627  , p_source_88            IN NUMBER
79628 --Payables Upgrade Credit Encumbrance Type Identifier
79629  , p_source_89            IN NUMBER
79630 --Payables Upgrade Debit Encumbrance Type Identifier
79631  , p_source_90            IN NUMBER
79632 --Business Flow Accounts Payable Application Identifier
79633  , p_source_91            IN NUMBER
79634 --Business Flow Invoice Distribution Type
79635  , p_source_92            IN VARCHAR2
79636 --Business Flow Invoice Entity Code
79637  , p_source_93            IN VARCHAR2
79638 --Business Flow Invoice Distribution Identifier
79639  , p_source_94            IN NUMBER
79640 --Business Flow Invoice Identifier
79641  , p_source_95            IN NUMBER
79642 --Accrue on Receipt Option
79643  , p_source_96            IN VARCHAR2
79644  , p_source_96_meaning    IN VARCHAR2
79645 --Invoice Exchange Date
79646  , p_source_143            IN DATE
79647 --Invoice Exchange Rate
79648  , p_source_144            IN NUMBER
79649 --Invoice Exchange Rate Type
79650  , p_source_145            IN VARCHAR2
79651 )
79652 IS
79653 
79654 l_component_type              VARCHAR2(80);
79655 l_component_code              VARCHAR2(30);
79656 l_component_type_code         VARCHAR2(1);
79657 l_component_appl_id           INTEGER;
79658 l_amb_context_code            VARCHAR2(30);
79659 l_entity_code                 VARCHAR2(30);
79660 l_event_class_code            VARCHAR2(30);
79661 l_ae_header_id                NUMBER;
79662 l_event_type_code             VARCHAR2(30);
79663 l_line_definition_code        VARCHAR2(30);
79664 l_line_definition_owner_code  VARCHAR2(1);
79665 --
79666 -- adr variables
79667 l_segment                     VARCHAR2(30);
79668 l_ccid                        NUMBER;
79669 l_adr_transaction_coa_id      NUMBER;
79670 l_adr_accounting_coa_id       NUMBER;
79671 l_adr_flexfield_segment_code  VARCHAR2(30);
79672 l_adr_flex_value_set_id       NUMBER;
79673 l_adr_value_type_code         VARCHAR2(30);
79674 l_adr_value_combination_id    NUMBER;
79675 l_adr_value_segment_code      VARCHAR2(30);
79676 
79677 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
79678 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
79679 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
79680 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
79681 
79682 -- 4262811 Variables ------------------------------------------------------------------------------------------
79683 l_entered_amt_idx             NUMBER;
79684 l_accted_amt_idx              NUMBER;
79685 l_acc_rev_flag                VARCHAR2(1);
79686 l_accrual_line_num            NUMBER;
79687 l_tmp_amt                     NUMBER;
79688 l_acc_rev_natural_side_code   VARCHAR2(1);
79689 
79690 l_num_entries                 NUMBER;
79691 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
79692 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
79693 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
79694 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
79695 l_recog_line_1                NUMBER;
79696 l_recog_line_2                NUMBER;
79697 
79698 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
79699 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
79700 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
79701 
79702 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
79703 
79704 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
79705 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
79706 
79707 ---------------------------------------------------------------------------------------------------------------
79708 
79709 
79710 --
79711 -- bulk performance
79712 --
79713 l_balance_type_code           VARCHAR2(1);
79714 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
79715 l_log_module                  VARCHAR2(240);
79716 
79717 --
79718 -- Upgrade strategy
79719 --
79720 l_actual_upg_option           VARCHAR2(1);
79721 l_enc_upg_option           VARCHAR2(1);
79722 
79723 --
79724 BEGIN
79725 --
79726 IF g_log_enabled THEN
79727       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_144';
79728 END IF;
79729 --
79730 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79731 
79732       trace
79733          (p_msg      => 'BEGIN of AcctLineType_144'
79734          ,p_level    => C_LEVEL_PROCEDURE
79735          ,p_module   => l_log_module);
79736 
79737 END IF;
79738 --
79739 l_component_type             := 'AMB_JLT';
79740 l_component_code             := 'AP_ITEM_EXPENSE_INV';
79741 l_component_type_code        := 'S';
79742 l_component_appl_id          :=  200;
79743 l_amb_context_code           := 'DEFAULT';
79744 l_entity_code                := 'AP_INVOICES';
79745 l_event_class_code           := 'INVOICES';
79746 l_event_type_code            := 'INVOICES_ALL';
79747 l_line_definition_owner_code := 'S';
79748 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
79749 --
79750 l_balance_type_code          := 'A';
79754 l_adr_accounting_coa_id       := NULL;
79751 l_segment                     := NULL;
79752 l_ccid                        := NULL;
79753 l_adr_transaction_coa_id      := NULL;
79755 l_adr_flexfield_segment_code  := NULL;
79756 l_adr_flex_value_set_id       := NULL;
79757 l_adr_value_type_code         := NULL;
79758 l_adr_value_combination_id    := NULL;
79759 l_adr_value_segment_code      := NULL;
79760 
79761 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
79762 l_bflow_class_code           := '';    -- 4219869 Business Flow
79763 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
79764 l_budgetary_control_flag     := 'N';
79765 
79766 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
79767 l_bflow_applied_to_amt       := NULL; -- 5132302
79768 l_entered_amt_idx            := NULL;          -- 4262811
79769 l_accted_amt_idx             := NULL;          -- 4262811
79770 l_acc_rev_flag               := NULL;          -- 4262811
79771 l_accrual_line_num           := NULL;          -- 4262811
79772 l_tmp_amt                    := NULL;          -- 4262811
79773 --
79774  
79775 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
79776     l_balance_type_code <> 'B' THEN
79777 IF NVL(p_source_33,'
79778 ') =  'RETROEXPENSE' OR 
79779 NVL(p_source_33,'
79780 ') =  'ITEM' OR 
79781 (NVL(p_source_33,'
79782 ') =  'ERV' AND 
79783 NVL(p_source_96,'
79784 ') <>  'Y') OR 
79785 (NVL(p_source_33,'
79786 ') =  'IPV' AND 
79787 NVL(p_source_96,'
79788 ') <>  'Y')
79789  THEN 
79790 
79791    --
79792    XLA_AE_LINES_PKG.SetNewLine;
79793 
79794    p_balance_type_code          := l_balance_type_code;
79795    -- set the flag so later we will know whether the gain loss line needs to be created
79796    
79797    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
79798      p_actual_flag :='A';
79799    END IF;
79800 
79801    --
79802    -- bulk performance
79803    --
79804    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
79805                                       p_header_num   => 0); -- 4262811
79806    --
79807    -- set accounting line options
79808    --
79809    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
79810            p_natural_side_code          => 'D'
79811          , p_gain_or_loss_flag          => 'N'
79812          , p_gl_transfer_mode_code      => 'S'
79813          , p_acct_entry_type_code       => 'A'
79814          , p_switch_side_flag           => 'Y'
79815          , p_merge_duplicate_code       => 'A'
79816          );
79817    --
79818    l_acc_rev_natural_side_code := 'C';  -- 4262811
79819    -- 
79820    --
79821    -- set accounting line type info
79822    --
79823    xla_ae_lines_pkg.SetAcctLineType
79824       (p_component_type             => l_component_type
79825       ,p_event_type_code            => l_event_type_code
79826       ,p_line_definition_owner_code => l_line_definition_owner_code
79827       ,p_line_definition_code       => l_line_definition_code
79828       ,p_accounting_line_code       => l_component_code
79829       ,p_accounting_line_type_code  => l_component_type_code
79830       ,p_accounting_line_appl_id    => l_component_appl_id
79831       ,p_amb_context_code           => l_amb_context_code
79832       ,p_entity_code                => l_entity_code
79833       ,p_event_class_code           => l_event_class_code);
79834    --
79835    -- set accounting class
79836    --
79837    xla_ae_lines_pkg.SetAcctClass(
79838            p_accounting_class_code  => 'ITEM EXPENSE'
79839          , p_ae_header_id           => l_ae_header_id
79840          );
79841 
79842    --
79843    -- set rounding class
79844    --
79845    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
79846                       'ITEM EXPENSE';
79847 
79848    --
79849    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
79850    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
79851    --
79852    -- bulk performance
79853    --
79854    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
79855 
79856    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
79857       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
79858 
79859    -- 4955764
79860    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
79861       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
79862 
79863    -- 4458381 Public Sector Enh
79864    
79865    --
79866    -- set accounting attributes for the line type
79867    --
79868    l_entered_amt_idx := 24;
79869    l_accted_amt_idx  := 29;
79870    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
79871    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
79872    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
79873    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
79874    l_rec_acct_attrs.array_num_value(2)  := 
79875 xla_ae_sources_pkg.GetSystemSourceNum(
79876    p_source_code           => 'XLA_EVENT_APPL_ID'
79877  , p_source_type_code      => 'Y'
79878  , p_source_application_id =>  602
79879 );
79880    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
79884 xla_ae_sources_pkg.GetSystemSourceChar(
79881    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
79882    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
79883    l_rec_acct_attrs.array_char_value(4)  := 
79885    p_source_code           => 'XLA_ENTITY_CODE'
79886  , p_source_type_code      => 'Y'
79887  , p_source_application_id =>  602
79888 );
79889    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
79890    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
79891    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
79892    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
79893    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
79894    l_rec_acct_attrs.array_num_value(7)  := p_source_73;
79895    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
79896    l_rec_acct_attrs.array_num_value(8)  := p_source_91;
79897    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
79898    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
79899    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
79900    l_rec_acct_attrs.array_char_value(10)  := p_source_93;
79901    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
79902    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
79903    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
79904    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_95);
79905    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
79906    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_64);
79907    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
79908    l_rec_acct_attrs.array_char_value(14)  := p_source_55;
79909    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
79910    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
79911    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
79912    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
79913    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
79914    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
79915    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
79916    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
79917    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
79918    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
79919    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
79920    l_rec_acct_attrs.array_num_value(20)  := p_source_70;
79921    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
79922    l_rec_acct_attrs.array_char_value(21)  := p_source_67;
79923    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
79924    l_rec_acct_attrs.array_num_value(22)  := p_source_71;
79925    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
79926    l_rec_acct_attrs.array_char_value(23)  := p_source_72;
79927    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
79928    l_rec_acct_attrs.array_num_value(24)  := p_source_73;
79929    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
79930    l_rec_acct_attrs.array_char_value(25)  := p_source_67;
79931    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
79932    l_rec_acct_attrs.array_date_value(26)  := p_source_143;
79933    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
79934    l_rec_acct_attrs.array_num_value(27)  := p_source_144;
79935    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
79936    l_rec_acct_attrs.array_char_value(28)  := p_source_145;
79937    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
79938    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
79939    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
79940    l_rec_acct_attrs.array_date_value(30)  := p_source_77;
79941    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
79942    l_rec_acct_attrs.array_char_value(31)  := p_source_78;
79943    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
79944    l_rec_acct_attrs.array_date_value(32)  := p_source_79;
79945    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
79946    l_rec_acct_attrs.array_char_value(33)  := p_source_80;
79947    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
79948    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
79949    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
79950    l_rec_acct_attrs.array_num_value(35)  := p_source_82;
79951    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
79952    l_rec_acct_attrs.array_char_value(36)  := p_source_83;
79953    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
79954    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_84);
79955    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
79956    l_rec_acct_attrs.array_char_value(38)  := p_source_55;
79957    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
79958    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
79959    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
79960    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
79961    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
79962    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
79963    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
79964    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
79968    l_rec_acct_attrs.array_num_value(44)  := p_source_90;
79965    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
79966    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
79967    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
79969 
79970    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
79971    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
79972 
79973    ---------------------------------------------------------------------------------------------------------------
79974    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
79975    ---------------------------------------------------------------------------------------------------------------
79976    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
79977 
79978    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
79979    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
79980 
79981    IF xla_accounting_cache_pkg.GetValueChar
79982          (p_source_code         => 'LEDGER_CATEGORY_CODE'
79983          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
79984    AND l_bflow_method_code = 'PRIOR_ENTRY'
79985 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
79986    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
79987          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
79988        )
79989    THEN
79990          xla_ae_lines_pkg.BflowUpgEntry
79991            (p_business_method_code    => l_bflow_method_code
79992            ,p_business_class_code     => l_bflow_class_code
79993            ,p_balance_type            => l_balance_type_code);
79994    ELSE
79995       NULL;
79996 -- No business flow processing for business flow method of NONE.
79997    END IF;
79998 
79999    --
80000    -- call analytical criteria
80001    --
80002    
80003    --
80004    -- call description
80005    --
80006    
80007 xla_ae_lines_pkg.SetLineDescription(
80008    p_ae_header_id => l_ae_header_id
80009   ,p_description  => Description_1 (
80010      p_application_id         => p_application_id
80011    , p_ae_header_id           => l_ae_header_id 
80012 , p_source_1 => p_source_1
80013    )
80014 );
80015 
80016 
80017    --
80018    -- call ADRs
80019    -- Bug 4922099
80020    --
80021    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
80022         (NVL(l_actual_upg_option, 'N') = 'O') OR
80023         (NVL(l_enc_upg_option, 'N') = 'O')
80024       )
80025    THEN
80026    NULL;
80027    --
80028    --
80029    
80030   l_ccid := AcctDerRule_33(
80031            p_application_id           => p_application_id
80032          , p_ae_header_id             => l_ae_header_id 
80033 , p_source_30 => p_source_30
80034          , x_transaction_coa_id       => l_adr_transaction_coa_id
80035          , x_accounting_coa_id        => l_adr_accounting_coa_id
80036          , x_value_type_code          => l_adr_value_type_code
80037          , p_side                     => 'NA'
80038    );
80039 
80040    xla_ae_lines_pkg.set_ccid(
80041     p_code_combination_id          => l_ccid
80042   , p_value_type_code              => l_adr_value_type_code
80043   , p_transaction_coa_id           => l_adr_transaction_coa_id
80044   , p_accounting_coa_id            => l_adr_accounting_coa_id
80045   , p_adr_code                     => 'AP_INVOICE_DIST'
80046   , p_adr_type_code                => 'S'
80047   , p_component_type               => l_component_type
80048   , p_component_code               => l_component_code
80049   , p_component_type_code          => l_component_type_code
80050   , p_component_appl_id            => l_component_appl_id
80051   , p_amb_context_code             => l_amb_context_code
80052   , p_side                         => 'NA'
80053   );
80054 
80055 
80056    --
80057    --
80058    END IF;
80059    --
80060    -- Bug 4922099
80061    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
80062           (NVL(l_enc_upg_option, 'N') = 'O')
80063         ) AND
80064         (l_bflow_method_code = 'PRIOR_ENTRY')
80065       )
80066    THEN
80067       IF
80068       --
80069       1 = 2
80070       --
80071       THEN
80072       xla_accounting_err_pkg.build_message
80073                                     (p_appli_s_name            => 'XLA'
80074                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
80075                                     ,p_token_1                 => 'LINE_NUMBER'
80076                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
80077                                     ,p_token_2                 => 'LINE_TYPE_NAME'
80078                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
80079                                                                              l_component_type
80080                                                                             ,l_component_code
80081                                                                             ,l_component_type_code
80082                                                                             ,l_component_appl_id
80083                                                                             ,l_amb_context_code
80087                                     ,p_token_3                 => 'OWNER'
80084                                                                             ,l_entity_code
80085                                                                             ,l_event_class_code
80086                                                                            )
80088                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
80089                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
80090                                                                           ,p_lookup_code    => l_component_type_code
80091                                                                          )
80092                                     ,p_token_4                 => 'PRODUCT_NAME'
80093                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
80094                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
80095                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
80096                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
80097                                     ,p_ae_header_id            =>  NULL
80098                                        );
80099 
80100         IF (C_LEVEL_ERROR>= g_log_level) THEN
80101                  trace
80102                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
80103                       ,p_level    => C_LEVEL_ERROR
80104                       ,p_module   => l_log_module);
80105         END IF;
80106       END IF;
80107    END IF;
80108    --
80109    --
80110    ------------------------------------------------------------------------------------------------
80111    -- 4219869 Business Flow
80112    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
80113    -- Prior Entry.  Currently, the following code is always generated.
80114    ------------------------------------------------------------------------------------------------
80115    XLA_AE_LINES_PKG.ValidateCurrentLine;
80116 
80117    ------------------------------------------------------------------------------------
80118    -- 4219869 Business Flow
80119    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
80120    ------------------------------------------------------------------------------------
80121    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
80122 
80123    ----------------------------------------------------------------------------------
80124    -- 4219869 Business Flow
80125    -- Update journal entry status -- Need to generate this within IF <condition>
80126    ----------------------------------------------------------------------------------
80127    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
80128          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
80129          ,p_balance_type_code => l_balance_type_code
80130          );
80131 
80132    -------------------------------------------------------------------------------------------
80133    -- 4262811 - Generate the Accrual Reversal lines
80134    -------------------------------------------------------------------------------------------
80135    BEGIN
80136       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
80137                               (g_array_event(p_event_id).array_value_num('header_index'));
80138       IF l_acc_rev_flag IS NULL THEN
80139          l_acc_rev_flag := 'N';
80140       END IF;
80141    EXCEPTION
80142       WHEN OTHERS THEN
80143          l_acc_rev_flag := 'N';
80144    END;
80145    --
80146    IF (l_acc_rev_flag = 'Y') THEN
80147 
80148        -- 4645092  ------------------------------------------------------------------------------
80149        -- To allow MPA report to determine if it should generate report process
80150        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
80151        ------------------------------------------------------------------------------------------
80152 
80153        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
80154        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
80155    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
80156    -- call ADRs
80157    -- Bug 4922099
80158    --
80159    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
80160         (NVL(l_actual_upg_option, 'N') = 'O') OR
80161         (NVL(l_enc_upg_option, 'N') = 'O')
80162       )
80163    THEN
80164    NULL;
80165    --
80166    --
80167    
80168   l_ccid := AcctDerRule_33(
80169            p_application_id           => p_application_id
80170          , p_ae_header_id             => l_ae_header_id 
80171 , p_source_30 => p_source_30
80172          , x_transaction_coa_id       => l_adr_transaction_coa_id
80173          , x_accounting_coa_id        => l_adr_accounting_coa_id
80174          , x_value_type_code          => l_adr_value_type_code
80175          , p_side                     => 'NA'
80176    );
80177 
80178    xla_ae_lines_pkg.set_ccid(
80179     p_code_combination_id          => l_ccid
80180   , p_value_type_code              => l_adr_value_type_code
80181   , p_transaction_coa_id           => l_adr_transaction_coa_id
80182   , p_accounting_coa_id            => l_adr_accounting_coa_id
80183   , p_adr_code                     => 'AP_INVOICE_DIST'
80184   , p_adr_type_code                => 'S'
80188   , p_component_appl_id            => l_component_appl_id
80185   , p_component_type               => l_component_type
80186   , p_component_code               => l_component_code
80187   , p_component_type_code          => l_component_type_code
80189   , p_amb_context_code             => l_amb_context_code
80190   , p_side                         => 'NA'
80191   );
80192 
80193 
80194    --
80195    --
80196    END IF;
80197 
80198        --
80199        -- Update the line information that should be overwritten
80200        --
80201        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
80202                                          p_header_num   => 1);
80203        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
80204 
80205        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
80206 
80207        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
80208           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
80209        END IF;
80210 
80211       --
80212       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
80213       --
80214       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
80215           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
80216       ELSE
80217           ---------------------------------------------------------------------------------------------------
80218           -- 4262811a Switch Sign
80219           ---------------------------------------------------------------------------------------------------
80220           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
80221           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
80222                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80223           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
80224                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80225           -- 5132302
80226           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
80227                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80228 
80229       END IF;
80230 
80231       -- 4955764
80232       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
80233       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
80234 
80235 
80236       XLA_AE_LINES_PKG.ValidateCurrentLine;
80237       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
80238 
80239       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
80240                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
80241                ,p_balance_type_code => l_balance_type_code);
80242 
80243    END IF;
80244 
80245    -----------------------------------------------------------------------------------------
80246    -- 4262811 Multiperiod Accounting
80247    -----------------------------------------------------------------------------------------
80248      -- No MPA option is assigned.
80249 
80250 
80251 END IF;
80252 END IF;
80253 --
80254 
80255 --
80256 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80257    trace
80258       (p_msg      => 'END of AcctLineType_144'
80259       ,p_level    => C_LEVEL_PROCEDURE
80260       ,p_module   => l_log_module);
80261 END IF;
80262 --
80263 EXCEPTION
80264   WHEN xla_exceptions_pkg.application_exception THEN
80265       RAISE;
80266   WHEN OTHERS THEN
80267        xla_exceptions_pkg.raise_message
80268            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_144');
80269 END AcctLineType_144;
80270 --
80271 
80272 ---------------------------------------
80273 --
80274 -- PRIVATE FUNCTION
80275 --         AcctLineType_145
80276 --
80277 ---------------------------------------
80278 PROCEDURE AcctLineType_145 (
80279   p_application_id        IN NUMBER
80280  ,p_event_id              IN NUMBER
80281  ,p_calculate_acctd_flag  IN VARCHAR2
80282  ,p_calculate_g_l_flag    IN VARCHAR2
80283  ,p_actual_flag           IN OUT VARCHAR2
80284  ,p_balance_type_code     OUT VARCHAR2
80285  ,p_gain_or_loss_ref      OUT VARCHAR2
80286  
80287 --Payment Currency Code
80288  , p_source_13            IN VARCHAR2
80289 --Accounting Reversal Indicator
80290  , p_source_53            IN VARCHAR2
80291 --Distribution Link Type
80292  , p_source_55            IN VARCHAR2
80293 --Override Accounted Amount Indicator
80294  , p_source_80            IN VARCHAR2
80295  , p_source_80_meaning    IN VARCHAR2
80296 --Third Party Type
80297  , p_source_83            IN VARCHAR2
80298 --Invoice Distribution Tax Line Identifier
80299  , p_source_86            IN NUMBER
80300 --Invoice Distribution Summary Tax Line Identifier
80301  , p_source_88            IN NUMBER
80302 --Business Flow Accounts Payable Application Identifier
80303  , p_source_91            IN NUMBER
80304 --Business Flow Invoice Distribution Type
80305  , p_source_92            IN VARCHAR2
80306 --Business Flow Invoice Entity Code
80307  , p_source_93            IN VARCHAR2
80308 --Business Flow Invoice Distribution Identifier
80312 --When to Account for Payment Option
80309  , p_source_94            IN NUMBER
80310 --Business Flow Invoice Identifier
80311  , p_source_95            IN NUMBER
80313  , p_source_97            IN VARCHAR2
80314 --Payment Distribution Type
80315  , p_source_98            IN VARCHAR2
80316  , p_source_98_meaning    IN VARCHAR2
80317 --Payment Distribution Amount
80318  , p_source_99            IN NUMBER
80319 --Payment Distribution Identifier
80320  , p_source_104            IN NUMBER
80321 --Payment Distribution Reversed Identifier
80322  , p_source_112            IN NUMBER
80323 --Payment Distribution (Invoice Rate) Ledger Amount
80324  , p_source_116            IN NUMBER
80325 --Payment Type
80326  , p_source_122            IN VARCHAR2
80327  , p_source_122_meaning    IN VARCHAR2
80328 --Invoice Type Paid
80329  , p_source_163            IN VARCHAR2
80330  , p_source_163_meaning    IN VARCHAR2
80331 --Withholding at Payment Indicator
80332  , p_source_164            IN VARCHAR2
80333  , p_source_164_meaning    IN VARCHAR2
80334 )
80335 IS
80336 
80337 l_component_type              VARCHAR2(80);
80338 l_component_code              VARCHAR2(30);
80339 l_component_type_code         VARCHAR2(1);
80340 l_component_appl_id           INTEGER;
80341 l_amb_context_code            VARCHAR2(30);
80342 l_entity_code                 VARCHAR2(30);
80343 l_event_class_code            VARCHAR2(30);
80344 l_ae_header_id                NUMBER;
80345 l_event_type_code             VARCHAR2(30);
80346 l_line_definition_code        VARCHAR2(30);
80347 l_line_definition_owner_code  VARCHAR2(1);
80348 --
80349 -- adr variables
80350 l_segment                     VARCHAR2(30);
80351 l_ccid                        NUMBER;
80352 l_adr_transaction_coa_id      NUMBER;
80353 l_adr_accounting_coa_id       NUMBER;
80354 l_adr_flexfield_segment_code  VARCHAR2(30);
80355 l_adr_flex_value_set_id       NUMBER;
80356 l_adr_value_type_code         VARCHAR2(30);
80357 l_adr_value_combination_id    NUMBER;
80358 l_adr_value_segment_code      VARCHAR2(30);
80359 
80360 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
80361 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
80362 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
80363 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
80364 
80365 -- 4262811 Variables ------------------------------------------------------------------------------------------
80366 l_entered_amt_idx             NUMBER;
80367 l_accted_amt_idx              NUMBER;
80368 l_acc_rev_flag                VARCHAR2(1);
80369 l_accrual_line_num            NUMBER;
80370 l_tmp_amt                     NUMBER;
80371 l_acc_rev_natural_side_code   VARCHAR2(1);
80372 
80373 l_num_entries                 NUMBER;
80374 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
80375 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
80376 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
80377 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
80378 l_recog_line_1                NUMBER;
80379 l_recog_line_2                NUMBER;
80380 
80381 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
80382 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
80383 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
80384 
80385 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
80386 
80387 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
80388 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
80389 
80390 ---------------------------------------------------------------------------------------------------------------
80391 
80392 
80393 --
80394 -- bulk performance
80395 --
80396 l_balance_type_code           VARCHAR2(1);
80397 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
80398 l_log_module                  VARCHAR2(240);
80399 
80400 --
80401 -- Upgrade strategy
80402 --
80403 l_actual_upg_option           VARCHAR2(1);
80404 l_enc_upg_option           VARCHAR2(1);
80405 
80406 --
80407 BEGIN
80408 --
80409 IF g_log_enabled THEN
80410       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_145';
80411 END IF;
80412 --
80413 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80414 
80415       trace
80416          (p_msg      => 'BEGIN of AcctLineType_145'
80417          ,p_level    => C_LEVEL_PROCEDURE
80418          ,p_module   => l_log_module);
80419 
80420 END IF;
80421 --
80422 l_component_type             := 'AMB_JLT';
80423 l_component_code             := 'AP_LIAB_AWT_CLEAR';
80424 l_component_type_code        := 'S';
80425 l_component_appl_id          :=  200;
80426 l_amb_context_code           := 'DEFAULT';
80427 l_entity_code                := 'AP_PAYMENTS';
80428 l_event_class_code           := 'RECONCILED PAYMENTS';
80429 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
80430 l_line_definition_owner_code := 'S';
80431 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
80432 --
80433 l_balance_type_code          := 'A';
80434 l_segment                     := NULL;
80435 l_ccid                        := NULL;
80436 l_adr_transaction_coa_id      := NULL;
80437 l_adr_accounting_coa_id       := NULL;
80438 l_adr_flexfield_segment_code  := NULL;
80442 l_adr_value_segment_code      := NULL;
80439 l_adr_flex_value_set_id       := NULL;
80440 l_adr_value_type_code         := NULL;
80441 l_adr_value_combination_id    := NULL;
80443 
80444 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
80445 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
80446 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
80447 l_budgetary_control_flag     := 'N';
80448 
80449 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
80450 l_bflow_applied_to_amt       := NULL; -- 5132302
80451 l_entered_amt_idx            := NULL;          -- 4262811
80452 l_accted_amt_idx             := NULL;          -- 4262811
80453 l_acc_rev_flag               := NULL;          -- 4262811
80454 l_accrual_line_num           := NULL;          -- 4262811
80455 l_tmp_amt                    := NULL;          -- 4262811
80456 --
80457  
80458 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
80459     l_balance_type_code <> 'B' THEN
80460 IF NVL(p_source_97,'
80461 ') =  'CLEAR_CLEAR' AND 
80462 NVL(p_source_163,'
80463 ') <>  'INTEREST' AND 
80464 NVL(p_source_98,'
80465 ') =  'AWT' AND 
80466 NVL(p_source_164,'
80467 ') =  'Y' AND 
80468 NVL(p_source_122,'
80469 ') <>  'R'
80470  THEN 
80471 
80472    --
80473    XLA_AE_LINES_PKG.SetNewLine;
80474 
80475    p_balance_type_code          := l_balance_type_code;
80476    -- set the flag so later we will know whether the gain loss line needs to be created
80477    
80478    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
80479      p_actual_flag :='A';
80480    END IF;
80481 
80482    --
80483    -- bulk performance
80484    --
80485    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
80486                                       p_header_num   => 0); -- 4262811
80487    --
80488    -- set accounting line options
80489    --
80490    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
80491            p_natural_side_code          => 'D'
80492          , p_gain_or_loss_flag          => 'N'
80493          , p_gl_transfer_mode_code      => 'S'
80494          , p_acct_entry_type_code       => 'A'
80495          , p_switch_side_flag           => 'Y'
80496          , p_merge_duplicate_code       => 'A'
80497          );
80498    --
80499    l_acc_rev_natural_side_code := 'C';  -- 4262811
80500    -- 
80501    --
80502    -- set accounting line type info
80503    --
80504    xla_ae_lines_pkg.SetAcctLineType
80505       (p_component_type             => l_component_type
80506       ,p_event_type_code            => l_event_type_code
80507       ,p_line_definition_owner_code => l_line_definition_owner_code
80508       ,p_line_definition_code       => l_line_definition_code
80509       ,p_accounting_line_code       => l_component_code
80510       ,p_accounting_line_type_code  => l_component_type_code
80511       ,p_accounting_line_appl_id    => l_component_appl_id
80512       ,p_amb_context_code           => l_amb_context_code
80513       ,p_entity_code                => l_entity_code
80514       ,p_event_class_code           => l_event_class_code);
80515    --
80516    -- set accounting class
80517    --
80518    xla_ae_lines_pkg.SetAcctClass(
80519            p_accounting_class_code  => 'LIABILITY'
80520          , p_ae_header_id           => l_ae_header_id
80521          );
80522 
80523    --
80524    -- set rounding class
80525    --
80526    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
80527                       'LIABILITY';
80528 
80529    --
80530    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
80531    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
80532    --
80533    -- bulk performance
80534    --
80535    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
80536 
80537    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
80538       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
80539 
80540    -- 4955764
80541    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
80542       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
80543 
80544    -- 4458381 Public Sector Enh
80545    
80546    --
80547    -- set accounting attributes for the line type
80548    --
80549    l_entered_amt_idx := 10;
80550    l_accted_amt_idx  := 12;
80551    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
80552    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
80553    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
80554    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
80555    l_rec_acct_attrs.array_num_value(2)  := p_source_99;
80556    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
80557    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
80558    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
80559    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
80560    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
80561    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
80562    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
80563    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
80567    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
80564    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
80565    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
80566    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
80568    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
80569    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
80570    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
80571    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
80572    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
80573    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
80574    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
80575    l_rec_acct_attrs.array_num_value(12)  := p_source_116;
80576    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
80577    l_rec_acct_attrs.array_char_value(13)  := p_source_80;
80578    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
80579    l_rec_acct_attrs.array_char_value(14)  := p_source_83;
80580    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
80581    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_112);
80582    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
80583    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
80584    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
80585    l_rec_acct_attrs.array_num_value(17)  := p_source_86;
80586    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
80587    l_rec_acct_attrs.array_num_value(18)  := p_source_86;
80588    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
80589    l_rec_acct_attrs.array_num_value(19)  := p_source_88;
80590 
80591    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
80592    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
80593 
80594    ---------------------------------------------------------------------------------------------------------------
80595    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
80596    ---------------------------------------------------------------------------------------------------------------
80597    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
80598 
80599    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
80600    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
80601 
80602    IF xla_accounting_cache_pkg.GetValueChar
80603          (p_source_code         => 'LEDGER_CATEGORY_CODE'
80604          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
80605    AND l_bflow_method_code = 'PRIOR_ENTRY'
80606 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
80607    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
80608          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
80609        )
80610    THEN
80611          xla_ae_lines_pkg.BflowUpgEntry
80612            (p_business_method_code    => l_bflow_method_code
80613            ,p_business_class_code     => l_bflow_class_code
80614            ,p_balance_type            => l_balance_type_code);
80615    ELSE
80616       NULL;
80617 XLA_AE_LINES_PKG.business_flow_validation(
80618                                 p_business_method_code     => l_bflow_method_code
80619                                ,p_business_class_code      => l_bflow_class_code
80620                                ,p_inherit_description_flag => l_inherit_desc_flag);
80621    END IF;
80622 
80623    --
80624    -- call analytical criteria
80625    --
80626    -- Inherited Analytical Criteria for business flow method of Prior Entry.
80627    --
80628    -- call description
80629    --
80630    -- No description or it is inherited.
80631    --
80632    -- call ADRs
80633    -- Bug 4922099
80634    --
80635    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
80636         (NVL(l_actual_upg_option, 'N') = 'O') OR
80637         (NVL(l_enc_upg_option, 'N') = 'O')
80638       )
80639    THEN
80640    NULL;
80641    --
80642    --
80643    
80644    --
80645    --
80646    END IF;
80647    --
80648    -- Bug 4922099
80649    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
80650           (NVL(l_enc_upg_option, 'N') = 'O')
80651         ) AND
80652         (l_bflow_method_code = 'PRIOR_ENTRY')
80653       )
80654    THEN
80655       IF
80656       --
80657       1 = 1
80658       --
80659       THEN
80660       xla_accounting_err_pkg.build_message
80661                                     (p_appli_s_name            => 'XLA'
80662                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
80663                                     ,p_token_1                 => 'LINE_NUMBER'
80664                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
80665                                     ,p_token_2                 => 'LINE_TYPE_NAME'
80666                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
80667                                                                              l_component_type
80668                                                                             ,l_component_code
80672                                                                             ,l_entity_code
80669                                                                             ,l_component_type_code
80670                                                                             ,l_component_appl_id
80671                                                                             ,l_amb_context_code
80673                                                                             ,l_event_class_code
80674                                                                            )
80675                                     ,p_token_3                 => 'OWNER'
80676                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
80677                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
80678                                                                           ,p_lookup_code    => l_component_type_code
80679                                                                          )
80680                                     ,p_token_4                 => 'PRODUCT_NAME'
80681                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
80682                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
80683                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
80684                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
80685                                     ,p_ae_header_id            =>  NULL
80686                                        );
80687 
80688         IF (C_LEVEL_ERROR>= g_log_level) THEN
80689                  trace
80690                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
80691                       ,p_level    => C_LEVEL_ERROR
80692                       ,p_module   => l_log_module);
80693         END IF;
80694       END IF;
80695    END IF;
80696    --
80697    --
80698    ------------------------------------------------------------------------------------------------
80699    -- 4219869 Business Flow
80700    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
80701    -- Prior Entry.  Currently, the following code is always generated.
80702    ------------------------------------------------------------------------------------------------
80703    -- No ValidateCurrentLine for business flow method of Prior Entry
80704 
80705    ------------------------------------------------------------------------------------
80706    -- 4219869 Business Flow
80707    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
80708    ------------------------------------------------------------------------------------
80709    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
80710 
80711    ----------------------------------------------------------------------------------
80712    -- 4219869 Business Flow
80713    -- Update journal entry status -- Need to generate this within IF <condition>
80714    ----------------------------------------------------------------------------------
80715    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
80716          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
80717          ,p_balance_type_code => l_balance_type_code
80718          );
80719 
80720    -------------------------------------------------------------------------------------------
80721    -- 4262811 - Generate the Accrual Reversal lines
80722    -------------------------------------------------------------------------------------------
80723    BEGIN
80724       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
80725                               (g_array_event(p_event_id).array_value_num('header_index'));
80726       IF l_acc_rev_flag IS NULL THEN
80727          l_acc_rev_flag := 'N';
80728       END IF;
80729    EXCEPTION
80730       WHEN OTHERS THEN
80731          l_acc_rev_flag := 'N';
80732    END;
80733    --
80734    IF (l_acc_rev_flag = 'Y') THEN
80735 
80736        -- 4645092  ------------------------------------------------------------------------------
80737        -- To allow MPA report to determine if it should generate report process
80738        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
80739        ------------------------------------------------------------------------------------------
80740 
80741        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
80742        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
80743    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
80744    -- call ADRs
80745    -- Bug 4922099
80746    --
80747    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
80748         (NVL(l_actual_upg_option, 'N') = 'O') OR
80749         (NVL(l_enc_upg_option, 'N') = 'O')
80750       )
80751    THEN
80752    NULL;
80753    --
80754    --
80755    
80756    --
80757    --
80758    END IF;
80759 
80760        --
80761        -- Update the line information that should be overwritten
80762        --
80763        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
80764                                          p_header_num   => 1);
80765        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
80766 
80767        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
80771        END IF;
80768 
80769        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
80770           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
80772 
80773       --
80774       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
80775       --
80776       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
80777           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
80778       ELSE
80779           ---------------------------------------------------------------------------------------------------
80780           -- 4262811a Switch Sign
80781           ---------------------------------------------------------------------------------------------------
80782           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
80783           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
80784                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80785           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
80786                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80787           -- 5132302
80788           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
80789                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
80790 
80791       END IF;
80792 
80793       -- 4955764
80794       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
80795       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
80796 
80797 
80798       XLA_AE_LINES_PKG.ValidateCurrentLine;
80799       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
80800 
80801       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
80802                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
80803                ,p_balance_type_code => l_balance_type_code);
80804 
80805    END IF;
80806 
80807    -----------------------------------------------------------------------------------------
80808    -- 4262811 Multiperiod Accounting
80809    -----------------------------------------------------------------------------------------
80810      -- No MPA option is assigned.
80811 
80812 
80813 END IF;
80814 END IF;
80815 --
80816 
80817 --
80818 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80819    trace
80820       (p_msg      => 'END of AcctLineType_145'
80821       ,p_level    => C_LEVEL_PROCEDURE
80822       ,p_module   => l_log_module);
80823 END IF;
80824 --
80825 EXCEPTION
80826   WHEN xla_exceptions_pkg.application_exception THEN
80827       RAISE;
80828   WHEN OTHERS THEN
80829        xla_exceptions_pkg.raise_message
80830            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_145');
80831 END AcctLineType_145;
80832 --
80833 
80834 ---------------------------------------
80835 --
80836 -- PRIVATE FUNCTION
80837 --         AcctLineType_146
80838 --
80839 ---------------------------------------
80840 PROCEDURE AcctLineType_146 (
80841   p_application_id        IN NUMBER
80842  ,p_event_id              IN NUMBER
80843  ,p_calculate_acctd_flag  IN VARCHAR2
80844  ,p_calculate_g_l_flag    IN VARCHAR2
80845  ,p_actual_flag           IN OUT VARCHAR2
80846  ,p_balance_type_code     OUT VARCHAR2
80847  ,p_gain_or_loss_ref      OUT VARCHAR2
80848  
80849 --Payment Currency Code
80850  , p_source_13            IN VARCHAR2
80851 --Accounting Reversal Indicator
80852  , p_source_53            IN VARCHAR2
80853 --Distribution Link Type
80854  , p_source_55            IN VARCHAR2
80855 --Override Accounted Amount Indicator
80856  , p_source_80            IN VARCHAR2
80857  , p_source_80_meaning    IN VARCHAR2
80858 --Third Party Type
80859  , p_source_83            IN VARCHAR2
80860 --Invoice Distribution Tax Line Identifier
80861  , p_source_86            IN NUMBER
80862 --Invoice Distribution Tax Distribution Identifier from Tax
80863  , p_source_87            IN NUMBER
80864 --Invoice Distribution Summary Tax Line Identifier
80865  , p_source_88            IN NUMBER
80866 --Business Flow Accounts Payable Application Identifier
80867  , p_source_91            IN NUMBER
80868 --Business Flow Invoice Distribution Type
80869  , p_source_92            IN VARCHAR2
80870 --Business Flow Invoice Entity Code
80871  , p_source_93            IN VARCHAR2
80872 --Business Flow Invoice Distribution Identifier
80873  , p_source_94            IN NUMBER
80874 --Business Flow Invoice Identifier
80875  , p_source_95            IN NUMBER
80876 --When to Account for Payment Option
80877  , p_source_97            IN VARCHAR2
80878 --Payment Distribution Type
80879  , p_source_98            IN VARCHAR2
80880  , p_source_98_meaning    IN VARCHAR2
80881 --Payment Distribution Amount
80882  , p_source_99            IN NUMBER
80883 --Payment Distribution Identifier
80884  , p_source_104            IN NUMBER
80885 --Payment Distribution Reversed Identifier
80886  , p_source_112            IN NUMBER
80887 --Payment Distribution (Invoice Rate) Ledger Amount
80888  , p_source_116            IN NUMBER
80889 --Payment Type
80890  , p_source_122            IN VARCHAR2
80891  , p_source_122_meaning    IN VARCHAR2
80895  , p_source_124            IN NUMBER
80892 --Payment Processing Type
80893  , p_source_123            IN VARCHAR2
80894 --Invoice Distribution Amount of the Payment Distribution
80896 --Invoice Type Paid
80897  , p_source_163            IN VARCHAR2
80898  , p_source_163_meaning    IN VARCHAR2
80899 --Withholding at Payment Indicator
80900  , p_source_164            IN VARCHAR2
80901  , p_source_164_meaning    IN VARCHAR2
80902 )
80903 IS
80904 
80905 l_component_type              VARCHAR2(80);
80906 l_component_code              VARCHAR2(30);
80907 l_component_type_code         VARCHAR2(1);
80908 l_component_appl_id           INTEGER;
80909 l_amb_context_code            VARCHAR2(30);
80910 l_entity_code                 VARCHAR2(30);
80911 l_event_class_code            VARCHAR2(30);
80912 l_ae_header_id                NUMBER;
80913 l_event_type_code             VARCHAR2(30);
80914 l_line_definition_code        VARCHAR2(30);
80915 l_line_definition_owner_code  VARCHAR2(1);
80916 --
80917 -- adr variables
80918 l_segment                     VARCHAR2(30);
80919 l_ccid                        NUMBER;
80920 l_adr_transaction_coa_id      NUMBER;
80921 l_adr_accounting_coa_id       NUMBER;
80922 l_adr_flexfield_segment_code  VARCHAR2(30);
80923 l_adr_flex_value_set_id       NUMBER;
80924 l_adr_value_type_code         VARCHAR2(30);
80925 l_adr_value_combination_id    NUMBER;
80926 l_adr_value_segment_code      VARCHAR2(30);
80927 
80928 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
80929 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
80930 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
80931 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
80932 
80933 -- 4262811 Variables ------------------------------------------------------------------------------------------
80934 l_entered_amt_idx             NUMBER;
80935 l_accted_amt_idx              NUMBER;
80936 l_acc_rev_flag                VARCHAR2(1);
80937 l_accrual_line_num            NUMBER;
80938 l_tmp_amt                     NUMBER;
80939 l_acc_rev_natural_side_code   VARCHAR2(1);
80940 
80941 l_num_entries                 NUMBER;
80942 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
80943 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
80944 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
80945 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
80946 l_recog_line_1                NUMBER;
80947 l_recog_line_2                NUMBER;
80948 
80949 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
80950 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
80951 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
80952 
80953 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
80954 
80955 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
80956 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
80957 
80958 ---------------------------------------------------------------------------------------------------------------
80959 
80960 
80961 --
80962 -- bulk performance
80963 --
80964 l_balance_type_code           VARCHAR2(1);
80965 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
80966 l_log_module                  VARCHAR2(240);
80967 
80968 --
80969 -- Upgrade strategy
80970 --
80971 l_actual_upg_option           VARCHAR2(1);
80972 l_enc_upg_option           VARCHAR2(1);
80973 
80974 --
80975 BEGIN
80976 --
80977 IF g_log_enabled THEN
80978       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_146';
80979 END IF;
80980 --
80981 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80982 
80983       trace
80984          (p_msg      => 'BEGIN of AcctLineType_146'
80985          ,p_level    => C_LEVEL_PROCEDURE
80986          ,p_module   => l_log_module);
80987 
80988 END IF;
80989 --
80990 l_component_type             := 'AMB_JLT';
80991 l_component_code             := 'AP_LIAB_AWT_PMT';
80992 l_component_type_code        := 'S';
80993 l_component_appl_id          :=  200;
80994 l_amb_context_code           := 'DEFAULT';
80995 l_entity_code                := 'AP_PAYMENTS';
80996 l_event_class_code           := 'PAYMENTS';
80997 l_event_type_code            := 'PAYMENTS_ALL';
80998 l_line_definition_owner_code := 'S';
80999 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
81000 --
81001 l_balance_type_code          := 'A';
81002 l_segment                     := NULL;
81003 l_ccid                        := NULL;
81004 l_adr_transaction_coa_id      := NULL;
81005 l_adr_accounting_coa_id       := NULL;
81006 l_adr_flexfield_segment_code  := NULL;
81007 l_adr_flex_value_set_id       := NULL;
81008 l_adr_value_type_code         := NULL;
81009 l_adr_value_combination_id    := NULL;
81010 l_adr_value_segment_code      := NULL;
81011 
81012 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
81013 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
81014 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
81015 l_budgetary_control_flag     := 'N';
81016 
81017 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
81018 l_bflow_applied_to_amt       := NULL; -- 5132302
81019 l_entered_amt_idx            := NULL;          -- 4262811
81020 l_accted_amt_idx             := NULL;          -- 4262811
81024 --
81021 l_acc_rev_flag               := NULL;          -- 4262811
81022 l_accrual_line_num           := NULL;          -- 4262811
81023 l_tmp_amt                    := NULL;          -- 4262811
81025  
81026 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
81027     l_balance_type_code <> 'B' THEN
81028 IF NVL(p_source_97,'
81029 ') <>  'CLEAR_CLEAR' AND 
81030 NVL(p_source_163,'
81031 ') <>  'INTEREST' AND 
81032 NVL(p_source_98,'
81033 ') =  'AWT' AND 
81034 NVL(p_source_164,'
81035 ') =  'Y' AND 
81036 NVL(p_source_122,'
81037 ') <>  'R' AND 
81038 NVL(p_source_123,'
81039 ') <>  'PAYMENTCARD'
81040  THEN 
81041 
81042    --
81043    XLA_AE_LINES_PKG.SetNewLine;
81044 
81045    p_balance_type_code          := l_balance_type_code;
81046    -- set the flag so later we will know whether the gain loss line needs to be created
81047    
81048    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
81049      p_actual_flag :='A';
81050    END IF;
81051 
81052    --
81053    -- bulk performance
81054    --
81055    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
81056                                       p_header_num   => 0); -- 4262811
81057    --
81058    -- set accounting line options
81059    --
81060    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
81061            p_natural_side_code          => 'D'
81062          , p_gain_or_loss_flag          => 'N'
81063          , p_gl_transfer_mode_code      => 'S'
81064          , p_acct_entry_type_code       => 'A'
81065          , p_switch_side_flag           => 'Y'
81066          , p_merge_duplicate_code       => 'A'
81067          );
81068    --
81069    l_acc_rev_natural_side_code := 'C';  -- 4262811
81070    -- 
81071    --
81072    -- set accounting line type info
81073    --
81074    xla_ae_lines_pkg.SetAcctLineType
81075       (p_component_type             => l_component_type
81076       ,p_event_type_code            => l_event_type_code
81077       ,p_line_definition_owner_code => l_line_definition_owner_code
81078       ,p_line_definition_code       => l_line_definition_code
81079       ,p_accounting_line_code       => l_component_code
81080       ,p_accounting_line_type_code  => l_component_type_code
81081       ,p_accounting_line_appl_id    => l_component_appl_id
81082       ,p_amb_context_code           => l_amb_context_code
81083       ,p_entity_code                => l_entity_code
81084       ,p_event_class_code           => l_event_class_code);
81085    --
81086    -- set accounting class
81087    --
81088    xla_ae_lines_pkg.SetAcctClass(
81089            p_accounting_class_code  => 'LIABILITY'
81090          , p_ae_header_id           => l_ae_header_id
81091          );
81092 
81093    --
81094    -- set rounding class
81095    --
81096    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
81097                       'LIABILITY';
81098 
81099    --
81100    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
81101    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
81102    --
81103    -- bulk performance
81104    --
81105    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
81106 
81107    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
81108       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
81109 
81110    -- 4955764
81111    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
81112       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
81113 
81114    -- 4458381 Public Sector Enh
81115    
81116    --
81117    -- set accounting attributes for the line type
81118    --
81119    l_entered_amt_idx := 10;
81120    l_accted_amt_idx  := 12;
81121    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
81122    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
81123    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
81124    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
81125    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
81126    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
81127    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
81128    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
81129    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
81130    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
81131    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
81132    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
81133    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
81134    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
81135    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
81136    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
81137    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
81138    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
81139    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
81140    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
81141    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
81142    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
81146    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
81143    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
81144    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
81145    l_rec_acct_attrs.array_num_value(12)  := p_source_116;
81147    l_rec_acct_attrs.array_char_value(13)  := p_source_80;
81148    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
81149    l_rec_acct_attrs.array_char_value(14)  := p_source_83;
81150    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
81151    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_112);
81152    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
81153    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
81154    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
81155    l_rec_acct_attrs.array_num_value(17)  := p_source_86;
81156    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
81157    l_rec_acct_attrs.array_num_value(18)  := p_source_87;
81158    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
81159    l_rec_acct_attrs.array_num_value(19)  := p_source_88;
81160 
81161    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
81162    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
81163 
81164    ---------------------------------------------------------------------------------------------------------------
81165    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
81166    ---------------------------------------------------------------------------------------------------------------
81167    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
81168 
81169    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
81170    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
81171 
81172    IF xla_accounting_cache_pkg.GetValueChar
81173          (p_source_code         => 'LEDGER_CATEGORY_CODE'
81174          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
81175    AND l_bflow_method_code = 'PRIOR_ENTRY'
81176 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
81177    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
81178          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
81179        )
81180    THEN
81181          xla_ae_lines_pkg.BflowUpgEntry
81182            (p_business_method_code    => l_bflow_method_code
81183            ,p_business_class_code     => l_bflow_class_code
81184            ,p_balance_type            => l_balance_type_code);
81185    ELSE
81186       NULL;
81187 XLA_AE_LINES_PKG.business_flow_validation(
81188                                 p_business_method_code     => l_bflow_method_code
81189                                ,p_business_class_code      => l_bflow_class_code
81190                                ,p_inherit_description_flag => l_inherit_desc_flag);
81191    END IF;
81192 
81193    --
81194    -- call analytical criteria
81195    --
81196    -- Inherited Analytical Criteria for business flow method of Prior Entry.
81197    --
81198    -- call description
81199    --
81200    -- No description or it is inherited.
81201    --
81202    -- call ADRs
81203    -- Bug 4922099
81204    --
81205    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
81206         (NVL(l_actual_upg_option, 'N') = 'O') OR
81207         (NVL(l_enc_upg_option, 'N') = 'O')
81208       )
81209    THEN
81210    NULL;
81211    --
81212    --
81213    
81214    --
81215    --
81216    END IF;
81217    --
81218    -- Bug 4922099
81219    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
81220           (NVL(l_enc_upg_option, 'N') = 'O')
81221         ) AND
81222         (l_bflow_method_code = 'PRIOR_ENTRY')
81223       )
81224    THEN
81225       IF
81226       --
81227       1 = 1
81228       --
81229       THEN
81230       xla_accounting_err_pkg.build_message
81231                                     (p_appli_s_name            => 'XLA'
81232                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
81233                                     ,p_token_1                 => 'LINE_NUMBER'
81234                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
81235                                     ,p_token_2                 => 'LINE_TYPE_NAME'
81236                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
81237                                                                              l_component_type
81238                                                                             ,l_component_code
81239                                                                             ,l_component_type_code
81240                                                                             ,l_component_appl_id
81241                                                                             ,l_amb_context_code
81242                                                                             ,l_entity_code
81243                                                                             ,l_event_class_code
81244                                                                            )
81245                                     ,p_token_3                 => 'OWNER'
81249                                                                          )
81246                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
81247                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
81248                                                                           ,p_lookup_code    => l_component_type_code
81250                                     ,p_token_4                 => 'PRODUCT_NAME'
81251                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
81252                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
81253                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
81254                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
81255                                     ,p_ae_header_id            =>  NULL
81256                                        );
81257 
81258         IF (C_LEVEL_ERROR>= g_log_level) THEN
81259                  trace
81260                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
81261                       ,p_level    => C_LEVEL_ERROR
81262                       ,p_module   => l_log_module);
81263         END IF;
81264       END IF;
81265    END IF;
81266    --
81267    --
81268    ------------------------------------------------------------------------------------------------
81269    -- 4219869 Business Flow
81270    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
81271    -- Prior Entry.  Currently, the following code is always generated.
81272    ------------------------------------------------------------------------------------------------
81273    -- No ValidateCurrentLine for business flow method of Prior Entry
81274 
81275    ------------------------------------------------------------------------------------
81276    -- 4219869 Business Flow
81277    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
81278    ------------------------------------------------------------------------------------
81279    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
81280 
81281    ----------------------------------------------------------------------------------
81282    -- 4219869 Business Flow
81283    -- Update journal entry status -- Need to generate this within IF <condition>
81284    ----------------------------------------------------------------------------------
81285    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
81286          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
81287          ,p_balance_type_code => l_balance_type_code
81288          );
81289 
81290    -------------------------------------------------------------------------------------------
81291    -- 4262811 - Generate the Accrual Reversal lines
81292    -------------------------------------------------------------------------------------------
81293    BEGIN
81294       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
81295                               (g_array_event(p_event_id).array_value_num('header_index'));
81296       IF l_acc_rev_flag IS NULL THEN
81297          l_acc_rev_flag := 'N';
81298       END IF;
81299    EXCEPTION
81300       WHEN OTHERS THEN
81301          l_acc_rev_flag := 'N';
81302    END;
81303    --
81304    IF (l_acc_rev_flag = 'Y') THEN
81305 
81306        -- 4645092  ------------------------------------------------------------------------------
81307        -- To allow MPA report to determine if it should generate report process
81308        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
81309        ------------------------------------------------------------------------------------------
81310 
81311        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
81312        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
81313    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
81314    -- call ADRs
81315    -- Bug 4922099
81316    --
81317    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
81318         (NVL(l_actual_upg_option, 'N') = 'O') OR
81319         (NVL(l_enc_upg_option, 'N') = 'O')
81320       )
81321    THEN
81322    NULL;
81323    --
81324    --
81325    
81326    --
81327    --
81328    END IF;
81329 
81330        --
81331        -- Update the line information that should be overwritten
81332        --
81333        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
81334                                          p_header_num   => 1);
81335        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
81336 
81337        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
81338 
81339        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
81340           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
81341        END IF;
81342 
81343       --
81344       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
81345       --
81346       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
81347           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
81348       ELSE
81352           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
81349           ---------------------------------------------------------------------------------------------------
81350           -- 4262811a Switch Sign
81351           ---------------------------------------------------------------------------------------------------
81353           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
81354                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81355           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
81356                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81357           -- 5132302
81358           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
81359                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81360 
81361       END IF;
81362 
81363       -- 4955764
81364       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
81365       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
81366 
81367 
81368       XLA_AE_LINES_PKG.ValidateCurrentLine;
81369       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
81370 
81371       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
81372                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
81373                ,p_balance_type_code => l_balance_type_code);
81374 
81375    END IF;
81376 
81377    -----------------------------------------------------------------------------------------
81378    -- 4262811 Multiperiod Accounting
81379    -----------------------------------------------------------------------------------------
81380      -- No MPA option is assigned.
81381 
81382 
81383 END IF;
81384 END IF;
81385 --
81386 
81387 --
81388 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81389    trace
81390       (p_msg      => 'END of AcctLineType_146'
81391       ,p_level    => C_LEVEL_PROCEDURE
81392       ,p_module   => l_log_module);
81393 END IF;
81394 --
81395 EXCEPTION
81396   WHEN xla_exceptions_pkg.application_exception THEN
81397       RAISE;
81398   WHEN OTHERS THEN
81399        xla_exceptions_pkg.raise_message
81400            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_146');
81401 END AcctLineType_146;
81402 --
81403 
81404 ---------------------------------------
81405 --
81406 -- PRIVATE FUNCTION
81407 --         AcctLineType_147
81408 --
81409 ---------------------------------------
81410 PROCEDURE AcctLineType_147 (
81411   p_application_id        IN NUMBER
81412  ,p_event_id              IN NUMBER
81413  ,p_calculate_acctd_flag  IN VARCHAR2
81414  ,p_calculate_g_l_flag    IN VARCHAR2
81415  ,p_actual_flag           IN OUT VARCHAR2
81416  ,p_balance_type_code     OUT VARCHAR2
81417  ,p_gain_or_loss_ref      OUT VARCHAR2
81418  
81419 --Payment Currency Code
81420  , p_source_13            IN VARCHAR2
81421 --Accounting Reversal Indicator
81422  , p_source_53            IN VARCHAR2
81423 --Distribution Link Type
81424  , p_source_55            IN VARCHAR2
81425 --Override Accounted Amount Indicator
81426  , p_source_80            IN VARCHAR2
81427  , p_source_80_meaning    IN VARCHAR2
81428 --Third Party Type
81429  , p_source_83            IN VARCHAR2
81430 --Invoice Distribution Tax Line Identifier
81431  , p_source_86            IN NUMBER
81432 --Invoice Distribution Summary Tax Line Identifier
81433  , p_source_88            IN NUMBER
81434 --Business Flow Accounts Payable Application Identifier
81435  , p_source_91            IN NUMBER
81436 --Business Flow Invoice Distribution Type
81437  , p_source_92            IN VARCHAR2
81438 --Business Flow Invoice Entity Code
81439  , p_source_93            IN VARCHAR2
81440 --Business Flow Invoice Distribution Identifier
81441  , p_source_94            IN NUMBER
81442 --Business Flow Invoice Identifier
81443  , p_source_95            IN NUMBER
81444 --When to Account for Payment Option
81445  , p_source_97            IN VARCHAR2
81446 --Payment Distribution Type
81447  , p_source_98            IN VARCHAR2
81448  , p_source_98_meaning    IN VARCHAR2
81449 --Payment Distribution Amount
81450  , p_source_99            IN NUMBER
81451 --Payment Distribution Identifier
81452  , p_source_104            IN NUMBER
81453 --Payment Distribution Reversed Identifier
81454  , p_source_112            IN NUMBER
81455 --Payment Distribution (Invoice Rate) Ledger Amount
81456  , p_source_116            IN NUMBER
81457 --Invoice Type Paid
81458  , p_source_163            IN VARCHAR2
81459  , p_source_163_meaning    IN VARCHAR2
81460 )
81461 IS
81462 
81463 l_component_type              VARCHAR2(80);
81464 l_component_code              VARCHAR2(30);
81465 l_component_type_code         VARCHAR2(1);
81466 l_component_appl_id           INTEGER;
81467 l_amb_context_code            VARCHAR2(30);
81468 l_entity_code                 VARCHAR2(30);
81469 l_event_class_code            VARCHAR2(30);
81470 l_ae_header_id                NUMBER;
81471 l_event_type_code             VARCHAR2(30);
81472 l_line_definition_code        VARCHAR2(30);
81473 l_line_definition_owner_code  VARCHAR2(1);
81474 --
81475 -- adr variables
81476 l_segment                     VARCHAR2(30);
81477 l_ccid                        NUMBER;
81481 l_adr_flex_value_set_id       NUMBER;
81478 l_adr_transaction_coa_id      NUMBER;
81479 l_adr_accounting_coa_id       NUMBER;
81480 l_adr_flexfield_segment_code  VARCHAR2(30);
81482 l_adr_value_type_code         VARCHAR2(30);
81483 l_adr_value_combination_id    NUMBER;
81484 l_adr_value_segment_code      VARCHAR2(30);
81485 
81486 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
81487 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
81488 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
81489 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
81490 
81491 -- 4262811 Variables ------------------------------------------------------------------------------------------
81492 l_entered_amt_idx             NUMBER;
81493 l_accted_amt_idx              NUMBER;
81494 l_acc_rev_flag                VARCHAR2(1);
81495 l_accrual_line_num            NUMBER;
81496 l_tmp_amt                     NUMBER;
81497 l_acc_rev_natural_side_code   VARCHAR2(1);
81498 
81499 l_num_entries                 NUMBER;
81500 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
81501 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
81502 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
81503 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
81504 l_recog_line_1                NUMBER;
81505 l_recog_line_2                NUMBER;
81506 
81507 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
81508 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
81509 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
81510 
81511 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
81512 
81513 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
81514 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
81515 
81516 ---------------------------------------------------------------------------------------------------------------
81517 
81518 
81519 --
81520 -- bulk performance
81521 --
81522 l_balance_type_code           VARCHAR2(1);
81523 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
81524 l_log_module                  VARCHAR2(240);
81525 
81526 --
81527 -- Upgrade strategy
81528 --
81529 l_actual_upg_option           VARCHAR2(1);
81530 l_enc_upg_option           VARCHAR2(1);
81531 
81532 --
81533 BEGIN
81534 --
81535 IF g_log_enabled THEN
81536       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_147';
81537 END IF;
81538 --
81539 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81540 
81541       trace
81542          (p_msg      => 'BEGIN of AcctLineType_147'
81543          ,p_level    => C_LEVEL_PROCEDURE
81544          ,p_module   => l_log_module);
81545 
81546 END IF;
81547 --
81548 l_component_type             := 'AMB_JLT';
81549 l_component_code             := 'AP_LIAB_CLEAR';
81550 l_component_type_code        := 'S';
81551 l_component_appl_id          :=  200;
81552 l_amb_context_code           := 'DEFAULT';
81553 l_entity_code                := 'AP_PAYMENTS';
81554 l_event_class_code           := 'RECONCILED PAYMENTS';
81555 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
81556 l_line_definition_owner_code := 'S';
81557 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
81558 --
81559 l_balance_type_code          := 'A';
81560 l_segment                     := NULL;
81561 l_ccid                        := NULL;
81562 l_adr_transaction_coa_id      := NULL;
81563 l_adr_accounting_coa_id       := NULL;
81564 l_adr_flexfield_segment_code  := NULL;
81565 l_adr_flex_value_set_id       := NULL;
81566 l_adr_value_type_code         := NULL;
81567 l_adr_value_combination_id    := NULL;
81568 l_adr_value_segment_code      := NULL;
81569 
81570 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
81571 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
81572 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
81573 l_budgetary_control_flag     := 'N';
81574 
81575 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
81576 l_bflow_applied_to_amt       := NULL; -- 5132302
81577 l_entered_amt_idx            := NULL;          -- 4262811
81578 l_accted_amt_idx             := NULL;          -- 4262811
81579 l_acc_rev_flag               := NULL;          -- 4262811
81580 l_accrual_line_num           := NULL;          -- 4262811
81581 l_tmp_amt                    := NULL;          -- 4262811
81582 --
81583  
81584 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
81585     l_balance_type_code <> 'B' THEN
81586 IF NVL(p_source_97,'
81587 ') =  'CLEAR_CLEAR' AND 
81588 NVL(p_source_163,'
81589 ') <>  'INTEREST' AND 
81590 (NVL(p_source_98,'
81591 ') =  'ROUNDING' OR 
81592 NVL(p_source_98,'
81593 ') =  'CASH' OR 
81594 NVL(p_source_98,'
81595 ') =  'DISCOUNT')
81596  THEN 
81597 
81598    --
81599    XLA_AE_LINES_PKG.SetNewLine;
81600 
81601    p_balance_type_code          := l_balance_type_code;
81602    -- set the flag so later we will know whether the gain loss line needs to be created
81603    
81604    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
81605      p_actual_flag :='A';
81606    END IF;
81607 
81608    --
81609    -- bulk performance
81610    --
81614    -- set accounting line options
81611    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
81612                                       p_header_num   => 0); -- 4262811
81613    --
81615    --
81616    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
81617            p_natural_side_code          => 'D'
81618          , p_gain_or_loss_flag          => 'N'
81619          , p_gl_transfer_mode_code      => 'S'
81620          , p_acct_entry_type_code       => 'A'
81621          , p_switch_side_flag           => 'Y'
81622          , p_merge_duplicate_code       => 'A'
81623          );
81624    --
81625    l_acc_rev_natural_side_code := 'C';  -- 4262811
81626    -- 
81627    --
81628    -- set accounting line type info
81629    --
81630    xla_ae_lines_pkg.SetAcctLineType
81631       (p_component_type             => l_component_type
81632       ,p_event_type_code            => l_event_type_code
81633       ,p_line_definition_owner_code => l_line_definition_owner_code
81634       ,p_line_definition_code       => l_line_definition_code
81635       ,p_accounting_line_code       => l_component_code
81636       ,p_accounting_line_type_code  => l_component_type_code
81637       ,p_accounting_line_appl_id    => l_component_appl_id
81638       ,p_amb_context_code           => l_amb_context_code
81639       ,p_entity_code                => l_entity_code
81640       ,p_event_class_code           => l_event_class_code);
81641    --
81642    -- set accounting class
81643    --
81644    xla_ae_lines_pkg.SetAcctClass(
81645            p_accounting_class_code  => 'LIABILITY'
81646          , p_ae_header_id           => l_ae_header_id
81647          );
81648 
81649    --
81650    -- set rounding class
81651    --
81652    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
81653                       'LIABILITY';
81654 
81655    --
81656    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
81657    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
81658    --
81659    -- bulk performance
81660    --
81661    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
81662 
81663    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
81664       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
81665 
81666    -- 4955764
81667    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
81668       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
81669 
81670    -- 4458381 Public Sector Enh
81671    
81672    --
81673    -- set accounting attributes for the line type
81674    --
81675    l_entered_amt_idx := 10;
81676    l_accted_amt_idx  := 12;
81677    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
81678    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
81679    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
81680    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
81681    l_rec_acct_attrs.array_num_value(2)  := p_source_99;
81682    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
81683    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
81684    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
81685    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
81686    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
81687    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
81688    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
81689    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
81690    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
81691    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
81692    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
81693    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
81694    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
81695    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
81696    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
81697    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
81698    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
81699    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
81700    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
81701    l_rec_acct_attrs.array_num_value(12)  := p_source_116;
81702    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
81703    l_rec_acct_attrs.array_char_value(13)  := p_source_80;
81704    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
81705    l_rec_acct_attrs.array_char_value(14)  := p_source_83;
81706    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
81707    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_112);
81708    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
81709    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
81710    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
81711    l_rec_acct_attrs.array_num_value(17)  := p_source_86;
81712    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
81713    l_rec_acct_attrs.array_num_value(18)  := p_source_86;
81714    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
81715    l_rec_acct_attrs.array_num_value(19)  := p_source_88;
81719 
81716 
81717    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
81718    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
81720    ---------------------------------------------------------------------------------------------------------------
81721    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
81722    ---------------------------------------------------------------------------------------------------------------
81723    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
81724 
81725    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
81726    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
81727 
81728    IF xla_accounting_cache_pkg.GetValueChar
81729          (p_source_code         => 'LEDGER_CATEGORY_CODE'
81730          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
81731    AND l_bflow_method_code = 'PRIOR_ENTRY'
81732 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
81733    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
81734          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
81735        )
81736    THEN
81737          xla_ae_lines_pkg.BflowUpgEntry
81738            (p_business_method_code    => l_bflow_method_code
81739            ,p_business_class_code     => l_bflow_class_code
81740            ,p_balance_type            => l_balance_type_code);
81741    ELSE
81742       NULL;
81743 XLA_AE_LINES_PKG.business_flow_validation(
81744                                 p_business_method_code     => l_bflow_method_code
81745                                ,p_business_class_code      => l_bflow_class_code
81746                                ,p_inherit_description_flag => l_inherit_desc_flag);
81747    END IF;
81748 
81749    --
81750    -- call analytical criteria
81751    --
81752    -- Inherited Analytical Criteria for business flow method of Prior Entry.
81753    --
81754    -- call description
81755    --
81756    -- No description or it is inherited.
81757    --
81758    -- call ADRs
81759    -- Bug 4922099
81760    --
81761    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
81762         (NVL(l_actual_upg_option, 'N') = 'O') OR
81763         (NVL(l_enc_upg_option, 'N') = 'O')
81764       )
81765    THEN
81766    NULL;
81767    --
81768    --
81769    
81770    --
81771    --
81772    END IF;
81773    --
81774    -- Bug 4922099
81775    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
81776           (NVL(l_enc_upg_option, 'N') = 'O')
81777         ) AND
81778         (l_bflow_method_code = 'PRIOR_ENTRY')
81779       )
81780    THEN
81781       IF
81782       --
81783       1 = 1
81784       --
81785       THEN
81786       xla_accounting_err_pkg.build_message
81787                                     (p_appli_s_name            => 'XLA'
81788                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
81789                                     ,p_token_1                 => 'LINE_NUMBER'
81790                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
81791                                     ,p_token_2                 => 'LINE_TYPE_NAME'
81792                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
81793                                                                              l_component_type
81794                                                                             ,l_component_code
81795                                                                             ,l_component_type_code
81796                                                                             ,l_component_appl_id
81797                                                                             ,l_amb_context_code
81798                                                                             ,l_entity_code
81799                                                                             ,l_event_class_code
81800                                                                            )
81801                                     ,p_token_3                 => 'OWNER'
81802                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
81803                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
81804                                                                           ,p_lookup_code    => l_component_type_code
81805                                                                          )
81806                                     ,p_token_4                 => 'PRODUCT_NAME'
81807                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
81808                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
81809                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
81810                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
81811                                     ,p_ae_header_id            =>  NULL
81812                                        );
81813 
81814         IF (C_LEVEL_ERROR>= g_log_level) THEN
81815                  trace
81819         END IF;
81816                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
81817                       ,p_level    => C_LEVEL_ERROR
81818                       ,p_module   => l_log_module);
81820       END IF;
81821    END IF;
81822    --
81823    --
81824    ------------------------------------------------------------------------------------------------
81825    -- 4219869 Business Flow
81826    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
81827    -- Prior Entry.  Currently, the following code is always generated.
81828    ------------------------------------------------------------------------------------------------
81829    -- No ValidateCurrentLine for business flow method of Prior Entry
81830 
81831    ------------------------------------------------------------------------------------
81832    -- 4219869 Business Flow
81833    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
81834    ------------------------------------------------------------------------------------
81835    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
81836 
81837    ----------------------------------------------------------------------------------
81838    -- 4219869 Business Flow
81839    -- Update journal entry status -- Need to generate this within IF <condition>
81840    ----------------------------------------------------------------------------------
81841    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
81842          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
81843          ,p_balance_type_code => l_balance_type_code
81844          );
81845 
81846    -------------------------------------------------------------------------------------------
81847    -- 4262811 - Generate the Accrual Reversal lines
81848    -------------------------------------------------------------------------------------------
81849    BEGIN
81850       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
81851                               (g_array_event(p_event_id).array_value_num('header_index'));
81852       IF l_acc_rev_flag IS NULL THEN
81853          l_acc_rev_flag := 'N';
81854       END IF;
81855    EXCEPTION
81856       WHEN OTHERS THEN
81857          l_acc_rev_flag := 'N';
81858    END;
81859    --
81860    IF (l_acc_rev_flag = 'Y') THEN
81861 
81862        -- 4645092  ------------------------------------------------------------------------------
81863        -- To allow MPA report to determine if it should generate report process
81864        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
81865        ------------------------------------------------------------------------------------------
81866 
81867        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
81868        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
81869    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
81870    -- call ADRs
81871    -- Bug 4922099
81872    --
81873    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
81874         (NVL(l_actual_upg_option, 'N') = 'O') OR
81875         (NVL(l_enc_upg_option, 'N') = 'O')
81876       )
81877    THEN
81878    NULL;
81879    --
81880    --
81881    
81882    --
81883    --
81884    END IF;
81885 
81886        --
81887        -- Update the line information that should be overwritten
81888        --
81889        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
81890                                          p_header_num   => 1);
81891        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
81892 
81893        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
81894 
81895        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
81896           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
81897        END IF;
81898 
81899       --
81900       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
81901       --
81902       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
81903           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
81904       ELSE
81905           ---------------------------------------------------------------------------------------------------
81906           -- 4262811a Switch Sign
81907           ---------------------------------------------------------------------------------------------------
81908           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
81909           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
81910                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81911           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
81912                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81913           -- 5132302
81914           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
81915                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
81916 
81917       END IF;
81918 
81919       -- 4955764
81920       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
81924       XLA_AE_LINES_PKG.ValidateCurrentLine;
81921       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
81922 
81923 
81925       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
81926 
81927       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
81928                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
81929                ,p_balance_type_code => l_balance_type_code);
81930 
81931    END IF;
81932 
81933    -----------------------------------------------------------------------------------------
81934    -- 4262811 Multiperiod Accounting
81935    -----------------------------------------------------------------------------------------
81936      -- No MPA option is assigned.
81937 
81938 
81939 END IF;
81940 END IF;
81941 --
81942 
81943 --
81944 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81945    trace
81946       (p_msg      => 'END of AcctLineType_147'
81947       ,p_level    => C_LEVEL_PROCEDURE
81948       ,p_module   => l_log_module);
81949 END IF;
81950 --
81951 EXCEPTION
81952   WHEN xla_exceptions_pkg.application_exception THEN
81953       RAISE;
81954   WHEN OTHERS THEN
81955        xla_exceptions_pkg.raise_message
81956            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_147');
81957 END AcctLineType_147;
81958 --
81959 
81960 ---------------------------------------
81961 --
81962 -- PRIVATE FUNCTION
81963 --         AcctLineType_148
81964 --
81965 ---------------------------------------
81966 PROCEDURE AcctLineType_148 (
81967   p_application_id        IN NUMBER
81968  ,p_event_id              IN NUMBER
81969  ,p_calculate_acctd_flag  IN VARCHAR2
81970  ,p_calculate_g_l_flag    IN VARCHAR2
81971  ,p_actual_flag           IN OUT VARCHAR2
81972  ,p_balance_type_code     OUT VARCHAR2
81973  ,p_gain_or_loss_ref      OUT VARCHAR2
81974  
81975 --Invoice Distribution Description
81976  , p_source_1            IN VARCHAR2
81977 --Automatic Offsets Value
81978  , p_source_15            IN VARCHAR2
81979  , p_source_15_meaning    IN VARCHAR2
81980 --Invoice Distribution Ledger Amount
81981  , p_source_21            IN NUMBER
81982 --Invoice Liability Account
81983  , p_source_34            IN NUMBER
81984 --Accounting Reversal Indicator
81985  , p_source_53            IN VARCHAR2
81986 --Distribution Link Type
81987  , p_source_55            IN VARCHAR2
81988 --Allocation to Main Distribution Identifier
81989  , p_source_57            IN NUMBER
81990 --Invoice Identifier
81991  , p_source_58            IN NUMBER
81992 --Invoice Distribution Identifier
81993  , p_source_64            IN NUMBER
81994 --Payables Encumbrance Upgrade Credit Account
81995  , p_source_65            IN NUMBER
81996 --Payables Encumbrance Upgrade Credit Amount
81997  , p_source_66            IN NUMBER
81998 --Invoice Currency Code
81999  , p_source_67            IN VARCHAR2
82000 --Payables Encumbrance Upgrade Credit Base Amount
82001  , p_source_68            IN NUMBER
82002 --Payables Encumbrance Upgrade Debit Account
82003  , p_source_69            IN NUMBER
82004 --Payables Encumbrance Upgrade Debit Amount
82005  , p_source_70            IN NUMBER
82006 --Payables Encumbrance Upgrade Debit Base Amount
82007  , p_source_71            IN NUMBER
82008 --Payables Encumbrance Upgrade Option
82009  , p_source_72            IN VARCHAR2
82010 --Invoice Distribution Amount
82011  , p_source_73            IN NUMBER
82012 --Deferred Accounting End Date
82013  , p_source_77            IN DATE
82014 --Deferred Accounting Option
82015  , p_source_78            IN VARCHAR2
82016 --Deferred Accounting Start Date
82017  , p_source_79            IN DATE
82018 --Override Accounted Amount Indicator
82019  , p_source_80            IN VARCHAR2
82020  , p_source_80_meaning    IN VARCHAR2
82021 --Invoice Supplier Identifier
82022  , p_source_81            IN NUMBER
82023 --Invoice Supplier Site Identifier
82024  , p_source_82            IN NUMBER
82025 --Third Party Type
82026  , p_source_83            IN VARCHAR2
82027 --Parent Reversal Identifier
82028  , p_source_84            IN NUMBER
82029 --Invoice Distribution Statistical Amount
82030  , p_source_85            IN NUMBER
82031 --Invoice Distribution Tax Line Identifier
82032  , p_source_86            IN NUMBER
82033 --Invoice Distribution Tax Distribution Identifier from Tax
82034  , p_source_87            IN NUMBER
82035 --Invoice Distribution Summary Tax Line Identifier
82036  , p_source_88            IN NUMBER
82037 --Payables Upgrade Credit Encumbrance Type Identifier
82038  , p_source_89            IN NUMBER
82039 --Payables Upgrade Debit Encumbrance Type Identifier
82040  , p_source_90            IN NUMBER
82041 --Business Flow Accounts Payable Application Identifier
82042  , p_source_91            IN NUMBER
82043 --Business Flow Invoice Distribution Type
82044  , p_source_92            IN VARCHAR2
82045 --Business Flow Invoice Entity Code
82046  , p_source_93            IN VARCHAR2
82047 --Business Flow Invoice Distribution Identifier
82048  , p_source_94            IN NUMBER
82049 --Business Flow Invoice Identifier
82050  , p_source_95            IN NUMBER
82051 --Self-Assessed Tax Flag
82052  , p_source_142            IN VARCHAR2
82053  , p_source_142_meaning    IN VARCHAR2
82054 --Invoice Exchange Date
82055  , p_source_143            IN DATE
82056 --Invoice Exchange Rate
82057  , p_source_144            IN NUMBER
82058 --Invoice Exchange Rate Type
82062 
82059  , p_source_145            IN VARCHAR2
82060 )
82061 IS
82063 l_component_type              VARCHAR2(80);
82064 l_component_code              VARCHAR2(30);
82065 l_component_type_code         VARCHAR2(1);
82066 l_component_appl_id           INTEGER;
82067 l_amb_context_code            VARCHAR2(30);
82068 l_entity_code                 VARCHAR2(30);
82069 l_event_class_code            VARCHAR2(30);
82070 l_ae_header_id                NUMBER;
82071 l_event_type_code             VARCHAR2(30);
82072 l_line_definition_code        VARCHAR2(30);
82073 l_line_definition_owner_code  VARCHAR2(1);
82074 --
82075 -- adr variables
82076 l_segment                     VARCHAR2(30);
82077 l_ccid                        NUMBER;
82078 l_adr_transaction_coa_id      NUMBER;
82079 l_adr_accounting_coa_id       NUMBER;
82080 l_adr_flexfield_segment_code  VARCHAR2(30);
82081 l_adr_flex_value_set_id       NUMBER;
82082 l_adr_value_type_code         VARCHAR2(30);
82083 l_adr_value_combination_id    NUMBER;
82084 l_adr_value_segment_code      VARCHAR2(30);
82085 
82086 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
82087 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
82088 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
82089 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
82090 
82091 -- 4262811 Variables ------------------------------------------------------------------------------------------
82092 l_entered_amt_idx             NUMBER;
82093 l_accted_amt_idx              NUMBER;
82094 l_acc_rev_flag                VARCHAR2(1);
82095 l_accrual_line_num            NUMBER;
82096 l_tmp_amt                     NUMBER;
82097 l_acc_rev_natural_side_code   VARCHAR2(1);
82098 
82099 l_num_entries                 NUMBER;
82100 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
82101 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
82102 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
82103 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
82104 l_recog_line_1                NUMBER;
82105 l_recog_line_2                NUMBER;
82106 
82107 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
82108 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
82109 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
82110 
82111 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
82112 
82113 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
82114 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
82115 
82116 ---------------------------------------------------------------------------------------------------------------
82117 
82118 
82119 --
82120 -- bulk performance
82121 --
82122 l_balance_type_code           VARCHAR2(1);
82123 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
82124 l_log_module                  VARCHAR2(240);
82125 
82126 --
82127 -- Upgrade strategy
82128 --
82129 l_actual_upg_option           VARCHAR2(1);
82130 l_enc_upg_option           VARCHAR2(1);
82131 
82132 --
82133 BEGIN
82134 --
82135 IF g_log_enabled THEN
82136       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_148';
82137 END IF;
82138 --
82139 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82140 
82141       trace
82142          (p_msg      => 'BEGIN of AcctLineType_148'
82143          ,p_level    => C_LEVEL_PROCEDURE
82144          ,p_module   => l_log_module);
82145 
82146 END IF;
82147 --
82148 l_component_type             := 'AMB_JLT';
82149 l_component_code             := 'AP_LIAB_CM';
82150 l_component_type_code        := 'S';
82151 l_component_appl_id          :=  200;
82152 l_amb_context_code           := 'DEFAULT';
82153 l_entity_code                := 'AP_INVOICES';
82154 l_event_class_code           := 'CREDIT MEMOS';
82155 l_event_type_code            := 'CREDIT MEMOS_ALL';
82156 l_line_definition_owner_code := 'S';
82157 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
82158 --
82159 l_balance_type_code          := 'A';
82160 l_segment                     := NULL;
82161 l_ccid                        := NULL;
82162 l_adr_transaction_coa_id      := NULL;
82163 l_adr_accounting_coa_id       := NULL;
82164 l_adr_flexfield_segment_code  := NULL;
82165 l_adr_flex_value_set_id       := NULL;
82166 l_adr_value_type_code         := NULL;
82167 l_adr_value_combination_id    := NULL;
82168 l_adr_value_segment_code      := NULL;
82169 
82170 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
82171 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
82172 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
82173 l_budgetary_control_flag     := 'N';
82174 
82175 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
82176 l_bflow_applied_to_amt       := NULL; -- 5132302
82177 l_entered_amt_idx            := NULL;          -- 4262811
82178 l_accted_amt_idx             := NULL;          -- 4262811
82179 l_acc_rev_flag               := NULL;          -- 4262811
82180 l_accrual_line_num           := NULL;          -- 4262811
82181 l_tmp_amt                    := NULL;          -- 4262811
82182 --
82183  
82184 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
82185     l_balance_type_code <> 'B' THEN
82186 IF (NVL(p_source_15,'
82190 NVL(p_source_142,'
82187 ') <>  'BALANCING_SEGMENT' AND 
82188 NVL(p_source_15,'
82189 ') <>  'ACCOUNT_SEGMENT_VALUE') AND 
82191 ') <>  'Y'
82192  THEN 
82193 
82194    --
82195    XLA_AE_LINES_PKG.SetNewLine;
82196 
82197    p_balance_type_code          := l_balance_type_code;
82198    -- set the flag so later we will know whether the gain loss line needs to be created
82199    
82200    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
82201      p_actual_flag :='A';
82202    END IF;
82203 
82204    --
82205    -- bulk performance
82206    --
82207    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
82208                                       p_header_num   => 0); -- 4262811
82209    --
82210    -- set accounting line options
82211    --
82212    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
82213            p_natural_side_code          => 'C'
82214          , p_gain_or_loss_flag          => 'N'
82215          , p_gl_transfer_mode_code      => 'S'
82216          , p_acct_entry_type_code       => 'A'
82217          , p_switch_side_flag           => 'Y'
82218          , p_merge_duplicate_code       => 'A'
82219          );
82220    --
82221    l_acc_rev_natural_side_code := 'D';  -- 4262811
82222    -- 
82223    --
82224    -- set accounting line type info
82225    --
82226    xla_ae_lines_pkg.SetAcctLineType
82227       (p_component_type             => l_component_type
82228       ,p_event_type_code            => l_event_type_code
82229       ,p_line_definition_owner_code => l_line_definition_owner_code
82230       ,p_line_definition_code       => l_line_definition_code
82231       ,p_accounting_line_code       => l_component_code
82232       ,p_accounting_line_type_code  => l_component_type_code
82233       ,p_accounting_line_appl_id    => l_component_appl_id
82234       ,p_amb_context_code           => l_amb_context_code
82235       ,p_entity_code                => l_entity_code
82236       ,p_event_class_code           => l_event_class_code);
82237    --
82238    -- set accounting class
82239    --
82240    xla_ae_lines_pkg.SetAcctClass(
82241            p_accounting_class_code  => 'LIABILITY'
82242          , p_ae_header_id           => l_ae_header_id
82243          );
82244 
82245    --
82246    -- set rounding class
82247    --
82248    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
82249                       'LIABILITY';
82250 
82251    --
82252    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
82253    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
82254    --
82255    -- bulk performance
82256    --
82257    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
82258 
82259    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
82260       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
82261 
82262    -- 4955764
82263    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
82264       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
82265 
82266    -- 4458381 Public Sector Enh
82267    
82268    --
82269    -- set accounting attributes for the line type
82270    --
82271    l_entered_amt_idx := 23;
82272    l_accted_amt_idx  := 28;
82273    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
82274    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
82275    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
82276    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
82277    l_rec_acct_attrs.array_num_value(2)  := 
82278 xla_ae_sources_pkg.GetSystemSourceNum(
82279    p_source_code           => 'XLA_EVENT_APPL_ID'
82280  , p_source_type_code      => 'Y'
82281  , p_source_application_id =>  602
82282 );
82283    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
82284    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
82285    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
82286    l_rec_acct_attrs.array_char_value(4)  := 
82287 xla_ae_sources_pkg.GetSystemSourceChar(
82288    p_source_code           => 'XLA_ENTITY_CODE'
82289  , p_source_type_code      => 'Y'
82290  , p_source_application_id =>  602
82291 );
82292    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
82293    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
82294    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
82295    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
82296    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
82297    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
82298    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
82299    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
82300    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
82301    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
82302    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
82303    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
82304    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
82305    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
82309    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
82306    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
82307    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
82308    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
82310    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
82311    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
82312    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
82313    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
82314    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
82315    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
82316    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
82317    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
82318    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
82319    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
82320    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
82321    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
82322    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
82323    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
82324    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
82325    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
82326    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
82327    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
82328    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
82329    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
82330    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
82331    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
82332    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
82333    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
82334    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
82335    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
82336    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
82337    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
82338    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
82339    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
82340    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
82341    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
82342    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
82343    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
82344    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
82345    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
82346    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
82347    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
82348    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
82349    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
82350    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
82351    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
82352    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
82353    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
82354    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
82355    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
82356    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
82357    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
82358    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
82359    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
82360    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
82361    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
82362    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
82363    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
82364    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
82365    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
82366    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
82367    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
82368    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
82369    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
82370 
82371    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
82372    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
82373 
82374    ---------------------------------------------------------------------------------------------------------------
82375    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
82376    ---------------------------------------------------------------------------------------------------------------
82377    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
82378 
82379    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
82380    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
82381 
82382    IF xla_accounting_cache_pkg.GetValueChar
82383          (p_source_code         => 'LEDGER_CATEGORY_CODE'
82384          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
82385    AND l_bflow_method_code = 'PRIOR_ENTRY'
82386 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
82387    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
82391          xla_ae_lines_pkg.BflowUpgEntry
82388          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
82389        )
82390    THEN
82392            (p_business_method_code    => l_bflow_method_code
82393            ,p_business_class_code     => l_bflow_class_code
82394            ,p_balance_type            => l_balance_type_code);
82395    ELSE
82396       NULL;
82397 -- No business flow processing for business flow method of NONE.
82398    END IF;
82399 
82400    --
82401    -- call analytical criteria
82402    --
82403    
82404    --
82405    -- call description
82406    --
82407    
82408 xla_ae_lines_pkg.SetLineDescription(
82409    p_ae_header_id => l_ae_header_id
82410   ,p_description  => Description_1 (
82411      p_application_id         => p_application_id
82412    , p_ae_header_id           => l_ae_header_id 
82413 , p_source_1 => p_source_1
82414    )
82415 );
82416 
82417 
82418    --
82419    -- call ADRs
82420    -- Bug 4922099
82421    --
82422    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
82423         (NVL(l_actual_upg_option, 'N') = 'O') OR
82424         (NVL(l_enc_upg_option, 'N') = 'O')
82425       )
82426    THEN
82427    NULL;
82428    --
82429    --
82430    
82431   l_ccid := AcctDerRule_34(
82432            p_application_id           => p_application_id
82433          , p_ae_header_id             => l_ae_header_id 
82434 , p_source_34 => p_source_34
82435          , x_transaction_coa_id       => l_adr_transaction_coa_id
82436          , x_accounting_coa_id        => l_adr_accounting_coa_id
82437          , x_value_type_code          => l_adr_value_type_code
82438          , p_side                     => 'NA'
82439    );
82440 
82441    xla_ae_lines_pkg.set_ccid(
82442     p_code_combination_id          => l_ccid
82443   , p_value_type_code              => l_adr_value_type_code
82444   , p_transaction_coa_id           => l_adr_transaction_coa_id
82445   , p_accounting_coa_id            => l_adr_accounting_coa_id
82446   , p_adr_code                     => 'AP_LIAB'
82447   , p_adr_type_code                => 'S'
82448   , p_component_type               => l_component_type
82449   , p_component_code               => l_component_code
82450   , p_component_type_code          => l_component_type_code
82451   , p_component_appl_id            => l_component_appl_id
82452   , p_amb_context_code             => l_amb_context_code
82453   , p_side                         => 'NA'
82454   );
82455 
82456 
82457    --
82458    --
82459    END IF;
82460    --
82461    -- Bug 4922099
82462    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
82463           (NVL(l_enc_upg_option, 'N') = 'O')
82464         ) AND
82465         (l_bflow_method_code = 'PRIOR_ENTRY')
82466       )
82467    THEN
82468       IF
82469       --
82470       1 = 2
82471       --
82472       THEN
82473       xla_accounting_err_pkg.build_message
82474                                     (p_appli_s_name            => 'XLA'
82475                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
82476                                     ,p_token_1                 => 'LINE_NUMBER'
82477                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
82478                                     ,p_token_2                 => 'LINE_TYPE_NAME'
82479                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
82480                                                                              l_component_type
82481                                                                             ,l_component_code
82482                                                                             ,l_component_type_code
82483                                                                             ,l_component_appl_id
82484                                                                             ,l_amb_context_code
82485                                                                             ,l_entity_code
82486                                                                             ,l_event_class_code
82487                                                                            )
82488                                     ,p_token_3                 => 'OWNER'
82489                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
82490                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
82491                                                                           ,p_lookup_code    => l_component_type_code
82492                                                                          )
82493                                     ,p_token_4                 => 'PRODUCT_NAME'
82494                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
82495                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
82496                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
82497                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
82498                                     ,p_ae_header_id            =>  NULL
82499                                        );
82500 
82501         IF (C_LEVEL_ERROR>= g_log_level) THEN
82502                  trace
82506         END IF;
82503                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
82504                       ,p_level    => C_LEVEL_ERROR
82505                       ,p_module   => l_log_module);
82507       END IF;
82508    END IF;
82509    --
82510    --
82511    ------------------------------------------------------------------------------------------------
82512    -- 4219869 Business Flow
82513    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
82514    -- Prior Entry.  Currently, the following code is always generated.
82515    ------------------------------------------------------------------------------------------------
82516    XLA_AE_LINES_PKG.ValidateCurrentLine;
82517 
82518    ------------------------------------------------------------------------------------
82519    -- 4219869 Business Flow
82520    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
82521    ------------------------------------------------------------------------------------
82522    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
82523 
82524    ----------------------------------------------------------------------------------
82525    -- 4219869 Business Flow
82526    -- Update journal entry status -- Need to generate this within IF <condition>
82527    ----------------------------------------------------------------------------------
82528    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
82529          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
82530          ,p_balance_type_code => l_balance_type_code
82531          );
82532 
82533    -------------------------------------------------------------------------------------------
82534    -- 4262811 - Generate the Accrual Reversal lines
82535    -------------------------------------------------------------------------------------------
82536    BEGIN
82537       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
82538                               (g_array_event(p_event_id).array_value_num('header_index'));
82539       IF l_acc_rev_flag IS NULL THEN
82540          l_acc_rev_flag := 'N';
82541       END IF;
82542    EXCEPTION
82543       WHEN OTHERS THEN
82544          l_acc_rev_flag := 'N';
82545    END;
82546    --
82547    IF (l_acc_rev_flag = 'Y') THEN
82548 
82549        -- 4645092  ------------------------------------------------------------------------------
82550        -- To allow MPA report to determine if it should generate report process
82551        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
82552        ------------------------------------------------------------------------------------------
82553 
82554        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
82555        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
82556    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
82557    -- call ADRs
82558    -- Bug 4922099
82559    --
82560    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
82561         (NVL(l_actual_upg_option, 'N') = 'O') OR
82562         (NVL(l_enc_upg_option, 'N') = 'O')
82563       )
82564    THEN
82565    NULL;
82566    --
82567    --
82568    
82569   l_ccid := AcctDerRule_34(
82570            p_application_id           => p_application_id
82571          , p_ae_header_id             => l_ae_header_id 
82572 , p_source_34 => p_source_34
82573          , x_transaction_coa_id       => l_adr_transaction_coa_id
82574          , x_accounting_coa_id        => l_adr_accounting_coa_id
82575          , x_value_type_code          => l_adr_value_type_code
82576          , p_side                     => 'NA'
82577    );
82578 
82579    xla_ae_lines_pkg.set_ccid(
82580     p_code_combination_id          => l_ccid
82581   , p_value_type_code              => l_adr_value_type_code
82582   , p_transaction_coa_id           => l_adr_transaction_coa_id
82583   , p_accounting_coa_id            => l_adr_accounting_coa_id
82584   , p_adr_code                     => 'AP_LIAB'
82585   , p_adr_type_code                => 'S'
82586   , p_component_type               => l_component_type
82587   , p_component_code               => l_component_code
82588   , p_component_type_code          => l_component_type_code
82589   , p_component_appl_id            => l_component_appl_id
82590   , p_amb_context_code             => l_amb_context_code
82591   , p_side                         => 'NA'
82592   );
82593 
82594 
82595    --
82596    --
82597    END IF;
82598 
82599        --
82600        -- Update the line information that should be overwritten
82601        --
82602        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
82603                                          p_header_num   => 1);
82604        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
82605 
82606        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
82607 
82608        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
82609           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
82610        END IF;
82611 
82612       --
82613       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
82614       --
82615       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
82616           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
82617       ELSE
82621           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
82618           ---------------------------------------------------------------------------------------------------
82619           -- 4262811a Switch Sign
82620           ---------------------------------------------------------------------------------------------------
82622           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
82623                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82624           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
82625                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82626           -- 5132302
82627           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
82628                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
82629 
82630       END IF;
82631 
82632       -- 4955764
82633       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
82634       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
82635 
82636 
82637       XLA_AE_LINES_PKG.ValidateCurrentLine;
82638       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
82639 
82640       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
82641                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
82642                ,p_balance_type_code => l_balance_type_code);
82643 
82644    END IF;
82645 
82646    -----------------------------------------------------------------------------------------
82647    -- 4262811 Multiperiod Accounting
82648    -----------------------------------------------------------------------------------------
82649      -- No MPA option is assigned.
82650 
82651 
82652 END IF;
82653 END IF;
82654 --
82655 
82656 --
82657 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82658    trace
82659       (p_msg      => 'END of AcctLineType_148'
82660       ,p_level    => C_LEVEL_PROCEDURE
82661       ,p_module   => l_log_module);
82662 END IF;
82663 --
82664 EXCEPTION
82665   WHEN xla_exceptions_pkg.application_exception THEN
82666       RAISE;
82667   WHEN OTHERS THEN
82668        xla_exceptions_pkg.raise_message
82669            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_148');
82670 END AcctLineType_148;
82671 --
82672 
82673 ---------------------------------------
82674 --
82675 -- PRIVATE FUNCTION
82676 --         AcctLineType_149
82677 --
82678 ---------------------------------------
82679 PROCEDURE AcctLineType_149 (
82680   p_application_id        IN NUMBER
82681  ,p_event_id              IN NUMBER
82682  ,p_calculate_acctd_flag  IN VARCHAR2
82683  ,p_calculate_g_l_flag    IN VARCHAR2
82684  ,p_actual_flag           IN OUT VARCHAR2
82685  ,p_balance_type_code     OUT VARCHAR2
82686  ,p_gain_or_loss_ref      OUT VARCHAR2
82687  
82688 --Invoice Distribution Description
82689  , p_source_1            IN VARCHAR2
82690 --Automatic Offsets Value
82691  , p_source_15            IN VARCHAR2
82692  , p_source_15_meaning    IN VARCHAR2
82693 --Invoice Distribution Ledger Amount
82694  , p_source_21            IN NUMBER
82695 --Invoice Liability Account
82696  , p_source_34            IN NUMBER
82697 --Accounting Reversal Indicator
82698  , p_source_53            IN VARCHAR2
82699 --Distribution Link Type
82700  , p_source_55            IN VARCHAR2
82701 --Allocation to Main Distribution Identifier
82702  , p_source_57            IN NUMBER
82703 --Invoice Identifier
82704  , p_source_58            IN NUMBER
82705 --Invoice Distribution Identifier
82706  , p_source_64            IN NUMBER
82707 --Payables Encumbrance Upgrade Credit Account
82708  , p_source_65            IN NUMBER
82709 --Payables Encumbrance Upgrade Credit Amount
82710  , p_source_66            IN NUMBER
82711 --Invoice Currency Code
82712  , p_source_67            IN VARCHAR2
82713 --Payables Encumbrance Upgrade Credit Base Amount
82714  , p_source_68            IN NUMBER
82715 --Payables Encumbrance Upgrade Debit Account
82716  , p_source_69            IN NUMBER
82717 --Payables Encumbrance Upgrade Debit Amount
82718  , p_source_70            IN NUMBER
82719 --Payables Encumbrance Upgrade Debit Base Amount
82720  , p_source_71            IN NUMBER
82721 --Payables Encumbrance Upgrade Option
82722  , p_source_72            IN VARCHAR2
82723 --Invoice Distribution Amount
82724  , p_source_73            IN NUMBER
82725 --Deferred Accounting End Date
82726  , p_source_77            IN DATE
82727 --Deferred Accounting Option
82728  , p_source_78            IN VARCHAR2
82729 --Deferred Accounting Start Date
82730  , p_source_79            IN DATE
82731 --Override Accounted Amount Indicator
82732  , p_source_80            IN VARCHAR2
82733  , p_source_80_meaning    IN VARCHAR2
82734 --Invoice Supplier Identifier
82735  , p_source_81            IN NUMBER
82736 --Invoice Supplier Site Identifier
82737  , p_source_82            IN NUMBER
82738 --Third Party Type
82739  , p_source_83            IN VARCHAR2
82740 --Parent Reversal Identifier
82741  , p_source_84            IN NUMBER
82742 --Invoice Distribution Statistical Amount
82743  , p_source_85            IN NUMBER
82744 --Invoice Distribution Tax Line Identifier
82745  , p_source_86            IN NUMBER
82749  , p_source_88            IN NUMBER
82746 --Invoice Distribution Tax Distribution Identifier from Tax
82747  , p_source_87            IN NUMBER
82748 --Invoice Distribution Summary Tax Line Identifier
82750 --Payables Upgrade Credit Encumbrance Type Identifier
82751  , p_source_89            IN NUMBER
82752 --Payables Upgrade Debit Encumbrance Type Identifier
82753  , p_source_90            IN NUMBER
82754 --Business Flow Accounts Payable Application Identifier
82755  , p_source_91            IN NUMBER
82756 --Business Flow Invoice Distribution Type
82757  , p_source_92            IN VARCHAR2
82758 --Business Flow Invoice Entity Code
82759  , p_source_93            IN VARCHAR2
82760 --Business Flow Invoice Distribution Identifier
82761  , p_source_94            IN NUMBER
82762 --Business Flow Invoice Identifier
82763  , p_source_95            IN NUMBER
82764 --Self-Assessed Tax Flag
82765  , p_source_142            IN VARCHAR2
82766  , p_source_142_meaning    IN VARCHAR2
82767 --Invoice Exchange Date
82768  , p_source_143            IN DATE
82769 --Invoice Exchange Rate
82770  , p_source_144            IN NUMBER
82771 --Invoice Exchange Rate Type
82772  , p_source_145            IN VARCHAR2
82773 )
82774 IS
82775 
82776 l_component_type              VARCHAR2(80);
82777 l_component_code              VARCHAR2(30);
82778 l_component_type_code         VARCHAR2(1);
82779 l_component_appl_id           INTEGER;
82780 l_amb_context_code            VARCHAR2(30);
82781 l_entity_code                 VARCHAR2(30);
82782 l_event_class_code            VARCHAR2(30);
82783 l_ae_header_id                NUMBER;
82784 l_event_type_code             VARCHAR2(30);
82785 l_line_definition_code        VARCHAR2(30);
82786 l_line_definition_owner_code  VARCHAR2(1);
82787 --
82788 -- adr variables
82789 l_segment                     VARCHAR2(30);
82790 l_ccid                        NUMBER;
82791 l_adr_transaction_coa_id      NUMBER;
82792 l_adr_accounting_coa_id       NUMBER;
82793 l_adr_flexfield_segment_code  VARCHAR2(30);
82794 l_adr_flex_value_set_id       NUMBER;
82795 l_adr_value_type_code         VARCHAR2(30);
82796 l_adr_value_combination_id    NUMBER;
82797 l_adr_value_segment_code      VARCHAR2(30);
82798 
82799 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
82800 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
82801 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
82802 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
82803 
82804 -- 4262811 Variables ------------------------------------------------------------------------------------------
82805 l_entered_amt_idx             NUMBER;
82806 l_accted_amt_idx              NUMBER;
82807 l_acc_rev_flag                VARCHAR2(1);
82808 l_accrual_line_num            NUMBER;
82809 l_tmp_amt                     NUMBER;
82810 l_acc_rev_natural_side_code   VARCHAR2(1);
82811 
82812 l_num_entries                 NUMBER;
82813 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
82814 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
82815 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
82816 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
82817 l_recog_line_1                NUMBER;
82818 l_recog_line_2                NUMBER;
82819 
82820 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
82821 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
82822 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
82823 
82824 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
82825 
82826 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
82827 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
82828 
82829 ---------------------------------------------------------------------------------------------------------------
82830 
82831 
82832 --
82833 -- bulk performance
82834 --
82835 l_balance_type_code           VARCHAR2(1);
82836 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
82837 l_log_module                  VARCHAR2(240);
82838 
82839 --
82840 -- Upgrade strategy
82841 --
82842 l_actual_upg_option           VARCHAR2(1);
82843 l_enc_upg_option           VARCHAR2(1);
82844 
82845 --
82846 BEGIN
82847 --
82848 IF g_log_enabled THEN
82849       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_149';
82850 END IF;
82851 --
82852 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82853 
82854       trace
82855          (p_msg      => 'BEGIN of AcctLineType_149'
82856          ,p_level    => C_LEVEL_PROCEDURE
82857          ,p_module   => l_log_module);
82858 
82859 END IF;
82860 --
82861 l_component_type             := 'AMB_JLT';
82862 l_component_code             := 'AP_LIAB_CM_AOS_AS';
82863 l_component_type_code        := 'S';
82864 l_component_appl_id          :=  200;
82865 l_amb_context_code           := 'DEFAULT';
82866 l_entity_code                := 'AP_INVOICES';
82867 l_event_class_code           := 'CREDIT MEMOS';
82868 l_event_type_code            := 'CREDIT MEMOS_ALL';
82869 l_line_definition_owner_code := 'S';
82870 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
82871 --
82872 l_balance_type_code          := 'A';
82873 l_segment                     := NULL;
82874 l_ccid                        := NULL;
82875 l_adr_transaction_coa_id      := NULL;
82879 l_adr_value_type_code         := NULL;
82876 l_adr_accounting_coa_id       := NULL;
82877 l_adr_flexfield_segment_code  := NULL;
82878 l_adr_flex_value_set_id       := NULL;
82880 l_adr_value_combination_id    := NULL;
82881 l_adr_value_segment_code      := NULL;
82882 
82883 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
82884 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
82885 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
82886 l_budgetary_control_flag     := 'N';
82887 
82888 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
82889 l_bflow_applied_to_amt       := NULL; -- 5132302
82890 l_entered_amt_idx            := NULL;          -- 4262811
82891 l_accted_amt_idx             := NULL;          -- 4262811
82892 l_acc_rev_flag               := NULL;          -- 4262811
82893 l_accrual_line_num           := NULL;          -- 4262811
82894 l_tmp_amt                    := NULL;          -- 4262811
82895 --
82896  
82897 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
82898     l_balance_type_code <> 'B' THEN
82899 IF NVL(p_source_15,'
82900 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
82901 NVL(p_source_142,'
82902 ') <>  'Y'
82903  THEN 
82904 
82905    --
82906    XLA_AE_LINES_PKG.SetNewLine;
82907 
82908    p_balance_type_code          := l_balance_type_code;
82909    -- set the flag so later we will know whether the gain loss line needs to be created
82910    
82911    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
82912      p_actual_flag :='A';
82913    END IF;
82914 
82915    --
82916    -- bulk performance
82917    --
82918    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
82919                                       p_header_num   => 0); -- 4262811
82920    --
82921    -- set accounting line options
82922    --
82923    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
82924            p_natural_side_code          => 'C'
82925          , p_gain_or_loss_flag          => 'N'
82926          , p_gl_transfer_mode_code      => 'S'
82927          , p_acct_entry_type_code       => 'A'
82928          , p_switch_side_flag           => 'Y'
82929          , p_merge_duplicate_code       => 'A'
82930          );
82931    --
82932    l_acc_rev_natural_side_code := 'D';  -- 4262811
82933    -- 
82934    --
82935    -- set accounting line type info
82936    --
82937    xla_ae_lines_pkg.SetAcctLineType
82938       (p_component_type             => l_component_type
82939       ,p_event_type_code            => l_event_type_code
82940       ,p_line_definition_owner_code => l_line_definition_owner_code
82941       ,p_line_definition_code       => l_line_definition_code
82942       ,p_accounting_line_code       => l_component_code
82943       ,p_accounting_line_type_code  => l_component_type_code
82944       ,p_accounting_line_appl_id    => l_component_appl_id
82945       ,p_amb_context_code           => l_amb_context_code
82946       ,p_entity_code                => l_entity_code
82947       ,p_event_class_code           => l_event_class_code);
82948    --
82949    -- set accounting class
82950    --
82951    xla_ae_lines_pkg.SetAcctClass(
82952            p_accounting_class_code  => 'LIABILITY'
82953          , p_ae_header_id           => l_ae_header_id
82954          );
82955 
82956    --
82957    -- set rounding class
82958    --
82959    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
82960                       'LIABILITY';
82961 
82962    --
82963    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
82964    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
82965    --
82966    -- bulk performance
82967    --
82968    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
82969 
82970    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
82971       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
82972 
82973    -- 4955764
82974    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
82975       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
82976 
82977    -- 4458381 Public Sector Enh
82978    
82979    --
82980    -- set accounting attributes for the line type
82981    --
82982    l_entered_amt_idx := 23;
82983    l_accted_amt_idx  := 28;
82984    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
82985    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
82986    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
82987    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
82988    l_rec_acct_attrs.array_num_value(2)  := 
82989 xla_ae_sources_pkg.GetSystemSourceNum(
82990    p_source_code           => 'XLA_EVENT_APPL_ID'
82991  , p_source_type_code      => 'Y'
82992  , p_source_application_id =>  602
82993 );
82994    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
82995    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
82996    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
82997    l_rec_acct_attrs.array_char_value(4)  := 
82998 xla_ae_sources_pkg.GetSystemSourceChar(
83002 );
82999    p_source_code           => 'XLA_ENTITY_CODE'
83000  , p_source_type_code      => 'Y'
83001  , p_source_application_id =>  602
83003    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
83004    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
83005    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
83006    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
83007    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
83008    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
83009    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
83010    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
83011    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
83012    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
83013    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
83014    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
83015    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
83016    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
83017    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
83018    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
83019    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
83020    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
83021    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
83022    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
83023    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
83024    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
83025    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
83026    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
83027    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
83028    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
83029    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
83030    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
83031    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
83032    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
83033    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
83034    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
83035    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
83036    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
83037    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
83038    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
83039    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
83040    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
83041    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
83042    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
83043    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
83044    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
83045    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
83046    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
83047    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
83048    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
83049    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
83050    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
83051    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
83052    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
83053    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
83054    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
83055    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
83056    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
83057    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
83058    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
83059    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
83060    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
83061    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
83062    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
83063    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
83064    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
83065    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
83066    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
83067    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
83068    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
83069    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
83070    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
83071    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
83072    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
83073    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
83074    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
83075    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
83076    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
83077    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
83078    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
83079    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
83080    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
83081 
83082    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
83086    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
83083    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
83084 
83085    ---------------------------------------------------------------------------------------------------------------
83087    ---------------------------------------------------------------------------------------------------------------
83088    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
83089 
83090    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
83091    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
83092 
83093    IF xla_accounting_cache_pkg.GetValueChar
83094          (p_source_code         => 'LEDGER_CATEGORY_CODE'
83095          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
83096    AND l_bflow_method_code = 'PRIOR_ENTRY'
83097 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
83098    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
83099          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
83100        )
83101    THEN
83102          xla_ae_lines_pkg.BflowUpgEntry
83103            (p_business_method_code    => l_bflow_method_code
83104            ,p_business_class_code     => l_bflow_class_code
83105            ,p_balance_type            => l_balance_type_code);
83106    ELSE
83107       NULL;
83108 XLA_AE_LINES_PKG.business_flow_validation(
83109                                 p_business_method_code     => l_bflow_method_code
83110                                ,p_business_class_code      => l_bflow_class_code
83111                                ,p_inherit_description_flag => l_inherit_desc_flag);
83112    END IF;
83113 
83114    --
83115    -- call analytical criteria
83116    --
83117    
83118    --
83119    -- call description
83120    --
83121    
83122 xla_ae_lines_pkg.SetLineDescription(
83123    p_ae_header_id => l_ae_header_id
83124   ,p_description  => Description_1 (
83125      p_application_id         => p_application_id
83126    , p_ae_header_id           => l_ae_header_id 
83127 , p_source_1 => p_source_1
83128    )
83129 );
83130 
83131 
83132    --
83133    -- call ADRs
83134    -- Bug 4922099
83135    --
83136    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
83137         (NVL(l_actual_upg_option, 'N') = 'O') OR
83138         (NVL(l_enc_upg_option, 'N') = 'O')
83139       )
83140    THEN
83141    NULL;
83142    --
83143    --
83144    
83145    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
83146      p_code_combination_id      => TO_NUMBER(C_NUM)
83147    , p_value_type_code          => NULL
83148    , p_transaction_coa_id       => null
83149    , p_accounting_coa_id        => null
83150    , p_adr_code                 => NULL
83151    , p_adr_type_code            => NULL
83152    , p_component_type           => l_component_type
83153    , p_component_code           => l_component_code
83154    , p_component_type_code      => l_component_type_code
83155    , p_component_appl_id        => l_component_appl_id
83156    , p_amb_context_code         => l_amb_context_code
83157    , p_side                     => NULL
83158    );
83159 
83160    
83161   -- initialise segments
83162   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83163   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83164   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83165   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83166   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83167   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83168   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83169   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83170   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83171   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83172   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83173   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83174   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83175   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83176   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83177   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83178   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83179   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83180   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83181   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83182   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83183   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83184   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83188   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83185   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83186   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83187   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83189   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83190   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83191   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83192   --
83193 
83194    --
83195 
83196 
83197    l_segment := AcctDerRule_15(
83198            p_application_id           => p_application_id
83199          , p_ae_header_id             => l_ae_header_id 
83200 , p_source_34 => p_source_34
83201          , x_transaction_coa_id       => l_adr_transaction_coa_id
83202          , x_accounting_coa_id        => l_adr_accounting_coa_id
83203          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
83204          , x_flex_value_set_id        => l_adr_flex_value_set_id
83205          , x_value_type_code          => l_adr_value_type_code
83206          , x_value_combination_id     => l_adr_value_combination_id
83207          , x_value_segment_code       => l_adr_value_segment_code
83208          , p_side                     => 'NA'
83209          , p_override_seg_flag        => 'Y'
83210    );
83211 
83212    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
83213 
83214       xla_ae_lines_pkg.set_segment(
83215           p_to_segment_code         => 'GL_ACCOUNT'
83216         , p_segment_value           => l_segment
83217         , p_from_segment_code       => l_adr_value_segment_code
83218         , p_from_combination_id     => l_adr_value_combination_id
83219         , p_value_type_code         => l_adr_value_type_code
83220         , p_transaction_coa_id      => l_adr_transaction_coa_id
83221         , p_accounting_coa_id       => l_adr_accounting_coa_id
83222         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
83223         , p_flex_value_set_id       => l_adr_flex_value_set_id
83224         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
83225         , p_adr_type_code           => 'S'
83226         , p_component_type          => l_component_type
83227         , p_component_code          => l_component_code
83228         , p_component_type_code     => l_component_type_code
83229         , p_component_appl_id       => l_component_appl_id
83230         , p_amb_context_code        => l_amb_context_code
83231         , p_entity_code             => 'AP_INVOICES'
83232         , p_event_class_code        => 'CREDIT MEMOS'
83233         , p_side                    => 'NA'
83234         );
83235 
83236   END IF;
83237 
83238    --
83239    --
83240    END IF;
83241    --
83242    -- Bug 4922099
83243    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
83244           (NVL(l_enc_upg_option, 'N') = 'O')
83245         ) AND
83246         (l_bflow_method_code = 'PRIOR_ENTRY')
83247       )
83248    THEN
83249       IF
83250       --
83251       1 = 2
83252       --
83253       THEN
83254       xla_accounting_err_pkg.build_message
83255                                     (p_appli_s_name            => 'XLA'
83256                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
83257                                     ,p_token_1                 => 'LINE_NUMBER'
83258                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
83259                                     ,p_token_2                 => 'LINE_TYPE_NAME'
83260                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
83261                                                                              l_component_type
83262                                                                             ,l_component_code
83263                                                                             ,l_component_type_code
83264                                                                             ,l_component_appl_id
83265                                                                             ,l_amb_context_code
83266                                                                             ,l_entity_code
83267                                                                             ,l_event_class_code
83268                                                                            )
83269                                     ,p_token_3                 => 'OWNER'
83270                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
83271                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
83272                                                                           ,p_lookup_code    => l_component_type_code
83273                                                                          )
83274                                     ,p_token_4                 => 'PRODUCT_NAME'
83275                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
83276                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
83277                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
83278                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
83279                                     ,p_ae_header_id            =>  NULL
83280                                        );
83281 
83285                       ,p_level    => C_LEVEL_ERROR
83282         IF (C_LEVEL_ERROR>= g_log_level) THEN
83283                  trace
83284                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
83286                       ,p_module   => l_log_module);
83287         END IF;
83288       END IF;
83289    END IF;
83290    --
83291    --
83292    ------------------------------------------------------------------------------------------------
83293    -- 4219869 Business Flow
83294    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
83295    -- Prior Entry.  Currently, the following code is always generated.
83296    ------------------------------------------------------------------------------------------------
83297    XLA_AE_LINES_PKG.ValidateCurrentLine;
83298 
83299    ------------------------------------------------------------------------------------
83300    -- 4219869 Business Flow
83301    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
83302    ------------------------------------------------------------------------------------
83303    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
83304 
83305    ----------------------------------------------------------------------------------
83306    -- 4219869 Business Flow
83307    -- Update journal entry status -- Need to generate this within IF <condition>
83308    ----------------------------------------------------------------------------------
83309    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
83310          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
83311          ,p_balance_type_code => l_balance_type_code
83312          );
83313 
83314    -------------------------------------------------------------------------------------------
83315    -- 4262811 - Generate the Accrual Reversal lines
83316    -------------------------------------------------------------------------------------------
83317    BEGIN
83318       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
83319                               (g_array_event(p_event_id).array_value_num('header_index'));
83320       IF l_acc_rev_flag IS NULL THEN
83321          l_acc_rev_flag := 'N';
83322       END IF;
83323    EXCEPTION
83324       WHEN OTHERS THEN
83325          l_acc_rev_flag := 'N';
83326    END;
83327    --
83328    IF (l_acc_rev_flag = 'Y') THEN
83329 
83330        -- 4645092  ------------------------------------------------------------------------------
83331        -- To allow MPA report to determine if it should generate report process
83332        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
83333        ------------------------------------------------------------------------------------------
83334 
83335        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
83336        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
83337    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
83338    -- call ADRs
83339    -- Bug 4922099
83340    --
83341    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
83342         (NVL(l_actual_upg_option, 'N') = 'O') OR
83343         (NVL(l_enc_upg_option, 'N') = 'O')
83344       )
83345    THEN
83346    NULL;
83347    --
83348    --
83349    
83350    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
83351      p_code_combination_id      => TO_NUMBER(C_NUM)
83352    , p_value_type_code          => NULL
83353    , p_transaction_coa_id       => null
83354    , p_accounting_coa_id        => null
83355    , p_adr_code                 => NULL
83356    , p_adr_type_code            => NULL
83357    , p_component_type           => l_component_type
83358    , p_component_code           => l_component_code
83359    , p_component_type_code      => l_component_type_code
83360    , p_component_appl_id        => l_component_appl_id
83361    , p_amb_context_code         => l_amb_context_code
83362    , p_side                     => NULL
83363    );
83364 
83365    
83366   -- initialise segments
83367   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83368   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83369   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83370   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83371   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83372   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83373   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83374   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83375   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
83376   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83377   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83378   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83379   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83380   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83381   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83382   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83383   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83387   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83384   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83385   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83386   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83388   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83389   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83390   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83391   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83392   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83393   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83394   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83395   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83396   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
83397   --
83398 
83399    --
83400 
83401 
83402    l_segment := AcctDerRule_15(
83403            p_application_id           => p_application_id
83404          , p_ae_header_id             => l_ae_header_id 
83405 , p_source_34 => p_source_34
83406          , x_transaction_coa_id       => l_adr_transaction_coa_id
83407          , x_accounting_coa_id        => l_adr_accounting_coa_id
83408          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
83409          , x_flex_value_set_id        => l_adr_flex_value_set_id
83410          , x_value_type_code          => l_adr_value_type_code
83411          , x_value_combination_id     => l_adr_value_combination_id
83412          , x_value_segment_code       => l_adr_value_segment_code
83413          , p_side                     => 'NA'
83414          , p_override_seg_flag        => 'Y'
83415    );
83416 
83417    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
83418 
83419       xla_ae_lines_pkg.set_segment(
83420           p_to_segment_code         => 'GL_ACCOUNT'
83421         , p_segment_value           => l_segment
83422         , p_from_segment_code       => l_adr_value_segment_code
83423         , p_from_combination_id     => l_adr_value_combination_id
83424         , p_value_type_code         => l_adr_value_type_code
83425         , p_transaction_coa_id      => l_adr_transaction_coa_id
83426         , p_accounting_coa_id       => l_adr_accounting_coa_id
83427         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
83428         , p_flex_value_set_id       => l_adr_flex_value_set_id
83429         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
83430         , p_adr_type_code           => 'S'
83431         , p_component_type          => l_component_type
83432         , p_component_code          => l_component_code
83433         , p_component_type_code     => l_component_type_code
83434         , p_component_appl_id       => l_component_appl_id
83435         , p_amb_context_code        => l_amb_context_code
83436         , p_entity_code             => 'AP_INVOICES'
83437         , p_event_class_code        => 'CREDIT MEMOS'
83438         , p_side                    => 'NA'
83439         );
83440 
83441   END IF;
83442 
83443    --
83444    --
83445    END IF;
83446 
83447        --
83448        -- Update the line information that should be overwritten
83449        --
83450        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
83451                                          p_header_num   => 1);
83452        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
83453 
83454        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
83455 
83456        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
83457           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
83458        END IF;
83459 
83460       --
83461       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
83462       --
83463       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
83464           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
83465       ELSE
83466           ---------------------------------------------------------------------------------------------------
83467           -- 4262811a Switch Sign
83468           ---------------------------------------------------------------------------------------------------
83469           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
83470           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
83471                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83472           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
83473                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83474           -- 5132302
83475           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
83476                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
83477 
83478       END IF;
83479 
83480       -- 4955764
83484 
83481       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
83482       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
83483 
83485       XLA_AE_LINES_PKG.ValidateCurrentLine;
83486       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
83487 
83488       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
83489                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
83490                ,p_balance_type_code => l_balance_type_code);
83491 
83492    END IF;
83493 
83494    -----------------------------------------------------------------------------------------
83495    -- 4262811 Multiperiod Accounting
83496    -----------------------------------------------------------------------------------------
83497      -- No MPA option is assigned.
83498 
83499 
83500 END IF;
83501 END IF;
83502 --
83503 
83504 --
83505 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83506    trace
83507       (p_msg      => 'END of AcctLineType_149'
83508       ,p_level    => C_LEVEL_PROCEDURE
83509       ,p_module   => l_log_module);
83510 END IF;
83511 --
83512 EXCEPTION
83513   WHEN xla_exceptions_pkg.application_exception THEN
83514       RAISE;
83515   WHEN OTHERS THEN
83516        xla_exceptions_pkg.raise_message
83517            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_149');
83518 END AcctLineType_149;
83519 --
83520 
83521 ---------------------------------------
83522 --
83523 -- PRIVATE FUNCTION
83524 --         AcctLineType_150
83525 --
83526 ---------------------------------------
83527 PROCEDURE AcctLineType_150 (
83528   p_application_id        IN NUMBER
83529  ,p_event_id              IN NUMBER
83530  ,p_calculate_acctd_flag  IN VARCHAR2
83531  ,p_calculate_g_l_flag    IN VARCHAR2
83532  ,p_actual_flag           IN OUT VARCHAR2
83533  ,p_balance_type_code     OUT VARCHAR2
83534  ,p_gain_or_loss_ref      OUT VARCHAR2
83535  
83536 --Invoice Distribution Description
83537  , p_source_1            IN VARCHAR2
83538 --Automatic Offsets Value
83539  , p_source_15            IN VARCHAR2
83540  , p_source_15_meaning    IN VARCHAR2
83541 --Invoice Distribution Ledger Amount
83542  , p_source_21            IN NUMBER
83543 --Invoice Liability Account
83544  , p_source_34            IN NUMBER
83545 --Accounting Reversal Indicator
83546  , p_source_53            IN VARCHAR2
83547 --Distribution Link Type
83548  , p_source_55            IN VARCHAR2
83549 --Allocation to Main Distribution Identifier
83550  , p_source_57            IN NUMBER
83551 --Invoice Identifier
83552  , p_source_58            IN NUMBER
83553 --Invoice Distribution Identifier
83554  , p_source_64            IN NUMBER
83555 --Payables Encumbrance Upgrade Credit Account
83556  , p_source_65            IN NUMBER
83557 --Payables Encumbrance Upgrade Credit Amount
83558  , p_source_66            IN NUMBER
83559 --Invoice Currency Code
83560  , p_source_67            IN VARCHAR2
83561 --Payables Encumbrance Upgrade Credit Base Amount
83562  , p_source_68            IN NUMBER
83563 --Payables Encumbrance Upgrade Debit Account
83564  , p_source_69            IN NUMBER
83565 --Payables Encumbrance Upgrade Debit Amount
83566  , p_source_70            IN NUMBER
83567 --Payables Encumbrance Upgrade Debit Base Amount
83568  , p_source_71            IN NUMBER
83569 --Payables Encumbrance Upgrade Option
83570  , p_source_72            IN VARCHAR2
83571 --Invoice Distribution Amount
83572  , p_source_73            IN NUMBER
83573 --Deferred Accounting End Date
83574  , p_source_77            IN DATE
83575 --Deferred Accounting Option
83576  , p_source_78            IN VARCHAR2
83577 --Deferred Accounting Start Date
83578  , p_source_79            IN DATE
83579 --Override Accounted Amount Indicator
83580  , p_source_80            IN VARCHAR2
83581  , p_source_80_meaning    IN VARCHAR2
83582 --Invoice Supplier Identifier
83583  , p_source_81            IN NUMBER
83584 --Invoice Supplier Site Identifier
83585  , p_source_82            IN NUMBER
83586 --Third Party Type
83587  , p_source_83            IN VARCHAR2
83588 --Parent Reversal Identifier
83589  , p_source_84            IN NUMBER
83590 --Invoice Distribution Statistical Amount
83591  , p_source_85            IN NUMBER
83592 --Invoice Distribution Tax Line Identifier
83593  , p_source_86            IN NUMBER
83594 --Invoice Distribution Tax Distribution Identifier from Tax
83595  , p_source_87            IN NUMBER
83596 --Invoice Distribution Summary Tax Line Identifier
83597  , p_source_88            IN NUMBER
83598 --Payables Upgrade Credit Encumbrance Type Identifier
83599  , p_source_89            IN NUMBER
83600 --Payables Upgrade Debit Encumbrance Type Identifier
83601  , p_source_90            IN NUMBER
83602 --Business Flow Accounts Payable Application Identifier
83603  , p_source_91            IN NUMBER
83604 --Business Flow Invoice Distribution Type
83605  , p_source_92            IN VARCHAR2
83606 --Business Flow Invoice Entity Code
83607  , p_source_93            IN VARCHAR2
83608 --Business Flow Invoice Distribution Identifier
83609  , p_source_94            IN NUMBER
83610 --Business Flow Invoice Identifier
83611  , p_source_95            IN NUMBER
83612 --Self-Assessed Tax Flag
83613  , p_source_142            IN VARCHAR2
83617 --Invoice Exchange Rate
83614  , p_source_142_meaning    IN VARCHAR2
83615 --Invoice Exchange Date
83616  , p_source_143            IN DATE
83618  , p_source_144            IN NUMBER
83619 --Invoice Exchange Rate Type
83620  , p_source_145            IN VARCHAR2
83621 )
83622 IS
83623 
83624 l_component_type              VARCHAR2(80);
83625 l_component_code              VARCHAR2(30);
83626 l_component_type_code         VARCHAR2(1);
83627 l_component_appl_id           INTEGER;
83628 l_amb_context_code            VARCHAR2(30);
83629 l_entity_code                 VARCHAR2(30);
83630 l_event_class_code            VARCHAR2(30);
83631 l_ae_header_id                NUMBER;
83632 l_event_type_code             VARCHAR2(30);
83633 l_line_definition_code        VARCHAR2(30);
83634 l_line_definition_owner_code  VARCHAR2(1);
83635 --
83636 -- adr variables
83637 l_segment                     VARCHAR2(30);
83638 l_ccid                        NUMBER;
83639 l_adr_transaction_coa_id      NUMBER;
83640 l_adr_accounting_coa_id       NUMBER;
83641 l_adr_flexfield_segment_code  VARCHAR2(30);
83642 l_adr_flex_value_set_id       NUMBER;
83643 l_adr_value_type_code         VARCHAR2(30);
83644 l_adr_value_combination_id    NUMBER;
83645 l_adr_value_segment_code      VARCHAR2(30);
83646 
83647 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
83648 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
83649 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
83650 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
83651 
83652 -- 4262811 Variables ------------------------------------------------------------------------------------------
83653 l_entered_amt_idx             NUMBER;
83654 l_accted_amt_idx              NUMBER;
83655 l_acc_rev_flag                VARCHAR2(1);
83656 l_accrual_line_num            NUMBER;
83657 l_tmp_amt                     NUMBER;
83658 l_acc_rev_natural_side_code   VARCHAR2(1);
83659 
83660 l_num_entries                 NUMBER;
83661 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
83662 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
83663 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
83664 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
83665 l_recog_line_1                NUMBER;
83666 l_recog_line_2                NUMBER;
83667 
83668 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
83669 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
83670 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
83671 
83672 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
83673 
83674 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
83675 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
83676 
83677 ---------------------------------------------------------------------------------------------------------------
83678 
83679 
83680 --
83681 -- bulk performance
83682 --
83683 l_balance_type_code           VARCHAR2(1);
83684 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
83685 l_log_module                  VARCHAR2(240);
83686 
83687 --
83688 -- Upgrade strategy
83689 --
83690 l_actual_upg_option           VARCHAR2(1);
83691 l_enc_upg_option           VARCHAR2(1);
83692 
83693 --
83694 BEGIN
83695 --
83696 IF g_log_enabled THEN
83697       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_150';
83698 END IF;
83699 --
83700 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83701 
83702       trace
83703          (p_msg      => 'BEGIN of AcctLineType_150'
83704          ,p_level    => C_LEVEL_PROCEDURE
83705          ,p_module   => l_log_module);
83706 
83707 END IF;
83708 --
83709 l_component_type             := 'AMB_JLT';
83710 l_component_code             := 'AP_LIAB_CM_AOS_BS';
83711 l_component_type_code        := 'S';
83712 l_component_appl_id          :=  200;
83713 l_amb_context_code           := 'DEFAULT';
83714 l_entity_code                := 'AP_INVOICES';
83715 l_event_class_code           := 'CREDIT MEMOS';
83716 l_event_type_code            := 'CREDIT MEMOS_ALL';
83717 l_line_definition_owner_code := 'S';
83718 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
83719 --
83720 l_balance_type_code          := 'A';
83721 l_segment                     := NULL;
83722 l_ccid                        := NULL;
83723 l_adr_transaction_coa_id      := NULL;
83724 l_adr_accounting_coa_id       := NULL;
83725 l_adr_flexfield_segment_code  := NULL;
83726 l_adr_flex_value_set_id       := NULL;
83727 l_adr_value_type_code         := NULL;
83728 l_adr_value_combination_id    := NULL;
83729 l_adr_value_segment_code      := NULL;
83730 
83731 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
83732 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
83733 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
83734 l_budgetary_control_flag     := 'N';
83735 
83736 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
83737 l_bflow_applied_to_amt       := NULL; -- 5132302
83738 l_entered_amt_idx            := NULL;          -- 4262811
83739 l_accted_amt_idx             := NULL;          -- 4262811
83743 --
83740 l_acc_rev_flag               := NULL;          -- 4262811
83741 l_accrual_line_num           := NULL;          -- 4262811
83742 l_tmp_amt                    := NULL;          -- 4262811
83744  
83745 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
83746     l_balance_type_code <> 'B' THEN
83747 IF NVL(p_source_15,'
83748 ') =  'BALANCING_SEGMENT' AND 
83749 NVL(p_source_142,'
83750 ') <>  'Y'
83751  THEN 
83752 
83753    --
83754    XLA_AE_LINES_PKG.SetNewLine;
83755 
83756    p_balance_type_code          := l_balance_type_code;
83757    -- set the flag so later we will know whether the gain loss line needs to be created
83758    
83759    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
83760      p_actual_flag :='A';
83761    END IF;
83762 
83763    --
83764    -- bulk performance
83765    --
83766    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
83767                                       p_header_num   => 0); -- 4262811
83768    --
83769    -- set accounting line options
83770    --
83771    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
83772            p_natural_side_code          => 'C'
83773          , p_gain_or_loss_flag          => 'N'
83774          , p_gl_transfer_mode_code      => 'S'
83775          , p_acct_entry_type_code       => 'A'
83776          , p_switch_side_flag           => 'Y'
83777          , p_merge_duplicate_code       => 'A'
83778          );
83779    --
83780    l_acc_rev_natural_side_code := 'D';  -- 4262811
83781    -- 
83782    --
83783    -- set accounting line type info
83784    --
83785    xla_ae_lines_pkg.SetAcctLineType
83786       (p_component_type             => l_component_type
83787       ,p_event_type_code            => l_event_type_code
83788       ,p_line_definition_owner_code => l_line_definition_owner_code
83789       ,p_line_definition_code       => l_line_definition_code
83790       ,p_accounting_line_code       => l_component_code
83791       ,p_accounting_line_type_code  => l_component_type_code
83792       ,p_accounting_line_appl_id    => l_component_appl_id
83793       ,p_amb_context_code           => l_amb_context_code
83794       ,p_entity_code                => l_entity_code
83795       ,p_event_class_code           => l_event_class_code);
83796    --
83797    -- set accounting class
83798    --
83799    xla_ae_lines_pkg.SetAcctClass(
83800            p_accounting_class_code  => 'LIABILITY'
83801          , p_ae_header_id           => l_ae_header_id
83802          );
83803 
83804    --
83805    -- set rounding class
83806    --
83807    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
83808                       'LIABILITY';
83809 
83810    --
83811    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
83812    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
83813    --
83814    -- bulk performance
83815    --
83816    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
83817 
83818    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
83819       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
83820 
83821    -- 4955764
83822    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
83823       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
83824 
83825    -- 4458381 Public Sector Enh
83826    
83827    --
83828    -- set accounting attributes for the line type
83829    --
83830    l_entered_amt_idx := 23;
83831    l_accted_amt_idx  := 28;
83832    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
83833    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
83834    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
83835    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
83836    l_rec_acct_attrs.array_num_value(2)  := 
83837 xla_ae_sources_pkg.GetSystemSourceNum(
83838    p_source_code           => 'XLA_EVENT_APPL_ID'
83839  , p_source_type_code      => 'Y'
83840  , p_source_application_id =>  602
83841 );
83842    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
83843    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
83844    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
83845    l_rec_acct_attrs.array_char_value(4)  := 
83846 xla_ae_sources_pkg.GetSystemSourceChar(
83847    p_source_code           => 'XLA_ENTITY_CODE'
83848  , p_source_type_code      => 'Y'
83849  , p_source_application_id =>  602
83850 );
83851    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
83852    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
83853    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
83854    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
83855    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
83856    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
83857    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
83858    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
83859    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
83860    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
83861    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
83865    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
83862    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
83863    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
83864    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
83866    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
83867    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
83868    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
83869    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
83870    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
83871    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
83872    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
83873    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
83874    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
83875    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
83876    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
83877    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
83878    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
83879    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
83880    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
83881    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
83882    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
83883    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
83884    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
83885    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
83886    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
83887    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
83888    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
83889    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
83890    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
83891    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
83892    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
83893    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
83894    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
83895    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
83896    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
83897    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
83898    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
83899    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
83900    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
83901    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
83902    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
83903    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
83904    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
83905    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
83906    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
83907    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
83908    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
83909    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
83910    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
83911    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
83912    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
83913    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
83914    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
83915    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
83916    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
83917    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
83918    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
83919    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
83920    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
83921    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
83922    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
83923    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
83924    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
83925    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
83926    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
83927    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
83928    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
83929 
83930    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
83931    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
83932 
83933    ---------------------------------------------------------------------------------------------------------------
83934    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
83935    ---------------------------------------------------------------------------------------------------------------
83936    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
83937 
83938    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
83939    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
83940 
83941    IF xla_accounting_cache_pkg.GetValueChar
83942          (p_source_code         => 'LEDGER_CATEGORY_CODE'
83943          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
83944    AND l_bflow_method_code = 'PRIOR_ENTRY'
83948        )
83945 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
83946    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
83947          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
83949    THEN
83950          xla_ae_lines_pkg.BflowUpgEntry
83951            (p_business_method_code    => l_bflow_method_code
83952            ,p_business_class_code     => l_bflow_class_code
83953            ,p_balance_type            => l_balance_type_code);
83954    ELSE
83955       NULL;
83956 XLA_AE_LINES_PKG.business_flow_validation(
83957                                 p_business_method_code     => l_bflow_method_code
83958                                ,p_business_class_code      => l_bflow_class_code
83959                                ,p_inherit_description_flag => l_inherit_desc_flag);
83960    END IF;
83961 
83962    --
83963    -- call analytical criteria
83964    --
83965    
83966    --
83967    -- call description
83968    --
83969    
83970 xla_ae_lines_pkg.SetLineDescription(
83971    p_ae_header_id => l_ae_header_id
83972   ,p_description  => Description_1 (
83973      p_application_id         => p_application_id
83974    , p_ae_header_id           => l_ae_header_id 
83975 , p_source_1 => p_source_1
83976    )
83977 );
83978 
83979 
83980    --
83981    -- call ADRs
83982    -- Bug 4922099
83983    --
83984    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
83985         (NVL(l_actual_upg_option, 'N') = 'O') OR
83986         (NVL(l_enc_upg_option, 'N') = 'O')
83987       )
83988    THEN
83989    NULL;
83990    --
83991    --
83992    
83993   l_ccid := AcctDerRule_34(
83994            p_application_id           => p_application_id
83995          , p_ae_header_id             => l_ae_header_id 
83996 , p_source_34 => p_source_34
83997          , x_transaction_coa_id       => l_adr_transaction_coa_id
83998          , x_accounting_coa_id        => l_adr_accounting_coa_id
83999          , x_value_type_code          => l_adr_value_type_code
84000          , p_side                     => 'NA'
84001    );
84002 
84003    xla_ae_lines_pkg.set_ccid(
84004     p_code_combination_id          => l_ccid
84005   , p_value_type_code              => l_adr_value_type_code
84006   , p_transaction_coa_id           => l_adr_transaction_coa_id
84007   , p_accounting_coa_id            => l_adr_accounting_coa_id
84008   , p_adr_code                     => 'AP_LIAB'
84009   , p_adr_type_code                => 'S'
84010   , p_component_type               => l_component_type
84011   , p_component_code               => l_component_code
84012   , p_component_type_code          => l_component_type_code
84013   , p_component_appl_id            => l_component_appl_id
84014   , p_amb_context_code             => l_amb_context_code
84015   , p_side                         => 'NA'
84016   );
84017 
84018 
84019    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
84020      p_to_segment_code         => 'GL_BALANCING'
84021    , p_segment_value           => C_CHAR
84022    , p_from_segment_code       => NULL
84023    , p_from_combination_id     => NULL
84024    , p_value_type_code         => NULL
84025    , p_transaction_coa_id      => null
84026    , p_accounting_coa_id       => null
84027    , p_flexfield_segment_code  => NULL
84028    , p_flex_value_set_id       => NULL
84029    , p_adr_code                => NULL
84030    , p_adr_type_code           => NULL
84031    , p_component_type          => l_component_type
84032    , p_component_code          => l_component_code
84033    , p_component_type_code     => l_component_type_code
84034    , p_component_appl_id       => l_component_appl_id
84035    , p_amb_context_code        => l_amb_context_code
84036    , p_entity_code             => 'AP_INVOICES'
84037    , p_event_class_code        => 'CREDIT MEMOS'
84038    , p_side                    => 'NA'
84039    );
84040    --
84041 
84042 
84043    --
84044    --
84045    END IF;
84046    --
84047    -- Bug 4922099
84048    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
84049           (NVL(l_enc_upg_option, 'N') = 'O')
84050         ) AND
84051         (l_bflow_method_code = 'PRIOR_ENTRY')
84052       )
84053    THEN
84054       IF
84055       --
84056       1 = 2
84057       --
84058       THEN
84059       xla_accounting_err_pkg.build_message
84060                                     (p_appli_s_name            => 'XLA'
84061                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
84062                                     ,p_token_1                 => 'LINE_NUMBER'
84063                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
84064                                     ,p_token_2                 => 'LINE_TYPE_NAME'
84065                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
84066                                                                              l_component_type
84067                                                                             ,l_component_code
84068                                                                             ,l_component_type_code
84069                                                                             ,l_component_appl_id
84070                                                                             ,l_amb_context_code
84071                                                                             ,l_entity_code
84072                                                                             ,l_event_class_code
84076                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
84073                                                                            )
84074                                     ,p_token_3                 => 'OWNER'
84075                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
84077                                                                           ,p_lookup_code    => l_component_type_code
84078                                                                          )
84079                                     ,p_token_4                 => 'PRODUCT_NAME'
84080                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
84081                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
84082                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
84083                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
84084                                     ,p_ae_header_id            =>  NULL
84085                                        );
84086 
84087         IF (C_LEVEL_ERROR>= g_log_level) THEN
84088                  trace
84089                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
84090                       ,p_level    => C_LEVEL_ERROR
84091                       ,p_module   => l_log_module);
84092         END IF;
84093       END IF;
84094    END IF;
84095    --
84096    --
84097    ------------------------------------------------------------------------------------------------
84098    -- 4219869 Business Flow
84099    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
84100    -- Prior Entry.  Currently, the following code is always generated.
84101    ------------------------------------------------------------------------------------------------
84102    XLA_AE_LINES_PKG.ValidateCurrentLine;
84103 
84104    ------------------------------------------------------------------------------------
84105    -- 4219869 Business Flow
84106    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
84107    ------------------------------------------------------------------------------------
84108    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
84109 
84110    ----------------------------------------------------------------------------------
84111    -- 4219869 Business Flow
84112    -- Update journal entry status -- Need to generate this within IF <condition>
84113    ----------------------------------------------------------------------------------
84114    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
84115          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
84116          ,p_balance_type_code => l_balance_type_code
84117          );
84118 
84119    -------------------------------------------------------------------------------------------
84120    -- 4262811 - Generate the Accrual Reversal lines
84121    -------------------------------------------------------------------------------------------
84122    BEGIN
84123       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
84124                               (g_array_event(p_event_id).array_value_num('header_index'));
84125       IF l_acc_rev_flag IS NULL THEN
84126          l_acc_rev_flag := 'N';
84127       END IF;
84128    EXCEPTION
84129       WHEN OTHERS THEN
84130          l_acc_rev_flag := 'N';
84131    END;
84132    --
84133    IF (l_acc_rev_flag = 'Y') THEN
84134 
84135        -- 4645092  ------------------------------------------------------------------------------
84136        -- To allow MPA report to determine if it should generate report process
84137        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
84138        ------------------------------------------------------------------------------------------
84139 
84140        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
84141        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
84142    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
84143    -- call ADRs
84144    -- Bug 4922099
84145    --
84146    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
84147         (NVL(l_actual_upg_option, 'N') = 'O') OR
84148         (NVL(l_enc_upg_option, 'N') = 'O')
84149       )
84150    THEN
84151    NULL;
84152    --
84153    --
84154    
84155   l_ccid := AcctDerRule_34(
84156            p_application_id           => p_application_id
84157          , p_ae_header_id             => l_ae_header_id 
84158 , p_source_34 => p_source_34
84159          , x_transaction_coa_id       => l_adr_transaction_coa_id
84160          , x_accounting_coa_id        => l_adr_accounting_coa_id
84161          , x_value_type_code          => l_adr_value_type_code
84162          , p_side                     => 'NA'
84163    );
84164 
84165    xla_ae_lines_pkg.set_ccid(
84166     p_code_combination_id          => l_ccid
84167   , p_value_type_code              => l_adr_value_type_code
84168   , p_transaction_coa_id           => l_adr_transaction_coa_id
84169   , p_accounting_coa_id            => l_adr_accounting_coa_id
84170   , p_adr_code                     => 'AP_LIAB'
84171   , p_adr_type_code                => 'S'
84172   , p_component_type               => l_component_type
84173   , p_component_code               => l_component_code
84174   , p_component_type_code          => l_component_type_code
84178   );
84175   , p_component_appl_id            => l_component_appl_id
84176   , p_amb_context_code             => l_amb_context_code
84177   , p_side                         => 'NA'
84179 
84180 
84181    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
84182      p_to_segment_code         => 'GL_BALANCING'
84183    , p_segment_value           => C_CHAR
84184    , p_from_segment_code       => NULL
84185    , p_from_combination_id     => NULL
84186    , p_value_type_code         => NULL
84187    , p_transaction_coa_id      => null
84188    , p_accounting_coa_id       => null
84189    , p_flexfield_segment_code  => NULL
84190    , p_flex_value_set_id       => NULL
84191    , p_adr_code                => NULL
84192    , p_adr_type_code           => NULL
84193    , p_component_type          => l_component_type
84194    , p_component_code          => l_component_code
84195    , p_component_type_code     => l_component_type_code
84196    , p_component_appl_id       => l_component_appl_id
84197    , p_amb_context_code        => l_amb_context_code
84198    , p_entity_code             => 'AP_INVOICES'
84199    , p_event_class_code        => 'CREDIT MEMOS'
84200    , p_side                    => 'NA'
84201    );
84202    --
84203 
84204 
84205    --
84206    --
84207    END IF;
84208 
84209        --
84210        -- Update the line information that should be overwritten
84211        --
84212        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
84213                                          p_header_num   => 1);
84214        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
84215 
84216        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
84217 
84218        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
84219           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
84220        END IF;
84221 
84222       --
84223       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
84224       --
84225       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
84226           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
84227       ELSE
84228           ---------------------------------------------------------------------------------------------------
84229           -- 4262811a Switch Sign
84230           ---------------------------------------------------------------------------------------------------
84231           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
84232           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
84233                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84234           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
84235                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84236           -- 5132302
84237           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
84238                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84239 
84240       END IF;
84241 
84242       -- 4955764
84243       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
84244       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
84245 
84246 
84247       XLA_AE_LINES_PKG.ValidateCurrentLine;
84248       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
84249 
84250       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
84251                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
84252                ,p_balance_type_code => l_balance_type_code);
84253 
84254    END IF;
84255 
84256    -----------------------------------------------------------------------------------------
84257    -- 4262811 Multiperiod Accounting
84258    -----------------------------------------------------------------------------------------
84259      -- No MPA option is assigned.
84260 
84261 
84262 END IF;
84263 END IF;
84264 --
84265 
84266 --
84267 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84268    trace
84269       (p_msg      => 'END of AcctLineType_150'
84270       ,p_level    => C_LEVEL_PROCEDURE
84271       ,p_module   => l_log_module);
84272 END IF;
84273 --
84274 EXCEPTION
84275   WHEN xla_exceptions_pkg.application_exception THEN
84276       RAISE;
84277   WHEN OTHERS THEN
84278        xla_exceptions_pkg.raise_message
84279            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_150');
84280 END AcctLineType_150;
84281 --
84282 
84283 ---------------------------------------
84284 --
84285 -- PRIVATE FUNCTION
84286 --         AcctLineType_151
84287 --
84288 ---------------------------------------
84289 PROCEDURE AcctLineType_151 (
84290   p_application_id        IN NUMBER
84291  ,p_event_id              IN NUMBER
84292  ,p_calculate_acctd_flag  IN VARCHAR2
84293  ,p_calculate_g_l_flag    IN VARCHAR2
84294  ,p_actual_flag           IN OUT VARCHAR2
84295  ,p_balance_type_code     OUT VARCHAR2
84299  , p_source_1            IN VARCHAR2
84296  ,p_gain_or_loss_ref      OUT VARCHAR2
84297  
84298 --Invoice Distribution Description
84300 --Automatic Offsets Value
84301  , p_source_15            IN VARCHAR2
84302  , p_source_15_meaning    IN VARCHAR2
84303 --Invoice Distribution Ledger Amount
84304  , p_source_21            IN NUMBER
84305 --Invoice Liability Account
84306  , p_source_34            IN NUMBER
84307 --Accounting Reversal Indicator
84308  , p_source_53            IN VARCHAR2
84309 --Distribution Link Type
84310  , p_source_55            IN VARCHAR2
84311 --Allocation to Main Distribution Identifier
84312  , p_source_57            IN NUMBER
84313 --Invoice Identifier
84314  , p_source_58            IN NUMBER
84315 --Invoice Distribution Identifier
84316  , p_source_64            IN NUMBER
84317 --Payables Encumbrance Upgrade Credit Account
84318  , p_source_65            IN NUMBER
84319 --Payables Encumbrance Upgrade Credit Amount
84320  , p_source_66            IN NUMBER
84321 --Invoice Currency Code
84322  , p_source_67            IN VARCHAR2
84323 --Payables Encumbrance Upgrade Credit Base Amount
84324  , p_source_68            IN NUMBER
84325 --Payables Encumbrance Upgrade Debit Account
84326  , p_source_69            IN NUMBER
84327 --Payables Encumbrance Upgrade Debit Amount
84328  , p_source_70            IN NUMBER
84329 --Payables Encumbrance Upgrade Debit Base Amount
84330  , p_source_71            IN NUMBER
84331 --Payables Encumbrance Upgrade Option
84332  , p_source_72            IN VARCHAR2
84333 --Invoice Distribution Amount
84334  , p_source_73            IN NUMBER
84335 --Deferred Accounting End Date
84336  , p_source_77            IN DATE
84337 --Deferred Accounting Option
84338  , p_source_78            IN VARCHAR2
84339 --Deferred Accounting Start Date
84340  , p_source_79            IN DATE
84341 --Override Accounted Amount Indicator
84342  , p_source_80            IN VARCHAR2
84343  , p_source_80_meaning    IN VARCHAR2
84344 --Invoice Supplier Identifier
84345  , p_source_81            IN NUMBER
84346 --Invoice Supplier Site Identifier
84347  , p_source_82            IN NUMBER
84348 --Third Party Type
84349  , p_source_83            IN VARCHAR2
84350 --Parent Reversal Identifier
84351  , p_source_84            IN NUMBER
84352 --Invoice Distribution Tax Line Identifier
84353  , p_source_86            IN NUMBER
84354 --Invoice Distribution Tax Distribution Identifier from Tax
84355  , p_source_87            IN NUMBER
84356 --Invoice Distribution Summary Tax Line Identifier
84357  , p_source_88            IN NUMBER
84358 --Payables Upgrade Credit Encumbrance Type Identifier
84359  , p_source_89            IN NUMBER
84360 --Payables Upgrade Debit Encumbrance Type Identifier
84361  , p_source_90            IN NUMBER
84362 --Business Flow Accounts Payable Application Identifier
84363  , p_source_91            IN NUMBER
84364 --Business Flow Invoice Distribution Type
84365  , p_source_92            IN VARCHAR2
84366 --Business Flow Invoice Entity Code
84367  , p_source_93            IN VARCHAR2
84368 --Business Flow Invoice Distribution Identifier
84369  , p_source_94            IN NUMBER
84370 --Business Flow Invoice Identifier
84371  , p_source_95            IN NUMBER
84372 --Self-Assessed Tax Flag
84373  , p_source_142            IN VARCHAR2
84374  , p_source_142_meaning    IN VARCHAR2
84375 --Invoice Exchange Date
84376  , p_source_143            IN DATE
84377 --Invoice Exchange Rate
84378  , p_source_144            IN NUMBER
84379 --Invoice Exchange Rate Type
84380  , p_source_145            IN VARCHAR2
84381 )
84382 IS
84383 
84384 l_component_type              VARCHAR2(80);
84385 l_component_code              VARCHAR2(30);
84386 l_component_type_code         VARCHAR2(1);
84387 l_component_appl_id           INTEGER;
84388 l_amb_context_code            VARCHAR2(30);
84389 l_entity_code                 VARCHAR2(30);
84390 l_event_class_code            VARCHAR2(30);
84391 l_ae_header_id                NUMBER;
84392 l_event_type_code             VARCHAR2(30);
84393 l_line_definition_code        VARCHAR2(30);
84394 l_line_definition_owner_code  VARCHAR2(1);
84395 --
84396 -- adr variables
84397 l_segment                     VARCHAR2(30);
84398 l_ccid                        NUMBER;
84399 l_adr_transaction_coa_id      NUMBER;
84400 l_adr_accounting_coa_id       NUMBER;
84401 l_adr_flexfield_segment_code  VARCHAR2(30);
84402 l_adr_flex_value_set_id       NUMBER;
84403 l_adr_value_type_code         VARCHAR2(30);
84404 l_adr_value_combination_id    NUMBER;
84405 l_adr_value_segment_code      VARCHAR2(30);
84406 
84407 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
84408 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
84409 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
84410 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
84411 
84412 -- 4262811 Variables ------------------------------------------------------------------------------------------
84413 l_entered_amt_idx             NUMBER;
84414 l_accted_amt_idx              NUMBER;
84415 l_acc_rev_flag                VARCHAR2(1);
84416 l_accrual_line_num            NUMBER;
84417 l_tmp_amt                     NUMBER;
84418 l_acc_rev_natural_side_code   VARCHAR2(1);
84419 
84420 l_num_entries                 NUMBER;
84424 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
84421 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
84422 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
84423 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
84425 l_recog_line_1                NUMBER;
84426 l_recog_line_2                NUMBER;
84427 
84428 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
84429 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
84430 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
84431 
84432 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
84433 
84434 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
84435 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
84436 
84437 ---------------------------------------------------------------------------------------------------------------
84438 
84439 
84440 --
84441 -- bulk performance
84442 --
84443 l_balance_type_code           VARCHAR2(1);
84444 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
84445 l_log_module                  VARCHAR2(240);
84446 
84447 --
84448 -- Upgrade strategy
84449 --
84450 l_actual_upg_option           VARCHAR2(1);
84451 l_enc_upg_option           VARCHAR2(1);
84452 
84453 --
84454 BEGIN
84455 --
84456 IF g_log_enabled THEN
84457       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_151';
84458 END IF;
84459 --
84460 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84461 
84462       trace
84463          (p_msg      => 'BEGIN of AcctLineType_151'
84464          ,p_level    => C_LEVEL_PROCEDURE
84465          ,p_module   => l_log_module);
84466 
84467 END IF;
84468 --
84469 l_component_type             := 'AMB_JLT';
84470 l_component_code             := 'AP_LIAB_DM';
84471 l_component_type_code        := 'S';
84472 l_component_appl_id          :=  200;
84473 l_amb_context_code           := 'DEFAULT';
84474 l_entity_code                := 'AP_INVOICES';
84475 l_event_class_code           := 'DEBIT MEMOS';
84476 l_event_type_code            := 'DEBIT MEMOS_ALL';
84477 l_line_definition_owner_code := 'S';
84478 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
84479 --
84480 l_balance_type_code          := 'A';
84481 l_segment                     := NULL;
84482 l_ccid                        := NULL;
84483 l_adr_transaction_coa_id      := NULL;
84484 l_adr_accounting_coa_id       := NULL;
84485 l_adr_flexfield_segment_code  := NULL;
84486 l_adr_flex_value_set_id       := NULL;
84487 l_adr_value_type_code         := NULL;
84488 l_adr_value_combination_id    := NULL;
84489 l_adr_value_segment_code      := NULL;
84490 
84491 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
84492 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
84493 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
84494 l_budgetary_control_flag     := 'N';
84495 
84496 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
84497 l_bflow_applied_to_amt       := NULL; -- 5132302
84498 l_entered_amt_idx            := NULL;          -- 4262811
84499 l_accted_amt_idx             := NULL;          -- 4262811
84500 l_acc_rev_flag               := NULL;          -- 4262811
84501 l_accrual_line_num           := NULL;          -- 4262811
84502 l_tmp_amt                    := NULL;          -- 4262811
84503 --
84504  
84505 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
84506     l_balance_type_code <> 'B' THEN
84507 IF (NVL(p_source_15,'
84508 ') <>  'BALANCING_SEGMENT' AND 
84509 NVL(p_source_15,'
84510 ') <>  'ACCOUNT_SEGMENT_VALUE') AND 
84511 NVL(p_source_142,'
84512 ') <>  'Y'
84513  THEN 
84514 
84515    --
84516    XLA_AE_LINES_PKG.SetNewLine;
84517 
84518    p_balance_type_code          := l_balance_type_code;
84519    -- set the flag so later we will know whether the gain loss line needs to be created
84520    
84521    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
84522      p_actual_flag :='A';
84523    END IF;
84524 
84525    --
84526    -- bulk performance
84527    --
84528    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
84529                                       p_header_num   => 0); -- 4262811
84530    --
84531    -- set accounting line options
84532    --
84533    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
84534            p_natural_side_code          => 'C'
84535          , p_gain_or_loss_flag          => 'N'
84536          , p_gl_transfer_mode_code      => 'S'
84537          , p_acct_entry_type_code       => 'A'
84538          , p_switch_side_flag           => 'Y'
84539          , p_merge_duplicate_code       => 'A'
84540          );
84541    --
84542    l_acc_rev_natural_side_code := 'D';  -- 4262811
84543    -- 
84544    --
84545    -- set accounting line type info
84546    --
84547    xla_ae_lines_pkg.SetAcctLineType
84548       (p_component_type             => l_component_type
84549       ,p_event_type_code            => l_event_type_code
84550       ,p_line_definition_owner_code => l_line_definition_owner_code
84551       ,p_line_definition_code       => l_line_definition_code
84552       ,p_accounting_line_code       => l_component_code
84553       ,p_accounting_line_type_code  => l_component_type_code
84557       ,p_event_class_code           => l_event_class_code);
84554       ,p_accounting_line_appl_id    => l_component_appl_id
84555       ,p_amb_context_code           => l_amb_context_code
84556       ,p_entity_code                => l_entity_code
84558    --
84559    -- set accounting class
84560    --
84561    xla_ae_lines_pkg.SetAcctClass(
84562            p_accounting_class_code  => 'LIABILITY'
84563          , p_ae_header_id           => l_ae_header_id
84564          );
84565 
84566    --
84567    -- set rounding class
84568    --
84569    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
84570                       'LIABILITY';
84571 
84572    --
84573    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
84574    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
84575    --
84576    -- bulk performance
84577    --
84578    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
84579 
84580    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
84581       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
84582 
84583    -- 4955764
84584    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
84585       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
84586 
84587    -- 4458381 Public Sector Enh
84588    
84589    --
84590    -- set accounting attributes for the line type
84591    --
84592    l_entered_amt_idx := 23;
84593    l_accted_amt_idx  := 28;
84594    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
84595    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
84596    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
84597    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
84598    l_rec_acct_attrs.array_num_value(2)  := 
84599 xla_ae_sources_pkg.GetSystemSourceNum(
84600    p_source_code           => 'XLA_EVENT_APPL_ID'
84601  , p_source_type_code      => 'Y'
84602  , p_source_application_id =>  602
84603 );
84604    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
84605    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
84606    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
84607    l_rec_acct_attrs.array_char_value(4)  := 
84608 xla_ae_sources_pkg.GetSystemSourceChar(
84609    p_source_code           => 'XLA_ENTITY_CODE'
84610  , p_source_type_code      => 'Y'
84611  , p_source_application_id =>  602
84612 );
84613    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
84614    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
84615    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
84616    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
84617    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
84618    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
84619    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
84620    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
84621    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
84622    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
84623    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
84624    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
84625    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
84626    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
84627    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
84628    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
84629    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
84630    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
84631    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
84632    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
84633    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
84634    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
84635    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
84636    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
84637    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
84638    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
84639    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
84640    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
84641    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
84642    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
84643    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
84644    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
84645    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
84646    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
84647    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
84648    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
84649    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
84650    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
84651    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
84652    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
84653    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
84654    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
84658    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
84655    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
84656    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
84657    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
84659    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
84660    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
84661    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
84662    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
84663    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
84664    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
84665    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
84666    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
84667    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
84668    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
84669    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
84670    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
84671    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
84672    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
84673    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
84674    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
84675    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
84676    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
84677    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
84678    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
84679    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
84680    l_rec_acct_attrs.array_num_value(38)  := p_source_86;
84681    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
84682    l_rec_acct_attrs.array_num_value(39)  := p_source_87;
84683    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
84684    l_rec_acct_attrs.array_num_value(40)  := p_source_88;
84685    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
84686    l_rec_acct_attrs.array_num_value(41)  := p_source_89;
84687    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
84688    l_rec_acct_attrs.array_num_value(42)  := p_source_90;
84689 
84690    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
84691    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
84692 
84693    ---------------------------------------------------------------------------------------------------------------
84694    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
84695    ---------------------------------------------------------------------------------------------------------------
84696    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
84697 
84698    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
84699    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
84700 
84701    IF xla_accounting_cache_pkg.GetValueChar
84702          (p_source_code         => 'LEDGER_CATEGORY_CODE'
84703          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
84704    AND l_bflow_method_code = 'PRIOR_ENTRY'
84705 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
84706    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
84707          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
84708        )
84709    THEN
84710          xla_ae_lines_pkg.BflowUpgEntry
84711            (p_business_method_code    => l_bflow_method_code
84712            ,p_business_class_code     => l_bflow_class_code
84713            ,p_balance_type            => l_balance_type_code);
84714    ELSE
84715       NULL;
84716 -- No business flow processing for business flow method of NONE.
84717    END IF;
84718 
84719    --
84720    -- call analytical criteria
84721    --
84722    
84723    --
84724    -- call description
84725    --
84726    
84727 xla_ae_lines_pkg.SetLineDescription(
84728    p_ae_header_id => l_ae_header_id
84729   ,p_description  => Description_1 (
84730      p_application_id         => p_application_id
84731    , p_ae_header_id           => l_ae_header_id 
84732 , p_source_1 => p_source_1
84733    )
84734 );
84735 
84736 
84737    --
84738    -- call ADRs
84739    -- Bug 4922099
84740    --
84741    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
84742         (NVL(l_actual_upg_option, 'N') = 'O') OR
84743         (NVL(l_enc_upg_option, 'N') = 'O')
84744       )
84745    THEN
84746    NULL;
84747    --
84748    --
84749    
84750   l_ccid := AcctDerRule_34(
84751            p_application_id           => p_application_id
84752          , p_ae_header_id             => l_ae_header_id 
84753 , p_source_34 => p_source_34
84754          , x_transaction_coa_id       => l_adr_transaction_coa_id
84755          , x_accounting_coa_id        => l_adr_accounting_coa_id
84756          , x_value_type_code          => l_adr_value_type_code
84757          , p_side                     => 'NA'
84758    );
84759 
84760    xla_ae_lines_pkg.set_ccid(
84761     p_code_combination_id          => l_ccid
84762   , p_value_type_code              => l_adr_value_type_code
84763   , p_transaction_coa_id           => l_adr_transaction_coa_id
84764   , p_accounting_coa_id            => l_adr_accounting_coa_id
84765   , p_adr_code                     => 'AP_LIAB'
84766   , p_adr_type_code                => 'S'
84770   , p_component_appl_id            => l_component_appl_id
84767   , p_component_type               => l_component_type
84768   , p_component_code               => l_component_code
84769   , p_component_type_code          => l_component_type_code
84771   , p_amb_context_code             => l_amb_context_code
84772   , p_side                         => 'NA'
84773   );
84774 
84775 
84776    --
84777    --
84778    END IF;
84779    --
84780    -- Bug 4922099
84781    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
84782           (NVL(l_enc_upg_option, 'N') = 'O')
84783         ) AND
84784         (l_bflow_method_code = 'PRIOR_ENTRY')
84785       )
84786    THEN
84787       IF
84788       --
84789       1 = 2
84790       --
84791       THEN
84792       xla_accounting_err_pkg.build_message
84793                                     (p_appli_s_name            => 'XLA'
84794                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
84795                                     ,p_token_1                 => 'LINE_NUMBER'
84796                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
84797                                     ,p_token_2                 => 'LINE_TYPE_NAME'
84798                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
84799                                                                              l_component_type
84800                                                                             ,l_component_code
84801                                                                             ,l_component_type_code
84802                                                                             ,l_component_appl_id
84803                                                                             ,l_amb_context_code
84804                                                                             ,l_entity_code
84805                                                                             ,l_event_class_code
84806                                                                            )
84807                                     ,p_token_3                 => 'OWNER'
84808                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
84809                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
84810                                                                           ,p_lookup_code    => l_component_type_code
84811                                                                          )
84812                                     ,p_token_4                 => 'PRODUCT_NAME'
84813                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
84814                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
84815                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
84816                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
84817                                     ,p_ae_header_id            =>  NULL
84818                                        );
84819 
84820         IF (C_LEVEL_ERROR>= g_log_level) THEN
84821                  trace
84822                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
84823                       ,p_level    => C_LEVEL_ERROR
84824                       ,p_module   => l_log_module);
84825         END IF;
84826       END IF;
84827    END IF;
84828    --
84829    --
84830    ------------------------------------------------------------------------------------------------
84831    -- 4219869 Business Flow
84832    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
84833    -- Prior Entry.  Currently, the following code is always generated.
84834    ------------------------------------------------------------------------------------------------
84835    XLA_AE_LINES_PKG.ValidateCurrentLine;
84836 
84837    ------------------------------------------------------------------------------------
84838    -- 4219869 Business Flow
84839    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
84840    ------------------------------------------------------------------------------------
84841    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
84842 
84843    ----------------------------------------------------------------------------------
84844    -- 4219869 Business Flow
84845    -- Update journal entry status -- Need to generate this within IF <condition>
84846    ----------------------------------------------------------------------------------
84847    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
84848          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
84849          ,p_balance_type_code => l_balance_type_code
84850          );
84851 
84852    -------------------------------------------------------------------------------------------
84853    -- 4262811 - Generate the Accrual Reversal lines
84854    -------------------------------------------------------------------------------------------
84855    BEGIN
84856       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
84857                               (g_array_event(p_event_id).array_value_num('header_index'));
84858       IF l_acc_rev_flag IS NULL THEN
84859          l_acc_rev_flag := 'N';
84860       END IF;
84861    EXCEPTION
84862       WHEN OTHERS THEN
84866    IF (l_acc_rev_flag = 'Y') THEN
84863          l_acc_rev_flag := 'N';
84864    END;
84865    --
84867 
84868        -- 4645092  ------------------------------------------------------------------------------
84869        -- To allow MPA report to determine if it should generate report process
84870        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
84871        ------------------------------------------------------------------------------------------
84872 
84873        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
84874        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
84875    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
84876    -- call ADRs
84877    -- Bug 4922099
84878    --
84879    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
84880         (NVL(l_actual_upg_option, 'N') = 'O') OR
84881         (NVL(l_enc_upg_option, 'N') = 'O')
84882       )
84883    THEN
84884    NULL;
84885    --
84886    --
84887    
84888   l_ccid := AcctDerRule_34(
84889            p_application_id           => p_application_id
84890          , p_ae_header_id             => l_ae_header_id 
84891 , p_source_34 => p_source_34
84892          , x_transaction_coa_id       => l_adr_transaction_coa_id
84893          , x_accounting_coa_id        => l_adr_accounting_coa_id
84894          , x_value_type_code          => l_adr_value_type_code
84895          , p_side                     => 'NA'
84896    );
84897 
84898    xla_ae_lines_pkg.set_ccid(
84899     p_code_combination_id          => l_ccid
84900   , p_value_type_code              => l_adr_value_type_code
84901   , p_transaction_coa_id           => l_adr_transaction_coa_id
84902   , p_accounting_coa_id            => l_adr_accounting_coa_id
84903   , p_adr_code                     => 'AP_LIAB'
84904   , p_adr_type_code                => 'S'
84905   , p_component_type               => l_component_type
84906   , p_component_code               => l_component_code
84907   , p_component_type_code          => l_component_type_code
84908   , p_component_appl_id            => l_component_appl_id
84909   , p_amb_context_code             => l_amb_context_code
84910   , p_side                         => 'NA'
84911   );
84912 
84913 
84914    --
84915    --
84916    END IF;
84917 
84918        --
84919        -- Update the line information that should be overwritten
84920        --
84921        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
84922                                          p_header_num   => 1);
84923        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
84924 
84925        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
84926 
84927        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
84928           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
84929        END IF;
84930 
84931       --
84932       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
84933       --
84934       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
84935           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
84936       ELSE
84937           ---------------------------------------------------------------------------------------------------
84938           -- 4262811a Switch Sign
84939           ---------------------------------------------------------------------------------------------------
84940           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
84941           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
84942                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84943           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
84944                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84945           -- 5132302
84946           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
84947                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
84948 
84949       END IF;
84950 
84951       -- 4955764
84952       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
84953       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
84954 
84955 
84956       XLA_AE_LINES_PKG.ValidateCurrentLine;
84957       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
84958 
84959       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
84960                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
84961                ,p_balance_type_code => l_balance_type_code);
84962 
84963    END IF;
84964 
84965    -----------------------------------------------------------------------------------------
84966    -- 4262811 Multiperiod Accounting
84967    -----------------------------------------------------------------------------------------
84968      -- No MPA option is assigned.
84969 
84970 
84971 END IF;
84972 END IF;
84973 --
84974 
84975 --
84976 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84977    trace
84981 END IF;
84978       (p_msg      => 'END of AcctLineType_151'
84979       ,p_level    => C_LEVEL_PROCEDURE
84980       ,p_module   => l_log_module);
84982 --
84983 EXCEPTION
84984   WHEN xla_exceptions_pkg.application_exception THEN
84985       RAISE;
84986   WHEN OTHERS THEN
84987        xla_exceptions_pkg.raise_message
84988            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_151');
84989 END AcctLineType_151;
84990 --
84991 
84992 ---------------------------------------
84993 --
84994 -- PRIVATE FUNCTION
84995 --         AcctLineType_152
84996 --
84997 ---------------------------------------
84998 PROCEDURE AcctLineType_152 (
84999   p_application_id        IN NUMBER
85000  ,p_event_id              IN NUMBER
85001  ,p_calculate_acctd_flag  IN VARCHAR2
85002  ,p_calculate_g_l_flag    IN VARCHAR2
85003  ,p_actual_flag           IN OUT VARCHAR2
85004  ,p_balance_type_code     OUT VARCHAR2
85005  ,p_gain_or_loss_ref      OUT VARCHAR2
85006  
85007 --Invoice Distribution Description
85008  , p_source_1            IN VARCHAR2
85009 --Automatic Offsets Value
85010  , p_source_15            IN VARCHAR2
85011  , p_source_15_meaning    IN VARCHAR2
85012 --Invoice Distribution Ledger Amount
85013  , p_source_21            IN NUMBER
85014 --Invoice Liability Account
85015  , p_source_34            IN NUMBER
85016 --Accounting Reversal Indicator
85017  , p_source_53            IN VARCHAR2
85018 --Distribution Link Type
85019  , p_source_55            IN VARCHAR2
85020 --Allocation to Main Distribution Identifier
85021  , p_source_57            IN NUMBER
85022 --Invoice Identifier
85023  , p_source_58            IN NUMBER
85024 --Invoice Distribution Identifier
85025  , p_source_64            IN NUMBER
85026 --Payables Encumbrance Upgrade Credit Account
85027  , p_source_65            IN NUMBER
85028 --Payables Encumbrance Upgrade Credit Amount
85029  , p_source_66            IN NUMBER
85030 --Invoice Currency Code
85031  , p_source_67            IN VARCHAR2
85032 --Payables Encumbrance Upgrade Credit Base Amount
85033  , p_source_68            IN NUMBER
85034 --Payables Encumbrance Upgrade Debit Account
85035  , p_source_69            IN NUMBER
85036 --Payables Encumbrance Upgrade Debit Amount
85037  , p_source_70            IN NUMBER
85038 --Payables Encumbrance Upgrade Debit Base Amount
85039  , p_source_71            IN NUMBER
85040 --Payables Encumbrance Upgrade Option
85041  , p_source_72            IN VARCHAR2
85042 --Invoice Distribution Amount
85043  , p_source_73            IN NUMBER
85044 --Deferred Accounting End Date
85045  , p_source_77            IN DATE
85046 --Deferred Accounting Option
85047  , p_source_78            IN VARCHAR2
85048 --Deferred Accounting Start Date
85049  , p_source_79            IN DATE
85050 --Override Accounted Amount Indicator
85051  , p_source_80            IN VARCHAR2
85052  , p_source_80_meaning    IN VARCHAR2
85053 --Invoice Supplier Identifier
85054  , p_source_81            IN NUMBER
85055 --Invoice Supplier Site Identifier
85056  , p_source_82            IN NUMBER
85057 --Third Party Type
85058  , p_source_83            IN VARCHAR2
85059 --Parent Reversal Identifier
85060  , p_source_84            IN NUMBER
85061 --Invoice Distribution Tax Line Identifier
85062  , p_source_86            IN NUMBER
85063 --Invoice Distribution Tax Distribution Identifier from Tax
85064  , p_source_87            IN NUMBER
85065 --Invoice Distribution Summary Tax Line Identifier
85066  , p_source_88            IN NUMBER
85067 --Payables Upgrade Credit Encumbrance Type Identifier
85068  , p_source_89            IN NUMBER
85069 --Payables Upgrade Debit Encumbrance Type Identifier
85070  , p_source_90            IN NUMBER
85071 --Business Flow Accounts Payable Application Identifier
85072  , p_source_91            IN NUMBER
85073 --Business Flow Invoice Distribution Type
85074  , p_source_92            IN VARCHAR2
85075 --Business Flow Invoice Entity Code
85076  , p_source_93            IN VARCHAR2
85077 --Business Flow Invoice Distribution Identifier
85078  , p_source_94            IN NUMBER
85079 --Business Flow Invoice Identifier
85080  , p_source_95            IN NUMBER
85081 --Self-Assessed Tax Flag
85082  , p_source_142            IN VARCHAR2
85083  , p_source_142_meaning    IN VARCHAR2
85084 --Invoice Exchange Date
85085  , p_source_143            IN DATE
85086 --Invoice Exchange Rate
85087  , p_source_144            IN NUMBER
85088 --Invoice Exchange Rate Type
85089  , p_source_145            IN VARCHAR2
85090 )
85091 IS
85092 
85093 l_component_type              VARCHAR2(80);
85094 l_component_code              VARCHAR2(30);
85095 l_component_type_code         VARCHAR2(1);
85096 l_component_appl_id           INTEGER;
85097 l_amb_context_code            VARCHAR2(30);
85098 l_entity_code                 VARCHAR2(30);
85099 l_event_class_code            VARCHAR2(30);
85100 l_ae_header_id                NUMBER;
85101 l_event_type_code             VARCHAR2(30);
85102 l_line_definition_code        VARCHAR2(30);
85103 l_line_definition_owner_code  VARCHAR2(1);
85104 --
85105 -- adr variables
85106 l_segment                     VARCHAR2(30);
85107 l_ccid                        NUMBER;
85108 l_adr_transaction_coa_id      NUMBER;
85109 l_adr_accounting_coa_id       NUMBER;
85110 l_adr_flexfield_segment_code  VARCHAR2(30);
85111 l_adr_flex_value_set_id       NUMBER;
85115 
85112 l_adr_value_type_code         VARCHAR2(30);
85113 l_adr_value_combination_id    NUMBER;
85114 l_adr_value_segment_code      VARCHAR2(30);
85116 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
85117 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
85118 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
85119 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
85120 
85121 -- 4262811 Variables ------------------------------------------------------------------------------------------
85122 l_entered_amt_idx             NUMBER;
85123 l_accted_amt_idx              NUMBER;
85124 l_acc_rev_flag                VARCHAR2(1);
85125 l_accrual_line_num            NUMBER;
85126 l_tmp_amt                     NUMBER;
85127 l_acc_rev_natural_side_code   VARCHAR2(1);
85128 
85129 l_num_entries                 NUMBER;
85130 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
85131 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
85132 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
85133 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
85134 l_recog_line_1                NUMBER;
85135 l_recog_line_2                NUMBER;
85136 
85137 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
85138 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
85139 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
85140 
85141 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
85142 
85143 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
85144 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
85145 
85146 ---------------------------------------------------------------------------------------------------------------
85147 
85148 
85149 --
85150 -- bulk performance
85151 --
85152 l_balance_type_code           VARCHAR2(1);
85153 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
85154 l_log_module                  VARCHAR2(240);
85155 
85156 --
85157 -- Upgrade strategy
85158 --
85159 l_actual_upg_option           VARCHAR2(1);
85160 l_enc_upg_option           VARCHAR2(1);
85161 
85162 --
85163 BEGIN
85164 --
85165 IF g_log_enabled THEN
85166       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_152';
85167 END IF;
85168 --
85169 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85170 
85171       trace
85172          (p_msg      => 'BEGIN of AcctLineType_152'
85173          ,p_level    => C_LEVEL_PROCEDURE
85174          ,p_module   => l_log_module);
85175 
85176 END IF;
85177 --
85178 l_component_type             := 'AMB_JLT';
85179 l_component_code             := 'AP_LIAB_DM_AOS_AS';
85180 l_component_type_code        := 'S';
85181 l_component_appl_id          :=  200;
85182 l_amb_context_code           := 'DEFAULT';
85183 l_entity_code                := 'AP_INVOICES';
85184 l_event_class_code           := 'DEBIT MEMOS';
85185 l_event_type_code            := 'DEBIT MEMOS_ALL';
85186 l_line_definition_owner_code := 'S';
85187 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
85188 --
85189 l_balance_type_code          := 'A';
85190 l_segment                     := NULL;
85191 l_ccid                        := NULL;
85192 l_adr_transaction_coa_id      := NULL;
85193 l_adr_accounting_coa_id       := NULL;
85194 l_adr_flexfield_segment_code  := NULL;
85195 l_adr_flex_value_set_id       := NULL;
85196 l_adr_value_type_code         := NULL;
85197 l_adr_value_combination_id    := NULL;
85198 l_adr_value_segment_code      := NULL;
85199 
85200 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
85201 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
85202 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
85203 l_budgetary_control_flag     := 'N';
85204 
85205 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
85206 l_bflow_applied_to_amt       := NULL; -- 5132302
85207 l_entered_amt_idx            := NULL;          -- 4262811
85208 l_accted_amt_idx             := NULL;          -- 4262811
85209 l_acc_rev_flag               := NULL;          -- 4262811
85210 l_accrual_line_num           := NULL;          -- 4262811
85211 l_tmp_amt                    := NULL;          -- 4262811
85212 --
85213  
85214 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
85215     l_balance_type_code <> 'B' THEN
85216 IF NVL(p_source_15,'
85217 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
85218 NVL(p_source_142,'
85219 ') <>  'Y'
85220  THEN 
85221 
85222    --
85223    XLA_AE_LINES_PKG.SetNewLine;
85224 
85225    p_balance_type_code          := l_balance_type_code;
85226    -- set the flag so later we will know whether the gain loss line needs to be created
85227    
85228    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
85229      p_actual_flag :='A';
85230    END IF;
85231 
85232    --
85233    -- bulk performance
85234    --
85235    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
85236                                       p_header_num   => 0); -- 4262811
85237    --
85238    -- set accounting line options
85239    --
85240    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
85241            p_natural_side_code          => 'C'
85242          , p_gain_or_loss_flag          => 'N'
85246          , p_merge_duplicate_code       => 'A'
85243          , p_gl_transfer_mode_code      => 'S'
85244          , p_acct_entry_type_code       => 'A'
85245          , p_switch_side_flag           => 'Y'
85247          );
85248    --
85249    l_acc_rev_natural_side_code := 'D';  -- 4262811
85250    -- 
85251    --
85252    -- set accounting line type info
85253    --
85254    xla_ae_lines_pkg.SetAcctLineType
85255       (p_component_type             => l_component_type
85256       ,p_event_type_code            => l_event_type_code
85257       ,p_line_definition_owner_code => l_line_definition_owner_code
85258       ,p_line_definition_code       => l_line_definition_code
85259       ,p_accounting_line_code       => l_component_code
85260       ,p_accounting_line_type_code  => l_component_type_code
85261       ,p_accounting_line_appl_id    => l_component_appl_id
85262       ,p_amb_context_code           => l_amb_context_code
85263       ,p_entity_code                => l_entity_code
85264       ,p_event_class_code           => l_event_class_code);
85265    --
85266    -- set accounting class
85267    --
85268    xla_ae_lines_pkg.SetAcctClass(
85269            p_accounting_class_code  => 'LIABILITY'
85270          , p_ae_header_id           => l_ae_header_id
85271          );
85272 
85273    --
85274    -- set rounding class
85275    --
85276    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
85277                       'LIABILITY';
85278 
85279    --
85280    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
85281    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
85282    --
85283    -- bulk performance
85284    --
85285    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
85286 
85287    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
85288       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
85289 
85290    -- 4955764
85291    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
85292       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
85293 
85294    -- 4458381 Public Sector Enh
85295    
85296    --
85297    -- set accounting attributes for the line type
85298    --
85299    l_entered_amt_idx := 23;
85300    l_accted_amt_idx  := 28;
85301    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
85302    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
85303    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
85304    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
85305    l_rec_acct_attrs.array_num_value(2)  := 
85306 xla_ae_sources_pkg.GetSystemSourceNum(
85307    p_source_code           => 'XLA_EVENT_APPL_ID'
85308  , p_source_type_code      => 'Y'
85309  , p_source_application_id =>  602
85310 );
85311    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
85312    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
85313    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
85314    l_rec_acct_attrs.array_char_value(4)  := 
85315 xla_ae_sources_pkg.GetSystemSourceChar(
85316    p_source_code           => 'XLA_ENTITY_CODE'
85317  , p_source_type_code      => 'Y'
85318  , p_source_application_id =>  602
85319 );
85320    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
85321    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
85322    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
85323    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
85324    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
85325    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
85326    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
85327    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
85328    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
85329    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
85330    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
85331    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
85332    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
85333    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
85334    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
85335    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
85336    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
85337    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
85338    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
85339    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
85340    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
85341    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
85342    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
85343    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
85344    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
85345    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
85346    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
85347    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
85348    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
85349    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
85353    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
85350    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
85351    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
85352    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
85354    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
85355    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
85356    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
85357    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
85358    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
85359    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
85360    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
85361    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
85362    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
85363    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
85364    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
85365    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
85366    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
85367    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
85368    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
85369    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
85370    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
85371    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
85372    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
85373    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
85374    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
85375    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
85376    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
85377    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
85378    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
85379    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
85380    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
85381    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
85382    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
85383    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
85384    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
85385    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
85386    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
85387    l_rec_acct_attrs.array_num_value(38)  := p_source_86;
85388    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
85389    l_rec_acct_attrs.array_num_value(39)  := p_source_87;
85390    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
85391    l_rec_acct_attrs.array_num_value(40)  := p_source_88;
85392    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
85393    l_rec_acct_attrs.array_num_value(41)  := p_source_89;
85394    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
85395    l_rec_acct_attrs.array_num_value(42)  := p_source_90;
85396 
85397    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
85398    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
85399 
85400    ---------------------------------------------------------------------------------------------------------------
85401    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
85402    ---------------------------------------------------------------------------------------------------------------
85403    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
85404 
85405    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
85406    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
85407 
85408    IF xla_accounting_cache_pkg.GetValueChar
85409          (p_source_code         => 'LEDGER_CATEGORY_CODE'
85410          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
85411    AND l_bflow_method_code = 'PRIOR_ENTRY'
85412 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
85413    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
85414          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
85415        )
85416    THEN
85417          xla_ae_lines_pkg.BflowUpgEntry
85418            (p_business_method_code    => l_bflow_method_code
85419            ,p_business_class_code     => l_bflow_class_code
85420            ,p_balance_type            => l_balance_type_code);
85421    ELSE
85422       NULL;
85423 XLA_AE_LINES_PKG.business_flow_validation(
85424                                 p_business_method_code     => l_bflow_method_code
85425                                ,p_business_class_code      => l_bflow_class_code
85426                                ,p_inherit_description_flag => l_inherit_desc_flag);
85427    END IF;
85428 
85429    --
85430    -- call analytical criteria
85431    --
85432    
85433    --
85434    -- call description
85435    --
85436    
85437 xla_ae_lines_pkg.SetLineDescription(
85438    p_ae_header_id => l_ae_header_id
85439   ,p_description  => Description_1 (
85440      p_application_id         => p_application_id
85441    , p_ae_header_id           => l_ae_header_id 
85442 , p_source_1 => p_source_1
85443    )
85444 );
85445 
85446 
85447    --
85448    -- call ADRs
85449    -- Bug 4922099
85450    --
85451    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
85455    THEN
85452         (NVL(l_actual_upg_option, 'N') = 'O') OR
85453         (NVL(l_enc_upg_option, 'N') = 'O')
85454       )
85456    NULL;
85457    --
85458    --
85459    
85460    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
85461      p_code_combination_id      => TO_NUMBER(C_NUM)
85462    , p_value_type_code          => NULL
85463    , p_transaction_coa_id       => null
85464    , p_accounting_coa_id        => null
85465    , p_adr_code                 => NULL
85466    , p_adr_type_code            => NULL
85467    , p_component_type           => l_component_type
85468    , p_component_code           => l_component_code
85469    , p_component_type_code      => l_component_type_code
85470    , p_component_appl_id        => l_component_appl_id
85471    , p_amb_context_code         => l_amb_context_code
85472    , p_side                     => NULL
85473    );
85474 
85475    
85476   -- initialise segments
85477   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
85478   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
85479   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
85480   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
85481   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
85482   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
85483   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
85484   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
85485   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
85486   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85487   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85488   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85489   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85490   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85491   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85492   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85493   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85494   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85495   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85496   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85497   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85498   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85499   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85500   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85501   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85502   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85503   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85504   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85505   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85506   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85507   --
85508 
85509    --
85510 
85511 
85512    l_segment := AcctDerRule_15(
85513            p_application_id           => p_application_id
85514          , p_ae_header_id             => l_ae_header_id 
85515 , p_source_34 => p_source_34
85516          , x_transaction_coa_id       => l_adr_transaction_coa_id
85517          , x_accounting_coa_id        => l_adr_accounting_coa_id
85518          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
85519          , x_flex_value_set_id        => l_adr_flex_value_set_id
85520          , x_value_type_code          => l_adr_value_type_code
85521          , x_value_combination_id     => l_adr_value_combination_id
85522          , x_value_segment_code       => l_adr_value_segment_code
85523          , p_side                     => 'NA'
85524          , p_override_seg_flag        => 'Y'
85525    );
85526 
85527    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
85528 
85529       xla_ae_lines_pkg.set_segment(
85530           p_to_segment_code         => 'GL_ACCOUNT'
85531         , p_segment_value           => l_segment
85532         , p_from_segment_code       => l_adr_value_segment_code
85533         , p_from_combination_id     => l_adr_value_combination_id
85534         , p_value_type_code         => l_adr_value_type_code
85535         , p_transaction_coa_id      => l_adr_transaction_coa_id
85536         , p_accounting_coa_id       => l_adr_accounting_coa_id
85537         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
85538         , p_flex_value_set_id       => l_adr_flex_value_set_id
85539         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
85540         , p_adr_type_code           => 'S'
85541         , p_component_type          => l_component_type
85542         , p_component_code          => l_component_code
85543         , p_component_type_code     => l_component_type_code
85547         , p_event_class_code        => 'DEBIT MEMOS'
85544         , p_component_appl_id       => l_component_appl_id
85545         , p_amb_context_code        => l_amb_context_code
85546         , p_entity_code             => 'AP_INVOICES'
85548         , p_side                    => 'NA'
85549         );
85550 
85551   END IF;
85552 
85553    --
85554    --
85555    END IF;
85556    --
85557    -- Bug 4922099
85558    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
85559           (NVL(l_enc_upg_option, 'N') = 'O')
85560         ) AND
85561         (l_bflow_method_code = 'PRIOR_ENTRY')
85562       )
85563    THEN
85564       IF
85565       --
85566       1 = 2
85567       --
85568       THEN
85569       xla_accounting_err_pkg.build_message
85570                                     (p_appli_s_name            => 'XLA'
85571                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
85572                                     ,p_token_1                 => 'LINE_NUMBER'
85573                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
85574                                     ,p_token_2                 => 'LINE_TYPE_NAME'
85575                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
85576                                                                              l_component_type
85577                                                                             ,l_component_code
85578                                                                             ,l_component_type_code
85579                                                                             ,l_component_appl_id
85580                                                                             ,l_amb_context_code
85581                                                                             ,l_entity_code
85582                                                                             ,l_event_class_code
85583                                                                            )
85584                                     ,p_token_3                 => 'OWNER'
85585                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
85586                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
85587                                                                           ,p_lookup_code    => l_component_type_code
85588                                                                          )
85589                                     ,p_token_4                 => 'PRODUCT_NAME'
85590                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
85591                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
85592                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
85593                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
85594                                     ,p_ae_header_id            =>  NULL
85595                                        );
85596 
85597         IF (C_LEVEL_ERROR>= g_log_level) THEN
85598                  trace
85599                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
85600                       ,p_level    => C_LEVEL_ERROR
85601                       ,p_module   => l_log_module);
85602         END IF;
85603       END IF;
85604    END IF;
85605    --
85606    --
85607    ------------------------------------------------------------------------------------------------
85608    -- 4219869 Business Flow
85609    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
85610    -- Prior Entry.  Currently, the following code is always generated.
85611    ------------------------------------------------------------------------------------------------
85612    XLA_AE_LINES_PKG.ValidateCurrentLine;
85613 
85614    ------------------------------------------------------------------------------------
85615    -- 4219869 Business Flow
85616    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
85617    ------------------------------------------------------------------------------------
85618    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
85619 
85620    ----------------------------------------------------------------------------------
85621    -- 4219869 Business Flow
85622    -- Update journal entry status -- Need to generate this within IF <condition>
85623    ----------------------------------------------------------------------------------
85624    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
85625          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
85626          ,p_balance_type_code => l_balance_type_code
85627          );
85628 
85629    -------------------------------------------------------------------------------------------
85630    -- 4262811 - Generate the Accrual Reversal lines
85631    -------------------------------------------------------------------------------------------
85632    BEGIN
85633       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
85634                               (g_array_event(p_event_id).array_value_num('header_index'));
85635       IF l_acc_rev_flag IS NULL THEN
85636          l_acc_rev_flag := 'N';
85637       END IF;
85638    EXCEPTION
85639       WHEN OTHERS THEN
85640          l_acc_rev_flag := 'N';
85641    END;
85642    --
85646        -- To allow MPA report to determine if it should generate report process
85643    IF (l_acc_rev_flag = 'Y') THEN
85644 
85645        -- 4645092  ------------------------------------------------------------------------------
85647        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
85648        ------------------------------------------------------------------------------------------
85649 
85650        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
85651        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
85652    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
85653    -- call ADRs
85654    -- Bug 4922099
85655    --
85656    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
85657         (NVL(l_actual_upg_option, 'N') = 'O') OR
85658         (NVL(l_enc_upg_option, 'N') = 'O')
85659       )
85660    THEN
85661    NULL;
85662    --
85663    --
85664    
85665    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
85666      p_code_combination_id      => TO_NUMBER(C_NUM)
85667    , p_value_type_code          => NULL
85668    , p_transaction_coa_id       => null
85669    , p_accounting_coa_id        => null
85670    , p_adr_code                 => NULL
85671    , p_adr_type_code            => NULL
85672    , p_component_type           => l_component_type
85673    , p_component_code           => l_component_code
85674    , p_component_type_code      => l_component_type_code
85675    , p_component_appl_id        => l_component_appl_id
85676    , p_amb_context_code         => l_amb_context_code
85677    , p_side                     => NULL
85678    );
85679 
85680    
85681   -- initialise segments
85682   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
85683   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
85684   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
85685   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
85686   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
85687   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
85688   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
85689   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
85690   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
85691   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85692   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85693   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85694   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85695   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85696   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85697   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85698   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85699   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85700   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85701   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85702   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85703   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85704   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85705   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85706   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85707   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85708   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85709   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85710   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85711   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
85712   --
85713 
85714    --
85715 
85716 
85717    l_segment := AcctDerRule_15(
85718            p_application_id           => p_application_id
85719          , p_ae_header_id             => l_ae_header_id 
85720 , p_source_34 => p_source_34
85721          , x_transaction_coa_id       => l_adr_transaction_coa_id
85722          , x_accounting_coa_id        => l_adr_accounting_coa_id
85723          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
85724          , x_flex_value_set_id        => l_adr_flex_value_set_id
85725          , x_value_type_code          => l_adr_value_type_code
85726          , x_value_combination_id     => l_adr_value_combination_id
85727          , x_value_segment_code       => l_adr_value_segment_code
85728          , p_side                     => 'NA'
85729          , p_override_seg_flag        => 'Y'
85730    );
85731 
85732    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
85733 
85734       xla_ae_lines_pkg.set_segment(
85735           p_to_segment_code         => 'GL_ACCOUNT'
85736         , p_segment_value           => l_segment
85737         , p_from_segment_code       => l_adr_value_segment_code
85741         , p_accounting_coa_id       => l_adr_accounting_coa_id
85738         , p_from_combination_id     => l_adr_value_combination_id
85739         , p_value_type_code         => l_adr_value_type_code
85740         , p_transaction_coa_id      => l_adr_transaction_coa_id
85742         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
85743         , p_flex_value_set_id       => l_adr_flex_value_set_id
85744         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
85745         , p_adr_type_code           => 'S'
85746         , p_component_type          => l_component_type
85747         , p_component_code          => l_component_code
85748         , p_component_type_code     => l_component_type_code
85749         , p_component_appl_id       => l_component_appl_id
85750         , p_amb_context_code        => l_amb_context_code
85751         , p_entity_code             => 'AP_INVOICES'
85752         , p_event_class_code        => 'DEBIT MEMOS'
85753         , p_side                    => 'NA'
85754         );
85755 
85756   END IF;
85757 
85758    --
85759    --
85760    END IF;
85761 
85762        --
85763        -- Update the line information that should be overwritten
85764        --
85765        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
85766                                          p_header_num   => 1);
85767        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
85768 
85769        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
85770 
85771        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
85772           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
85773        END IF;
85774 
85775       --
85776       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
85777       --
85778       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
85779           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
85780       ELSE
85781           ---------------------------------------------------------------------------------------------------
85782           -- 4262811a Switch Sign
85783           ---------------------------------------------------------------------------------------------------
85784           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
85785           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
85786                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
85787           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
85788                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
85789           -- 5132302
85790           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
85791                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
85792 
85793       END IF;
85794 
85795       -- 4955764
85796       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
85797       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
85798 
85799 
85800       XLA_AE_LINES_PKG.ValidateCurrentLine;
85801       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
85802 
85803       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
85804                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
85805                ,p_balance_type_code => l_balance_type_code);
85806 
85807    END IF;
85808 
85809    -----------------------------------------------------------------------------------------
85810    -- 4262811 Multiperiod Accounting
85811    -----------------------------------------------------------------------------------------
85812      -- No MPA option is assigned.
85813 
85814 
85815 END IF;
85816 END IF;
85817 --
85818 
85819 --
85820 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85821    trace
85822       (p_msg      => 'END of AcctLineType_152'
85823       ,p_level    => C_LEVEL_PROCEDURE
85824       ,p_module   => l_log_module);
85825 END IF;
85826 --
85827 EXCEPTION
85828   WHEN xla_exceptions_pkg.application_exception THEN
85829       RAISE;
85830   WHEN OTHERS THEN
85831        xla_exceptions_pkg.raise_message
85832            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_152');
85833 END AcctLineType_152;
85834 --
85835 
85836 ---------------------------------------
85837 --
85838 -- PRIVATE FUNCTION
85839 --         AcctLineType_153
85840 --
85841 ---------------------------------------
85842 PROCEDURE AcctLineType_153 (
85843   p_application_id        IN NUMBER
85844  ,p_event_id              IN NUMBER
85845  ,p_calculate_acctd_flag  IN VARCHAR2
85846  ,p_calculate_g_l_flag    IN VARCHAR2
85847  ,p_actual_flag           IN OUT VARCHAR2
85848  ,p_balance_type_code     OUT VARCHAR2
85849  ,p_gain_or_loss_ref      OUT VARCHAR2
85850  
85851 --Invoice Distribution Description
85852  , p_source_1            IN VARCHAR2
85853 --Automatic Offsets Value
85854  , p_source_15            IN VARCHAR2
85855  , p_source_15_meaning    IN VARCHAR2
85856 --Invoice Distribution Ledger Amount
85857  , p_source_21            IN NUMBER
85858 --Invoice Liability Account
85862 --Distribution Link Type
85859  , p_source_34            IN NUMBER
85860 --Accounting Reversal Indicator
85861  , p_source_53            IN VARCHAR2
85863  , p_source_55            IN VARCHAR2
85864 --Allocation to Main Distribution Identifier
85865  , p_source_57            IN NUMBER
85866 --Invoice Identifier
85867  , p_source_58            IN NUMBER
85868 --Invoice Distribution Identifier
85869  , p_source_64            IN NUMBER
85870 --Payables Encumbrance Upgrade Credit Account
85871  , p_source_65            IN NUMBER
85872 --Payables Encumbrance Upgrade Credit Amount
85873  , p_source_66            IN NUMBER
85874 --Invoice Currency Code
85875  , p_source_67            IN VARCHAR2
85876 --Payables Encumbrance Upgrade Credit Base Amount
85877  , p_source_68            IN NUMBER
85878 --Payables Encumbrance Upgrade Debit Account
85879  , p_source_69            IN NUMBER
85880 --Payables Encumbrance Upgrade Debit Amount
85881  , p_source_70            IN NUMBER
85882 --Payables Encumbrance Upgrade Debit Base Amount
85883  , p_source_71            IN NUMBER
85884 --Payables Encumbrance Upgrade Option
85885  , p_source_72            IN VARCHAR2
85886 --Invoice Distribution Amount
85887  , p_source_73            IN NUMBER
85888 --Deferred Accounting End Date
85889  , p_source_77            IN DATE
85890 --Deferred Accounting Option
85891  , p_source_78            IN VARCHAR2
85892 --Deferred Accounting Start Date
85893  , p_source_79            IN DATE
85894 --Override Accounted Amount Indicator
85895  , p_source_80            IN VARCHAR2
85896  , p_source_80_meaning    IN VARCHAR2
85897 --Invoice Supplier Identifier
85898  , p_source_81            IN NUMBER
85899 --Invoice Supplier Site Identifier
85900  , p_source_82            IN NUMBER
85901 --Third Party Type
85902  , p_source_83            IN VARCHAR2
85903 --Parent Reversal Identifier
85904  , p_source_84            IN NUMBER
85905 --Invoice Distribution Tax Line Identifier
85906  , p_source_86            IN NUMBER
85907 --Invoice Distribution Tax Distribution Identifier from Tax
85908  , p_source_87            IN NUMBER
85909 --Invoice Distribution Summary Tax Line Identifier
85910  , p_source_88            IN NUMBER
85911 --Payables Upgrade Credit Encumbrance Type Identifier
85912  , p_source_89            IN NUMBER
85913 --Payables Upgrade Debit Encumbrance Type Identifier
85914  , p_source_90            IN NUMBER
85915 --Business Flow Accounts Payable Application Identifier
85916  , p_source_91            IN NUMBER
85917 --Business Flow Invoice Distribution Type
85918  , p_source_92            IN VARCHAR2
85919 --Business Flow Invoice Entity Code
85920  , p_source_93            IN VARCHAR2
85921 --Business Flow Invoice Distribution Identifier
85922  , p_source_94            IN NUMBER
85923 --Business Flow Invoice Identifier
85924  , p_source_95            IN NUMBER
85925 --Self-Assessed Tax Flag
85926  , p_source_142            IN VARCHAR2
85927  , p_source_142_meaning    IN VARCHAR2
85928 --Invoice Exchange Date
85929  , p_source_143            IN DATE
85930 --Invoice Exchange Rate
85931  , p_source_144            IN NUMBER
85932 --Invoice Exchange Rate Type
85933  , p_source_145            IN VARCHAR2
85934 )
85935 IS
85936 
85937 l_component_type              VARCHAR2(80);
85938 l_component_code              VARCHAR2(30);
85939 l_component_type_code         VARCHAR2(1);
85940 l_component_appl_id           INTEGER;
85941 l_amb_context_code            VARCHAR2(30);
85942 l_entity_code                 VARCHAR2(30);
85943 l_event_class_code            VARCHAR2(30);
85944 l_ae_header_id                NUMBER;
85945 l_event_type_code             VARCHAR2(30);
85946 l_line_definition_code        VARCHAR2(30);
85947 l_line_definition_owner_code  VARCHAR2(1);
85948 --
85949 -- adr variables
85950 l_segment                     VARCHAR2(30);
85951 l_ccid                        NUMBER;
85952 l_adr_transaction_coa_id      NUMBER;
85953 l_adr_accounting_coa_id       NUMBER;
85954 l_adr_flexfield_segment_code  VARCHAR2(30);
85955 l_adr_flex_value_set_id       NUMBER;
85956 l_adr_value_type_code         VARCHAR2(30);
85957 l_adr_value_combination_id    NUMBER;
85958 l_adr_value_segment_code      VARCHAR2(30);
85959 
85960 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
85961 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
85962 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
85963 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
85964 
85965 -- 4262811 Variables ------------------------------------------------------------------------------------------
85966 l_entered_amt_idx             NUMBER;
85967 l_accted_amt_idx              NUMBER;
85968 l_acc_rev_flag                VARCHAR2(1);
85969 l_accrual_line_num            NUMBER;
85970 l_tmp_amt                     NUMBER;
85971 l_acc_rev_natural_side_code   VARCHAR2(1);
85972 
85973 l_num_entries                 NUMBER;
85974 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
85975 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
85976 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
85977 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
85978 l_recog_line_1                NUMBER;
85979 l_recog_line_2                NUMBER;
85980 
85981 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
85985 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
85982 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
85983 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
85984 
85986 
85987 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
85988 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
85989 
85990 ---------------------------------------------------------------------------------------------------------------
85991 
85992 
85993 --
85994 -- bulk performance
85995 --
85996 l_balance_type_code           VARCHAR2(1);
85997 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
85998 l_log_module                  VARCHAR2(240);
85999 
86000 --
86001 -- Upgrade strategy
86002 --
86003 l_actual_upg_option           VARCHAR2(1);
86004 l_enc_upg_option           VARCHAR2(1);
86005 
86006 --
86007 BEGIN
86008 --
86009 IF g_log_enabled THEN
86010       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_153';
86011 END IF;
86012 --
86013 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86014 
86015       trace
86016          (p_msg      => 'BEGIN of AcctLineType_153'
86017          ,p_level    => C_LEVEL_PROCEDURE
86018          ,p_module   => l_log_module);
86019 
86020 END IF;
86021 --
86022 l_component_type             := 'AMB_JLT';
86023 l_component_code             := 'AP_LIAB_DM_AOS_BS';
86024 l_component_type_code        := 'S';
86025 l_component_appl_id          :=  200;
86026 l_amb_context_code           := 'DEFAULT';
86027 l_entity_code                := 'AP_INVOICES';
86028 l_event_class_code           := 'DEBIT MEMOS';
86029 l_event_type_code            := 'DEBIT MEMOS_ALL';
86030 l_line_definition_owner_code := 'S';
86031 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
86032 --
86033 l_balance_type_code          := 'A';
86034 l_segment                     := NULL;
86035 l_ccid                        := NULL;
86036 l_adr_transaction_coa_id      := NULL;
86037 l_adr_accounting_coa_id       := NULL;
86038 l_adr_flexfield_segment_code  := NULL;
86039 l_adr_flex_value_set_id       := NULL;
86040 l_adr_value_type_code         := NULL;
86041 l_adr_value_combination_id    := NULL;
86042 l_adr_value_segment_code      := NULL;
86043 
86044 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
86045 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
86046 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
86047 l_budgetary_control_flag     := 'N';
86048 
86049 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
86050 l_bflow_applied_to_amt       := NULL; -- 5132302
86051 l_entered_amt_idx            := NULL;          -- 4262811
86052 l_accted_amt_idx             := NULL;          -- 4262811
86053 l_acc_rev_flag               := NULL;          -- 4262811
86054 l_accrual_line_num           := NULL;          -- 4262811
86055 l_tmp_amt                    := NULL;          -- 4262811
86056 --
86057  
86058 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
86059     l_balance_type_code <> 'B' THEN
86060 IF NVL(p_source_15,'
86061 ') =  'BALANCING_SEGMENT' AND 
86062 NVL(p_source_142,'
86063 ') <>  'Y'
86064  THEN 
86065 
86066    --
86067    XLA_AE_LINES_PKG.SetNewLine;
86068 
86069    p_balance_type_code          := l_balance_type_code;
86070    -- set the flag so later we will know whether the gain loss line needs to be created
86071    
86072    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
86073      p_actual_flag :='A';
86074    END IF;
86075 
86076    --
86077    -- bulk performance
86078    --
86079    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
86080                                       p_header_num   => 0); -- 4262811
86081    --
86082    -- set accounting line options
86083    --
86084    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
86085            p_natural_side_code          => 'C'
86086          , p_gain_or_loss_flag          => 'N'
86087          , p_gl_transfer_mode_code      => 'S'
86088          , p_acct_entry_type_code       => 'A'
86089          , p_switch_side_flag           => 'Y'
86090          , p_merge_duplicate_code       => 'A'
86091          );
86092    --
86093    l_acc_rev_natural_side_code := 'D';  -- 4262811
86094    -- 
86095    --
86096    -- set accounting line type info
86097    --
86098    xla_ae_lines_pkg.SetAcctLineType
86099       (p_component_type             => l_component_type
86100       ,p_event_type_code            => l_event_type_code
86101       ,p_line_definition_owner_code => l_line_definition_owner_code
86102       ,p_line_definition_code       => l_line_definition_code
86103       ,p_accounting_line_code       => l_component_code
86104       ,p_accounting_line_type_code  => l_component_type_code
86105       ,p_accounting_line_appl_id    => l_component_appl_id
86106       ,p_amb_context_code           => l_amb_context_code
86107       ,p_entity_code                => l_entity_code
86108       ,p_event_class_code           => l_event_class_code);
86109    --
86110    -- set accounting class
86111    --
86112    xla_ae_lines_pkg.SetAcctClass(
86113            p_accounting_class_code  => 'LIABILITY'
86114          , p_ae_header_id           => l_ae_header_id
86115          );
86116 
86117    --
86118    -- set rounding class
86119    --
86123    --
86120    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
86121                       'LIABILITY';
86122 
86124    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
86125    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
86126    --
86127    -- bulk performance
86128    --
86129    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
86130 
86131    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
86132       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
86133 
86134    -- 4955764
86135    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
86136       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
86137 
86138    -- 4458381 Public Sector Enh
86139    
86140    --
86141    -- set accounting attributes for the line type
86142    --
86143    l_entered_amt_idx := 23;
86144    l_accted_amt_idx  := 28;
86145    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
86146    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
86147    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
86148    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
86149    l_rec_acct_attrs.array_num_value(2)  := 
86150 xla_ae_sources_pkg.GetSystemSourceNum(
86151    p_source_code           => 'XLA_EVENT_APPL_ID'
86152  , p_source_type_code      => 'Y'
86153  , p_source_application_id =>  602
86154 );
86155    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
86156    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
86157    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
86158    l_rec_acct_attrs.array_char_value(4)  := 
86159 xla_ae_sources_pkg.GetSystemSourceChar(
86160    p_source_code           => 'XLA_ENTITY_CODE'
86161  , p_source_type_code      => 'Y'
86162  , p_source_application_id =>  602
86163 );
86164    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
86165    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
86166    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
86167    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
86168    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
86169    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
86170    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
86171    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
86172    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
86173    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
86174    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
86175    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
86176    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
86177    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
86178    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
86179    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
86180    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
86181    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
86182    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
86183    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
86184    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
86185    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
86186    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
86187    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
86188    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
86189    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
86190    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
86191    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
86192    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
86193    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
86194    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
86195    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
86196    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
86197    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
86198    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
86199    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
86200    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
86201    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
86202    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
86203    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
86204    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
86205    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
86206    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
86207    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
86208    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
86209    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
86210    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
86211    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
86212    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
86213    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
86217    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
86214    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
86215    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
86216    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
86218    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
86219    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
86220    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
86221    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
86222    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
86223    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
86224    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
86225    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
86226    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
86227    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
86228    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
86229    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
86230    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
86231    l_rec_acct_attrs.array_num_value(38)  := p_source_86;
86232    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
86233    l_rec_acct_attrs.array_num_value(39)  := p_source_87;
86234    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
86235    l_rec_acct_attrs.array_num_value(40)  := p_source_88;
86236    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
86237    l_rec_acct_attrs.array_num_value(41)  := p_source_89;
86238    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
86239    l_rec_acct_attrs.array_num_value(42)  := p_source_90;
86240 
86241    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
86242    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
86243 
86244    ---------------------------------------------------------------------------------------------------------------
86245    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
86246    ---------------------------------------------------------------------------------------------------------------
86247    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
86248 
86249    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
86250    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
86251 
86252    IF xla_accounting_cache_pkg.GetValueChar
86253          (p_source_code         => 'LEDGER_CATEGORY_CODE'
86254          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
86255    AND l_bflow_method_code = 'PRIOR_ENTRY'
86256 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
86257    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
86258          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
86259        )
86260    THEN
86261          xla_ae_lines_pkg.BflowUpgEntry
86262            (p_business_method_code    => l_bflow_method_code
86263            ,p_business_class_code     => l_bflow_class_code
86264            ,p_balance_type            => l_balance_type_code);
86265    ELSE
86266       NULL;
86267 XLA_AE_LINES_PKG.business_flow_validation(
86268                                 p_business_method_code     => l_bflow_method_code
86269                                ,p_business_class_code      => l_bflow_class_code
86270                                ,p_inherit_description_flag => l_inherit_desc_flag);
86271    END IF;
86272 
86273    --
86274    -- call analytical criteria
86275    --
86276    
86277    --
86278    -- call description
86279    --
86280    
86281 xla_ae_lines_pkg.SetLineDescription(
86282    p_ae_header_id => l_ae_header_id
86283   ,p_description  => Description_1 (
86284      p_application_id         => p_application_id
86285    , p_ae_header_id           => l_ae_header_id 
86286 , p_source_1 => p_source_1
86287    )
86288 );
86289 
86290 
86291    --
86292    -- call ADRs
86293    -- Bug 4922099
86294    --
86295    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
86296         (NVL(l_actual_upg_option, 'N') = 'O') OR
86297         (NVL(l_enc_upg_option, 'N') = 'O')
86298       )
86299    THEN
86300    NULL;
86301    --
86302    --
86303    
86304   l_ccid := AcctDerRule_34(
86305            p_application_id           => p_application_id
86306          , p_ae_header_id             => l_ae_header_id 
86307 , p_source_34 => p_source_34
86308          , x_transaction_coa_id       => l_adr_transaction_coa_id
86309          , x_accounting_coa_id        => l_adr_accounting_coa_id
86310          , x_value_type_code          => l_adr_value_type_code
86311          , p_side                     => 'NA'
86312    );
86313 
86314    xla_ae_lines_pkg.set_ccid(
86315     p_code_combination_id          => l_ccid
86316   , p_value_type_code              => l_adr_value_type_code
86317   , p_transaction_coa_id           => l_adr_transaction_coa_id
86318   , p_accounting_coa_id            => l_adr_accounting_coa_id
86319   , p_adr_code                     => 'AP_LIAB'
86320   , p_adr_type_code                => 'S'
86321   , p_component_type               => l_component_type
86322   , p_component_code               => l_component_code
86323   , p_component_type_code          => l_component_type_code
86327   );
86324   , p_component_appl_id            => l_component_appl_id
86325   , p_amb_context_code             => l_amb_context_code
86326   , p_side                         => 'NA'
86328 
86329 
86330    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
86331      p_to_segment_code         => 'GL_BALANCING'
86332    , p_segment_value           => C_CHAR
86333    , p_from_segment_code       => NULL
86334    , p_from_combination_id     => NULL
86335    , p_value_type_code         => NULL
86336    , p_transaction_coa_id      => null
86337    , p_accounting_coa_id       => null
86338    , p_flexfield_segment_code  => NULL
86339    , p_flex_value_set_id       => NULL
86340    , p_adr_code                => NULL
86341    , p_adr_type_code           => NULL
86342    , p_component_type          => l_component_type
86343    , p_component_code          => l_component_code
86344    , p_component_type_code     => l_component_type_code
86345    , p_component_appl_id       => l_component_appl_id
86346    , p_amb_context_code        => l_amb_context_code
86347    , p_entity_code             => 'AP_INVOICES'
86348    , p_event_class_code        => 'DEBIT MEMOS'
86349    , p_side                    => 'NA'
86350    );
86351    --
86352 
86353 
86354    --
86355    --
86356    END IF;
86357    --
86358    -- Bug 4922099
86359    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
86360           (NVL(l_enc_upg_option, 'N') = 'O')
86361         ) AND
86362         (l_bflow_method_code = 'PRIOR_ENTRY')
86363       )
86364    THEN
86365       IF
86366       --
86367       1 = 2
86368       --
86369       THEN
86370       xla_accounting_err_pkg.build_message
86371                                     (p_appli_s_name            => 'XLA'
86372                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
86373                                     ,p_token_1                 => 'LINE_NUMBER'
86374                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
86375                                     ,p_token_2                 => 'LINE_TYPE_NAME'
86376                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
86377                                                                              l_component_type
86378                                                                             ,l_component_code
86379                                                                             ,l_component_type_code
86380                                                                             ,l_component_appl_id
86381                                                                             ,l_amb_context_code
86382                                                                             ,l_entity_code
86383                                                                             ,l_event_class_code
86384                                                                            )
86385                                     ,p_token_3                 => 'OWNER'
86386                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
86387                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
86388                                                                           ,p_lookup_code    => l_component_type_code
86389                                                                          )
86390                                     ,p_token_4                 => 'PRODUCT_NAME'
86391                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
86392                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
86393                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
86394                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
86395                                     ,p_ae_header_id            =>  NULL
86396                                        );
86397 
86398         IF (C_LEVEL_ERROR>= g_log_level) THEN
86399                  trace
86400                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
86401                       ,p_level    => C_LEVEL_ERROR
86402                       ,p_module   => l_log_module);
86403         END IF;
86404       END IF;
86405    END IF;
86406    --
86407    --
86408    ------------------------------------------------------------------------------------------------
86409    -- 4219869 Business Flow
86410    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
86411    -- Prior Entry.  Currently, the following code is always generated.
86412    ------------------------------------------------------------------------------------------------
86413    XLA_AE_LINES_PKG.ValidateCurrentLine;
86414 
86415    ------------------------------------------------------------------------------------
86416    -- 4219869 Business Flow
86417    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
86418    ------------------------------------------------------------------------------------
86419    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
86420 
86421    ----------------------------------------------------------------------------------
86422    -- 4219869 Business Flow
86423    -- Update journal entry status -- Need to generate this within IF <condition>
86427          ,p_balance_type_code => l_balance_type_code
86424    ----------------------------------------------------------------------------------
86425    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
86426          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
86428          );
86429 
86430    -------------------------------------------------------------------------------------------
86431    -- 4262811 - Generate the Accrual Reversal lines
86432    -------------------------------------------------------------------------------------------
86433    BEGIN
86434       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
86435                               (g_array_event(p_event_id).array_value_num('header_index'));
86436       IF l_acc_rev_flag IS NULL THEN
86437          l_acc_rev_flag := 'N';
86438       END IF;
86439    EXCEPTION
86440       WHEN OTHERS THEN
86441          l_acc_rev_flag := 'N';
86442    END;
86443    --
86444    IF (l_acc_rev_flag = 'Y') THEN
86445 
86446        -- 4645092  ------------------------------------------------------------------------------
86447        -- To allow MPA report to determine if it should generate report process
86448        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
86449        ------------------------------------------------------------------------------------------
86450 
86451        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
86452        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
86453    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
86454    -- call ADRs
86455    -- Bug 4922099
86456    --
86457    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
86458         (NVL(l_actual_upg_option, 'N') = 'O') OR
86459         (NVL(l_enc_upg_option, 'N') = 'O')
86460       )
86461    THEN
86462    NULL;
86463    --
86464    --
86465    
86466   l_ccid := AcctDerRule_34(
86467            p_application_id           => p_application_id
86468          , p_ae_header_id             => l_ae_header_id 
86469 , p_source_34 => p_source_34
86470          , x_transaction_coa_id       => l_adr_transaction_coa_id
86471          , x_accounting_coa_id        => l_adr_accounting_coa_id
86472          , x_value_type_code          => l_adr_value_type_code
86473          , p_side                     => 'NA'
86474    );
86475 
86476    xla_ae_lines_pkg.set_ccid(
86477     p_code_combination_id          => l_ccid
86478   , p_value_type_code              => l_adr_value_type_code
86479   , p_transaction_coa_id           => l_adr_transaction_coa_id
86480   , p_accounting_coa_id            => l_adr_accounting_coa_id
86481   , p_adr_code                     => 'AP_LIAB'
86482   , p_adr_type_code                => 'S'
86483   , p_component_type               => l_component_type
86484   , p_component_code               => l_component_code
86485   , p_component_type_code          => l_component_type_code
86486   , p_component_appl_id            => l_component_appl_id
86487   , p_amb_context_code             => l_amb_context_code
86488   , p_side                         => 'NA'
86489   );
86490 
86491 
86492    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
86493      p_to_segment_code         => 'GL_BALANCING'
86494    , p_segment_value           => C_CHAR
86495    , p_from_segment_code       => NULL
86496    , p_from_combination_id     => NULL
86497    , p_value_type_code         => NULL
86498    , p_transaction_coa_id      => null
86499    , p_accounting_coa_id       => null
86500    , p_flexfield_segment_code  => NULL
86501    , p_flex_value_set_id       => NULL
86502    , p_adr_code                => NULL
86503    , p_adr_type_code           => NULL
86504    , p_component_type          => l_component_type
86505    , p_component_code          => l_component_code
86506    , p_component_type_code     => l_component_type_code
86507    , p_component_appl_id       => l_component_appl_id
86508    , p_amb_context_code        => l_amb_context_code
86509    , p_entity_code             => 'AP_INVOICES'
86510    , p_event_class_code        => 'DEBIT MEMOS'
86511    , p_side                    => 'NA'
86512    );
86513    --
86514 
86515 
86516    --
86517    --
86518    END IF;
86519 
86520        --
86521        -- Update the line information that should be overwritten
86522        --
86523        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
86524                                          p_header_num   => 1);
86525        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
86526 
86527        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
86528 
86529        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
86530           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
86531        END IF;
86532 
86533       --
86534       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
86535       --
86536       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
86537           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
86538       ELSE
86539           ---------------------------------------------------------------------------------------------------
86540           -- 4262811a Switch Sign
86541           ---------------------------------------------------------------------------------------------------
86545           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
86542           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
86543           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
86544                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86546                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86547           -- 5132302
86548           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
86549                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
86550 
86551       END IF;
86552 
86553       -- 4955764
86554       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
86555       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
86556 
86557 
86558       XLA_AE_LINES_PKG.ValidateCurrentLine;
86559       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
86560 
86561       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
86562                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
86563                ,p_balance_type_code => l_balance_type_code);
86564 
86565    END IF;
86566 
86567    -----------------------------------------------------------------------------------------
86568    -- 4262811 Multiperiod Accounting
86569    -----------------------------------------------------------------------------------------
86570      -- No MPA option is assigned.
86571 
86572 
86573 END IF;
86574 END IF;
86575 --
86576 
86577 --
86578 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86579    trace
86580       (p_msg      => 'END of AcctLineType_153'
86581       ,p_level    => C_LEVEL_PROCEDURE
86582       ,p_module   => l_log_module);
86583 END IF;
86584 --
86585 EXCEPTION
86586   WHEN xla_exceptions_pkg.application_exception THEN
86587       RAISE;
86588   WHEN OTHERS THEN
86589        xla_exceptions_pkg.raise_message
86590            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_153');
86591 END AcctLineType_153;
86592 --
86593 
86594 ---------------------------------------
86595 --
86596 -- PRIVATE FUNCTION
86597 --         AcctLineType_154
86598 --
86599 ---------------------------------------
86600 PROCEDURE AcctLineType_154 (
86601   p_application_id        IN NUMBER
86602  ,p_event_id              IN NUMBER
86603  ,p_calculate_acctd_flag  IN VARCHAR2
86604  ,p_calculate_g_l_flag    IN VARCHAR2
86605  ,p_actual_flag           IN OUT VARCHAR2
86606  ,p_balance_type_code     OUT VARCHAR2
86607  ,p_gain_or_loss_ref      OUT VARCHAR2
86608  
86609 --Invoice Distribution Description
86610  , p_source_1            IN VARCHAR2
86611 --Automatic Offsets Value
86612  , p_source_15            IN VARCHAR2
86613  , p_source_15_meaning    IN VARCHAR2
86614 --Invoice Distribution Ledger Amount
86615  , p_source_21            IN NUMBER
86616 --Invoice Liability Account
86617  , p_source_34            IN NUMBER
86618 --Accounting Reversal Indicator
86619  , p_source_53            IN VARCHAR2
86620 --Distribution Link Type
86621  , p_source_55            IN VARCHAR2
86622 --Allocation to Main Distribution Identifier
86623  , p_source_57            IN NUMBER
86624 --Invoice Identifier
86625  , p_source_58            IN NUMBER
86626 --Invoice Distribution Identifier
86627  , p_source_64            IN NUMBER
86628 --Payables Encumbrance Upgrade Credit Account
86629  , p_source_65            IN NUMBER
86630 --Payables Encumbrance Upgrade Credit Amount
86631  , p_source_66            IN NUMBER
86632 --Invoice Currency Code
86633  , p_source_67            IN VARCHAR2
86634 --Payables Encumbrance Upgrade Credit Base Amount
86635  , p_source_68            IN NUMBER
86636 --Payables Encumbrance Upgrade Debit Account
86637  , p_source_69            IN NUMBER
86638 --Payables Encumbrance Upgrade Debit Amount
86639  , p_source_70            IN NUMBER
86640 --Payables Encumbrance Upgrade Debit Base Amount
86641  , p_source_71            IN NUMBER
86642 --Payables Encumbrance Upgrade Option
86643  , p_source_72            IN VARCHAR2
86644 --Invoice Distribution Amount
86645  , p_source_73            IN NUMBER
86646 --Deferred Accounting End Date
86647  , p_source_77            IN DATE
86648 --Deferred Accounting Option
86649  , p_source_78            IN VARCHAR2
86650 --Deferred Accounting Start Date
86651  , p_source_79            IN DATE
86652 --Override Accounted Amount Indicator
86653  , p_source_80            IN VARCHAR2
86654  , p_source_80_meaning    IN VARCHAR2
86655 --Invoice Supplier Identifier
86656  , p_source_81            IN NUMBER
86657 --Invoice Supplier Site Identifier
86658  , p_source_82            IN NUMBER
86659 --Third Party Type
86660  , p_source_83            IN VARCHAR2
86661 --Parent Reversal Identifier
86662  , p_source_84            IN NUMBER
86663 --Invoice Distribution Statistical Amount
86664  , p_source_85            IN NUMBER
86665 --Invoice Distribution Tax Line Identifier
86666  , p_source_86            IN NUMBER
86667 --Invoice Distribution Tax Distribution Identifier from Tax
86668  , p_source_87            IN NUMBER
86669 --Invoice Distribution Summary Tax Line Identifier
86670  , p_source_88            IN NUMBER
86674  , p_source_90            IN NUMBER
86671 --Payables Upgrade Credit Encumbrance Type Identifier
86672  , p_source_89            IN NUMBER
86673 --Payables Upgrade Debit Encumbrance Type Identifier
86675 --Business Flow Accounts Payable Application Identifier
86676  , p_source_91            IN NUMBER
86677 --Business Flow Invoice Distribution Type
86678  , p_source_92            IN VARCHAR2
86679 --Business Flow Invoice Entity Code
86680  , p_source_93            IN VARCHAR2
86681 --Business Flow Invoice Distribution Identifier
86682  , p_source_94            IN NUMBER
86683 --Business Flow Invoice Identifier
86684  , p_source_95            IN NUMBER
86685 --Self-Assessed Tax Flag
86686  , p_source_142            IN VARCHAR2
86687  , p_source_142_meaning    IN VARCHAR2
86688 --Invoice Exchange Date
86689  , p_source_143            IN DATE
86690 --Invoice Exchange Rate
86691  , p_source_144            IN NUMBER
86692 --Invoice Exchange Rate Type
86693  , p_source_145            IN VARCHAR2
86694 --Invoice Type
86695  , p_source_165            IN VARCHAR2
86696  , p_source_165_meaning    IN VARCHAR2
86697 )
86698 IS
86699 
86700 l_component_type              VARCHAR2(80);
86701 l_component_code              VARCHAR2(30);
86702 l_component_type_code         VARCHAR2(1);
86703 l_component_appl_id           INTEGER;
86704 l_amb_context_code            VARCHAR2(30);
86705 l_entity_code                 VARCHAR2(30);
86706 l_event_class_code            VARCHAR2(30);
86707 l_ae_header_id                NUMBER;
86708 l_event_type_code             VARCHAR2(30);
86709 l_line_definition_code        VARCHAR2(30);
86710 l_line_definition_owner_code  VARCHAR2(1);
86711 --
86712 -- adr variables
86713 l_segment                     VARCHAR2(30);
86714 l_ccid                        NUMBER;
86715 l_adr_transaction_coa_id      NUMBER;
86716 l_adr_accounting_coa_id       NUMBER;
86717 l_adr_flexfield_segment_code  VARCHAR2(30);
86718 l_adr_flex_value_set_id       NUMBER;
86719 l_adr_value_type_code         VARCHAR2(30);
86720 l_adr_value_combination_id    NUMBER;
86721 l_adr_value_segment_code      VARCHAR2(30);
86722 
86723 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
86724 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
86725 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
86726 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
86727 
86728 -- 4262811 Variables ------------------------------------------------------------------------------------------
86729 l_entered_amt_idx             NUMBER;
86730 l_accted_amt_idx              NUMBER;
86731 l_acc_rev_flag                VARCHAR2(1);
86732 l_accrual_line_num            NUMBER;
86733 l_tmp_amt                     NUMBER;
86734 l_acc_rev_natural_side_code   VARCHAR2(1);
86735 
86736 l_num_entries                 NUMBER;
86737 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
86738 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
86739 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
86740 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
86741 l_recog_line_1                NUMBER;
86742 l_recog_line_2                NUMBER;
86743 
86744 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
86745 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
86746 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
86747 
86748 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
86749 
86750 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
86751 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
86752 
86753 ---------------------------------------------------------------------------------------------------------------
86754 
86755 
86756 --
86757 -- bulk performance
86758 --
86759 l_balance_type_code           VARCHAR2(1);
86760 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
86761 l_log_module                  VARCHAR2(240);
86762 
86763 --
86764 -- Upgrade strategy
86765 --
86766 l_actual_upg_option           VARCHAR2(1);
86767 l_enc_upg_option           VARCHAR2(1);
86768 
86769 --
86770 BEGIN
86771 --
86772 IF g_log_enabled THEN
86773       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_154';
86774 END IF;
86775 --
86776 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86777 
86778       trace
86779          (p_msg      => 'BEGIN of AcctLineType_154'
86780          ,p_level    => C_LEVEL_PROCEDURE
86781          ,p_module   => l_log_module);
86782 
86783 END IF;
86784 --
86785 l_component_type             := 'AMB_JLT';
86786 l_component_code             := 'AP_LIAB_INV';
86787 l_component_type_code        := 'S';
86788 l_component_appl_id          :=  200;
86789 l_amb_context_code           := 'DEFAULT';
86790 l_entity_code                := 'AP_INVOICES';
86791 l_event_class_code           := 'INVOICES';
86792 l_event_type_code            := 'INVOICES_ALL';
86793 l_line_definition_owner_code := 'S';
86794 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
86795 --
86796 l_balance_type_code          := 'A';
86797 l_segment                     := NULL;
86798 l_ccid                        := NULL;
86799 l_adr_transaction_coa_id      := NULL;
86800 l_adr_accounting_coa_id       := NULL;
86801 l_adr_flexfield_segment_code  := NULL;
86805 l_adr_value_segment_code      := NULL;
86802 l_adr_flex_value_set_id       := NULL;
86803 l_adr_value_type_code         := NULL;
86804 l_adr_value_combination_id    := NULL;
86806 
86807 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
86808 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
86809 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
86810 l_budgetary_control_flag     := 'N';
86811 
86812 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
86813 l_bflow_applied_to_amt       := NULL; -- 5132302
86814 l_entered_amt_idx            := NULL;          -- 4262811
86815 l_accted_amt_idx             := NULL;          -- 4262811
86816 l_acc_rev_flag               := NULL;          -- 4262811
86817 l_accrual_line_num           := NULL;          -- 4262811
86818 l_tmp_amt                    := NULL;          -- 4262811
86819 --
86820  
86821 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
86822     l_balance_type_code <> 'B' THEN
86823 IF (NVL(p_source_15,'
86824 ') <>  'BALANCING_SEGMENT' AND 
86825 NVL(p_source_15,'
86826 ') <>  'ACCOUNT_SEGMENT_VALUE') AND 
86827 (NVL(p_source_165,'
86828 ') =  'STANDARD' OR 
86829 NVL(p_source_165,'
86830 ') =  'MIXED' OR 
86831 NVL(p_source_165,'
86832 ') =  'AWT' OR 
86833 NVL(p_source_165,'
86834 ') =  'PO PRICE ADJUST' OR 
86835 NVL(p_source_165,'
86836 ') =  'EXPENSE REPORT' OR 
86837 NVL(p_source_165,'
86838 ') =  'PAYMENT REQUEST' OR 
86839 NVL(p_source_165,'
86840 ') =  'RETAINAGE RELEASE') AND 
86841 NVL(p_source_142,'
86842 ') <>  'Y'
86843  THEN 
86844 
86845    --
86846    XLA_AE_LINES_PKG.SetNewLine;
86847 
86848    p_balance_type_code          := l_balance_type_code;
86849    -- set the flag so later we will know whether the gain loss line needs to be created
86850    
86851    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
86852      p_actual_flag :='A';
86853    END IF;
86854 
86855    --
86856    -- bulk performance
86857    --
86858    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
86859                                       p_header_num   => 0); -- 4262811
86860    --
86861    -- set accounting line options
86862    --
86863    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
86864            p_natural_side_code          => 'C'
86865          , p_gain_or_loss_flag          => 'N'
86866          , p_gl_transfer_mode_code      => 'S'
86867          , p_acct_entry_type_code       => 'A'
86868          , p_switch_side_flag           => 'Y'
86869          , p_merge_duplicate_code       => 'A'
86870          );
86871    --
86872    l_acc_rev_natural_side_code := 'D';  -- 4262811
86873    -- 
86874    --
86875    -- set accounting line type info
86876    --
86877    xla_ae_lines_pkg.SetAcctLineType
86878       (p_component_type             => l_component_type
86879       ,p_event_type_code            => l_event_type_code
86880       ,p_line_definition_owner_code => l_line_definition_owner_code
86881       ,p_line_definition_code       => l_line_definition_code
86882       ,p_accounting_line_code       => l_component_code
86883       ,p_accounting_line_type_code  => l_component_type_code
86884       ,p_accounting_line_appl_id    => l_component_appl_id
86885       ,p_amb_context_code           => l_amb_context_code
86886       ,p_entity_code                => l_entity_code
86887       ,p_event_class_code           => l_event_class_code);
86888    --
86889    -- set accounting class
86890    --
86891    xla_ae_lines_pkg.SetAcctClass(
86892            p_accounting_class_code  => 'LIABILITY'
86893          , p_ae_header_id           => l_ae_header_id
86894          );
86895 
86896    --
86897    -- set rounding class
86898    --
86899    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
86900                       'LIABILITY';
86901 
86902    --
86903    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
86904    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
86905    --
86906    -- bulk performance
86907    --
86908    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
86909 
86910    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
86911       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
86912 
86913    -- 4955764
86914    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
86915       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
86916 
86917    -- 4458381 Public Sector Enh
86918    
86919    --
86920    -- set accounting attributes for the line type
86921    --
86922    l_entered_amt_idx := 24;
86923    l_accted_amt_idx  := 29;
86924    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
86925    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
86926    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
86927    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
86928    l_rec_acct_attrs.array_num_value(2)  := 
86929 xla_ae_sources_pkg.GetSystemSourceNum(
86930    p_source_code           => 'XLA_EVENT_APPL_ID'
86931  , p_source_type_code      => 'Y'
86935    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
86932  , p_source_application_id =>  602
86933 );
86934    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
86936    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
86937    l_rec_acct_attrs.array_char_value(4)  := 
86938 xla_ae_sources_pkg.GetSystemSourceChar(
86939    p_source_code           => 'XLA_ENTITY_CODE'
86940  , p_source_type_code      => 'Y'
86941  , p_source_application_id =>  602
86942 );
86943    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
86944    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
86945    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
86946    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
86947    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
86948    l_rec_acct_attrs.array_num_value(7)  := p_source_73;
86949    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
86950    l_rec_acct_attrs.array_num_value(8)  := p_source_91;
86951    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
86952    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
86953    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
86954    l_rec_acct_attrs.array_char_value(10)  := p_source_93;
86955    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
86956    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
86957    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
86958    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_95);
86959    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
86960    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_64);
86961    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
86962    l_rec_acct_attrs.array_char_value(14)  := p_source_55;
86963    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
86964    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
86965    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
86966    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
86967    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
86968    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
86969    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
86970    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
86971    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
86972    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
86973    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
86974    l_rec_acct_attrs.array_num_value(20)  := p_source_70;
86975    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
86976    l_rec_acct_attrs.array_char_value(21)  := p_source_67;
86977    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
86978    l_rec_acct_attrs.array_num_value(22)  := p_source_71;
86979    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
86980    l_rec_acct_attrs.array_char_value(23)  := p_source_72;
86981    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
86982    l_rec_acct_attrs.array_num_value(24)  := p_source_73;
86983    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
86984    l_rec_acct_attrs.array_char_value(25)  := p_source_67;
86985    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
86986    l_rec_acct_attrs.array_date_value(26)  := p_source_143;
86987    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
86988    l_rec_acct_attrs.array_num_value(27)  := p_source_144;
86989    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
86990    l_rec_acct_attrs.array_char_value(28)  := p_source_145;
86991    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
86992    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
86993    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
86994    l_rec_acct_attrs.array_date_value(30)  := p_source_77;
86995    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
86996    l_rec_acct_attrs.array_char_value(31)  := p_source_78;
86997    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
86998    l_rec_acct_attrs.array_date_value(32)  := p_source_79;
86999    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
87000    l_rec_acct_attrs.array_char_value(33)  := p_source_80;
87001    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
87002    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
87003    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
87004    l_rec_acct_attrs.array_num_value(35)  := p_source_82;
87005    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
87006    l_rec_acct_attrs.array_char_value(36)  := p_source_83;
87007    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
87008    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_84);
87009    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
87010    l_rec_acct_attrs.array_char_value(38)  := p_source_55;
87011    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
87012    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
87013    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
87014    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
87015    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
87016    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
87017    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
87021    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
87018    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
87019    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
87020    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
87022    l_rec_acct_attrs.array_num_value(44)  := p_source_90;
87023 
87024    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
87025    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
87026 
87027    ---------------------------------------------------------------------------------------------------------------
87028    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
87029    ---------------------------------------------------------------------------------------------------------------
87030    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
87031 
87032    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
87033    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
87034 
87035    IF xla_accounting_cache_pkg.GetValueChar
87036          (p_source_code         => 'LEDGER_CATEGORY_CODE'
87037          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
87038    AND l_bflow_method_code = 'PRIOR_ENTRY'
87039 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
87040    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
87041          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
87042        )
87043    THEN
87044          xla_ae_lines_pkg.BflowUpgEntry
87045            (p_business_method_code    => l_bflow_method_code
87046            ,p_business_class_code     => l_bflow_class_code
87047            ,p_balance_type            => l_balance_type_code);
87048    ELSE
87049       NULL;
87050 -- No business flow processing for business flow method of NONE.
87051    END IF;
87052 
87053    --
87054    -- call analytical criteria
87055    --
87056    
87057    --
87058    -- call description
87059    --
87060    
87061 xla_ae_lines_pkg.SetLineDescription(
87062    p_ae_header_id => l_ae_header_id
87063   ,p_description  => Description_1 (
87064      p_application_id         => p_application_id
87065    , p_ae_header_id           => l_ae_header_id 
87066 , p_source_1 => p_source_1
87067    )
87068 );
87069 
87070 
87071    --
87072    -- call ADRs
87073    -- Bug 4922099
87074    --
87075    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
87076         (NVL(l_actual_upg_option, 'N') = 'O') OR
87077         (NVL(l_enc_upg_option, 'N') = 'O')
87078       )
87079    THEN
87080    NULL;
87081    --
87082    --
87083    
87084   l_ccid := AcctDerRule_34(
87085            p_application_id           => p_application_id
87086          , p_ae_header_id             => l_ae_header_id 
87087 , p_source_34 => p_source_34
87088          , x_transaction_coa_id       => l_adr_transaction_coa_id
87089          , x_accounting_coa_id        => l_adr_accounting_coa_id
87090          , x_value_type_code          => l_adr_value_type_code
87091          , p_side                     => 'NA'
87092    );
87093 
87094    xla_ae_lines_pkg.set_ccid(
87095     p_code_combination_id          => l_ccid
87096   , p_value_type_code              => l_adr_value_type_code
87097   , p_transaction_coa_id           => l_adr_transaction_coa_id
87098   , p_accounting_coa_id            => l_adr_accounting_coa_id
87099   , p_adr_code                     => 'AP_LIAB'
87100   , p_adr_type_code                => 'S'
87101   , p_component_type               => l_component_type
87102   , p_component_code               => l_component_code
87103   , p_component_type_code          => l_component_type_code
87104   , p_component_appl_id            => l_component_appl_id
87105   , p_amb_context_code             => l_amb_context_code
87106   , p_side                         => 'NA'
87107   );
87108 
87109 
87110    --
87111    --
87112    END IF;
87113    --
87114    -- Bug 4922099
87115    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
87116           (NVL(l_enc_upg_option, 'N') = 'O')
87117         ) AND
87118         (l_bflow_method_code = 'PRIOR_ENTRY')
87119       )
87120    THEN
87121       IF
87122       --
87123       1 = 2
87124       --
87125       THEN
87126       xla_accounting_err_pkg.build_message
87127                                     (p_appli_s_name            => 'XLA'
87128                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
87129                                     ,p_token_1                 => 'LINE_NUMBER'
87130                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
87131                                     ,p_token_2                 => 'LINE_TYPE_NAME'
87132                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
87133                                                                              l_component_type
87134                                                                             ,l_component_code
87135                                                                             ,l_component_type_code
87136                                                                             ,l_component_appl_id
87140                                                                            )
87137                                                                             ,l_amb_context_code
87138                                                                             ,l_entity_code
87139                                                                             ,l_event_class_code
87141                                     ,p_token_3                 => 'OWNER'
87142                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
87143                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
87144                                                                           ,p_lookup_code    => l_component_type_code
87145                                                                          )
87146                                     ,p_token_4                 => 'PRODUCT_NAME'
87147                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
87148                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
87149                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
87150                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
87151                                     ,p_ae_header_id            =>  NULL
87152                                        );
87153 
87154         IF (C_LEVEL_ERROR>= g_log_level) THEN
87155                  trace
87156                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
87157                       ,p_level    => C_LEVEL_ERROR
87158                       ,p_module   => l_log_module);
87159         END IF;
87160       END IF;
87161    END IF;
87162    --
87163    --
87164    ------------------------------------------------------------------------------------------------
87165    -- 4219869 Business Flow
87166    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
87167    -- Prior Entry.  Currently, the following code is always generated.
87168    ------------------------------------------------------------------------------------------------
87169    XLA_AE_LINES_PKG.ValidateCurrentLine;
87170 
87171    ------------------------------------------------------------------------------------
87172    -- 4219869 Business Flow
87173    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
87174    ------------------------------------------------------------------------------------
87175    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
87176 
87177    ----------------------------------------------------------------------------------
87178    -- 4219869 Business Flow
87179    -- Update journal entry status -- Need to generate this within IF <condition>
87180    ----------------------------------------------------------------------------------
87181    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
87182          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
87183          ,p_balance_type_code => l_balance_type_code
87184          );
87185 
87186    -------------------------------------------------------------------------------------------
87187    -- 4262811 - Generate the Accrual Reversal lines
87188    -------------------------------------------------------------------------------------------
87189    BEGIN
87190       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
87191                               (g_array_event(p_event_id).array_value_num('header_index'));
87192       IF l_acc_rev_flag IS NULL THEN
87193          l_acc_rev_flag := 'N';
87194       END IF;
87195    EXCEPTION
87196       WHEN OTHERS THEN
87197          l_acc_rev_flag := 'N';
87198    END;
87199    --
87200    IF (l_acc_rev_flag = 'Y') THEN
87201 
87202        -- 4645092  ------------------------------------------------------------------------------
87203        -- To allow MPA report to determine if it should generate report process
87204        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
87205        ------------------------------------------------------------------------------------------
87206 
87207        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
87208        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
87209    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
87210    -- call ADRs
87211    -- Bug 4922099
87212    --
87213    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
87214         (NVL(l_actual_upg_option, 'N') = 'O') OR
87215         (NVL(l_enc_upg_option, 'N') = 'O')
87216       )
87217    THEN
87218    NULL;
87219    --
87220    --
87221    
87222   l_ccid := AcctDerRule_34(
87223            p_application_id           => p_application_id
87224          , p_ae_header_id             => l_ae_header_id 
87225 , p_source_34 => p_source_34
87226          , x_transaction_coa_id       => l_adr_transaction_coa_id
87227          , x_accounting_coa_id        => l_adr_accounting_coa_id
87228          , x_value_type_code          => l_adr_value_type_code
87229          , p_side                     => 'NA'
87230    );
87231 
87232    xla_ae_lines_pkg.set_ccid(
87233     p_code_combination_id          => l_ccid
87234   , p_value_type_code              => l_adr_value_type_code
87235   , p_transaction_coa_id           => l_adr_transaction_coa_id
87236   , p_accounting_coa_id            => l_adr_accounting_coa_id
87237   , p_adr_code                     => 'AP_LIAB'
87238   , p_adr_type_code                => 'S'
87242   , p_component_appl_id            => l_component_appl_id
87239   , p_component_type               => l_component_type
87240   , p_component_code               => l_component_code
87241   , p_component_type_code          => l_component_type_code
87243   , p_amb_context_code             => l_amb_context_code
87244   , p_side                         => 'NA'
87245   );
87246 
87247 
87248    --
87249    --
87250    END IF;
87251 
87252        --
87253        -- Update the line information that should be overwritten
87254        --
87255        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
87256                                          p_header_num   => 1);
87257        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
87258 
87259        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
87260 
87261        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
87262           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
87263        END IF;
87264 
87265       --
87266       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
87267       --
87268       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
87269           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
87270       ELSE
87271           ---------------------------------------------------------------------------------------------------
87272           -- 4262811a Switch Sign
87273           ---------------------------------------------------------------------------------------------------
87274           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
87275           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
87276                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87277           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
87278                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87279           -- 5132302
87280           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
87281                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
87282 
87283       END IF;
87284 
87285       -- 4955764
87286       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
87287       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
87288 
87289 
87290       XLA_AE_LINES_PKG.ValidateCurrentLine;
87291       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
87292 
87293       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
87294                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
87295                ,p_balance_type_code => l_balance_type_code);
87296 
87297    END IF;
87298 
87299    -----------------------------------------------------------------------------------------
87300    -- 4262811 Multiperiod Accounting
87301    -----------------------------------------------------------------------------------------
87302      -- No MPA option is assigned.
87303 
87304 
87305 END IF;
87306 END IF;
87307 --
87308 
87309 --
87310 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
87311    trace
87312       (p_msg      => 'END of AcctLineType_154'
87313       ,p_level    => C_LEVEL_PROCEDURE
87314       ,p_module   => l_log_module);
87315 END IF;
87316 --
87317 EXCEPTION
87318   WHEN xla_exceptions_pkg.application_exception THEN
87319       RAISE;
87320   WHEN OTHERS THEN
87321        xla_exceptions_pkg.raise_message
87322            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_154');
87323 END AcctLineType_154;
87324 --
87325 
87326 ---------------------------------------
87327 --
87328 -- PRIVATE FUNCTION
87329 --         AcctLineType_155
87330 --
87331 ---------------------------------------
87332 PROCEDURE AcctLineType_155 (
87333   p_application_id        IN NUMBER
87334  ,p_event_id              IN NUMBER
87335  ,p_calculate_acctd_flag  IN VARCHAR2
87336  ,p_calculate_g_l_flag    IN VARCHAR2
87337  ,p_actual_flag           IN OUT VARCHAR2
87338  ,p_balance_type_code     OUT VARCHAR2
87339  ,p_gain_or_loss_ref      OUT VARCHAR2
87340  
87341 --Invoice Distribution Description
87342  , p_source_1            IN VARCHAR2
87343 --Automatic Offsets Value
87344  , p_source_15            IN VARCHAR2
87345  , p_source_15_meaning    IN VARCHAR2
87346 --Invoice Distribution Ledger Amount
87347  , p_source_21            IN NUMBER
87348 --Invoice Liability Account
87349  , p_source_34            IN NUMBER
87350 --Accounting Reversal Indicator
87351  , p_source_53            IN VARCHAR2
87352 --Distribution Link Type
87353  , p_source_55            IN VARCHAR2
87354 --Allocation to Main Distribution Identifier
87355  , p_source_57            IN NUMBER
87356 --Invoice Identifier
87357  , p_source_58            IN NUMBER
87358 --Invoice Distribution Identifier
87359  , p_source_64            IN NUMBER
87360 --Payables Encumbrance Upgrade Credit Account
87361  , p_source_65            IN NUMBER
87362 --Payables Encumbrance Upgrade Credit Amount
87366 --Payables Encumbrance Upgrade Credit Base Amount
87363  , p_source_66            IN NUMBER
87364 --Invoice Currency Code
87365  , p_source_67            IN VARCHAR2
87367  , p_source_68            IN NUMBER
87368 --Payables Encumbrance Upgrade Debit Account
87369  , p_source_69            IN NUMBER
87370 --Payables Encumbrance Upgrade Debit Amount
87371  , p_source_70            IN NUMBER
87372 --Payables Encumbrance Upgrade Debit Base Amount
87373  , p_source_71            IN NUMBER
87374 --Payables Encumbrance Upgrade Option
87375  , p_source_72            IN VARCHAR2
87376 --Invoice Distribution Amount
87377  , p_source_73            IN NUMBER
87378 --Deferred Accounting End Date
87379  , p_source_77            IN DATE
87380 --Deferred Accounting Option
87381  , p_source_78            IN VARCHAR2
87382 --Deferred Accounting Start Date
87383  , p_source_79            IN DATE
87384 --Override Accounted Amount Indicator
87385  , p_source_80            IN VARCHAR2
87386  , p_source_80_meaning    IN VARCHAR2
87387 --Invoice Supplier Identifier
87388  , p_source_81            IN NUMBER
87389 --Invoice Supplier Site Identifier
87390  , p_source_82            IN NUMBER
87391 --Third Party Type
87392  , p_source_83            IN VARCHAR2
87393 --Parent Reversal Identifier
87394  , p_source_84            IN NUMBER
87395 --Invoice Distribution Statistical Amount
87396  , p_source_85            IN NUMBER
87397 --Invoice Distribution Tax Line Identifier
87398  , p_source_86            IN NUMBER
87399 --Invoice Distribution Tax Distribution Identifier from Tax
87400  , p_source_87            IN NUMBER
87401 --Invoice Distribution Summary Tax Line Identifier
87402  , p_source_88            IN NUMBER
87403 --Payables Upgrade Credit Encumbrance Type Identifier
87404  , p_source_89            IN NUMBER
87405 --Payables Upgrade Debit Encumbrance Type Identifier
87406  , p_source_90            IN NUMBER
87407 --Business Flow Accounts Payable Application Identifier
87408  , p_source_91            IN NUMBER
87409 --Business Flow Invoice Distribution Type
87410  , p_source_92            IN VARCHAR2
87411 --Business Flow Invoice Entity Code
87412  , p_source_93            IN VARCHAR2
87413 --Business Flow Invoice Distribution Identifier
87414  , p_source_94            IN NUMBER
87415 --Business Flow Invoice Identifier
87416  , p_source_95            IN NUMBER
87417 --Self-Assessed Tax Flag
87418  , p_source_142            IN VARCHAR2
87419  , p_source_142_meaning    IN VARCHAR2
87420 --Invoice Exchange Date
87421  , p_source_143            IN DATE
87422 --Invoice Exchange Rate
87423  , p_source_144            IN NUMBER
87424 --Invoice Exchange Rate Type
87425  , p_source_145            IN VARCHAR2
87426 --Invoice Type
87427  , p_source_165            IN VARCHAR2
87428  , p_source_165_meaning    IN VARCHAR2
87429 )
87430 IS
87431 
87432 l_component_type              VARCHAR2(80);
87433 l_component_code              VARCHAR2(30);
87434 l_component_type_code         VARCHAR2(1);
87435 l_component_appl_id           INTEGER;
87436 l_amb_context_code            VARCHAR2(30);
87437 l_entity_code                 VARCHAR2(30);
87438 l_event_class_code            VARCHAR2(30);
87439 l_ae_header_id                NUMBER;
87440 l_event_type_code             VARCHAR2(30);
87441 l_line_definition_code        VARCHAR2(30);
87442 l_line_definition_owner_code  VARCHAR2(1);
87443 --
87444 -- adr variables
87445 l_segment                     VARCHAR2(30);
87446 l_ccid                        NUMBER;
87447 l_adr_transaction_coa_id      NUMBER;
87448 l_adr_accounting_coa_id       NUMBER;
87449 l_adr_flexfield_segment_code  VARCHAR2(30);
87450 l_adr_flex_value_set_id       NUMBER;
87451 l_adr_value_type_code         VARCHAR2(30);
87452 l_adr_value_combination_id    NUMBER;
87453 l_adr_value_segment_code      VARCHAR2(30);
87454 
87455 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
87456 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
87457 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
87458 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
87459 
87460 -- 4262811 Variables ------------------------------------------------------------------------------------------
87461 l_entered_amt_idx             NUMBER;
87462 l_accted_amt_idx              NUMBER;
87463 l_acc_rev_flag                VARCHAR2(1);
87464 l_accrual_line_num            NUMBER;
87465 l_tmp_amt                     NUMBER;
87466 l_acc_rev_natural_side_code   VARCHAR2(1);
87467 
87468 l_num_entries                 NUMBER;
87469 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
87470 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
87471 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
87472 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
87473 l_recog_line_1                NUMBER;
87474 l_recog_line_2                NUMBER;
87475 
87476 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
87477 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
87478 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
87479 
87480 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
87481 
87482 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
87483 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
87484 
87488 --
87485 ---------------------------------------------------------------------------------------------------------------
87486 
87487 
87489 -- bulk performance
87490 --
87491 l_balance_type_code           VARCHAR2(1);
87492 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
87493 l_log_module                  VARCHAR2(240);
87494 
87495 --
87496 -- Upgrade strategy
87497 --
87498 l_actual_upg_option           VARCHAR2(1);
87499 l_enc_upg_option           VARCHAR2(1);
87500 
87501 --
87502 BEGIN
87503 --
87504 IF g_log_enabled THEN
87505       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_155';
87506 END IF;
87507 --
87508 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
87509 
87510       trace
87511          (p_msg      => 'BEGIN of AcctLineType_155'
87512          ,p_level    => C_LEVEL_PROCEDURE
87513          ,p_module   => l_log_module);
87514 
87515 END IF;
87516 --
87517 l_component_type             := 'AMB_JLT';
87518 l_component_code             := 'AP_LIAB_INV_AOS_AS';
87519 l_component_type_code        := 'S';
87520 l_component_appl_id          :=  200;
87521 l_amb_context_code           := 'DEFAULT';
87522 l_entity_code                := 'AP_INVOICES';
87523 l_event_class_code           := 'INVOICES';
87524 l_event_type_code            := 'INVOICES_ALL';
87525 l_line_definition_owner_code := 'S';
87526 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
87527 --
87528 l_balance_type_code          := 'A';
87529 l_segment                     := NULL;
87530 l_ccid                        := NULL;
87531 l_adr_transaction_coa_id      := NULL;
87532 l_adr_accounting_coa_id       := NULL;
87533 l_adr_flexfield_segment_code  := NULL;
87534 l_adr_flex_value_set_id       := NULL;
87535 l_adr_value_type_code         := NULL;
87536 l_adr_value_combination_id    := NULL;
87537 l_adr_value_segment_code      := NULL;
87538 
87539 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
87540 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
87541 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
87542 l_budgetary_control_flag     := 'N';
87543 
87544 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
87545 l_bflow_applied_to_amt       := NULL; -- 5132302
87546 l_entered_amt_idx            := NULL;          -- 4262811
87547 l_accted_amt_idx             := NULL;          -- 4262811
87548 l_acc_rev_flag               := NULL;          -- 4262811
87549 l_accrual_line_num           := NULL;          -- 4262811
87550 l_tmp_amt                    := NULL;          -- 4262811
87551 --
87552  
87553 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
87554     l_balance_type_code <> 'B' THEN
87555 IF NVL(p_source_15,'
87556 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
87557 (NVL(p_source_165,'
87558 ') =  'STANDARD' OR 
87559 NVL(p_source_165,'
87560 ') =  'MIXED' OR 
87561 NVL(p_source_165,'
87562 ') =  'AWT' OR 
87563 NVL(p_source_165,'
87564 ') =  'PO PRICE ADJUST' OR 
87565 NVL(p_source_165,'
87566 ') =  'EXPENSE REPORT' OR 
87567 NVL(p_source_165,'
87568 ') =  'PAYMENT REQUEST' OR 
87569 NVL(p_source_165,'
87570 ') =  'RETAINAGE RELEASE') AND 
87571 NVL(p_source_142,'
87572 ') <>  'Y'
87573  THEN 
87574 
87575    --
87576    XLA_AE_LINES_PKG.SetNewLine;
87577 
87578    p_balance_type_code          := l_balance_type_code;
87579    -- set the flag so later we will know whether the gain loss line needs to be created
87580    
87581    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
87582      p_actual_flag :='A';
87583    END IF;
87584 
87585    --
87586    -- bulk performance
87587    --
87588    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
87589                                       p_header_num   => 0); -- 4262811
87590    --
87591    -- set accounting line options
87592    --
87593    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
87594            p_natural_side_code          => 'C'
87595          , p_gain_or_loss_flag          => 'N'
87596          , p_gl_transfer_mode_code      => 'S'
87597          , p_acct_entry_type_code       => 'A'
87598          , p_switch_side_flag           => 'Y'
87599          , p_merge_duplicate_code       => 'A'
87600          );
87601    --
87602    l_acc_rev_natural_side_code := 'D';  -- 4262811
87603    -- 
87604    --
87605    -- set accounting line type info
87606    --
87607    xla_ae_lines_pkg.SetAcctLineType
87608       (p_component_type             => l_component_type
87609       ,p_event_type_code            => l_event_type_code
87610       ,p_line_definition_owner_code => l_line_definition_owner_code
87611       ,p_line_definition_code       => l_line_definition_code
87612       ,p_accounting_line_code       => l_component_code
87613       ,p_accounting_line_type_code  => l_component_type_code
87614       ,p_accounting_line_appl_id    => l_component_appl_id
87615       ,p_amb_context_code           => l_amb_context_code
87616       ,p_entity_code                => l_entity_code
87617       ,p_event_class_code           => l_event_class_code);
87618    --
87619    -- set accounting class
87620    --
87621    xla_ae_lines_pkg.SetAcctClass(
87622            p_accounting_class_code  => 'LIABILITY'
87623          , p_ae_header_id           => l_ae_header_id
87624          );
87628    --
87625 
87626    --
87627    -- set rounding class
87629    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
87630                       'LIABILITY';
87631 
87632    --
87633    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
87634    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
87635    --
87636    -- bulk performance
87637    --
87638    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
87639 
87640    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
87641       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
87642 
87643    -- 4955764
87644    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
87645       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
87646 
87647    -- 4458381 Public Sector Enh
87648    
87649    --
87650    -- set accounting attributes for the line type
87651    --
87652    l_entered_amt_idx := 24;
87653    l_accted_amt_idx  := 29;
87654    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
87655    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
87656    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
87657    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
87658    l_rec_acct_attrs.array_num_value(2)  := 
87659 xla_ae_sources_pkg.GetSystemSourceNum(
87660    p_source_code           => 'XLA_EVENT_APPL_ID'
87661  , p_source_type_code      => 'Y'
87662  , p_source_application_id =>  602
87663 );
87664    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
87665    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
87666    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
87667    l_rec_acct_attrs.array_char_value(4)  := 
87668 xla_ae_sources_pkg.GetSystemSourceChar(
87669    p_source_code           => 'XLA_ENTITY_CODE'
87670  , p_source_type_code      => 'Y'
87671  , p_source_application_id =>  602
87672 );
87673    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
87674    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
87675    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
87676    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
87677    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
87678    l_rec_acct_attrs.array_num_value(7)  := p_source_73;
87679    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
87680    l_rec_acct_attrs.array_num_value(8)  := p_source_91;
87681    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
87682    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
87683    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
87684    l_rec_acct_attrs.array_char_value(10)  := p_source_93;
87685    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
87686    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
87687    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
87688    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_95);
87689    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
87690    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_64);
87691    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
87692    l_rec_acct_attrs.array_char_value(14)  := p_source_55;
87693    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
87694    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
87695    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
87696    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
87697    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
87698    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
87699    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
87700    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
87701    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
87702    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
87703    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
87704    l_rec_acct_attrs.array_num_value(20)  := p_source_70;
87705    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
87706    l_rec_acct_attrs.array_char_value(21)  := p_source_67;
87707    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
87708    l_rec_acct_attrs.array_num_value(22)  := p_source_71;
87709    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
87710    l_rec_acct_attrs.array_char_value(23)  := p_source_72;
87711    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
87712    l_rec_acct_attrs.array_num_value(24)  := p_source_73;
87713    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
87714    l_rec_acct_attrs.array_char_value(25)  := p_source_67;
87715    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
87716    l_rec_acct_attrs.array_date_value(26)  := p_source_143;
87717    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
87718    l_rec_acct_attrs.array_num_value(27)  := p_source_144;
87719    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
87720    l_rec_acct_attrs.array_char_value(28)  := p_source_145;
87721    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
87725    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
87722    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
87723    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
87724    l_rec_acct_attrs.array_date_value(30)  := p_source_77;
87726    l_rec_acct_attrs.array_char_value(31)  := p_source_78;
87727    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
87728    l_rec_acct_attrs.array_date_value(32)  := p_source_79;
87729    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
87730    l_rec_acct_attrs.array_char_value(33)  := p_source_80;
87731    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
87732    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
87733    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
87734    l_rec_acct_attrs.array_num_value(35)  := p_source_82;
87735    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
87736    l_rec_acct_attrs.array_char_value(36)  := p_source_83;
87737    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
87738    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_84);
87739    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
87740    l_rec_acct_attrs.array_char_value(38)  := p_source_55;
87741    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
87742    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
87743    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
87744    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
87745    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
87746    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
87747    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
87748    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
87749    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
87750    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
87751    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
87752    l_rec_acct_attrs.array_num_value(44)  := p_source_90;
87753 
87754    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
87755    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
87756 
87757    ---------------------------------------------------------------------------------------------------------------
87758    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
87759    ---------------------------------------------------------------------------------------------------------------
87760    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
87761 
87762    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
87763    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
87764 
87765    IF xla_accounting_cache_pkg.GetValueChar
87766          (p_source_code         => 'LEDGER_CATEGORY_CODE'
87767          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
87768    AND l_bflow_method_code = 'PRIOR_ENTRY'
87769 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
87770    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
87771          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
87772        )
87773    THEN
87774          xla_ae_lines_pkg.BflowUpgEntry
87775            (p_business_method_code    => l_bflow_method_code
87776            ,p_business_class_code     => l_bflow_class_code
87777            ,p_balance_type            => l_balance_type_code);
87778    ELSE
87779       NULL;
87780 XLA_AE_LINES_PKG.business_flow_validation(
87781                                 p_business_method_code     => l_bflow_method_code
87782                                ,p_business_class_code      => l_bflow_class_code
87783                                ,p_inherit_description_flag => l_inherit_desc_flag);
87784    END IF;
87785 
87786    --
87787    -- call analytical criteria
87788    --
87789    
87790    --
87791    -- call description
87792    --
87793    
87794 xla_ae_lines_pkg.SetLineDescription(
87795    p_ae_header_id => l_ae_header_id
87796   ,p_description  => Description_1 (
87797      p_application_id         => p_application_id
87798    , p_ae_header_id           => l_ae_header_id 
87799 , p_source_1 => p_source_1
87800    )
87801 );
87802 
87803 
87804    --
87805    -- call ADRs
87806    -- Bug 4922099
87807    --
87808    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
87809         (NVL(l_actual_upg_option, 'N') = 'O') OR
87810         (NVL(l_enc_upg_option, 'N') = 'O')
87811       )
87812    THEN
87813    NULL;
87814    --
87815    --
87816    
87817    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
87818      p_code_combination_id      => TO_NUMBER(C_NUM)
87819    , p_value_type_code          => NULL
87820    , p_transaction_coa_id       => null
87821    , p_accounting_coa_id        => null
87822    , p_adr_code                 => NULL
87823    , p_adr_type_code            => NULL
87824    , p_component_type           => l_component_type
87825    , p_component_code           => l_component_code
87826    , p_component_type_code      => l_component_type_code
87827    , p_component_appl_id        => l_component_appl_id
87828    , p_amb_context_code         => l_amb_context_code
87829    , p_side                     => NULL
87830    );
87831 
87832    
87833   -- initialise segments
87837   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
87834   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
87835   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
87836   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
87838   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
87839   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
87840   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
87841   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
87842   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
87843   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
87844   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
87845   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
87846   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
87847   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
87848   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
87849   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
87850   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
87851   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
87852   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
87853   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
87854   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
87855   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
87856   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
87857   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
87858   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
87859   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
87860   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
87861   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
87862   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
87863   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
87864   --
87865 
87866    --
87867 
87868 
87869    l_segment := AcctDerRule_15(
87870            p_application_id           => p_application_id
87871          , p_ae_header_id             => l_ae_header_id 
87872 , p_source_34 => p_source_34
87873          , x_transaction_coa_id       => l_adr_transaction_coa_id
87874          , x_accounting_coa_id        => l_adr_accounting_coa_id
87875          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
87876          , x_flex_value_set_id        => l_adr_flex_value_set_id
87877          , x_value_type_code          => l_adr_value_type_code
87878          , x_value_combination_id     => l_adr_value_combination_id
87879          , x_value_segment_code       => l_adr_value_segment_code
87880          , p_side                     => 'NA'
87881          , p_override_seg_flag        => 'Y'
87882    );
87883 
87884    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
87885 
87886       xla_ae_lines_pkg.set_segment(
87887           p_to_segment_code         => 'GL_ACCOUNT'
87888         , p_segment_value           => l_segment
87889         , p_from_segment_code       => l_adr_value_segment_code
87890         , p_from_combination_id     => l_adr_value_combination_id
87891         , p_value_type_code         => l_adr_value_type_code
87892         , p_transaction_coa_id      => l_adr_transaction_coa_id
87893         , p_accounting_coa_id       => l_adr_accounting_coa_id
87894         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
87895         , p_flex_value_set_id       => l_adr_flex_value_set_id
87896         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
87897         , p_adr_type_code           => 'S'
87898         , p_component_type          => l_component_type
87899         , p_component_code          => l_component_code
87900         , p_component_type_code     => l_component_type_code
87901         , p_component_appl_id       => l_component_appl_id
87902         , p_amb_context_code        => l_amb_context_code
87903         , p_entity_code             => 'AP_INVOICES'
87904         , p_event_class_code        => 'INVOICES'
87905         , p_side                    => 'NA'
87906         );
87907 
87908   END IF;
87909 
87910    --
87911    --
87912    END IF;
87913    --
87914    -- Bug 4922099
87915    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
87916           (NVL(l_enc_upg_option, 'N') = 'O')
87917         ) AND
87918         (l_bflow_method_code = 'PRIOR_ENTRY')
87919       )
87920    THEN
87921       IF
87922       --
87923       1 = 2
87924       --
87925       THEN
87926       xla_accounting_err_pkg.build_message
87927                                     (p_appli_s_name            => 'XLA'
87928                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
87929                                     ,p_token_1                 => 'LINE_NUMBER'
87933                                                                              l_component_type
87930                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
87931                                     ,p_token_2                 => 'LINE_TYPE_NAME'
87932                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
87934                                                                             ,l_component_code
87935                                                                             ,l_component_type_code
87936                                                                             ,l_component_appl_id
87937                                                                             ,l_amb_context_code
87938                                                                             ,l_entity_code
87939                                                                             ,l_event_class_code
87940                                                                            )
87941                                     ,p_token_3                 => 'OWNER'
87942                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
87943                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
87944                                                                           ,p_lookup_code    => l_component_type_code
87945                                                                          )
87946                                     ,p_token_4                 => 'PRODUCT_NAME'
87947                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
87948                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
87949                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
87950                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
87951                                     ,p_ae_header_id            =>  NULL
87952                                        );
87953 
87954         IF (C_LEVEL_ERROR>= g_log_level) THEN
87955                  trace
87956                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
87957                       ,p_level    => C_LEVEL_ERROR
87958                       ,p_module   => l_log_module);
87959         END IF;
87960       END IF;
87961    END IF;
87962    --
87963    --
87964    ------------------------------------------------------------------------------------------------
87965    -- 4219869 Business Flow
87966    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
87967    -- Prior Entry.  Currently, the following code is always generated.
87968    ------------------------------------------------------------------------------------------------
87969    XLA_AE_LINES_PKG.ValidateCurrentLine;
87970 
87971    ------------------------------------------------------------------------------------
87972    -- 4219869 Business Flow
87973    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
87974    ------------------------------------------------------------------------------------
87975    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
87976 
87977    ----------------------------------------------------------------------------------
87978    -- 4219869 Business Flow
87979    -- Update journal entry status -- Need to generate this within IF <condition>
87980    ----------------------------------------------------------------------------------
87981    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
87982          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
87983          ,p_balance_type_code => l_balance_type_code
87984          );
87985 
87986    -------------------------------------------------------------------------------------------
87987    -- 4262811 - Generate the Accrual Reversal lines
87988    -------------------------------------------------------------------------------------------
87989    BEGIN
87990       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
87991                               (g_array_event(p_event_id).array_value_num('header_index'));
87992       IF l_acc_rev_flag IS NULL THEN
87993          l_acc_rev_flag := 'N';
87994       END IF;
87995    EXCEPTION
87996       WHEN OTHERS THEN
87997          l_acc_rev_flag := 'N';
87998    END;
87999    --
88000    IF (l_acc_rev_flag = 'Y') THEN
88001 
88002        -- 4645092  ------------------------------------------------------------------------------
88003        -- To allow MPA report to determine if it should generate report process
88004        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
88005        ------------------------------------------------------------------------------------------
88006 
88007        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
88008        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
88009    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
88010    -- call ADRs
88011    -- Bug 4922099
88012    --
88013    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
88014         (NVL(l_actual_upg_option, 'N') = 'O') OR
88015         (NVL(l_enc_upg_option, 'N') = 'O')
88016       )
88017    THEN
88018    NULL;
88019    --
88020    --
88021    
88022    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
88023      p_code_combination_id      => TO_NUMBER(C_NUM)
88024    , p_value_type_code          => NULL
88028    , p_adr_type_code            => NULL
88025    , p_transaction_coa_id       => null
88026    , p_accounting_coa_id        => null
88027    , p_adr_code                 => NULL
88029    , p_component_type           => l_component_type
88030    , p_component_code           => l_component_code
88031    , p_component_type_code      => l_component_type_code
88032    , p_component_appl_id        => l_component_appl_id
88033    , p_amb_context_code         => l_amb_context_code
88034    , p_side                     => NULL
88035    );
88036 
88037    
88038   -- initialise segments
88039   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88040   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88041   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88042   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88043   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88044   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88045   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88046   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88047   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
88048   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88049   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88050   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88051   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88052   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88053   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88054   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88055   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88056   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88057   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88058   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88059   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88060   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88061   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88062   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88063   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88064   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88065   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88066   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88067   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88068   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
88069   --
88070 
88071    --
88072 
88073 
88074    l_segment := AcctDerRule_15(
88075            p_application_id           => p_application_id
88076          , p_ae_header_id             => l_ae_header_id 
88077 , p_source_34 => p_source_34
88078          , x_transaction_coa_id       => l_adr_transaction_coa_id
88079          , x_accounting_coa_id        => l_adr_accounting_coa_id
88080          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
88081          , x_flex_value_set_id        => l_adr_flex_value_set_id
88082          , x_value_type_code          => l_adr_value_type_code
88083          , x_value_combination_id     => l_adr_value_combination_id
88084          , x_value_segment_code       => l_adr_value_segment_code
88085          , p_side                     => 'NA'
88086          , p_override_seg_flag        => 'Y'
88087    );
88088 
88089    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
88090 
88091       xla_ae_lines_pkg.set_segment(
88092           p_to_segment_code         => 'GL_ACCOUNT'
88093         , p_segment_value           => l_segment
88094         , p_from_segment_code       => l_adr_value_segment_code
88095         , p_from_combination_id     => l_adr_value_combination_id
88096         , p_value_type_code         => l_adr_value_type_code
88097         , p_transaction_coa_id      => l_adr_transaction_coa_id
88098         , p_accounting_coa_id       => l_adr_accounting_coa_id
88099         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
88100         , p_flex_value_set_id       => l_adr_flex_value_set_id
88101         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
88102         , p_adr_type_code           => 'S'
88103         , p_component_type          => l_component_type
88104         , p_component_code          => l_component_code
88105         , p_component_type_code     => l_component_type_code
88106         , p_component_appl_id       => l_component_appl_id
88107         , p_amb_context_code        => l_amb_context_code
88108         , p_entity_code             => 'AP_INVOICES'
88109         , p_event_class_code        => 'INVOICES'
88110         , p_side                    => 'NA'
88111         );
88112 
88113   END IF;
88114 
88115    --
88116    --
88117    END IF;
88118 
88119        --
88123                                          p_header_num   => 1);
88120        -- Update the line information that should be overwritten
88121        --
88122        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
88124        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
88125 
88126        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
88127 
88128        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
88129           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
88130        END IF;
88131 
88132       --
88133       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
88134       --
88135       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
88136           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
88137       ELSE
88138           ---------------------------------------------------------------------------------------------------
88139           -- 4262811a Switch Sign
88140           ---------------------------------------------------------------------------------------------------
88141           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
88142           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
88143                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88144           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
88145                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88146           -- 5132302
88147           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
88148                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88149 
88150       END IF;
88151 
88152       -- 4955764
88153       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
88154       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
88155 
88156 
88157       XLA_AE_LINES_PKG.ValidateCurrentLine;
88158       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
88159 
88160       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
88161                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
88162                ,p_balance_type_code => l_balance_type_code);
88163 
88164    END IF;
88165 
88166    -----------------------------------------------------------------------------------------
88167    -- 4262811 Multiperiod Accounting
88168    -----------------------------------------------------------------------------------------
88169      -- No MPA option is assigned.
88170 
88171 
88172 END IF;
88173 END IF;
88174 --
88175 
88176 --
88177 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88178    trace
88179       (p_msg      => 'END of AcctLineType_155'
88180       ,p_level    => C_LEVEL_PROCEDURE
88181       ,p_module   => l_log_module);
88182 END IF;
88183 --
88184 EXCEPTION
88185   WHEN xla_exceptions_pkg.application_exception THEN
88186       RAISE;
88187   WHEN OTHERS THEN
88188        xla_exceptions_pkg.raise_message
88189            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_155');
88190 END AcctLineType_155;
88191 --
88192 
88193 ---------------------------------------
88194 --
88195 -- PRIVATE FUNCTION
88196 --         AcctLineType_156
88197 --
88198 ---------------------------------------
88199 PROCEDURE AcctLineType_156 (
88200   p_application_id        IN NUMBER
88201  ,p_event_id              IN NUMBER
88202  ,p_calculate_acctd_flag  IN VARCHAR2
88203  ,p_calculate_g_l_flag    IN VARCHAR2
88204  ,p_actual_flag           IN OUT VARCHAR2
88205  ,p_balance_type_code     OUT VARCHAR2
88206  ,p_gain_or_loss_ref      OUT VARCHAR2
88207  
88208 --Invoice Distribution Description
88209  , p_source_1            IN VARCHAR2
88210 --Automatic Offsets Value
88211  , p_source_15            IN VARCHAR2
88212  , p_source_15_meaning    IN VARCHAR2
88213 --Invoice Distribution Ledger Amount
88214  , p_source_21            IN NUMBER
88215 --Invoice Liability Account
88216  , p_source_34            IN NUMBER
88217 --Accounting Reversal Indicator
88218  , p_source_53            IN VARCHAR2
88219 --Distribution Link Type
88220  , p_source_55            IN VARCHAR2
88221 --Allocation to Main Distribution Identifier
88222  , p_source_57            IN NUMBER
88223 --Invoice Identifier
88224  , p_source_58            IN NUMBER
88225 --Invoice Distribution Identifier
88226  , p_source_64            IN NUMBER
88227 --Payables Encumbrance Upgrade Credit Account
88228  , p_source_65            IN NUMBER
88229 --Payables Encumbrance Upgrade Credit Amount
88230  , p_source_66            IN NUMBER
88231 --Invoice Currency Code
88232  , p_source_67            IN VARCHAR2
88233 --Payables Encumbrance Upgrade Credit Base Amount
88234  , p_source_68            IN NUMBER
88235 --Payables Encumbrance Upgrade Debit Account
88236  , p_source_69            IN NUMBER
88237 --Payables Encumbrance Upgrade Debit Amount
88238  , p_source_70            IN NUMBER
88242  , p_source_72            IN VARCHAR2
88239 --Payables Encumbrance Upgrade Debit Base Amount
88240  , p_source_71            IN NUMBER
88241 --Payables Encumbrance Upgrade Option
88243 --Invoice Distribution Amount
88244  , p_source_73            IN NUMBER
88245 --Deferred Accounting End Date
88246  , p_source_77            IN DATE
88247 --Deferred Accounting Option
88248  , p_source_78            IN VARCHAR2
88249 --Deferred Accounting Start Date
88250  , p_source_79            IN DATE
88251 --Override Accounted Amount Indicator
88252  , p_source_80            IN VARCHAR2
88253  , p_source_80_meaning    IN VARCHAR2
88254 --Invoice Supplier Identifier
88255  , p_source_81            IN NUMBER
88256 --Invoice Supplier Site Identifier
88257  , p_source_82            IN NUMBER
88258 --Third Party Type
88259  , p_source_83            IN VARCHAR2
88260 --Parent Reversal Identifier
88261  , p_source_84            IN NUMBER
88262 --Invoice Distribution Statistical Amount
88263  , p_source_85            IN NUMBER
88264 --Invoice Distribution Tax Line Identifier
88265  , p_source_86            IN NUMBER
88266 --Invoice Distribution Tax Distribution Identifier from Tax
88267  , p_source_87            IN NUMBER
88268 --Invoice Distribution Summary Tax Line Identifier
88269  , p_source_88            IN NUMBER
88270 --Payables Upgrade Credit Encumbrance Type Identifier
88271  , p_source_89            IN NUMBER
88272 --Payables Upgrade Debit Encumbrance Type Identifier
88273  , p_source_90            IN NUMBER
88274 --Business Flow Accounts Payable Application Identifier
88275  , p_source_91            IN NUMBER
88276 --Business Flow Invoice Distribution Type
88277  , p_source_92            IN VARCHAR2
88278 --Business Flow Invoice Entity Code
88279  , p_source_93            IN VARCHAR2
88280 --Business Flow Invoice Distribution Identifier
88281  , p_source_94            IN NUMBER
88282 --Business Flow Invoice Identifier
88283  , p_source_95            IN NUMBER
88284 --Self-Assessed Tax Flag
88285  , p_source_142            IN VARCHAR2
88286  , p_source_142_meaning    IN VARCHAR2
88287 --Invoice Exchange Date
88288  , p_source_143            IN DATE
88289 --Invoice Exchange Rate
88290  , p_source_144            IN NUMBER
88291 --Invoice Exchange Rate Type
88292  , p_source_145            IN VARCHAR2
88293 --Invoice Type
88294  , p_source_165            IN VARCHAR2
88295  , p_source_165_meaning    IN VARCHAR2
88296 )
88297 IS
88298 
88299 l_component_type              VARCHAR2(80);
88300 l_component_code              VARCHAR2(30);
88301 l_component_type_code         VARCHAR2(1);
88302 l_component_appl_id           INTEGER;
88303 l_amb_context_code            VARCHAR2(30);
88304 l_entity_code                 VARCHAR2(30);
88305 l_event_class_code            VARCHAR2(30);
88306 l_ae_header_id                NUMBER;
88307 l_event_type_code             VARCHAR2(30);
88308 l_line_definition_code        VARCHAR2(30);
88309 l_line_definition_owner_code  VARCHAR2(1);
88310 --
88311 -- adr variables
88312 l_segment                     VARCHAR2(30);
88313 l_ccid                        NUMBER;
88314 l_adr_transaction_coa_id      NUMBER;
88315 l_adr_accounting_coa_id       NUMBER;
88316 l_adr_flexfield_segment_code  VARCHAR2(30);
88317 l_adr_flex_value_set_id       NUMBER;
88318 l_adr_value_type_code         VARCHAR2(30);
88319 l_adr_value_combination_id    NUMBER;
88320 l_adr_value_segment_code      VARCHAR2(30);
88321 
88322 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
88323 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
88324 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
88325 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
88326 
88327 -- 4262811 Variables ------------------------------------------------------------------------------------------
88328 l_entered_amt_idx             NUMBER;
88329 l_accted_amt_idx              NUMBER;
88330 l_acc_rev_flag                VARCHAR2(1);
88331 l_accrual_line_num            NUMBER;
88332 l_tmp_amt                     NUMBER;
88333 l_acc_rev_natural_side_code   VARCHAR2(1);
88334 
88335 l_num_entries                 NUMBER;
88336 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
88337 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
88338 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
88339 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
88340 l_recog_line_1                NUMBER;
88341 l_recog_line_2                NUMBER;
88342 
88343 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
88344 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
88345 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
88346 
88347 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
88348 
88349 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
88350 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
88351 
88352 ---------------------------------------------------------------------------------------------------------------
88353 
88354 
88355 --
88356 -- bulk performance
88357 --
88358 l_balance_type_code           VARCHAR2(1);
88359 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
88360 l_log_module                  VARCHAR2(240);
88361 
88365 l_actual_upg_option           VARCHAR2(1);
88362 --
88363 -- Upgrade strategy
88364 --
88366 l_enc_upg_option           VARCHAR2(1);
88367 
88368 --
88369 BEGIN
88370 --
88371 IF g_log_enabled THEN
88372       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_156';
88373 END IF;
88374 --
88375 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88376 
88377       trace
88378          (p_msg      => 'BEGIN of AcctLineType_156'
88379          ,p_level    => C_LEVEL_PROCEDURE
88380          ,p_module   => l_log_module);
88381 
88382 END IF;
88383 --
88384 l_component_type             := 'AMB_JLT';
88385 l_component_code             := 'AP_LIAB_INV_AOS_BS';
88386 l_component_type_code        := 'S';
88387 l_component_appl_id          :=  200;
88388 l_amb_context_code           := 'DEFAULT';
88389 l_entity_code                := 'AP_INVOICES';
88390 l_event_class_code           := 'INVOICES';
88391 l_event_type_code            := 'INVOICES_ALL';
88392 l_line_definition_owner_code := 'S';
88393 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
88394 --
88395 l_balance_type_code          := 'A';
88396 l_segment                     := NULL;
88397 l_ccid                        := NULL;
88398 l_adr_transaction_coa_id      := NULL;
88399 l_adr_accounting_coa_id       := NULL;
88400 l_adr_flexfield_segment_code  := NULL;
88401 l_adr_flex_value_set_id       := NULL;
88402 l_adr_value_type_code         := NULL;
88403 l_adr_value_combination_id    := NULL;
88404 l_adr_value_segment_code      := NULL;
88405 
88406 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
88407 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
88408 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
88409 l_budgetary_control_flag     := 'N';
88410 
88411 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
88412 l_bflow_applied_to_amt       := NULL; -- 5132302
88413 l_entered_amt_idx            := NULL;          -- 4262811
88414 l_accted_amt_idx             := NULL;          -- 4262811
88415 l_acc_rev_flag               := NULL;          -- 4262811
88416 l_accrual_line_num           := NULL;          -- 4262811
88417 l_tmp_amt                    := NULL;          -- 4262811
88418 --
88419  
88420 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
88421     l_balance_type_code <> 'B' THEN
88422 IF NVL(p_source_15,'
88423 ') =  'BALANCING_SEGMENT' AND 
88424 (NVL(p_source_165,'
88425 ') =  'STANDARD' OR 
88426 NVL(p_source_165,'
88427 ') =  'MIXED' OR 
88428 NVL(p_source_165,'
88429 ') =  'AWT' OR 
88430 NVL(p_source_165,'
88431 ') =  'PO PRICE ADJUST' OR 
88432 NVL(p_source_165,'
88433 ') =  'EXPENSE REPORT' OR 
88434 NVL(p_source_165,'
88435 ') =  'PAYMENT REQUEST' OR 
88436 NVL(p_source_165,'
88437 ') =  'RETAINAGE RELEASE') AND 
88438 NVL(p_source_142,'
88439 ') <>  'Y'
88440  THEN 
88441 
88442    --
88443    XLA_AE_LINES_PKG.SetNewLine;
88444 
88445    p_balance_type_code          := l_balance_type_code;
88446    -- set the flag so later we will know whether the gain loss line needs to be created
88447    
88448    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
88449      p_actual_flag :='A';
88450    END IF;
88451 
88452    --
88453    -- bulk performance
88454    --
88455    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
88456                                       p_header_num   => 0); -- 4262811
88457    --
88458    -- set accounting line options
88459    --
88460    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
88461            p_natural_side_code          => 'C'
88462          , p_gain_or_loss_flag          => 'N'
88463          , p_gl_transfer_mode_code      => 'S'
88464          , p_acct_entry_type_code       => 'A'
88465          , p_switch_side_flag           => 'Y'
88466          , p_merge_duplicate_code       => 'A'
88467          );
88468    --
88469    l_acc_rev_natural_side_code := 'D';  -- 4262811
88470    -- 
88471    --
88472    -- set accounting line type info
88473    --
88474    xla_ae_lines_pkg.SetAcctLineType
88475       (p_component_type             => l_component_type
88476       ,p_event_type_code            => l_event_type_code
88477       ,p_line_definition_owner_code => l_line_definition_owner_code
88478       ,p_line_definition_code       => l_line_definition_code
88479       ,p_accounting_line_code       => l_component_code
88480       ,p_accounting_line_type_code  => l_component_type_code
88481       ,p_accounting_line_appl_id    => l_component_appl_id
88482       ,p_amb_context_code           => l_amb_context_code
88483       ,p_entity_code                => l_entity_code
88484       ,p_event_class_code           => l_event_class_code);
88485    --
88486    -- set accounting class
88487    --
88488    xla_ae_lines_pkg.SetAcctClass(
88489            p_accounting_class_code  => 'LIABILITY'
88490          , p_ae_header_id           => l_ae_header_id
88491          );
88492 
88493    --
88494    -- set rounding class
88495    --
88496    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
88497                       'LIABILITY';
88498 
88499    --
88500    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
88501    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
88502    --
88506 
88503    -- bulk performance
88504    --
88505    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
88507    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
88508       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
88509 
88510    -- 4955764
88511    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
88512       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
88513 
88514    -- 4458381 Public Sector Enh
88515    
88516    --
88517    -- set accounting attributes for the line type
88518    --
88519    l_entered_amt_idx := 24;
88520    l_accted_amt_idx  := 29;
88521    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
88522    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
88523    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
88524    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
88525    l_rec_acct_attrs.array_num_value(2)  := 
88526 xla_ae_sources_pkg.GetSystemSourceNum(
88527    p_source_code           => 'XLA_EVENT_APPL_ID'
88528  , p_source_type_code      => 'Y'
88529  , p_source_application_id =>  602
88530 );
88531    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
88532    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
88533    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
88534    l_rec_acct_attrs.array_char_value(4)  := 
88535 xla_ae_sources_pkg.GetSystemSourceChar(
88536    p_source_code           => 'XLA_ENTITY_CODE'
88537  , p_source_type_code      => 'Y'
88538  , p_source_application_id =>  602
88539 );
88540    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
88541    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
88542    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
88543    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
88544    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
88545    l_rec_acct_attrs.array_num_value(7)  := p_source_73;
88546    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
88547    l_rec_acct_attrs.array_num_value(8)  := p_source_91;
88548    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
88549    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
88550    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
88551    l_rec_acct_attrs.array_char_value(10)  := p_source_93;
88552    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
88553    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
88554    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
88555    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_95);
88556    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
88557    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_64);
88558    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
88559    l_rec_acct_attrs.array_char_value(14)  := p_source_55;
88560    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
88561    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
88562    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
88563    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
88564    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
88565    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
88566    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
88567    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
88568    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
88569    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
88570    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
88571    l_rec_acct_attrs.array_num_value(20)  := p_source_70;
88572    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
88573    l_rec_acct_attrs.array_char_value(21)  := p_source_67;
88574    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
88575    l_rec_acct_attrs.array_num_value(22)  := p_source_71;
88576    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
88577    l_rec_acct_attrs.array_char_value(23)  := p_source_72;
88578    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
88579    l_rec_acct_attrs.array_num_value(24)  := p_source_73;
88580    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
88581    l_rec_acct_attrs.array_char_value(25)  := p_source_67;
88582    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
88583    l_rec_acct_attrs.array_date_value(26)  := p_source_143;
88584    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
88585    l_rec_acct_attrs.array_num_value(27)  := p_source_144;
88586    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
88587    l_rec_acct_attrs.array_char_value(28)  := p_source_145;
88588    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
88589    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
88590    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
88591    l_rec_acct_attrs.array_date_value(30)  := p_source_77;
88592    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
88593    l_rec_acct_attrs.array_char_value(31)  := p_source_78;
88594    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
88595    l_rec_acct_attrs.array_date_value(32)  := p_source_79;
88596    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
88600    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
88597    l_rec_acct_attrs.array_char_value(33)  := p_source_80;
88598    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
88599    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
88601    l_rec_acct_attrs.array_num_value(35)  := p_source_82;
88602    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
88603    l_rec_acct_attrs.array_char_value(36)  := p_source_83;
88604    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
88605    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_84);
88606    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
88607    l_rec_acct_attrs.array_char_value(38)  := p_source_55;
88608    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
88609    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
88610    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
88611    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
88612    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
88613    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
88614    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
88615    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
88616    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
88617    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
88618    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
88619    l_rec_acct_attrs.array_num_value(44)  := p_source_90;
88620 
88621    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
88622    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
88623 
88624    ---------------------------------------------------------------------------------------------------------------
88625    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
88626    ---------------------------------------------------------------------------------------------------------------
88627    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
88628 
88629    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
88630    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
88631 
88632    IF xla_accounting_cache_pkg.GetValueChar
88633          (p_source_code         => 'LEDGER_CATEGORY_CODE'
88634          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
88635    AND l_bflow_method_code = 'PRIOR_ENTRY'
88636 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
88637    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
88638          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
88639        )
88640    THEN
88641          xla_ae_lines_pkg.BflowUpgEntry
88642            (p_business_method_code    => l_bflow_method_code
88643            ,p_business_class_code     => l_bflow_class_code
88644            ,p_balance_type            => l_balance_type_code);
88645    ELSE
88646       NULL;
88647 XLA_AE_LINES_PKG.business_flow_validation(
88648                                 p_business_method_code     => l_bflow_method_code
88649                                ,p_business_class_code      => l_bflow_class_code
88650                                ,p_inherit_description_flag => l_inherit_desc_flag);
88651    END IF;
88652 
88653    --
88654    -- call analytical criteria
88655    --
88656    
88657    --
88658    -- call description
88659    --
88660    
88661 xla_ae_lines_pkg.SetLineDescription(
88662    p_ae_header_id => l_ae_header_id
88663   ,p_description  => Description_1 (
88664      p_application_id         => p_application_id
88665    , p_ae_header_id           => l_ae_header_id 
88666 , p_source_1 => p_source_1
88667    )
88668 );
88669 
88670 
88671    --
88672    -- call ADRs
88673    -- Bug 4922099
88674    --
88675    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
88676         (NVL(l_actual_upg_option, 'N') = 'O') OR
88677         (NVL(l_enc_upg_option, 'N') = 'O')
88678       )
88679    THEN
88680    NULL;
88681    --
88682    --
88683    
88684   l_ccid := AcctDerRule_34(
88685            p_application_id           => p_application_id
88686          , p_ae_header_id             => l_ae_header_id 
88687 , p_source_34 => p_source_34
88688          , x_transaction_coa_id       => l_adr_transaction_coa_id
88689          , x_accounting_coa_id        => l_adr_accounting_coa_id
88690          , x_value_type_code          => l_adr_value_type_code
88691          , p_side                     => 'NA'
88692    );
88693 
88694    xla_ae_lines_pkg.set_ccid(
88695     p_code_combination_id          => l_ccid
88696   , p_value_type_code              => l_adr_value_type_code
88697   , p_transaction_coa_id           => l_adr_transaction_coa_id
88698   , p_accounting_coa_id            => l_adr_accounting_coa_id
88699   , p_adr_code                     => 'AP_LIAB'
88700   , p_adr_type_code                => 'S'
88701   , p_component_type               => l_component_type
88702   , p_component_code               => l_component_code
88703   , p_component_type_code          => l_component_type_code
88704   , p_component_appl_id            => l_component_appl_id
88705   , p_amb_context_code             => l_amb_context_code
88706   , p_side                         => 'NA'
88707   );
88708 
88709 
88710    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
88714    , p_from_combination_id     => NULL
88711      p_to_segment_code         => 'GL_BALANCING'
88712    , p_segment_value           => C_CHAR
88713    , p_from_segment_code       => NULL
88715    , p_value_type_code         => NULL
88716    , p_transaction_coa_id      => null
88717    , p_accounting_coa_id       => null
88718    , p_flexfield_segment_code  => NULL
88719    , p_flex_value_set_id       => NULL
88720    , p_adr_code                => NULL
88721    , p_adr_type_code           => NULL
88722    , p_component_type          => l_component_type
88723    , p_component_code          => l_component_code
88724    , p_component_type_code     => l_component_type_code
88725    , p_component_appl_id       => l_component_appl_id
88726    , p_amb_context_code        => l_amb_context_code
88727    , p_entity_code             => 'AP_INVOICES'
88728    , p_event_class_code        => 'INVOICES'
88729    , p_side                    => 'NA'
88730    );
88731    --
88732 
88733 
88734    --
88735    --
88736    END IF;
88737    --
88738    -- Bug 4922099
88739    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
88740           (NVL(l_enc_upg_option, 'N') = 'O')
88741         ) AND
88742         (l_bflow_method_code = 'PRIOR_ENTRY')
88743       )
88744    THEN
88745       IF
88746       --
88747       1 = 2
88748       --
88749       THEN
88750       xla_accounting_err_pkg.build_message
88751                                     (p_appli_s_name            => 'XLA'
88752                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
88753                                     ,p_token_1                 => 'LINE_NUMBER'
88754                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
88755                                     ,p_token_2                 => 'LINE_TYPE_NAME'
88756                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
88757                                                                              l_component_type
88758                                                                             ,l_component_code
88759                                                                             ,l_component_type_code
88760                                                                             ,l_component_appl_id
88761                                                                             ,l_amb_context_code
88762                                                                             ,l_entity_code
88763                                                                             ,l_event_class_code
88764                                                                            )
88765                                     ,p_token_3                 => 'OWNER'
88766                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
88767                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
88768                                                                           ,p_lookup_code    => l_component_type_code
88769                                                                          )
88770                                     ,p_token_4                 => 'PRODUCT_NAME'
88771                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
88772                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
88773                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
88774                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
88775                                     ,p_ae_header_id            =>  NULL
88776                                        );
88777 
88778         IF (C_LEVEL_ERROR>= g_log_level) THEN
88779                  trace
88780                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
88781                       ,p_level    => C_LEVEL_ERROR
88782                       ,p_module   => l_log_module);
88783         END IF;
88784       END IF;
88785    END IF;
88786    --
88787    --
88788    ------------------------------------------------------------------------------------------------
88789    -- 4219869 Business Flow
88790    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
88791    -- Prior Entry.  Currently, the following code is always generated.
88792    ------------------------------------------------------------------------------------------------
88793    XLA_AE_LINES_PKG.ValidateCurrentLine;
88794 
88795    ------------------------------------------------------------------------------------
88796    -- 4219869 Business Flow
88797    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
88798    ------------------------------------------------------------------------------------
88799    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
88800 
88801    ----------------------------------------------------------------------------------
88802    -- 4219869 Business Flow
88803    -- Update journal entry status -- Need to generate this within IF <condition>
88804    ----------------------------------------------------------------------------------
88805    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
88806          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
88807          ,p_balance_type_code => l_balance_type_code
88808          );
88809 
88813    BEGIN
88810    -------------------------------------------------------------------------------------------
88811    -- 4262811 - Generate the Accrual Reversal lines
88812    -------------------------------------------------------------------------------------------
88814       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
88815                               (g_array_event(p_event_id).array_value_num('header_index'));
88816       IF l_acc_rev_flag IS NULL THEN
88817          l_acc_rev_flag := 'N';
88818       END IF;
88819    EXCEPTION
88820       WHEN OTHERS THEN
88821          l_acc_rev_flag := 'N';
88822    END;
88823    --
88824    IF (l_acc_rev_flag = 'Y') THEN
88825 
88826        -- 4645092  ------------------------------------------------------------------------------
88827        -- To allow MPA report to determine if it should generate report process
88828        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
88829        ------------------------------------------------------------------------------------------
88830 
88831        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
88832        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
88833    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
88834    -- call ADRs
88835    -- Bug 4922099
88836    --
88837    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
88838         (NVL(l_actual_upg_option, 'N') = 'O') OR
88839         (NVL(l_enc_upg_option, 'N') = 'O')
88840       )
88841    THEN
88842    NULL;
88843    --
88844    --
88845    
88846   l_ccid := AcctDerRule_34(
88847            p_application_id           => p_application_id
88848          , p_ae_header_id             => l_ae_header_id 
88849 , p_source_34 => p_source_34
88850          , x_transaction_coa_id       => l_adr_transaction_coa_id
88851          , x_accounting_coa_id        => l_adr_accounting_coa_id
88852          , x_value_type_code          => l_adr_value_type_code
88853          , p_side                     => 'NA'
88854    );
88855 
88856    xla_ae_lines_pkg.set_ccid(
88857     p_code_combination_id          => l_ccid
88858   , p_value_type_code              => l_adr_value_type_code
88859   , p_transaction_coa_id           => l_adr_transaction_coa_id
88860   , p_accounting_coa_id            => l_adr_accounting_coa_id
88861   , p_adr_code                     => 'AP_LIAB'
88862   , p_adr_type_code                => 'S'
88863   , p_component_type               => l_component_type
88864   , p_component_code               => l_component_code
88865   , p_component_type_code          => l_component_type_code
88866   , p_component_appl_id            => l_component_appl_id
88867   , p_amb_context_code             => l_amb_context_code
88868   , p_side                         => 'NA'
88869   );
88870 
88871 
88872    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
88873      p_to_segment_code         => 'GL_BALANCING'
88874    , p_segment_value           => C_CHAR
88875    , p_from_segment_code       => NULL
88876    , p_from_combination_id     => NULL
88877    , p_value_type_code         => NULL
88878    , p_transaction_coa_id      => null
88879    , p_accounting_coa_id       => null
88880    , p_flexfield_segment_code  => NULL
88881    , p_flex_value_set_id       => NULL
88882    , p_adr_code                => NULL
88883    , p_adr_type_code           => NULL
88884    , p_component_type          => l_component_type
88885    , p_component_code          => l_component_code
88886    , p_component_type_code     => l_component_type_code
88887    , p_component_appl_id       => l_component_appl_id
88888    , p_amb_context_code        => l_amb_context_code
88889    , p_entity_code             => 'AP_INVOICES'
88890    , p_event_class_code        => 'INVOICES'
88891    , p_side                    => 'NA'
88892    );
88893    --
88894 
88895 
88896    --
88897    --
88898    END IF;
88899 
88900        --
88901        -- Update the line information that should be overwritten
88902        --
88903        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
88904                                          p_header_num   => 1);
88905        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
88906 
88907        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
88908 
88909        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
88910           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
88911        END IF;
88912 
88913       --
88914       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
88915       --
88916       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
88917           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
88918       ELSE
88919           ---------------------------------------------------------------------------------------------------
88920           -- 4262811a Switch Sign
88921           ---------------------------------------------------------------------------------------------------
88922           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
88926                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88923           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
88924                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88925           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
88927           -- 5132302
88928           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
88929                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
88930 
88931       END IF;
88932 
88933       -- 4955764
88934       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
88935       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
88936 
88937 
88938       XLA_AE_LINES_PKG.ValidateCurrentLine;
88939       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
88940 
88941       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
88942                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
88943                ,p_balance_type_code => l_balance_type_code);
88944 
88945    END IF;
88946 
88947    -----------------------------------------------------------------------------------------
88948    -- 4262811 Multiperiod Accounting
88949    -----------------------------------------------------------------------------------------
88950      -- No MPA option is assigned.
88951 
88952 
88953 END IF;
88954 END IF;
88955 --
88956 
88957 --
88958 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88959    trace
88960       (p_msg      => 'END of AcctLineType_156'
88961       ,p_level    => C_LEVEL_PROCEDURE
88962       ,p_module   => l_log_module);
88963 END IF;
88964 --
88965 EXCEPTION
88966   WHEN xla_exceptions_pkg.application_exception THEN
88967       RAISE;
88968   WHEN OTHERS THEN
88969        xla_exceptions_pkg.raise_message
88970            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_156');
88971 END AcctLineType_156;
88972 --
88973 
88974 ---------------------------------------
88975 --
88976 -- PRIVATE FUNCTION
88977 --         AcctLineType_157
88978 --
88979 ---------------------------------------
88980 PROCEDURE AcctLineType_157 (
88981   p_application_id        IN NUMBER
88982  ,p_event_id              IN NUMBER
88983  ,p_calculate_acctd_flag  IN VARCHAR2
88984  ,p_calculate_g_l_flag    IN VARCHAR2
88985  ,p_actual_flag           IN OUT VARCHAR2
88986  ,p_balance_type_code     OUT VARCHAR2
88987  ,p_gain_or_loss_ref      OUT VARCHAR2
88988  
88989 --Payment Currency Code
88990  , p_source_13            IN VARCHAR2
88991 --Accounting Reversal Indicator
88992  , p_source_53            IN VARCHAR2
88993 --Distribution Link Type
88994  , p_source_55            IN VARCHAR2
88995 --Override Accounted Amount Indicator
88996  , p_source_80            IN VARCHAR2
88997  , p_source_80_meaning    IN VARCHAR2
88998 --Third Party Type
88999  , p_source_83            IN VARCHAR2
89000 --Invoice Distribution Tax Line Identifier
89001  , p_source_86            IN NUMBER
89002 --Invoice Distribution Tax Distribution Identifier from Tax
89003  , p_source_87            IN NUMBER
89004 --Invoice Distribution Summary Tax Line Identifier
89005  , p_source_88            IN NUMBER
89006 --Business Flow Accounts Payable Application Identifier
89007  , p_source_91            IN NUMBER
89008 --Business Flow Invoice Distribution Type
89009  , p_source_92            IN VARCHAR2
89010 --Business Flow Invoice Entity Code
89011  , p_source_93            IN VARCHAR2
89012 --Business Flow Invoice Distribution Identifier
89013  , p_source_94            IN NUMBER
89014 --Business Flow Invoice Identifier
89015  , p_source_95            IN NUMBER
89016 --When to Account for Payment Option
89017  , p_source_97            IN VARCHAR2
89018 --Payment Distribution Type
89019  , p_source_98            IN VARCHAR2
89020  , p_source_98_meaning    IN VARCHAR2
89021 --Payment Distribution Amount
89022  , p_source_99            IN NUMBER
89023 --Payment Distribution Identifier
89024  , p_source_104            IN NUMBER
89025 --Payment Distribution Reversed Identifier
89026  , p_source_112            IN NUMBER
89027 --Payment Distribution (Invoice Rate) Ledger Amount
89028  , p_source_116            IN NUMBER
89029 --Payment Type
89030  , p_source_122            IN VARCHAR2
89031  , p_source_122_meaning    IN VARCHAR2
89032 --Invoice Distribution Amount of the Payment Distribution
89033  , p_source_124            IN NUMBER
89034 --Invoice Type Paid
89035  , p_source_163            IN VARCHAR2
89036  , p_source_163_meaning    IN VARCHAR2
89037 )
89038 IS
89039 
89040 l_component_type              VARCHAR2(80);
89041 l_component_code              VARCHAR2(30);
89042 l_component_type_code         VARCHAR2(1);
89043 l_component_appl_id           INTEGER;
89044 l_amb_context_code            VARCHAR2(30);
89045 l_entity_code                 VARCHAR2(30);
89046 l_event_class_code            VARCHAR2(30);
89047 l_ae_header_id                NUMBER;
89048 l_event_type_code             VARCHAR2(30);
89049 l_line_definition_code        VARCHAR2(30);
89050 l_line_definition_owner_code  VARCHAR2(1);
89051 --
89052 -- adr variables
89053 l_segment                     VARCHAR2(30);
89057 l_adr_flexfield_segment_code  VARCHAR2(30);
89054 l_ccid                        NUMBER;
89055 l_adr_transaction_coa_id      NUMBER;
89056 l_adr_accounting_coa_id       NUMBER;
89058 l_adr_flex_value_set_id       NUMBER;
89059 l_adr_value_type_code         VARCHAR2(30);
89060 l_adr_value_combination_id    NUMBER;
89061 l_adr_value_segment_code      VARCHAR2(30);
89062 
89063 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
89064 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
89065 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
89066 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
89067 
89068 -- 4262811 Variables ------------------------------------------------------------------------------------------
89069 l_entered_amt_idx             NUMBER;
89070 l_accted_amt_idx              NUMBER;
89071 l_acc_rev_flag                VARCHAR2(1);
89072 l_accrual_line_num            NUMBER;
89073 l_tmp_amt                     NUMBER;
89074 l_acc_rev_natural_side_code   VARCHAR2(1);
89075 
89076 l_num_entries                 NUMBER;
89077 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
89078 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
89079 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
89080 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
89081 l_recog_line_1                NUMBER;
89082 l_recog_line_2                NUMBER;
89083 
89084 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
89085 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
89086 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
89087 
89088 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
89089 
89090 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
89091 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
89092 
89093 ---------------------------------------------------------------------------------------------------------------
89094 
89095 
89096 --
89097 -- bulk performance
89098 --
89099 l_balance_type_code           VARCHAR2(1);
89100 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
89101 l_log_module                  VARCHAR2(240);
89102 
89103 --
89104 -- Upgrade strategy
89105 --
89106 l_actual_upg_option           VARCHAR2(1);
89107 l_enc_upg_option           VARCHAR2(1);
89108 
89109 --
89110 BEGIN
89111 --
89112 IF g_log_enabled THEN
89113       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_157';
89114 END IF;
89115 --
89116 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89117 
89118       trace
89119          (p_msg      => 'BEGIN of AcctLineType_157'
89120          ,p_level    => C_LEVEL_PROCEDURE
89121          ,p_module   => l_log_module);
89122 
89123 END IF;
89124 --
89125 l_component_type             := 'AMB_JLT';
89126 l_component_code             := 'AP_LIAB_PMT';
89127 l_component_type_code        := 'S';
89128 l_component_appl_id          :=  200;
89129 l_amb_context_code           := 'DEFAULT';
89130 l_entity_code                := 'AP_PAYMENTS';
89131 l_event_class_code           := 'PAYMENTS';
89132 l_event_type_code            := 'PAYMENTS_ALL';
89133 l_line_definition_owner_code := 'S';
89134 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
89135 --
89136 l_balance_type_code          := 'A';
89137 l_segment                     := NULL;
89138 l_ccid                        := NULL;
89139 l_adr_transaction_coa_id      := NULL;
89140 l_adr_accounting_coa_id       := NULL;
89141 l_adr_flexfield_segment_code  := NULL;
89142 l_adr_flex_value_set_id       := NULL;
89143 l_adr_value_type_code         := NULL;
89144 l_adr_value_combination_id    := NULL;
89145 l_adr_value_segment_code      := NULL;
89146 
89147 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
89148 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
89149 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
89150 l_budgetary_control_flag     := 'N';
89151 
89152 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
89153 l_bflow_applied_to_amt       := NULL; -- 5132302
89154 l_entered_amt_idx            := NULL;          -- 4262811
89155 l_accted_amt_idx             := NULL;          -- 4262811
89156 l_acc_rev_flag               := NULL;          -- 4262811
89157 l_accrual_line_num           := NULL;          -- 4262811
89158 l_tmp_amt                    := NULL;          -- 4262811
89159 --
89160  
89161 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
89162     l_balance_type_code <> 'B' THEN
89163 IF NVL(p_source_97,'
89164 ') <>  'CLEAR_CLEAR' AND 
89165 NVL(p_source_163,'
89166 ') <>  'INTEREST' AND 
89167 (NVL(p_source_98,'
89168 ') =  'ROUNDING' OR 
89169 NVL(p_source_98,'
89170 ') =  'CASH' OR 
89171 NVL(p_source_98,'
89172 ') =  'DISCOUNT') AND 
89173 NVL(p_source_122,'
89174 ') <>  'R'
89175  THEN 
89176 
89177    --
89178    XLA_AE_LINES_PKG.SetNewLine;
89179 
89180    p_balance_type_code          := l_balance_type_code;
89181    -- set the flag so later we will know whether the gain loss line needs to be created
89182    
89183    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
89184      p_actual_flag :='A';
89185    END IF;
89186 
89187    --
89191                                       p_header_num   => 0); -- 4262811
89188    -- bulk performance
89189    --
89190    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
89192    --
89193    -- set accounting line options
89194    --
89195    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
89196            p_natural_side_code          => 'D'
89197          , p_gain_or_loss_flag          => 'N'
89198          , p_gl_transfer_mode_code      => 'S'
89199          , p_acct_entry_type_code       => 'A'
89200          , p_switch_side_flag           => 'Y'
89201          , p_merge_duplicate_code       => 'A'
89202          );
89203    --
89204    l_acc_rev_natural_side_code := 'C';  -- 4262811
89205    -- 
89206    --
89207    -- set accounting line type info
89208    --
89209    xla_ae_lines_pkg.SetAcctLineType
89210       (p_component_type             => l_component_type
89211       ,p_event_type_code            => l_event_type_code
89212       ,p_line_definition_owner_code => l_line_definition_owner_code
89213       ,p_line_definition_code       => l_line_definition_code
89214       ,p_accounting_line_code       => l_component_code
89215       ,p_accounting_line_type_code  => l_component_type_code
89216       ,p_accounting_line_appl_id    => l_component_appl_id
89217       ,p_amb_context_code           => l_amb_context_code
89218       ,p_entity_code                => l_entity_code
89219       ,p_event_class_code           => l_event_class_code);
89220    --
89221    -- set accounting class
89222    --
89223    xla_ae_lines_pkg.SetAcctClass(
89224            p_accounting_class_code  => 'LIABILITY'
89225          , p_ae_header_id           => l_ae_header_id
89226          );
89227 
89228    --
89229    -- set rounding class
89230    --
89231    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
89232                       'LIABILITY';
89233 
89234    --
89235    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
89236    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
89237    --
89238    -- bulk performance
89239    --
89240    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
89241 
89242    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
89243       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
89244 
89245    -- 4955764
89246    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
89247       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
89248 
89249    -- 4458381 Public Sector Enh
89250    
89251    --
89252    -- set accounting attributes for the line type
89253    --
89254    l_entered_amt_idx := 10;
89255    l_accted_amt_idx  := 12;
89256    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
89257    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
89258    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
89259    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
89260    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
89261    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
89262    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
89263    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
89264    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
89265    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
89266    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
89267    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
89268    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
89269    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
89270    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
89271    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
89272    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
89273    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
89274    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
89275    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
89276    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
89277    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
89278    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
89279    l_rec_acct_attrs.array_acct_attr_code(12) := 'LEDGER_AMOUNT';
89280    l_rec_acct_attrs.array_num_value(12)  := p_source_116;
89281    l_rec_acct_attrs.array_acct_attr_code(13) := 'OVERRIDE_ACCTD_AMT_FLAG';
89282    l_rec_acct_attrs.array_char_value(13)  := p_source_80;
89283    l_rec_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
89284    l_rec_acct_attrs.array_char_value(14)  := p_source_83;
89285    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
89286    l_rec_acct_attrs.array_num_value(15)  :=  to_char(p_source_112);
89287    l_rec_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
89288    l_rec_acct_attrs.array_char_value(16)  := p_source_55;
89289    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
89290    l_rec_acct_attrs.array_num_value(17)  := p_source_86;
89291    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
89292    l_rec_acct_attrs.array_num_value(18)  := p_source_87;
89293    l_rec_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
89294    l_rec_acct_attrs.array_num_value(19)  := p_source_88;
89298 
89295 
89296    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
89297    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
89299    ---------------------------------------------------------------------------------------------------------------
89300    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
89301    ---------------------------------------------------------------------------------------------------------------
89302    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
89303 
89304    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
89305    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
89306 
89307    IF xla_accounting_cache_pkg.GetValueChar
89308          (p_source_code         => 'LEDGER_CATEGORY_CODE'
89309          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
89310    AND l_bflow_method_code = 'PRIOR_ENTRY'
89311 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
89312    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
89313          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
89314        )
89315    THEN
89316          xla_ae_lines_pkg.BflowUpgEntry
89317            (p_business_method_code    => l_bflow_method_code
89318            ,p_business_class_code     => l_bflow_class_code
89319            ,p_balance_type            => l_balance_type_code);
89320    ELSE
89321       NULL;
89322 XLA_AE_LINES_PKG.business_flow_validation(
89323                                 p_business_method_code     => l_bflow_method_code
89324                                ,p_business_class_code      => l_bflow_class_code
89325                                ,p_inherit_description_flag => l_inherit_desc_flag);
89326    END IF;
89327 
89328    --
89329    -- call analytical criteria
89330    --
89331    -- Inherited Analytical Criteria for business flow method of Prior Entry.
89332    --
89333    -- call description
89334    --
89335    -- No description or it is inherited.
89336    --
89337    -- call ADRs
89338    -- Bug 4922099
89339    --
89340    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
89341         (NVL(l_actual_upg_option, 'N') = 'O') OR
89342         (NVL(l_enc_upg_option, 'N') = 'O')
89343       )
89344    THEN
89345    NULL;
89346    --
89347    --
89348    
89349    --
89350    --
89351    END IF;
89352    --
89353    -- Bug 4922099
89354    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
89355           (NVL(l_enc_upg_option, 'N') = 'O')
89356         ) AND
89357         (l_bflow_method_code = 'PRIOR_ENTRY')
89358       )
89359    THEN
89360       IF
89361       --
89362       1 = 1
89363       --
89364       THEN
89365       xla_accounting_err_pkg.build_message
89366                                     (p_appli_s_name            => 'XLA'
89367                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
89368                                     ,p_token_1                 => 'LINE_NUMBER'
89369                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
89370                                     ,p_token_2                 => 'LINE_TYPE_NAME'
89371                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
89372                                                                              l_component_type
89373                                                                             ,l_component_code
89374                                                                             ,l_component_type_code
89375                                                                             ,l_component_appl_id
89376                                                                             ,l_amb_context_code
89377                                                                             ,l_entity_code
89378                                                                             ,l_event_class_code
89379                                                                            )
89380                                     ,p_token_3                 => 'OWNER'
89381                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
89382                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
89383                                                                           ,p_lookup_code    => l_component_type_code
89384                                                                          )
89385                                     ,p_token_4                 => 'PRODUCT_NAME'
89386                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
89387                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
89388                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
89389                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
89390                                     ,p_ae_header_id            =>  NULL
89391                                        );
89392 
89393         IF (C_LEVEL_ERROR>= g_log_level) THEN
89394                  trace
89395                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
89396                       ,p_level    => C_LEVEL_ERROR
89400    END IF;
89397                       ,p_module   => l_log_module);
89398         END IF;
89399       END IF;
89401    --
89402    --
89403    ------------------------------------------------------------------------------------------------
89404    -- 4219869 Business Flow
89405    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
89406    -- Prior Entry.  Currently, the following code is always generated.
89407    ------------------------------------------------------------------------------------------------
89408    -- No ValidateCurrentLine for business flow method of Prior Entry
89409 
89410    ------------------------------------------------------------------------------------
89411    -- 4219869 Business Flow
89412    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
89413    ------------------------------------------------------------------------------------
89414    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
89415 
89416    ----------------------------------------------------------------------------------
89417    -- 4219869 Business Flow
89418    -- Update journal entry status -- Need to generate this within IF <condition>
89419    ----------------------------------------------------------------------------------
89420    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
89421          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
89422          ,p_balance_type_code => l_balance_type_code
89423          );
89424 
89425    -------------------------------------------------------------------------------------------
89426    -- 4262811 - Generate the Accrual Reversal lines
89427    -------------------------------------------------------------------------------------------
89428    BEGIN
89429       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
89430                               (g_array_event(p_event_id).array_value_num('header_index'));
89431       IF l_acc_rev_flag IS NULL THEN
89432          l_acc_rev_flag := 'N';
89433       END IF;
89434    EXCEPTION
89435       WHEN OTHERS THEN
89436          l_acc_rev_flag := 'N';
89437    END;
89438    --
89439    IF (l_acc_rev_flag = 'Y') THEN
89440 
89441        -- 4645092  ------------------------------------------------------------------------------
89442        -- To allow MPA report to determine if it should generate report process
89443        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
89444        ------------------------------------------------------------------------------------------
89445 
89446        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
89447        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
89448    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
89449    -- call ADRs
89450    -- Bug 4922099
89451    --
89452    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
89453         (NVL(l_actual_upg_option, 'N') = 'O') OR
89454         (NVL(l_enc_upg_option, 'N') = 'O')
89455       )
89456    THEN
89457    NULL;
89458    --
89459    --
89460    
89461    --
89462    --
89463    END IF;
89464 
89465        --
89466        -- Update the line information that should be overwritten
89467        --
89468        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
89469                                          p_header_num   => 1);
89470        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
89471 
89472        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
89473 
89474        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
89475           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
89476        END IF;
89477 
89478       --
89479       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
89480       --
89481       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
89482           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
89483       ELSE
89484           ---------------------------------------------------------------------------------------------------
89485           -- 4262811a Switch Sign
89486           ---------------------------------------------------------------------------------------------------
89487           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
89488           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
89489                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
89490           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
89491                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
89492           -- 5132302
89493           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
89494                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
89495 
89496       END IF;
89497 
89498       -- 4955764
89499       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
89500       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
89501 
89502 
89503       XLA_AE_LINES_PKG.ValidateCurrentLine;
89507                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
89504       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
89505 
89506       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
89508                ,p_balance_type_code => l_balance_type_code);
89509 
89510    END IF;
89511 
89512    -----------------------------------------------------------------------------------------
89513    -- 4262811 Multiperiod Accounting
89514    -----------------------------------------------------------------------------------------
89515      -- No MPA option is assigned.
89516 
89517 
89518 END IF;
89519 END IF;
89520 --
89521 
89522 --
89523 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89524    trace
89525       (p_msg      => 'END of AcctLineType_157'
89526       ,p_level    => C_LEVEL_PROCEDURE
89527       ,p_module   => l_log_module);
89528 END IF;
89529 --
89530 EXCEPTION
89531   WHEN xla_exceptions_pkg.application_exception THEN
89532       RAISE;
89533   WHEN OTHERS THEN
89534        xla_exceptions_pkg.raise_message
89535            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_157');
89536 END AcctLineType_157;
89537 --
89538 
89539 ---------------------------------------
89540 --
89541 -- PRIVATE FUNCTION
89542 --         AcctLineType_158
89543 --
89544 ---------------------------------------
89545 PROCEDURE AcctLineType_158 (
89546   p_application_id        IN NUMBER
89547  ,p_event_id              IN NUMBER
89548  ,p_calculate_acctd_flag  IN VARCHAR2
89549  ,p_calculate_g_l_flag    IN VARCHAR2
89550  ,p_actual_flag           IN OUT VARCHAR2
89551  ,p_balance_type_code     OUT VARCHAR2
89552  ,p_gain_or_loss_ref      OUT VARCHAR2
89553  
89554 --Invoice Distribution Description
89555  , p_source_1            IN VARCHAR2
89556 --Automatic Offsets Value
89557  , p_source_15            IN VARCHAR2
89558  , p_source_15_meaning    IN VARCHAR2
89559 --Invoice Distribution Ledger Amount
89560  , p_source_21            IN NUMBER
89561 --Invoice Liability Account
89562  , p_source_34            IN NUMBER
89563 --Accounting Reversal Indicator
89564  , p_source_53            IN VARCHAR2
89565 --Distribution Link Type
89566  , p_source_55            IN VARCHAR2
89567 --Allocation to Main Distribution Identifier
89568  , p_source_57            IN NUMBER
89569 --Invoice Identifier
89570  , p_source_58            IN NUMBER
89571 --Invoice Distribution Identifier
89572  , p_source_64            IN NUMBER
89573 --Payables Encumbrance Upgrade Credit Account
89574  , p_source_65            IN NUMBER
89575 --Payables Encumbrance Upgrade Credit Amount
89576  , p_source_66            IN NUMBER
89577 --Invoice Currency Code
89578  , p_source_67            IN VARCHAR2
89579 --Payables Encumbrance Upgrade Credit Base Amount
89580  , p_source_68            IN NUMBER
89581 --Payables Encumbrance Upgrade Debit Account
89582  , p_source_69            IN NUMBER
89583 --Payables Encumbrance Upgrade Debit Amount
89584  , p_source_70            IN NUMBER
89585 --Payables Encumbrance Upgrade Debit Base Amount
89586  , p_source_71            IN NUMBER
89587 --Payables Encumbrance Upgrade Option
89588  , p_source_72            IN VARCHAR2
89589 --Invoice Distribution Amount
89590  , p_source_73            IN NUMBER
89591 --Deferred Accounting End Date
89592  , p_source_77            IN DATE
89593 --Deferred Accounting Option
89594  , p_source_78            IN VARCHAR2
89595 --Deferred Accounting Start Date
89596  , p_source_79            IN DATE
89597 --Override Accounted Amount Indicator
89598  , p_source_80            IN VARCHAR2
89599  , p_source_80_meaning    IN VARCHAR2
89600 --Invoice Supplier Identifier
89601  , p_source_81            IN NUMBER
89602 --Invoice Supplier Site Identifier
89603  , p_source_82            IN NUMBER
89604 --Third Party Type
89605  , p_source_83            IN VARCHAR2
89606 --Parent Reversal Identifier
89607  , p_source_84            IN NUMBER
89608 --Invoice Distribution Statistical Amount
89609  , p_source_85            IN NUMBER
89610 --Invoice Distribution Tax Line Identifier
89611  , p_source_86            IN NUMBER
89612 --Invoice Distribution Tax Distribution Identifier from Tax
89613  , p_source_87            IN NUMBER
89614 --Invoice Distribution Summary Tax Line Identifier
89615  , p_source_88            IN NUMBER
89616 --Payables Upgrade Credit Encumbrance Type Identifier
89617  , p_source_89            IN NUMBER
89618 --Payables Upgrade Debit Encumbrance Type Identifier
89619  , p_source_90            IN NUMBER
89620 --Business Flow Accounts Payable Application Identifier
89621  , p_source_91            IN NUMBER
89622 --Business Flow Invoice Distribution Type
89623  , p_source_92            IN VARCHAR2
89624 --Business Flow Invoice Entity Code
89625  , p_source_93            IN VARCHAR2
89626 --Business Flow Invoice Distribution Identifier
89627  , p_source_94            IN NUMBER
89628 --Business Flow Invoice Identifier
89629  , p_source_95            IN NUMBER
89630 --Self-Assessed Tax Flag
89631  , p_source_142            IN VARCHAR2
89632  , p_source_142_meaning    IN VARCHAR2
89633 --Invoice Exchange Date
89634  , p_source_143            IN DATE
89635 --Invoice Exchange Rate
89636  , p_source_144            IN NUMBER
89637 --Invoice Exchange Rate Type
89638  , p_source_145            IN VARCHAR2
89639 )
89640 IS
89641 
89645 l_component_appl_id           INTEGER;
89642 l_component_type              VARCHAR2(80);
89643 l_component_code              VARCHAR2(30);
89644 l_component_type_code         VARCHAR2(1);
89646 l_amb_context_code            VARCHAR2(30);
89647 l_entity_code                 VARCHAR2(30);
89648 l_event_class_code            VARCHAR2(30);
89649 l_ae_header_id                NUMBER;
89650 l_event_type_code             VARCHAR2(30);
89651 l_line_definition_code        VARCHAR2(30);
89652 l_line_definition_owner_code  VARCHAR2(1);
89653 --
89654 -- adr variables
89655 l_segment                     VARCHAR2(30);
89656 l_ccid                        NUMBER;
89657 l_adr_transaction_coa_id      NUMBER;
89658 l_adr_accounting_coa_id       NUMBER;
89659 l_adr_flexfield_segment_code  VARCHAR2(30);
89660 l_adr_flex_value_set_id       NUMBER;
89661 l_adr_value_type_code         VARCHAR2(30);
89662 l_adr_value_combination_id    NUMBER;
89663 l_adr_value_segment_code      VARCHAR2(30);
89664 
89665 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
89666 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
89667 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
89668 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
89669 
89670 -- 4262811 Variables ------------------------------------------------------------------------------------------
89671 l_entered_amt_idx             NUMBER;
89672 l_accted_amt_idx              NUMBER;
89673 l_acc_rev_flag                VARCHAR2(1);
89674 l_accrual_line_num            NUMBER;
89675 l_tmp_amt                     NUMBER;
89676 l_acc_rev_natural_side_code   VARCHAR2(1);
89677 
89678 l_num_entries                 NUMBER;
89679 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
89680 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
89681 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
89682 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
89683 l_recog_line_1                NUMBER;
89684 l_recog_line_2                NUMBER;
89685 
89686 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
89687 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
89688 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
89689 
89690 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
89691 
89692 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
89693 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
89694 
89695 ---------------------------------------------------------------------------------------------------------------
89696 
89697 
89698 --
89699 -- bulk performance
89700 --
89701 l_balance_type_code           VARCHAR2(1);
89702 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
89703 l_log_module                  VARCHAR2(240);
89704 
89705 --
89706 -- Upgrade strategy
89707 --
89708 l_actual_upg_option           VARCHAR2(1);
89709 l_enc_upg_option           VARCHAR2(1);
89710 
89711 --
89712 BEGIN
89713 --
89714 IF g_log_enabled THEN
89715       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_158';
89716 END IF;
89717 --
89718 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89719 
89720       trace
89721          (p_msg      => 'BEGIN of AcctLineType_158'
89722          ,p_level    => C_LEVEL_PROCEDURE
89723          ,p_module   => l_log_module);
89724 
89725 END IF;
89726 --
89727 l_component_type             := 'AMB_JLT';
89728 l_component_code             := 'AP_LIAB_PREPAY';
89729 l_component_type_code        := 'S';
89730 l_component_appl_id          :=  200;
89731 l_amb_context_code           := 'DEFAULT';
89732 l_entity_code                := 'AP_INVOICES';
89733 l_event_class_code           := 'PREPAYMENTS';
89734 l_event_type_code            := 'PREPAYMENTS_ALL';
89735 l_line_definition_owner_code := 'S';
89736 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
89737 --
89738 l_balance_type_code          := 'A';
89739 l_segment                     := NULL;
89740 l_ccid                        := NULL;
89741 l_adr_transaction_coa_id      := NULL;
89742 l_adr_accounting_coa_id       := NULL;
89743 l_adr_flexfield_segment_code  := NULL;
89744 l_adr_flex_value_set_id       := NULL;
89745 l_adr_value_type_code         := NULL;
89746 l_adr_value_combination_id    := NULL;
89747 l_adr_value_segment_code      := NULL;
89748 
89749 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
89750 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
89751 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
89752 l_budgetary_control_flag     := 'N';
89753 
89754 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
89755 l_bflow_applied_to_amt       := NULL; -- 5132302
89756 l_entered_amt_idx            := NULL;          -- 4262811
89757 l_accted_amt_idx             := NULL;          -- 4262811
89758 l_acc_rev_flag               := NULL;          -- 4262811
89759 l_accrual_line_num           := NULL;          -- 4262811
89760 l_tmp_amt                    := NULL;          -- 4262811
89761 --
89762  
89763 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
89764     l_balance_type_code <> 'B' THEN
89765 IF (NVL(p_source_15,'
89769 NVL(p_source_142,'
89766 ') <>  'BALANCING_SEGMENT' AND 
89767 NVL(p_source_15,'
89768 ') <>  'ACCOUNT_SEGMENT_VALUE') AND 
89770 ') <>  'Y'
89771  THEN 
89772 
89773    --
89774    XLA_AE_LINES_PKG.SetNewLine;
89775 
89776    p_balance_type_code          := l_balance_type_code;
89777    -- set the flag so later we will know whether the gain loss line needs to be created
89778    
89779    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
89780      p_actual_flag :='A';
89781    END IF;
89782 
89783    --
89784    -- bulk performance
89785    --
89786    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
89787                                       p_header_num   => 0); -- 4262811
89788    --
89789    -- set accounting line options
89790    --
89791    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
89792            p_natural_side_code          => 'C'
89793          , p_gain_or_loss_flag          => 'N'
89794          , p_gl_transfer_mode_code      => 'S'
89795          , p_acct_entry_type_code       => 'A'
89796          , p_switch_side_flag           => 'Y'
89797          , p_merge_duplicate_code       => 'A'
89798          );
89799    --
89800    l_acc_rev_natural_side_code := 'D';  -- 4262811
89801    -- 
89802    --
89803    -- set accounting line type info
89804    --
89805    xla_ae_lines_pkg.SetAcctLineType
89806       (p_component_type             => l_component_type
89807       ,p_event_type_code            => l_event_type_code
89808       ,p_line_definition_owner_code => l_line_definition_owner_code
89809       ,p_line_definition_code       => l_line_definition_code
89810       ,p_accounting_line_code       => l_component_code
89811       ,p_accounting_line_type_code  => l_component_type_code
89812       ,p_accounting_line_appl_id    => l_component_appl_id
89813       ,p_amb_context_code           => l_amb_context_code
89814       ,p_entity_code                => l_entity_code
89815       ,p_event_class_code           => l_event_class_code);
89816    --
89817    -- set accounting class
89818    --
89819    xla_ae_lines_pkg.SetAcctClass(
89820            p_accounting_class_code  => 'LIABILITY'
89821          , p_ae_header_id           => l_ae_header_id
89822          );
89823 
89824    --
89825    -- set rounding class
89826    --
89827    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
89828                       'LIABILITY';
89829 
89830    --
89831    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
89832    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
89833    --
89834    -- bulk performance
89835    --
89836    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
89837 
89838    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
89839       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
89840 
89841    -- 4955764
89842    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
89843       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
89844 
89845    -- 4458381 Public Sector Enh
89846    
89847    --
89848    -- set accounting attributes for the line type
89849    --
89850    l_entered_amt_idx := 23;
89851    l_accted_amt_idx  := 28;
89852    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
89853    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
89854    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
89855    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
89856    l_rec_acct_attrs.array_num_value(2)  := 
89857 xla_ae_sources_pkg.GetSystemSourceNum(
89858    p_source_code           => 'XLA_EVENT_APPL_ID'
89859  , p_source_type_code      => 'Y'
89860  , p_source_application_id =>  602
89861 );
89862    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
89863    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
89864    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
89865    l_rec_acct_attrs.array_char_value(4)  := 
89866 xla_ae_sources_pkg.GetSystemSourceChar(
89867    p_source_code           => 'XLA_ENTITY_CODE'
89868  , p_source_type_code      => 'Y'
89869  , p_source_application_id =>  602
89870 );
89871    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
89872    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
89873    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
89874    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
89875    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
89876    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
89877    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
89878    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
89879    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
89880    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
89881    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
89882    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
89883    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
89884    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
89885    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
89889    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
89886    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
89887    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
89888    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
89890    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
89891    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
89892    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
89893    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
89894    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
89895    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
89896    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
89897    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
89898    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
89899    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
89900    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
89901    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
89902    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
89903    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
89904    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
89905    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
89906    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
89907    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
89908    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
89909    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
89910    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
89911    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
89912    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
89913    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
89914    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
89915    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
89916    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
89917    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
89918    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
89919    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
89920    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
89921    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
89922    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
89923    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
89924    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
89925    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
89926    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
89927    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
89928    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
89929    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
89930    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
89931    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
89932    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
89933    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
89934    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
89935    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
89936    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
89937    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
89938    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
89939    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
89940    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
89941    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
89942    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
89943    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
89944    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
89945    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
89946    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
89947    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
89948    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
89949 
89950    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
89951    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
89952 
89953    ---------------------------------------------------------------------------------------------------------------
89954    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
89955    ---------------------------------------------------------------------------------------------------------------
89956    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
89957 
89958    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
89959    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
89960 
89961    IF xla_accounting_cache_pkg.GetValueChar
89962          (p_source_code         => 'LEDGER_CATEGORY_CODE'
89963          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
89964    AND l_bflow_method_code = 'PRIOR_ENTRY'
89965 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
89966    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
89967          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
89968        )
89969    THEN
89970          xla_ae_lines_pkg.BflowUpgEntry
89971            (p_business_method_code    => l_bflow_method_code
89975       NULL;
89972            ,p_business_class_code     => l_bflow_class_code
89973            ,p_balance_type            => l_balance_type_code);
89974    ELSE
89976 -- No business flow processing for business flow method of NONE.
89977    END IF;
89978 
89979    --
89980    -- call analytical criteria
89981    --
89982    
89983    --
89984    -- call description
89985    --
89986    
89987 xla_ae_lines_pkg.SetLineDescription(
89988    p_ae_header_id => l_ae_header_id
89989   ,p_description  => Description_1 (
89990      p_application_id         => p_application_id
89991    , p_ae_header_id           => l_ae_header_id 
89992 , p_source_1 => p_source_1
89993    )
89994 );
89995 
89996 
89997    --
89998    -- call ADRs
89999    -- Bug 4922099
90000    --
90001    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
90002         (NVL(l_actual_upg_option, 'N') = 'O') OR
90003         (NVL(l_enc_upg_option, 'N') = 'O')
90004       )
90005    THEN
90006    NULL;
90007    --
90008    --
90009    
90010   l_ccid := AcctDerRule_34(
90011            p_application_id           => p_application_id
90012          , p_ae_header_id             => l_ae_header_id 
90013 , p_source_34 => p_source_34
90014          , x_transaction_coa_id       => l_adr_transaction_coa_id
90015          , x_accounting_coa_id        => l_adr_accounting_coa_id
90016          , x_value_type_code          => l_adr_value_type_code
90017          , p_side                     => 'NA'
90018    );
90019 
90020    xla_ae_lines_pkg.set_ccid(
90021     p_code_combination_id          => l_ccid
90022   , p_value_type_code              => l_adr_value_type_code
90023   , p_transaction_coa_id           => l_adr_transaction_coa_id
90024   , p_accounting_coa_id            => l_adr_accounting_coa_id
90025   , p_adr_code                     => 'AP_LIAB'
90026   , p_adr_type_code                => 'S'
90027   , p_component_type               => l_component_type
90028   , p_component_code               => l_component_code
90029   , p_component_type_code          => l_component_type_code
90030   , p_component_appl_id            => l_component_appl_id
90031   , p_amb_context_code             => l_amb_context_code
90032   , p_side                         => 'NA'
90033   );
90034 
90035 
90036    --
90037    --
90038    END IF;
90039    --
90040    -- Bug 4922099
90041    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
90042           (NVL(l_enc_upg_option, 'N') = 'O')
90043         ) AND
90044         (l_bflow_method_code = 'PRIOR_ENTRY')
90045       )
90046    THEN
90047       IF
90048       --
90049       1 = 2
90050       --
90051       THEN
90052       xla_accounting_err_pkg.build_message
90053                                     (p_appli_s_name            => 'XLA'
90054                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
90055                                     ,p_token_1                 => 'LINE_NUMBER'
90056                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
90057                                     ,p_token_2                 => 'LINE_TYPE_NAME'
90058                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
90059                                                                              l_component_type
90060                                                                             ,l_component_code
90061                                                                             ,l_component_type_code
90062                                                                             ,l_component_appl_id
90063                                                                             ,l_amb_context_code
90064                                                                             ,l_entity_code
90065                                                                             ,l_event_class_code
90066                                                                            )
90067                                     ,p_token_3                 => 'OWNER'
90068                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
90069                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
90070                                                                           ,p_lookup_code    => l_component_type_code
90071                                                                          )
90072                                     ,p_token_4                 => 'PRODUCT_NAME'
90073                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
90074                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
90075                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
90076                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
90077                                     ,p_ae_header_id            =>  NULL
90078                                        );
90079 
90080         IF (C_LEVEL_ERROR>= g_log_level) THEN
90081                  trace
90082                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
90083                       ,p_level    => C_LEVEL_ERROR
90084                       ,p_module   => l_log_module);
90085         END IF;
90086       END IF;
90087    END IF;
90088    --
90089    --
90093    -- Prior Entry.  Currently, the following code is always generated.
90090    ------------------------------------------------------------------------------------------------
90091    -- 4219869 Business Flow
90092    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
90094    ------------------------------------------------------------------------------------------------
90095    XLA_AE_LINES_PKG.ValidateCurrentLine;
90096 
90097    ------------------------------------------------------------------------------------
90098    -- 4219869 Business Flow
90099    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
90100    ------------------------------------------------------------------------------------
90101    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
90102 
90103    ----------------------------------------------------------------------------------
90104    -- 4219869 Business Flow
90105    -- Update journal entry status -- Need to generate this within IF <condition>
90106    ----------------------------------------------------------------------------------
90107    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
90108          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
90109          ,p_balance_type_code => l_balance_type_code
90110          );
90111 
90112    -------------------------------------------------------------------------------------------
90113    -- 4262811 - Generate the Accrual Reversal lines
90114    -------------------------------------------------------------------------------------------
90115    BEGIN
90116       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
90117                               (g_array_event(p_event_id).array_value_num('header_index'));
90118       IF l_acc_rev_flag IS NULL THEN
90119          l_acc_rev_flag := 'N';
90120       END IF;
90121    EXCEPTION
90122       WHEN OTHERS THEN
90123          l_acc_rev_flag := 'N';
90124    END;
90125    --
90126    IF (l_acc_rev_flag = 'Y') THEN
90127 
90128        -- 4645092  ------------------------------------------------------------------------------
90129        -- To allow MPA report to determine if it should generate report process
90130        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
90131        ------------------------------------------------------------------------------------------
90132 
90133        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
90134        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
90135    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
90136    -- call ADRs
90137    -- Bug 4922099
90138    --
90139    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
90140         (NVL(l_actual_upg_option, 'N') = 'O') OR
90141         (NVL(l_enc_upg_option, 'N') = 'O')
90142       )
90143    THEN
90144    NULL;
90145    --
90146    --
90147    
90148   l_ccid := AcctDerRule_34(
90149            p_application_id           => p_application_id
90150          , p_ae_header_id             => l_ae_header_id 
90151 , p_source_34 => p_source_34
90152          , x_transaction_coa_id       => l_adr_transaction_coa_id
90153          , x_accounting_coa_id        => l_adr_accounting_coa_id
90154          , x_value_type_code          => l_adr_value_type_code
90155          , p_side                     => 'NA'
90156    );
90157 
90158    xla_ae_lines_pkg.set_ccid(
90159     p_code_combination_id          => l_ccid
90160   , p_value_type_code              => l_adr_value_type_code
90161   , p_transaction_coa_id           => l_adr_transaction_coa_id
90162   , p_accounting_coa_id            => l_adr_accounting_coa_id
90163   , p_adr_code                     => 'AP_LIAB'
90164   , p_adr_type_code                => 'S'
90165   , p_component_type               => l_component_type
90166   , p_component_code               => l_component_code
90167   , p_component_type_code          => l_component_type_code
90168   , p_component_appl_id            => l_component_appl_id
90169   , p_amb_context_code             => l_amb_context_code
90170   , p_side                         => 'NA'
90171   );
90172 
90173 
90174    --
90175    --
90176    END IF;
90177 
90178        --
90179        -- Update the line information that should be overwritten
90180        --
90181        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
90182                                          p_header_num   => 1);
90183        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
90184 
90185        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
90186 
90187        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
90188           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
90189        END IF;
90190 
90191       --
90192       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
90193       --
90194       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
90195           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
90196       ELSE
90197           ---------------------------------------------------------------------------------------------------
90198           -- 4262811a Switch Sign
90199           ---------------------------------------------------------------------------------------------------
90203           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
90200           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
90201           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
90202                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90204                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90205           -- 5132302
90206           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
90207                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
90208 
90209       END IF;
90210 
90211       -- 4955764
90212       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
90213       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
90214 
90215 
90216       XLA_AE_LINES_PKG.ValidateCurrentLine;
90217       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
90218 
90219       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
90220                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
90221                ,p_balance_type_code => l_balance_type_code);
90222 
90223    END IF;
90224 
90225    -----------------------------------------------------------------------------------------
90226    -- 4262811 Multiperiod Accounting
90227    -----------------------------------------------------------------------------------------
90228      -- No MPA option is assigned.
90229 
90230 
90231 END IF;
90232 END IF;
90233 --
90234 
90235 --
90236 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
90237    trace
90238       (p_msg      => 'END of AcctLineType_158'
90239       ,p_level    => C_LEVEL_PROCEDURE
90240       ,p_module   => l_log_module);
90241 END IF;
90242 --
90243 EXCEPTION
90244   WHEN xla_exceptions_pkg.application_exception THEN
90245       RAISE;
90246   WHEN OTHERS THEN
90247        xla_exceptions_pkg.raise_message
90248            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_158');
90249 END AcctLineType_158;
90250 --
90251 
90252 ---------------------------------------
90253 --
90254 -- PRIVATE FUNCTION
90255 --         AcctLineType_159
90256 --
90257 ---------------------------------------
90258 PROCEDURE AcctLineType_159 (
90259   p_application_id        IN NUMBER
90260  ,p_event_id              IN NUMBER
90261  ,p_calculate_acctd_flag  IN VARCHAR2
90262  ,p_calculate_g_l_flag    IN VARCHAR2
90263  ,p_actual_flag           IN OUT VARCHAR2
90264  ,p_balance_type_code     OUT VARCHAR2
90265  ,p_gain_or_loss_ref      OUT VARCHAR2
90266  
90267 --Invoice Distribution Description
90268  , p_source_1            IN VARCHAR2
90269 --Automatic Offsets Value
90270  , p_source_15            IN VARCHAR2
90271  , p_source_15_meaning    IN VARCHAR2
90272 --Invoice Distribution Ledger Amount
90273  , p_source_21            IN NUMBER
90274 --Invoice Liability Account
90275  , p_source_34            IN NUMBER
90276 --Accounting Reversal Indicator
90277  , p_source_53            IN VARCHAR2
90278 --Distribution Link Type
90279  , p_source_55            IN VARCHAR2
90280 --Allocation to Main Distribution Identifier
90281  , p_source_57            IN NUMBER
90282 --Invoice Identifier
90283  , p_source_58            IN NUMBER
90284 --Invoice Distribution Identifier
90285  , p_source_64            IN NUMBER
90286 --Payables Encumbrance Upgrade Credit Account
90287  , p_source_65            IN NUMBER
90288 --Payables Encumbrance Upgrade Credit Amount
90289  , p_source_66            IN NUMBER
90290 --Invoice Currency Code
90291  , p_source_67            IN VARCHAR2
90292 --Payables Encumbrance Upgrade Credit Base Amount
90293  , p_source_68            IN NUMBER
90294 --Payables Encumbrance Upgrade Debit Account
90295  , p_source_69            IN NUMBER
90296 --Payables Encumbrance Upgrade Debit Amount
90297  , p_source_70            IN NUMBER
90298 --Payables Encumbrance Upgrade Debit Base Amount
90299  , p_source_71            IN NUMBER
90300 --Payables Encumbrance Upgrade Option
90301  , p_source_72            IN VARCHAR2
90302 --Invoice Distribution Amount
90303  , p_source_73            IN NUMBER
90304 --Deferred Accounting End Date
90305  , p_source_77            IN DATE
90306 --Deferred Accounting Option
90307  , p_source_78            IN VARCHAR2
90308 --Deferred Accounting Start Date
90309  , p_source_79            IN DATE
90310 --Override Accounted Amount Indicator
90311  , p_source_80            IN VARCHAR2
90312  , p_source_80_meaning    IN VARCHAR2
90313 --Invoice Supplier Identifier
90314  , p_source_81            IN NUMBER
90315 --Invoice Supplier Site Identifier
90316  , p_source_82            IN NUMBER
90317 --Third Party Type
90318  , p_source_83            IN VARCHAR2
90319 --Parent Reversal Identifier
90320  , p_source_84            IN NUMBER
90321 --Invoice Distribution Statistical Amount
90322  , p_source_85            IN NUMBER
90323 --Invoice Distribution Tax Line Identifier
90324  , p_source_86            IN NUMBER
90325 --Invoice Distribution Tax Distribution Identifier from Tax
90326  , p_source_87            IN NUMBER
90327 --Invoice Distribution Summary Tax Line Identifier
90331 --Payables Upgrade Debit Encumbrance Type Identifier
90328  , p_source_88            IN NUMBER
90329 --Payables Upgrade Credit Encumbrance Type Identifier
90330  , p_source_89            IN NUMBER
90332  , p_source_90            IN NUMBER
90333 --Business Flow Accounts Payable Application Identifier
90334  , p_source_91            IN NUMBER
90335 --Business Flow Invoice Distribution Type
90336  , p_source_92            IN VARCHAR2
90337 --Business Flow Invoice Entity Code
90338  , p_source_93            IN VARCHAR2
90339 --Business Flow Invoice Distribution Identifier
90340  , p_source_94            IN NUMBER
90341 --Business Flow Invoice Identifier
90342  , p_source_95            IN NUMBER
90343 --Self-Assessed Tax Flag
90344  , p_source_142            IN VARCHAR2
90345  , p_source_142_meaning    IN VARCHAR2
90346 --Invoice Exchange Date
90347  , p_source_143            IN DATE
90348 --Invoice Exchange Rate
90349  , p_source_144            IN NUMBER
90350 --Invoice Exchange Rate Type
90351  , p_source_145            IN VARCHAR2
90352 )
90353 IS
90354 
90355 l_component_type              VARCHAR2(80);
90356 l_component_code              VARCHAR2(30);
90357 l_component_type_code         VARCHAR2(1);
90358 l_component_appl_id           INTEGER;
90359 l_amb_context_code            VARCHAR2(30);
90360 l_entity_code                 VARCHAR2(30);
90361 l_event_class_code            VARCHAR2(30);
90362 l_ae_header_id                NUMBER;
90363 l_event_type_code             VARCHAR2(30);
90364 l_line_definition_code        VARCHAR2(30);
90365 l_line_definition_owner_code  VARCHAR2(1);
90366 --
90367 -- adr variables
90368 l_segment                     VARCHAR2(30);
90369 l_ccid                        NUMBER;
90370 l_adr_transaction_coa_id      NUMBER;
90371 l_adr_accounting_coa_id       NUMBER;
90372 l_adr_flexfield_segment_code  VARCHAR2(30);
90373 l_adr_flex_value_set_id       NUMBER;
90374 l_adr_value_type_code         VARCHAR2(30);
90375 l_adr_value_combination_id    NUMBER;
90376 l_adr_value_segment_code      VARCHAR2(30);
90377 
90378 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
90379 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
90380 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
90381 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
90382 
90383 -- 4262811 Variables ------------------------------------------------------------------------------------------
90384 l_entered_amt_idx             NUMBER;
90385 l_accted_amt_idx              NUMBER;
90386 l_acc_rev_flag                VARCHAR2(1);
90387 l_accrual_line_num            NUMBER;
90388 l_tmp_amt                     NUMBER;
90389 l_acc_rev_natural_side_code   VARCHAR2(1);
90390 
90391 l_num_entries                 NUMBER;
90392 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
90393 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
90394 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
90395 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
90396 l_recog_line_1                NUMBER;
90397 l_recog_line_2                NUMBER;
90398 
90399 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
90400 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
90401 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
90402 
90403 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
90404 
90405 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
90406 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
90407 
90408 ---------------------------------------------------------------------------------------------------------------
90409 
90410 
90411 --
90412 -- bulk performance
90413 --
90414 l_balance_type_code           VARCHAR2(1);
90415 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
90416 l_log_module                  VARCHAR2(240);
90417 
90418 --
90419 -- Upgrade strategy
90420 --
90421 l_actual_upg_option           VARCHAR2(1);
90422 l_enc_upg_option           VARCHAR2(1);
90423 
90424 --
90425 BEGIN
90426 --
90427 IF g_log_enabled THEN
90428       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_159';
90429 END IF;
90430 --
90431 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
90432 
90433       trace
90434          (p_msg      => 'BEGIN of AcctLineType_159'
90435          ,p_level    => C_LEVEL_PROCEDURE
90436          ,p_module   => l_log_module);
90437 
90438 END IF;
90439 --
90440 l_component_type             := 'AMB_JLT';
90441 l_component_code             := 'AP_LIAB_PREPAY_AOS_AS';
90442 l_component_type_code        := 'S';
90443 l_component_appl_id          :=  200;
90444 l_amb_context_code           := 'DEFAULT';
90445 l_entity_code                := 'AP_INVOICES';
90446 l_event_class_code           := 'PREPAYMENTS';
90447 l_event_type_code            := 'PREPAYMENTS_ALL';
90448 l_line_definition_owner_code := 'S';
90449 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
90450 --
90451 l_balance_type_code          := 'A';
90452 l_segment                     := NULL;
90453 l_ccid                        := NULL;
90454 l_adr_transaction_coa_id      := NULL;
90455 l_adr_accounting_coa_id       := NULL;
90459 l_adr_value_combination_id    := NULL;
90456 l_adr_flexfield_segment_code  := NULL;
90457 l_adr_flex_value_set_id       := NULL;
90458 l_adr_value_type_code         := NULL;
90460 l_adr_value_segment_code      := NULL;
90461 
90462 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
90463 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
90464 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
90465 l_budgetary_control_flag     := 'N';
90466 
90467 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
90468 l_bflow_applied_to_amt       := NULL; -- 5132302
90469 l_entered_amt_idx            := NULL;          -- 4262811
90470 l_accted_amt_idx             := NULL;          -- 4262811
90471 l_acc_rev_flag               := NULL;          -- 4262811
90472 l_accrual_line_num           := NULL;          -- 4262811
90473 l_tmp_amt                    := NULL;          -- 4262811
90474 --
90475  
90476 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
90477     l_balance_type_code <> 'B' THEN
90478 IF NVL(p_source_15,'
90479 ') =  'ACCOUNT_SEGMENT_VALUE' AND 
90480 NVL(p_source_142,'
90481 ') <>  'Y'
90482  THEN 
90483 
90484    --
90485    XLA_AE_LINES_PKG.SetNewLine;
90486 
90487    p_balance_type_code          := l_balance_type_code;
90488    -- set the flag so later we will know whether the gain loss line needs to be created
90489    
90490    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
90491      p_actual_flag :='A';
90492    END IF;
90493 
90494    --
90495    -- bulk performance
90496    --
90497    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
90498                                       p_header_num   => 0); -- 4262811
90499    --
90500    -- set accounting line options
90501    --
90502    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
90503            p_natural_side_code          => 'C'
90504          , p_gain_or_loss_flag          => 'N'
90505          , p_gl_transfer_mode_code      => 'S'
90506          , p_acct_entry_type_code       => 'A'
90507          , p_switch_side_flag           => 'Y'
90508          , p_merge_duplicate_code       => 'A'
90509          );
90510    --
90511    l_acc_rev_natural_side_code := 'D';  -- 4262811
90512    -- 
90513    --
90514    -- set accounting line type info
90515    --
90516    xla_ae_lines_pkg.SetAcctLineType
90517       (p_component_type             => l_component_type
90518       ,p_event_type_code            => l_event_type_code
90519       ,p_line_definition_owner_code => l_line_definition_owner_code
90520       ,p_line_definition_code       => l_line_definition_code
90521       ,p_accounting_line_code       => l_component_code
90522       ,p_accounting_line_type_code  => l_component_type_code
90523       ,p_accounting_line_appl_id    => l_component_appl_id
90524       ,p_amb_context_code           => l_amb_context_code
90525       ,p_entity_code                => l_entity_code
90526       ,p_event_class_code           => l_event_class_code);
90527    --
90528    -- set accounting class
90529    --
90530    xla_ae_lines_pkg.SetAcctClass(
90531            p_accounting_class_code  => 'LIABILITY'
90532          , p_ae_header_id           => l_ae_header_id
90533          );
90534 
90535    --
90536    -- set rounding class
90537    --
90538    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
90539                       'LIABILITY';
90540 
90541    --
90542    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
90543    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
90544    --
90545    -- bulk performance
90546    --
90547    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
90548 
90549    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
90550       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
90551 
90552    -- 4955764
90553    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
90554       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
90555 
90556    -- 4458381 Public Sector Enh
90557    
90558    --
90559    -- set accounting attributes for the line type
90560    --
90561    l_entered_amt_idx := 23;
90562    l_accted_amt_idx  := 28;
90563    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
90564    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
90565    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
90566    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
90567    l_rec_acct_attrs.array_num_value(2)  := 
90568 xla_ae_sources_pkg.GetSystemSourceNum(
90569    p_source_code           => 'XLA_EVENT_APPL_ID'
90570  , p_source_type_code      => 'Y'
90571  , p_source_application_id =>  602
90572 );
90573    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
90574    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
90575    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
90576    l_rec_acct_attrs.array_char_value(4)  := 
90577 xla_ae_sources_pkg.GetSystemSourceChar(
90578    p_source_code           => 'XLA_ENTITY_CODE'
90579  , p_source_type_code      => 'Y'
90580  , p_source_application_id =>  602
90581 );
90585    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
90582    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
90583    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
90584    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
90586    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
90587    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
90588    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
90589    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
90590    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
90591    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
90592    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
90593    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
90594    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
90595    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
90596    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
90597    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
90598    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
90599    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
90600    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
90601    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
90602    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
90603    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
90604    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
90605    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
90606    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
90607    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
90608    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
90609    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
90610    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
90611    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
90612    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
90613    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
90614    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
90615    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
90616    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
90617    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
90618    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
90619    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
90620    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
90621    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
90622    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
90623    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
90624    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
90625    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
90626    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
90627    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
90628    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
90629    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
90630    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
90631    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
90632    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
90633    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
90634    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
90635    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
90636    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
90637    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
90638    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
90639    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
90640    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
90641    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
90642    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
90643    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
90644    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
90645    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
90646    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
90647    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
90648    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
90649    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
90650    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
90651    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
90652    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
90653    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
90654    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
90655    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
90656    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
90657    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
90658    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
90659    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
90660 
90661    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
90662    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
90663 
90664    ---------------------------------------------------------------------------------------------------------------
90665    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
90669    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
90666    ---------------------------------------------------------------------------------------------------------------
90667    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
90668 
90670    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
90671 
90672    IF xla_accounting_cache_pkg.GetValueChar
90673          (p_source_code         => 'LEDGER_CATEGORY_CODE'
90674          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
90675    AND l_bflow_method_code = 'PRIOR_ENTRY'
90676 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
90677    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
90678          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
90679        )
90680    THEN
90681          xla_ae_lines_pkg.BflowUpgEntry
90682            (p_business_method_code    => l_bflow_method_code
90683            ,p_business_class_code     => l_bflow_class_code
90684            ,p_balance_type            => l_balance_type_code);
90685    ELSE
90686       NULL;
90687 XLA_AE_LINES_PKG.business_flow_validation(
90688                                 p_business_method_code     => l_bflow_method_code
90689                                ,p_business_class_code      => l_bflow_class_code
90690                                ,p_inherit_description_flag => l_inherit_desc_flag);
90691    END IF;
90692 
90693    --
90694    -- call analytical criteria
90695    --
90696    
90697    --
90698    -- call description
90699    --
90700    
90701 xla_ae_lines_pkg.SetLineDescription(
90702    p_ae_header_id => l_ae_header_id
90703   ,p_description  => Description_1 (
90704      p_application_id         => p_application_id
90705    , p_ae_header_id           => l_ae_header_id 
90706 , p_source_1 => p_source_1
90707    )
90708 );
90709 
90710 
90711    --
90712    -- call ADRs
90713    -- Bug 4922099
90714    --
90715    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
90716         (NVL(l_actual_upg_option, 'N') = 'O') OR
90717         (NVL(l_enc_upg_option, 'N') = 'O')
90718       )
90719    THEN
90720    NULL;
90721    --
90722    --
90723    
90724    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
90725      p_code_combination_id      => TO_NUMBER(C_NUM)
90726    , p_value_type_code          => NULL
90727    , p_transaction_coa_id       => null
90728    , p_accounting_coa_id        => null
90729    , p_adr_code                 => NULL
90730    , p_adr_type_code            => NULL
90731    , p_component_type           => l_component_type
90732    , p_component_code           => l_component_code
90733    , p_component_type_code      => l_component_type_code
90734    , p_component_appl_id        => l_component_appl_id
90735    , p_amb_context_code         => l_amb_context_code
90736    , p_side                     => NULL
90737    );
90738 
90739    
90740   -- initialise segments
90741   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
90742   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
90743   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
90744   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
90745   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
90746   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
90747   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
90748   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
90749   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
90750   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90751   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90752   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90753   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90754   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90755   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90756   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90757   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90758   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90759   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90760   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90761   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90762   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90763   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90764   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90765   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90766   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90767   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90771   --
90768   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90769   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90770   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90772 
90773    --
90774 
90775 
90776    l_segment := AcctDerRule_15(
90777            p_application_id           => p_application_id
90778          , p_ae_header_id             => l_ae_header_id 
90779 , p_source_34 => p_source_34
90780          , x_transaction_coa_id       => l_adr_transaction_coa_id
90781          , x_accounting_coa_id        => l_adr_accounting_coa_id
90782          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
90783          , x_flex_value_set_id        => l_adr_flex_value_set_id
90784          , x_value_type_code          => l_adr_value_type_code
90785          , x_value_combination_id     => l_adr_value_combination_id
90786          , x_value_segment_code       => l_adr_value_segment_code
90787          , p_side                     => 'NA'
90788          , p_override_seg_flag        => 'Y'
90789    );
90790 
90791    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
90792 
90793       xla_ae_lines_pkg.set_segment(
90794           p_to_segment_code         => 'GL_ACCOUNT'
90795         , p_segment_value           => l_segment
90796         , p_from_segment_code       => l_adr_value_segment_code
90797         , p_from_combination_id     => l_adr_value_combination_id
90798         , p_value_type_code         => l_adr_value_type_code
90799         , p_transaction_coa_id      => l_adr_transaction_coa_id
90800         , p_accounting_coa_id       => l_adr_accounting_coa_id
90801         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
90802         , p_flex_value_set_id       => l_adr_flex_value_set_id
90803         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
90804         , p_adr_type_code           => 'S'
90805         , p_component_type          => l_component_type
90806         , p_component_code          => l_component_code
90807         , p_component_type_code     => l_component_type_code
90808         , p_component_appl_id       => l_component_appl_id
90809         , p_amb_context_code        => l_amb_context_code
90810         , p_entity_code             => 'AP_INVOICES'
90811         , p_event_class_code        => 'PREPAYMENTS'
90812         , p_side                    => 'NA'
90813         );
90814 
90815   END IF;
90816 
90817    --
90818    --
90819    END IF;
90820    --
90821    -- Bug 4922099
90822    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
90823           (NVL(l_enc_upg_option, 'N') = 'O')
90824         ) AND
90825         (l_bflow_method_code = 'PRIOR_ENTRY')
90826       )
90827    THEN
90828       IF
90829       --
90830       1 = 2
90831       --
90832       THEN
90833       xla_accounting_err_pkg.build_message
90834                                     (p_appli_s_name            => 'XLA'
90835                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
90836                                     ,p_token_1                 => 'LINE_NUMBER'
90837                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
90838                                     ,p_token_2                 => 'LINE_TYPE_NAME'
90839                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
90840                                                                              l_component_type
90841                                                                             ,l_component_code
90842                                                                             ,l_component_type_code
90843                                                                             ,l_component_appl_id
90844                                                                             ,l_amb_context_code
90845                                                                             ,l_entity_code
90846                                                                             ,l_event_class_code
90847                                                                            )
90848                                     ,p_token_3                 => 'OWNER'
90849                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
90850                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
90851                                                                           ,p_lookup_code    => l_component_type_code
90852                                                                          )
90853                                     ,p_token_4                 => 'PRODUCT_NAME'
90854                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
90855                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
90856                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
90857                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
90858                                     ,p_ae_header_id            =>  NULL
90859                                        );
90860 
90861         IF (C_LEVEL_ERROR>= g_log_level) THEN
90862                  trace
90863                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
90864                       ,p_level    => C_LEVEL_ERROR
90865                       ,p_module   => l_log_module);
90869    --
90866         END IF;
90867       END IF;
90868    END IF;
90870    --
90871    ------------------------------------------------------------------------------------------------
90872    -- 4219869 Business Flow
90873    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
90874    -- Prior Entry.  Currently, the following code is always generated.
90875    ------------------------------------------------------------------------------------------------
90876    XLA_AE_LINES_PKG.ValidateCurrentLine;
90877 
90878    ------------------------------------------------------------------------------------
90879    -- 4219869 Business Flow
90880    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
90881    ------------------------------------------------------------------------------------
90882    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
90883 
90884    ----------------------------------------------------------------------------------
90885    -- 4219869 Business Flow
90886    -- Update journal entry status -- Need to generate this within IF <condition>
90887    ----------------------------------------------------------------------------------
90888    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
90889          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
90890          ,p_balance_type_code => l_balance_type_code
90891          );
90892 
90893    -------------------------------------------------------------------------------------------
90894    -- 4262811 - Generate the Accrual Reversal lines
90895    -------------------------------------------------------------------------------------------
90896    BEGIN
90897       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
90898                               (g_array_event(p_event_id).array_value_num('header_index'));
90899       IF l_acc_rev_flag IS NULL THEN
90900          l_acc_rev_flag := 'N';
90901       END IF;
90902    EXCEPTION
90903       WHEN OTHERS THEN
90904          l_acc_rev_flag := 'N';
90905    END;
90906    --
90907    IF (l_acc_rev_flag = 'Y') THEN
90908 
90909        -- 4645092  ------------------------------------------------------------------------------
90910        -- To allow MPA report to determine if it should generate report process
90911        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
90912        ------------------------------------------------------------------------------------------
90913 
90914        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
90915        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
90916    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
90917    -- call ADRs
90918    -- Bug 4922099
90919    --
90920    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
90921         (NVL(l_actual_upg_option, 'N') = 'O') OR
90922         (NVL(l_enc_upg_option, 'N') = 'O')
90923       )
90924    THEN
90925    NULL;
90926    --
90927    --
90928    
90929    xla_ae_lines_pkg.Set_Ccid(                         -- replaced SetCcid
90930      p_code_combination_id      => TO_NUMBER(C_NUM)
90931    , p_value_type_code          => NULL
90932    , p_transaction_coa_id       => null
90933    , p_accounting_coa_id        => null
90934    , p_adr_code                 => NULL
90935    , p_adr_type_code            => NULL
90936    , p_component_type           => l_component_type
90937    , p_component_code           => l_component_code
90938    , p_component_type_code      => l_component_type_code
90939    , p_component_appl_id        => l_component_appl_id
90940    , p_amb_context_code         => l_amb_context_code
90941    , p_side                     => NULL
90942    );
90943 
90944    
90945   -- initialise segments
90946   XLA_AE_LINES_PKG.g_rec_lines.array_segment1(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
90947   XLA_AE_LINES_PKG.g_rec_lines.array_segment2(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
90948   XLA_AE_LINES_PKG.g_rec_lines.array_segment3(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
90949   XLA_AE_LINES_PKG.g_rec_lines.array_segment4(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
90950   XLA_AE_LINES_PKG.g_rec_lines.array_segment5(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
90951   XLA_AE_LINES_PKG.g_rec_lines.array_segment6(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
90952   XLA_AE_LINES_PKG.g_rec_lines.array_segment7(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
90953   XLA_AE_LINES_PKG.g_rec_lines.array_segment8(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
90954   XLA_AE_LINES_PKG.g_rec_lines.array_segment9(XLA_AE_LINES_PKG.g_LineNumber)  := C_CHAR;
90955   XLA_AE_LINES_PKG.g_rec_lines.array_segment10(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90956   XLA_AE_LINES_PKG.g_rec_lines.array_segment11(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90957   XLA_AE_LINES_PKG.g_rec_lines.array_segment12(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90958   XLA_AE_LINES_PKG.g_rec_lines.array_segment13(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90959   XLA_AE_LINES_PKG.g_rec_lines.array_segment14(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90960   XLA_AE_LINES_PKG.g_rec_lines.array_segment15(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90961   XLA_AE_LINES_PKG.g_rec_lines.array_segment16(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90962   XLA_AE_LINES_PKG.g_rec_lines.array_segment17(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90963   XLA_AE_LINES_PKG.g_rec_lines.array_segment18(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90964   XLA_AE_LINES_PKG.g_rec_lines.array_segment19(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90968   XLA_AE_LINES_PKG.g_rec_lines.array_segment23(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90965   XLA_AE_LINES_PKG.g_rec_lines.array_segment20(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90966   XLA_AE_LINES_PKG.g_rec_lines.array_segment21(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90967   XLA_AE_LINES_PKG.g_rec_lines.array_segment22(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90969   XLA_AE_LINES_PKG.g_rec_lines.array_segment24(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90970   XLA_AE_LINES_PKG.g_rec_lines.array_segment25(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90971   XLA_AE_LINES_PKG.g_rec_lines.array_segment26(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90972   XLA_AE_LINES_PKG.g_rec_lines.array_segment27(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90973   XLA_AE_LINES_PKG.g_rec_lines.array_segment28(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90974   XLA_AE_LINES_PKG.g_rec_lines.array_segment29(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90975   XLA_AE_LINES_PKG.g_rec_lines.array_segment30(XLA_AE_LINES_PKG.g_LineNumber) := C_CHAR;
90976   --
90977 
90978    --
90979 
90980 
90981    l_segment := AcctDerRule_15(
90982            p_application_id           => p_application_id
90983          , p_ae_header_id             => l_ae_header_id 
90984 , p_source_34 => p_source_34
90985          , x_transaction_coa_id       => l_adr_transaction_coa_id
90986          , x_accounting_coa_id        => l_adr_accounting_coa_id
90987          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
90988          , x_flex_value_set_id        => l_adr_flex_value_set_id
90989          , x_value_type_code          => l_adr_value_type_code
90990          , x_value_combination_id     => l_adr_value_combination_id
90991          , x_value_segment_code       => l_adr_value_segment_code
90992          , p_side                     => 'NA'
90993          , p_override_seg_flag        => 'Y'
90994    );
90995 
90996    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
90997 
90998       xla_ae_lines_pkg.set_segment(
90999           p_to_segment_code         => 'GL_ACCOUNT'
91000         , p_segment_value           => l_segment
91001         , p_from_segment_code       => l_adr_value_segment_code
91002         , p_from_combination_id     => l_adr_value_combination_id
91003         , p_value_type_code         => l_adr_value_type_code
91004         , p_transaction_coa_id      => l_adr_transaction_coa_id
91005         , p_accounting_coa_id       => l_adr_accounting_coa_id
91006         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
91007         , p_flex_value_set_id       => l_adr_flex_value_set_id
91008         , p_adr_code                => 'AP_LIAB_NAT_ACCT_SEG'
91009         , p_adr_type_code           => 'S'
91010         , p_component_type          => l_component_type
91011         , p_component_code          => l_component_code
91012         , p_component_type_code     => l_component_type_code
91013         , p_component_appl_id       => l_component_appl_id
91014         , p_amb_context_code        => l_amb_context_code
91015         , p_entity_code             => 'AP_INVOICES'
91016         , p_event_class_code        => 'PREPAYMENTS'
91017         , p_side                    => 'NA'
91018         );
91019 
91020   END IF;
91021 
91022    --
91023    --
91024    END IF;
91025 
91026        --
91027        -- Update the line information that should be overwritten
91028        --
91029        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
91030                                          p_header_num   => 1);
91031        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
91032 
91033        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
91034 
91035        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
91036           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
91037        END IF;
91038 
91039       --
91040       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
91041       --
91042       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
91043           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
91044       ELSE
91045           ---------------------------------------------------------------------------------------------------
91046           -- 4262811a Switch Sign
91047           ---------------------------------------------------------------------------------------------------
91048           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
91049           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
91050                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91051           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
91052                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91053           -- 5132302
91054           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
91055                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91056 
91057       END IF;
91058 
91059       -- 4955764
91060       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
91064       XLA_AE_LINES_PKG.ValidateCurrentLine;
91061       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
91062 
91063 
91065       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
91066 
91067       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
91068                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
91069                ,p_balance_type_code => l_balance_type_code);
91070 
91071    END IF;
91072 
91073    -----------------------------------------------------------------------------------------
91074    -- 4262811 Multiperiod Accounting
91075    -----------------------------------------------------------------------------------------
91076      -- No MPA option is assigned.
91077 
91078 
91079 END IF;
91080 END IF;
91081 --
91082 
91083 --
91084 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
91085    trace
91086       (p_msg      => 'END of AcctLineType_159'
91087       ,p_level    => C_LEVEL_PROCEDURE
91088       ,p_module   => l_log_module);
91089 END IF;
91090 --
91091 EXCEPTION
91092   WHEN xla_exceptions_pkg.application_exception THEN
91093       RAISE;
91094   WHEN OTHERS THEN
91095        xla_exceptions_pkg.raise_message
91096            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_159');
91097 END AcctLineType_159;
91098 --
91099 
91100 ---------------------------------------
91101 --
91102 -- PRIVATE FUNCTION
91103 --         AcctLineType_160
91104 --
91105 ---------------------------------------
91106 PROCEDURE AcctLineType_160 (
91107   p_application_id        IN NUMBER
91108  ,p_event_id              IN NUMBER
91109  ,p_calculate_acctd_flag  IN VARCHAR2
91110  ,p_calculate_g_l_flag    IN VARCHAR2
91111  ,p_actual_flag           IN OUT VARCHAR2
91112  ,p_balance_type_code     OUT VARCHAR2
91113  ,p_gain_or_loss_ref      OUT VARCHAR2
91114  
91115 --Invoice Distribution Description
91116  , p_source_1            IN VARCHAR2
91117 --Automatic Offsets Value
91118  , p_source_15            IN VARCHAR2
91119  , p_source_15_meaning    IN VARCHAR2
91120 --Invoice Distribution Ledger Amount
91121  , p_source_21            IN NUMBER
91122 --Invoice Liability Account
91123  , p_source_34            IN NUMBER
91124 --Accounting Reversal Indicator
91125  , p_source_53            IN VARCHAR2
91126 --Distribution Link Type
91127  , p_source_55            IN VARCHAR2
91128 --Allocation to Main Distribution Identifier
91129  , p_source_57            IN NUMBER
91130 --Invoice Identifier
91131  , p_source_58            IN NUMBER
91132 --Invoice Distribution Identifier
91133  , p_source_64            IN NUMBER
91134 --Payables Encumbrance Upgrade Credit Account
91135  , p_source_65            IN NUMBER
91136 --Payables Encumbrance Upgrade Credit Amount
91137  , p_source_66            IN NUMBER
91138 --Invoice Currency Code
91139  , p_source_67            IN VARCHAR2
91140 --Payables Encumbrance Upgrade Credit Base Amount
91141  , p_source_68            IN NUMBER
91142 --Payables Encumbrance Upgrade Debit Account
91143  , p_source_69            IN NUMBER
91144 --Payables Encumbrance Upgrade Debit Amount
91145  , p_source_70            IN NUMBER
91146 --Payables Encumbrance Upgrade Debit Base Amount
91147  , p_source_71            IN NUMBER
91148 --Payables Encumbrance Upgrade Option
91149  , p_source_72            IN VARCHAR2
91150 --Invoice Distribution Amount
91151  , p_source_73            IN NUMBER
91152 --Deferred Accounting End Date
91153  , p_source_77            IN DATE
91154 --Deferred Accounting Option
91155  , p_source_78            IN VARCHAR2
91156 --Deferred Accounting Start Date
91157  , p_source_79            IN DATE
91158 --Override Accounted Amount Indicator
91159  , p_source_80            IN VARCHAR2
91160  , p_source_80_meaning    IN VARCHAR2
91161 --Invoice Supplier Identifier
91162  , p_source_81            IN NUMBER
91163 --Invoice Supplier Site Identifier
91164  , p_source_82            IN NUMBER
91165 --Third Party Type
91166  , p_source_83            IN VARCHAR2
91167 --Parent Reversal Identifier
91168  , p_source_84            IN NUMBER
91169 --Invoice Distribution Statistical Amount
91170  , p_source_85            IN NUMBER
91171 --Invoice Distribution Tax Line Identifier
91172  , p_source_86            IN NUMBER
91173 --Invoice Distribution Tax Distribution Identifier from Tax
91174  , p_source_87            IN NUMBER
91175 --Invoice Distribution Summary Tax Line Identifier
91176  , p_source_88            IN NUMBER
91177 --Payables Upgrade Credit Encumbrance Type Identifier
91178  , p_source_89            IN NUMBER
91179 --Payables Upgrade Debit Encumbrance Type Identifier
91180  , p_source_90            IN NUMBER
91181 --Business Flow Accounts Payable Application Identifier
91182  , p_source_91            IN NUMBER
91183 --Business Flow Invoice Distribution Type
91184  , p_source_92            IN VARCHAR2
91185 --Business Flow Invoice Entity Code
91186  , p_source_93            IN VARCHAR2
91187 --Business Flow Invoice Distribution Identifier
91188  , p_source_94            IN NUMBER
91189 --Business Flow Invoice Identifier
91190  , p_source_95            IN NUMBER
91191 --Self-Assessed Tax Flag
91192  , p_source_142            IN VARCHAR2
91193  , p_source_142_meaning    IN VARCHAR2
91194 --Invoice Exchange Date
91195  , p_source_143            IN DATE
91196 --Invoice Exchange Rate
91197  , p_source_144            IN NUMBER
91201 IS
91198 --Invoice Exchange Rate Type
91199  , p_source_145            IN VARCHAR2
91200 )
91202 
91203 l_component_type              VARCHAR2(80);
91204 l_component_code              VARCHAR2(30);
91205 l_component_type_code         VARCHAR2(1);
91206 l_component_appl_id           INTEGER;
91207 l_amb_context_code            VARCHAR2(30);
91208 l_entity_code                 VARCHAR2(30);
91209 l_event_class_code            VARCHAR2(30);
91210 l_ae_header_id                NUMBER;
91211 l_event_type_code             VARCHAR2(30);
91212 l_line_definition_code        VARCHAR2(30);
91213 l_line_definition_owner_code  VARCHAR2(1);
91214 --
91215 -- adr variables
91216 l_segment                     VARCHAR2(30);
91217 l_ccid                        NUMBER;
91218 l_adr_transaction_coa_id      NUMBER;
91219 l_adr_accounting_coa_id       NUMBER;
91220 l_adr_flexfield_segment_code  VARCHAR2(30);
91221 l_adr_flex_value_set_id       NUMBER;
91222 l_adr_value_type_code         VARCHAR2(30);
91223 l_adr_value_combination_id    NUMBER;
91224 l_adr_value_segment_code      VARCHAR2(30);
91225 
91226 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
91227 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
91228 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
91229 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
91230 
91231 -- 4262811 Variables ------------------------------------------------------------------------------------------
91232 l_entered_amt_idx             NUMBER;
91233 l_accted_amt_idx              NUMBER;
91234 l_acc_rev_flag                VARCHAR2(1);
91235 l_accrual_line_num            NUMBER;
91236 l_tmp_amt                     NUMBER;
91237 l_acc_rev_natural_side_code   VARCHAR2(1);
91238 
91239 l_num_entries                 NUMBER;
91240 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
91241 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
91242 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
91243 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
91244 l_recog_line_1                NUMBER;
91245 l_recog_line_2                NUMBER;
91246 
91247 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
91248 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
91249 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
91250 
91251 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
91252 
91253 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
91254 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
91255 
91256 ---------------------------------------------------------------------------------------------------------------
91257 
91258 
91259 --
91260 -- bulk performance
91261 --
91262 l_balance_type_code           VARCHAR2(1);
91263 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
91264 l_log_module                  VARCHAR2(240);
91265 
91266 --
91267 -- Upgrade strategy
91268 --
91269 l_actual_upg_option           VARCHAR2(1);
91270 l_enc_upg_option           VARCHAR2(1);
91271 
91272 --
91273 BEGIN
91274 --
91275 IF g_log_enabled THEN
91276       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_160';
91277 END IF;
91278 --
91279 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
91280 
91281       trace
91282          (p_msg      => 'BEGIN of AcctLineType_160'
91283          ,p_level    => C_LEVEL_PROCEDURE
91284          ,p_module   => l_log_module);
91285 
91286 END IF;
91287 --
91288 l_component_type             := 'AMB_JLT';
91289 l_component_code             := 'AP_LIAB_PREPAY_AOS_BS';
91290 l_component_type_code        := 'S';
91291 l_component_appl_id          :=  200;
91292 l_amb_context_code           := 'DEFAULT';
91293 l_entity_code                := 'AP_INVOICES';
91294 l_event_class_code           := 'PREPAYMENTS';
91295 l_event_type_code            := 'PREPAYMENTS_ALL';
91296 l_line_definition_owner_code := 'S';
91297 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
91298 --
91299 l_balance_type_code          := 'A';
91300 l_segment                     := NULL;
91301 l_ccid                        := NULL;
91302 l_adr_transaction_coa_id      := NULL;
91303 l_adr_accounting_coa_id       := NULL;
91304 l_adr_flexfield_segment_code  := NULL;
91305 l_adr_flex_value_set_id       := NULL;
91306 l_adr_value_type_code         := NULL;
91307 l_adr_value_combination_id    := NULL;
91308 l_adr_value_segment_code      := NULL;
91309 
91310 l_bflow_method_code          := 'SAME_ENTRY';   -- 4219869 Business Flow
91311 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
91312 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
91313 l_budgetary_control_flag     := 'N';
91314 
91315 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
91316 l_bflow_applied_to_amt       := NULL; -- 5132302
91317 l_entered_amt_idx            := NULL;          -- 4262811
91318 l_accted_amt_idx             := NULL;          -- 4262811
91319 l_acc_rev_flag               := NULL;          -- 4262811
91320 l_accrual_line_num           := NULL;          -- 4262811
91321 l_tmp_amt                    := NULL;          -- 4262811
91322 --
91323  
91324 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
91325     l_balance_type_code <> 'B' THEN
91329 ') <>  'Y'
91326 IF NVL(p_source_15,'
91327 ') =  'BALANCING_SEGMENT' AND 
91328 NVL(p_source_142,'
91330  THEN 
91331 
91332    --
91333    XLA_AE_LINES_PKG.SetNewLine;
91334 
91335    p_balance_type_code          := l_balance_type_code;
91336    -- set the flag so later we will know whether the gain loss line needs to be created
91337    
91338    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
91339      p_actual_flag :='A';
91340    END IF;
91341 
91342    --
91343    -- bulk performance
91344    --
91345    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
91346                                       p_header_num   => 0); -- 4262811
91347    --
91348    -- set accounting line options
91349    --
91350    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
91351            p_natural_side_code          => 'C'
91352          , p_gain_or_loss_flag          => 'N'
91353          , p_gl_transfer_mode_code      => 'S'
91354          , p_acct_entry_type_code       => 'A'
91355          , p_switch_side_flag           => 'Y'
91356          , p_merge_duplicate_code       => 'A'
91357          );
91358    --
91359    l_acc_rev_natural_side_code := 'D';  -- 4262811
91360    -- 
91361    --
91362    -- set accounting line type info
91363    --
91364    xla_ae_lines_pkg.SetAcctLineType
91365       (p_component_type             => l_component_type
91366       ,p_event_type_code            => l_event_type_code
91367       ,p_line_definition_owner_code => l_line_definition_owner_code
91368       ,p_line_definition_code       => l_line_definition_code
91369       ,p_accounting_line_code       => l_component_code
91370       ,p_accounting_line_type_code  => l_component_type_code
91371       ,p_accounting_line_appl_id    => l_component_appl_id
91372       ,p_amb_context_code           => l_amb_context_code
91373       ,p_entity_code                => l_entity_code
91374       ,p_event_class_code           => l_event_class_code);
91375    --
91376    -- set accounting class
91377    --
91378    xla_ae_lines_pkg.SetAcctClass(
91379            p_accounting_class_code  => 'LIABILITY'
91380          , p_ae_header_id           => l_ae_header_id
91381          );
91382 
91383    --
91384    -- set rounding class
91385    --
91386    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
91387                       'LIABILITY';
91388 
91389    --
91390    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
91391    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
91392    --
91393    -- bulk performance
91394    --
91395    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
91396 
91397    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
91398       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
91399 
91400    -- 4955764
91401    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
91402       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
91403 
91404    -- 4458381 Public Sector Enh
91405    
91406    --
91407    -- set accounting attributes for the line type
91408    --
91409    l_entered_amt_idx := 23;
91410    l_accted_amt_idx  := 28;
91411    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
91412    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
91413    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
91414    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
91415    l_rec_acct_attrs.array_num_value(2)  := 
91416 xla_ae_sources_pkg.GetSystemSourceNum(
91417    p_source_code           => 'XLA_EVENT_APPL_ID'
91418  , p_source_type_code      => 'Y'
91419  , p_source_application_id =>  602
91420 );
91421    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
91422    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
91423    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
91424    l_rec_acct_attrs.array_char_value(4)  := 
91425 xla_ae_sources_pkg.GetSystemSourceChar(
91426    p_source_code           => 'XLA_ENTITY_CODE'
91427  , p_source_type_code      => 'Y'
91428  , p_source_application_id =>  602
91429 );
91430    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
91431    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
91432    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
91433    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
91434    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
91435    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
91436    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
91437    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
91438    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
91439    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
91440    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
91441    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
91442    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
91443    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
91444    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
91448    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
91445    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
91446    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
91447    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
91449    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
91450    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
91451    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
91452    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
91453    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
91454    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
91455    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
91456    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
91457    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
91458    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
91459    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
91460    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
91461    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
91462    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
91463    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
91464    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
91465    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
91466    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
91467    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
91468    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
91469    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
91470    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
91471    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
91472    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
91473    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
91474    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
91475    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
91476    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
91477    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
91478    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
91479    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
91480    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
91481    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
91482    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
91483    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
91484    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
91485    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
91486    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
91487    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
91488    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
91489    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
91490    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
91491    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
91492    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
91493    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
91494    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
91495    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
91496    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
91497    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
91498    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
91499    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
91500    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
91501    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
91502    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
91503    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
91504    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
91505    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
91506    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
91507    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
91508 
91509    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
91510    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
91511 
91512    ---------------------------------------------------------------------------------------------------------------
91513    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
91514    ---------------------------------------------------------------------------------------------------------------
91515    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
91516 
91517    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
91518    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
91519 
91520    IF xla_accounting_cache_pkg.GetValueChar
91521          (p_source_code         => 'LEDGER_CATEGORY_CODE'
91522          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
91523    AND l_bflow_method_code = 'PRIOR_ENTRY'
91524 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
91525    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
91526          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
91527        )
91528    THEN
91529          xla_ae_lines_pkg.BflowUpgEntry
91533    ELSE
91530            (p_business_method_code    => l_bflow_method_code
91531            ,p_business_class_code     => l_bflow_class_code
91532            ,p_balance_type            => l_balance_type_code);
91534       NULL;
91535 XLA_AE_LINES_PKG.business_flow_validation(
91536                                 p_business_method_code     => l_bflow_method_code
91537                                ,p_business_class_code      => l_bflow_class_code
91538                                ,p_inherit_description_flag => l_inherit_desc_flag);
91539    END IF;
91540 
91541    --
91542    -- call analytical criteria
91543    --
91544    
91545    --
91546    -- call description
91547    --
91548    
91549 xla_ae_lines_pkg.SetLineDescription(
91550    p_ae_header_id => l_ae_header_id
91551   ,p_description  => Description_1 (
91552      p_application_id         => p_application_id
91553    , p_ae_header_id           => l_ae_header_id 
91554 , p_source_1 => p_source_1
91555    )
91556 );
91557 
91558 
91559    --
91560    -- call ADRs
91561    -- Bug 4922099
91562    --
91563    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
91564         (NVL(l_actual_upg_option, 'N') = 'O') OR
91565         (NVL(l_enc_upg_option, 'N') = 'O')
91566       )
91567    THEN
91568    NULL;
91569    --
91570    --
91571    
91572   l_ccid := AcctDerRule_34(
91573            p_application_id           => p_application_id
91574          , p_ae_header_id             => l_ae_header_id 
91575 , p_source_34 => p_source_34
91576          , x_transaction_coa_id       => l_adr_transaction_coa_id
91577          , x_accounting_coa_id        => l_adr_accounting_coa_id
91578          , x_value_type_code          => l_adr_value_type_code
91579          , p_side                     => 'NA'
91580    );
91581 
91582    xla_ae_lines_pkg.set_ccid(
91583     p_code_combination_id          => l_ccid
91584   , p_value_type_code              => l_adr_value_type_code
91585   , p_transaction_coa_id           => l_adr_transaction_coa_id
91586   , p_accounting_coa_id            => l_adr_accounting_coa_id
91587   , p_adr_code                     => 'AP_LIAB'
91588   , p_adr_type_code                => 'S'
91589   , p_component_type               => l_component_type
91590   , p_component_code               => l_component_code
91591   , p_component_type_code          => l_component_type_code
91592   , p_component_appl_id            => l_component_appl_id
91593   , p_amb_context_code             => l_amb_context_code
91594   , p_side                         => 'NA'
91595   );
91596 
91597 
91598    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
91599      p_to_segment_code         => 'GL_BALANCING'
91600    , p_segment_value           => C_CHAR
91601    , p_from_segment_code       => NULL
91602    , p_from_combination_id     => NULL
91603    , p_value_type_code         => NULL
91604    , p_transaction_coa_id      => null
91605    , p_accounting_coa_id       => null
91606    , p_flexfield_segment_code  => NULL
91607    , p_flex_value_set_id       => NULL
91608    , p_adr_code                => NULL
91609    , p_adr_type_code           => NULL
91610    , p_component_type          => l_component_type
91611    , p_component_code          => l_component_code
91612    , p_component_type_code     => l_component_type_code
91613    , p_component_appl_id       => l_component_appl_id
91614    , p_amb_context_code        => l_amb_context_code
91615    , p_entity_code             => 'AP_INVOICES'
91616    , p_event_class_code        => 'PREPAYMENTS'
91617    , p_side                    => 'NA'
91618    );
91619    --
91620 
91621 
91622    --
91623    --
91624    END IF;
91625    --
91626    -- Bug 4922099
91627    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
91628           (NVL(l_enc_upg_option, 'N') = 'O')
91629         ) AND
91630         (l_bflow_method_code = 'PRIOR_ENTRY')
91631       )
91632    THEN
91633       IF
91634       --
91635       1 = 2
91636       --
91637       THEN
91638       xla_accounting_err_pkg.build_message
91639                                     (p_appli_s_name            => 'XLA'
91640                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
91641                                     ,p_token_1                 => 'LINE_NUMBER'
91642                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
91643                                     ,p_token_2                 => 'LINE_TYPE_NAME'
91644                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
91645                                                                              l_component_type
91646                                                                             ,l_component_code
91647                                                                             ,l_component_type_code
91648                                                                             ,l_component_appl_id
91649                                                                             ,l_amb_context_code
91650                                                                             ,l_entity_code
91651                                                                             ,l_event_class_code
91652                                                                            )
91656                                                                           ,p_lookup_code    => l_component_type_code
91653                                     ,p_token_3                 => 'OWNER'
91654                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
91655                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
91657                                                                          )
91658                                     ,p_token_4                 => 'PRODUCT_NAME'
91659                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
91660                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
91661                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
91662                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
91663                                     ,p_ae_header_id            =>  NULL
91664                                        );
91665 
91666         IF (C_LEVEL_ERROR>= g_log_level) THEN
91667                  trace
91668                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
91669                       ,p_level    => C_LEVEL_ERROR
91670                       ,p_module   => l_log_module);
91671         END IF;
91672       END IF;
91673    END IF;
91674    --
91675    --
91676    ------------------------------------------------------------------------------------------------
91677    -- 4219869 Business Flow
91678    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
91679    -- Prior Entry.  Currently, the following code is always generated.
91680    ------------------------------------------------------------------------------------------------
91681    XLA_AE_LINES_PKG.ValidateCurrentLine;
91682 
91683    ------------------------------------------------------------------------------------
91684    -- 4219869 Business Flow
91685    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
91686    ------------------------------------------------------------------------------------
91687    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
91688 
91689    ----------------------------------------------------------------------------------
91690    -- 4219869 Business Flow
91691    -- Update journal entry status -- Need to generate this within IF <condition>
91692    ----------------------------------------------------------------------------------
91693    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
91694          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
91695          ,p_balance_type_code => l_balance_type_code
91696          );
91697 
91698    -------------------------------------------------------------------------------------------
91699    -- 4262811 - Generate the Accrual Reversal lines
91700    -------------------------------------------------------------------------------------------
91701    BEGIN
91702       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
91703                               (g_array_event(p_event_id).array_value_num('header_index'));
91704       IF l_acc_rev_flag IS NULL THEN
91705          l_acc_rev_flag := 'N';
91706       END IF;
91707    EXCEPTION
91708       WHEN OTHERS THEN
91709          l_acc_rev_flag := 'N';
91710    END;
91711    --
91712    IF (l_acc_rev_flag = 'Y') THEN
91713 
91714        -- 4645092  ------------------------------------------------------------------------------
91715        -- To allow MPA report to determine if it should generate report process
91716        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
91717        ------------------------------------------------------------------------------------------
91718 
91719        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
91720        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
91721    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
91722    -- call ADRs
91723    -- Bug 4922099
91724    --
91725    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
91726         (NVL(l_actual_upg_option, 'N') = 'O') OR
91727         (NVL(l_enc_upg_option, 'N') = 'O')
91728       )
91729    THEN
91730    NULL;
91731    --
91732    --
91733    
91734   l_ccid := AcctDerRule_34(
91735            p_application_id           => p_application_id
91736          , p_ae_header_id             => l_ae_header_id 
91737 , p_source_34 => p_source_34
91738          , x_transaction_coa_id       => l_adr_transaction_coa_id
91739          , x_accounting_coa_id        => l_adr_accounting_coa_id
91740          , x_value_type_code          => l_adr_value_type_code
91741          , p_side                     => 'NA'
91742    );
91743 
91744    xla_ae_lines_pkg.set_ccid(
91745     p_code_combination_id          => l_ccid
91746   , p_value_type_code              => l_adr_value_type_code
91747   , p_transaction_coa_id           => l_adr_transaction_coa_id
91748   , p_accounting_coa_id            => l_adr_accounting_coa_id
91749   , p_adr_code                     => 'AP_LIAB'
91750   , p_adr_type_code                => 'S'
91751   , p_component_type               => l_component_type
91752   , p_component_code               => l_component_code
91753   , p_component_type_code          => l_component_type_code
91754   , p_component_appl_id            => l_component_appl_id
91758 
91755   , p_amb_context_code             => l_amb_context_code
91756   , p_side                         => 'NA'
91757   );
91759 
91760    xla_ae_lines_pkg.Set_Segment(                           -- replaced SetSegment
91761      p_to_segment_code         => 'GL_BALANCING'
91762    , p_segment_value           => C_CHAR
91763    , p_from_segment_code       => NULL
91764    , p_from_combination_id     => NULL
91765    , p_value_type_code         => NULL
91766    , p_transaction_coa_id      => null
91767    , p_accounting_coa_id       => null
91768    , p_flexfield_segment_code  => NULL
91769    , p_flex_value_set_id       => NULL
91770    , p_adr_code                => NULL
91771    , p_adr_type_code           => NULL
91772    , p_component_type          => l_component_type
91773    , p_component_code          => l_component_code
91774    , p_component_type_code     => l_component_type_code
91775    , p_component_appl_id       => l_component_appl_id
91776    , p_amb_context_code        => l_amb_context_code
91777    , p_entity_code             => 'AP_INVOICES'
91778    , p_event_class_code        => 'PREPAYMENTS'
91779    , p_side                    => 'NA'
91780    );
91781    --
91782 
91783 
91784    --
91785    --
91786    END IF;
91787 
91788        --
91789        -- Update the line information that should be overwritten
91790        --
91791        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
91792                                          p_header_num   => 1);
91793        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
91794 
91795        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
91796 
91797        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
91798           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
91799        END IF;
91800 
91801       --
91802       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
91803       --
91804       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
91805           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
91806       ELSE
91807           ---------------------------------------------------------------------------------------------------
91808           -- 4262811a Switch Sign
91809           ---------------------------------------------------------------------------------------------------
91810           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
91811           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
91812                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91813           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
91814                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91815           -- 5132302
91816           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
91817                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
91818 
91819       END IF;
91820 
91821       -- 4955764
91822       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
91823       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
91824 
91825 
91826       XLA_AE_LINES_PKG.ValidateCurrentLine;
91827       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
91828 
91829       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
91830                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
91831                ,p_balance_type_code => l_balance_type_code);
91832 
91833    END IF;
91834 
91835    -----------------------------------------------------------------------------------------
91836    -- 4262811 Multiperiod Accounting
91837    -----------------------------------------------------------------------------------------
91838      -- No MPA option is assigned.
91839 
91840 
91841 END IF;
91842 END IF;
91843 --
91844 
91845 --
91846 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
91847    trace
91848       (p_msg      => 'END of AcctLineType_160'
91849       ,p_level    => C_LEVEL_PROCEDURE
91850       ,p_module   => l_log_module);
91851 END IF;
91852 --
91853 EXCEPTION
91854   WHEN xla_exceptions_pkg.application_exception THEN
91855       RAISE;
91856   WHEN OTHERS THEN
91857        xla_exceptions_pkg.raise_message
91858            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_160');
91859 END AcctLineType_160;
91860 --
91861 
91862 ---------------------------------------
91863 --
91864 -- PRIVATE FUNCTION
91865 --         AcctLineType_161
91866 --
91867 ---------------------------------------
91868 PROCEDURE AcctLineType_161 (
91869   p_application_id        IN NUMBER
91870  ,p_event_id              IN NUMBER
91871  ,p_calculate_acctd_flag  IN VARCHAR2
91872  ,p_calculate_g_l_flag    IN VARCHAR2
91873  ,p_actual_flag           IN OUT VARCHAR2
91874  ,p_balance_type_code     OUT VARCHAR2
91875  ,p_gain_or_loss_ref      OUT VARCHAR2
91876  
91877 --Accounting Reversal Indicator
91878  , p_source_53            IN VARCHAR2
91879 --Distribution Link Type
91883 --Payables Encumbrance Upgrade Credit Account
91880  , p_source_55            IN VARCHAR2
91881 --Invoice Identifier
91882  , p_source_58            IN NUMBER
91884  , p_source_65            IN NUMBER
91885 --Payables Encumbrance Upgrade Credit Amount
91886  , p_source_66            IN NUMBER
91887 --Invoice Currency Code
91888  , p_source_67            IN VARCHAR2
91889 --Payables Encumbrance Upgrade Credit Base Amount
91890  , p_source_68            IN NUMBER
91891 --Payables Encumbrance Upgrade Debit Account
91892  , p_source_69            IN NUMBER
91893 --Payables Encumbrance Upgrade Debit Amount
91894  , p_source_70            IN NUMBER
91895 --Payables Encumbrance Upgrade Debit Base Amount
91896  , p_source_71            IN NUMBER
91897 --Payables Encumbrance Upgrade Option
91898  , p_source_72            IN VARCHAR2
91899 --Deferred Accounting End Date
91900  , p_source_77            IN DATE
91901 --Deferred Accounting Option
91902  , p_source_78            IN VARCHAR2
91903 --Deferred Accounting Start Date
91904  , p_source_79            IN DATE
91905 --Override Accounted Amount Indicator
91906  , p_source_80            IN VARCHAR2
91907  , p_source_80_meaning    IN VARCHAR2
91908 --Third Party Type
91909  , p_source_83            IN VARCHAR2
91910 --Invoice Distribution Tax Line Identifier
91911  , p_source_86            IN NUMBER
91912 --Invoice Distribution Tax Distribution Identifier from Tax
91913  , p_source_87            IN NUMBER
91914 --Invoice Distribution Summary Tax Line Identifier
91915  , p_source_88            IN NUMBER
91916 --Payables Upgrade Credit Encumbrance Type Identifier
91917  , p_source_89            IN NUMBER
91918 --Payables Upgrade Debit Encumbrance Type Identifier
91919  , p_source_90            IN NUMBER
91920 --Business Flow Accounts Payable Application Identifier
91921  , p_source_91            IN NUMBER
91922 --Prepayment Distribution Type
91923  , p_source_125            IN VARCHAR2
91924 --Prepayment Application Distribution Identifier
91925  , p_source_127            IN NUMBER
91926 --Upgrade Encumbrance Credit Account Class
91927  , p_source_132            IN VARCHAR2
91928 --Upgrade Encumbrance Debit Account Class
91929  , p_source_133            IN VARCHAR2
91930 --Prepayment Distribution Amount
91931  , p_source_134            IN NUMBER
91932 --Identifier of the Prepayment Application Reversed
91933  , p_source_136            IN NUMBER
91934 --Business Flow Recipient Invoice Distribution Identifier
91935  , p_source_139            IN NUMBER
91936 --Business Flow Recipient Invoice Identifier
91937  , p_source_140            IN NUMBER
91938 --Prepayment Distribution (Invoice Rate) Ledger Amount
91939  , p_source_141            IN NUMBER
91940 --Business Flow Prepayment Invoice Distribution Type
91941  , p_source_146            IN VARCHAR2
91942 --Business Flow Prepayment Invoice Entity Code
91943  , p_source_147            IN VARCHAR2
91944 )
91945 IS
91946 
91947 l_component_type              VARCHAR2(80);
91948 l_component_code              VARCHAR2(30);
91949 l_component_type_code         VARCHAR2(1);
91950 l_component_appl_id           INTEGER;
91951 l_amb_context_code            VARCHAR2(30);
91952 l_entity_code                 VARCHAR2(30);
91953 l_event_class_code            VARCHAR2(30);
91954 l_ae_header_id                NUMBER;
91955 l_event_type_code             VARCHAR2(30);
91956 l_line_definition_code        VARCHAR2(30);
91957 l_line_definition_owner_code  VARCHAR2(1);
91958 --
91959 -- adr variables
91960 l_segment                     VARCHAR2(30);
91961 l_ccid                        NUMBER;
91962 l_adr_transaction_coa_id      NUMBER;
91963 l_adr_accounting_coa_id       NUMBER;
91964 l_adr_flexfield_segment_code  VARCHAR2(30);
91965 l_adr_flex_value_set_id       NUMBER;
91966 l_adr_value_type_code         VARCHAR2(30);
91967 l_adr_value_combination_id    NUMBER;
91968 l_adr_value_segment_code      VARCHAR2(30);
91969 
91970 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
91971 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
91972 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
91973 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
91974 
91975 -- 4262811 Variables ------------------------------------------------------------------------------------------
91976 l_entered_amt_idx             NUMBER;
91977 l_accted_amt_idx              NUMBER;
91978 l_acc_rev_flag                VARCHAR2(1);
91979 l_accrual_line_num            NUMBER;
91980 l_tmp_amt                     NUMBER;
91981 l_acc_rev_natural_side_code   VARCHAR2(1);
91982 
91983 l_num_entries                 NUMBER;
91984 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
91985 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
91986 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
91987 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
91988 l_recog_line_1                NUMBER;
91989 l_recog_line_2                NUMBER;
91990 
91991 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
91992 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
91993 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
91994 
91995 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
91996 
91997 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
91998 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
91999 
92003 --
92000 ---------------------------------------------------------------------------------------------------------------
92001 
92002 
92004 -- bulk performance
92005 --
92006 l_balance_type_code           VARCHAR2(1);
92007 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
92008 l_log_module                  VARCHAR2(240);
92009 
92010 --
92011 -- Upgrade strategy
92012 --
92013 l_actual_upg_option           VARCHAR2(1);
92014 l_enc_upg_option           VARCHAR2(1);
92015 
92016 --
92017 BEGIN
92018 --
92019 IF g_log_enabled THEN
92020       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_161';
92021 END IF;
92022 --
92023 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92024 
92025       trace
92026          (p_msg      => 'BEGIN of AcctLineType_161'
92027          ,p_level    => C_LEVEL_PROCEDURE
92028          ,p_module   => l_log_module);
92029 
92030 END IF;
92031 --
92032 l_component_type             := 'AMB_JLT';
92033 l_component_code             := 'AP_LIAB_PREPAY_APP';
92034 l_component_type_code        := 'S';
92035 l_component_appl_id          :=  200;
92036 l_amb_context_code           := 'DEFAULT';
92037 l_entity_code                := 'AP_INVOICES';
92038 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
92039 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
92040 l_line_definition_owner_code := 'S';
92041 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
92042 --
92043 l_balance_type_code          := 'A';
92044 l_segment                     := NULL;
92045 l_ccid                        := NULL;
92046 l_adr_transaction_coa_id      := NULL;
92047 l_adr_accounting_coa_id       := NULL;
92048 l_adr_flexfield_segment_code  := NULL;
92049 l_adr_flex_value_set_id       := NULL;
92050 l_adr_value_type_code         := NULL;
92051 l_adr_value_combination_id    := NULL;
92052 l_adr_value_segment_code      := NULL;
92053 
92054 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
92055 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
92056 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
92057 l_budgetary_control_flag     := 'N';
92058 
92059 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
92060 l_bflow_applied_to_amt       := NULL; -- 5132302
92061 l_entered_amt_idx            := NULL;          -- 4262811
92062 l_accted_amt_idx             := NULL;          -- 4262811
92063 l_acc_rev_flag               := NULL;          -- 4262811
92064 l_accrual_line_num           := NULL;          -- 4262811
92065 l_tmp_amt                    := NULL;          -- 4262811
92066 --
92067  
92068 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
92069     l_balance_type_code <> 'B' THEN
92070 IF NVL(p_source_125,'
92071 ') =  'PREPAY APPL' OR 
92072 NVL(p_source_125,'
92073 ') =  'FINAL PAYMENT ROUNDING' OR 
92074 NVL(p_source_125,'
92075 ') =  'PREPAY APPL REC TAX' OR 
92076 NVL(p_source_125,'
92077 ') =  'PREPAY APPL NONREC TAX'
92078  THEN 
92079 
92080    --
92081    XLA_AE_LINES_PKG.SetNewLine;
92082 
92083    p_balance_type_code          := l_balance_type_code;
92084    -- set the flag so later we will know whether the gain loss line needs to be created
92085    
92086    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
92087      p_actual_flag :='A';
92088    END IF;
92089 
92090    --
92091    -- bulk performance
92092    --
92093    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
92094                                       p_header_num   => 0); -- 4262811
92095    --
92096    -- set accounting line options
92097    --
92098    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
92099            p_natural_side_code          => 'C'
92100          , p_gain_or_loss_flag          => 'N'
92101          , p_gl_transfer_mode_code      => 'S'
92102          , p_acct_entry_type_code       => 'A'
92103          , p_switch_side_flag           => 'Y'
92104          , p_merge_duplicate_code       => 'A'
92105          );
92106    --
92107    l_acc_rev_natural_side_code := 'D';  -- 4262811
92108    -- 
92109    --
92110    -- set accounting line type info
92111    --
92112    xla_ae_lines_pkg.SetAcctLineType
92113       (p_component_type             => l_component_type
92114       ,p_event_type_code            => l_event_type_code
92115       ,p_line_definition_owner_code => l_line_definition_owner_code
92116       ,p_line_definition_code       => l_line_definition_code
92117       ,p_accounting_line_code       => l_component_code
92118       ,p_accounting_line_type_code  => l_component_type_code
92119       ,p_accounting_line_appl_id    => l_component_appl_id
92120       ,p_amb_context_code           => l_amb_context_code
92121       ,p_entity_code                => l_entity_code
92122       ,p_event_class_code           => l_event_class_code);
92123    --
92124    -- set accounting class
92125    --
92126    xla_ae_lines_pkg.SetAcctClass(
92127            p_accounting_class_code  => 'LIABILITY'
92128          , p_ae_header_id           => l_ae_header_id
92129          );
92130 
92131    --
92132    -- set rounding class
92133    --
92134    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
92135                       'LIABILITY';
92136 
92137    --
92141    -- bulk performance
92138    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
92139    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
92140    --
92142    --
92143    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
92144 
92145    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
92146       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
92147 
92148    -- 4955764
92149    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
92150       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
92151 
92152    -- 4458381 Public Sector Enh
92153    
92154    --
92155    -- set accounting attributes for the line type
92156    --
92157    l_entered_amt_idx := 25;
92158    l_accted_amt_idx  := 27;
92159    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
92160    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
92161    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
92162    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
92163    l_rec_acct_attrs.array_num_value(2)  := 
92164 xla_ae_sources_pkg.GetSystemSourceNum(
92165    p_source_code           => 'XLA_EVENT_APPL_ID'
92166  , p_source_type_code      => 'Y'
92167  , p_source_application_id =>  602
92168 );
92169    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
92170    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
92171    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
92172    l_rec_acct_attrs.array_char_value(4)  := 
92173 xla_ae_sources_pkg.GetSystemSourceChar(
92174    p_source_code           => 'XLA_ENTITY_CODE'
92175  , p_source_type_code      => 'Y'
92176  , p_source_application_id =>  602
92177 );
92178    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
92179    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_127);
92180    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
92181    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
92182    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
92183    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
92184    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
92185    l_rec_acct_attrs.array_char_value(8)  := p_source_146;
92186    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
92187    l_rec_acct_attrs.array_char_value(9)  := p_source_147;
92188    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
92189    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_139);
92190    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
92191    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_140);
92192    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
92193    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_127);
92194    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
92195    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
92196    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
92197    l_rec_acct_attrs.array_char_value(14)  := p_source_132;
92198    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
92199    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
92200    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
92201    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
92202    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
92203    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
92204    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
92205    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
92206    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
92207    l_rec_acct_attrs.array_char_value(19)  := p_source_133;
92208    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
92209    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
92210    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
92211    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
92212    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
92213    l_rec_acct_attrs.array_char_value(22)  := p_source_67;
92214    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
92215    l_rec_acct_attrs.array_num_value(23)  := p_source_71;
92216    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
92217    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
92218    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
92219    l_rec_acct_attrs.array_num_value(25)  := p_source_134;
92220    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
92221    l_rec_acct_attrs.array_char_value(26)  := p_source_67;
92222    l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
92223    l_rec_acct_attrs.array_num_value(27)  := p_source_141;
92224    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
92225    l_rec_acct_attrs.array_date_value(28)  := p_source_77;
92226    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
92227    l_rec_acct_attrs.array_char_value(29)  := p_source_78;
92228    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
92229    l_rec_acct_attrs.array_date_value(30)  := p_source_79;
92230    l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
92234    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
92231    l_rec_acct_attrs.array_char_value(31)  := p_source_80;
92232    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
92233    l_rec_acct_attrs.array_char_value(32)  := p_source_83;
92235    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_136);
92236    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
92237    l_rec_acct_attrs.array_char_value(34)  := p_source_55;
92238    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
92239    l_rec_acct_attrs.array_num_value(35)  := p_source_86;
92240    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
92241    l_rec_acct_attrs.array_num_value(36)  := p_source_87;
92242    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
92243    l_rec_acct_attrs.array_num_value(37)  := p_source_88;
92244    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
92245    l_rec_acct_attrs.array_num_value(38)  := p_source_89;
92246    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
92247    l_rec_acct_attrs.array_num_value(39)  := p_source_90;
92248 
92249    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
92250    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
92251 
92252    ---------------------------------------------------------------------------------------------------------------
92253    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
92254    ---------------------------------------------------------------------------------------------------------------
92255    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
92256 
92257    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
92258    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
92259 
92260    IF xla_accounting_cache_pkg.GetValueChar
92261          (p_source_code         => 'LEDGER_CATEGORY_CODE'
92262          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
92263    AND l_bflow_method_code = 'PRIOR_ENTRY'
92264 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
92265    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
92266          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
92267        )
92268    THEN
92269          xla_ae_lines_pkg.BflowUpgEntry
92270            (p_business_method_code    => l_bflow_method_code
92271            ,p_business_class_code     => l_bflow_class_code
92272            ,p_balance_type            => l_balance_type_code);
92273    ELSE
92274       NULL;
92275 XLA_AE_LINES_PKG.business_flow_validation(
92276                                 p_business_method_code     => l_bflow_method_code
92277                                ,p_business_class_code      => l_bflow_class_code
92278                                ,p_inherit_description_flag => l_inherit_desc_flag);
92279    END IF;
92280 
92281    --
92282    -- call analytical criteria
92283    --
92284    -- Inherited Analytical Criteria for business flow method of Prior Entry.
92285    --
92286    -- call description
92287    --
92288    -- No description or it is inherited.
92289    --
92290    -- call ADRs
92291    -- Bug 4922099
92292    --
92293    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
92294         (NVL(l_actual_upg_option, 'N') = 'O') OR
92295         (NVL(l_enc_upg_option, 'N') = 'O')
92296       )
92297    THEN
92298    NULL;
92299    --
92300    --
92301    
92302    --
92303    --
92304    END IF;
92305    --
92306    -- Bug 4922099
92307    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
92308           (NVL(l_enc_upg_option, 'N') = 'O')
92309         ) AND
92310         (l_bflow_method_code = 'PRIOR_ENTRY')
92311       )
92312    THEN
92313       IF
92314       --
92315       1 = 1
92316       --
92317       THEN
92318       xla_accounting_err_pkg.build_message
92319                                     (p_appli_s_name            => 'XLA'
92320                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
92321                                     ,p_token_1                 => 'LINE_NUMBER'
92322                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
92323                                     ,p_token_2                 => 'LINE_TYPE_NAME'
92324                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
92325                                                                              l_component_type
92326                                                                             ,l_component_code
92327                                                                             ,l_component_type_code
92328                                                                             ,l_component_appl_id
92329                                                                             ,l_amb_context_code
92330                                                                             ,l_entity_code
92331                                                                             ,l_event_class_code
92332                                                                            )
92333                                     ,p_token_3                 => 'OWNER'
92337                                                                          )
92334                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
92335                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
92336                                                                           ,p_lookup_code    => l_component_type_code
92338                                     ,p_token_4                 => 'PRODUCT_NAME'
92339                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
92340                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
92341                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
92342                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
92343                                     ,p_ae_header_id            =>  NULL
92344                                        );
92345 
92346         IF (C_LEVEL_ERROR>= g_log_level) THEN
92347                  trace
92348                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
92349                       ,p_level    => C_LEVEL_ERROR
92350                       ,p_module   => l_log_module);
92351         END IF;
92352       END IF;
92353    END IF;
92354    --
92355    --
92356    ------------------------------------------------------------------------------------------------
92357    -- 4219869 Business Flow
92358    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
92359    -- Prior Entry.  Currently, the following code is always generated.
92360    ------------------------------------------------------------------------------------------------
92361    -- No ValidateCurrentLine for business flow method of Prior Entry
92362 
92363    ------------------------------------------------------------------------------------
92364    -- 4219869 Business Flow
92365    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
92366    ------------------------------------------------------------------------------------
92367    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
92368 
92369    ----------------------------------------------------------------------------------
92370    -- 4219869 Business Flow
92371    -- Update journal entry status -- Need to generate this within IF <condition>
92372    ----------------------------------------------------------------------------------
92373    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
92374          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
92375          ,p_balance_type_code => l_balance_type_code
92376          );
92377 
92378    -------------------------------------------------------------------------------------------
92379    -- 4262811 - Generate the Accrual Reversal lines
92380    -------------------------------------------------------------------------------------------
92381    BEGIN
92382       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
92383                               (g_array_event(p_event_id).array_value_num('header_index'));
92384       IF l_acc_rev_flag IS NULL THEN
92385          l_acc_rev_flag := 'N';
92386       END IF;
92387    EXCEPTION
92388       WHEN OTHERS THEN
92389          l_acc_rev_flag := 'N';
92390    END;
92391    --
92392    IF (l_acc_rev_flag = 'Y') THEN
92393 
92394        -- 4645092  ------------------------------------------------------------------------------
92395        -- To allow MPA report to determine if it should generate report process
92396        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
92397        ------------------------------------------------------------------------------------------
92398 
92399        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
92400        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
92401    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
92402    -- call ADRs
92403    -- Bug 4922099
92404    --
92405    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
92406         (NVL(l_actual_upg_option, 'N') = 'O') OR
92407         (NVL(l_enc_upg_option, 'N') = 'O')
92408       )
92409    THEN
92410    NULL;
92411    --
92412    --
92413    
92414    --
92415    --
92416    END IF;
92417 
92418        --
92419        -- Update the line information that should be overwritten
92420        --
92421        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
92422                                          p_header_num   => 1);
92423        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
92424 
92425        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
92426 
92427        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
92428           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
92429        END IF;
92430 
92431       --
92432       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
92433       --
92434       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
92435           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
92436       ELSE
92440           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
92437           ---------------------------------------------------------------------------------------------------
92438           -- 4262811a Switch Sign
92439           ---------------------------------------------------------------------------------------------------
92441           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
92442                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92443           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
92444                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92445           -- 5132302
92446           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
92447                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92448 
92449       END IF;
92450 
92451       -- 4955764
92452       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
92453       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
92454 
92455 
92456       XLA_AE_LINES_PKG.ValidateCurrentLine;
92457       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
92458 
92459       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
92460                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
92461                ,p_balance_type_code => l_balance_type_code);
92462 
92463    END IF;
92464 
92465    -----------------------------------------------------------------------------------------
92466    -- 4262811 Multiperiod Accounting
92467    -----------------------------------------------------------------------------------------
92468      -- No MPA option is assigned.
92469 
92470 
92471 END IF;
92472 END IF;
92473 --
92474 
92475 --
92476 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92477    trace
92478       (p_msg      => 'END of AcctLineType_161'
92479       ,p_level    => C_LEVEL_PROCEDURE
92480       ,p_module   => l_log_module);
92481 END IF;
92482 --
92483 EXCEPTION
92484   WHEN xla_exceptions_pkg.application_exception THEN
92485       RAISE;
92486   WHEN OTHERS THEN
92487        xla_exceptions_pkg.raise_message
92488            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_161');
92489 END AcctLineType_161;
92490 --
92491 
92492 ---------------------------------------
92493 --
92494 -- PRIVATE FUNCTION
92495 --         AcctLineType_162
92496 --
92497 ---------------------------------------
92498 PROCEDURE AcctLineType_162 (
92499   p_application_id        IN NUMBER
92500  ,p_event_id              IN NUMBER
92501  ,p_calculate_acctd_flag  IN VARCHAR2
92502  ,p_calculate_g_l_flag    IN VARCHAR2
92503  ,p_actual_flag           IN OUT VARCHAR2
92504  ,p_balance_type_code     OUT VARCHAR2
92505  ,p_gain_or_loss_ref      OUT VARCHAR2
92506  
92507 --Payment Currency Code
92508  , p_source_13            IN VARCHAR2
92509 --Accounting Reversal Indicator
92510  , p_source_53            IN VARCHAR2
92511 --Distribution Link Type
92512  , p_source_55            IN VARCHAR2
92513 --Override Accounted Amount Indicator
92514  , p_source_80            IN VARCHAR2
92515  , p_source_80_meaning    IN VARCHAR2
92516 --Third Party Type
92517  , p_source_83            IN VARCHAR2
92518 --Invoice Distribution Tax Line Identifier
92519  , p_source_86            IN NUMBER
92520 --Invoice Distribution Tax Distribution Identifier from Tax
92521  , p_source_87            IN NUMBER
92522 --Invoice Distribution Summary Tax Line Identifier
92523  , p_source_88            IN NUMBER
92524 --Business Flow Accounts Payable Application Identifier
92525  , p_source_91            IN NUMBER
92526 --Business Flow Invoice Distribution Type
92527  , p_source_92            IN VARCHAR2
92528 --Business Flow Invoice Entity Code
92529  , p_source_93            IN VARCHAR2
92530 --Business Flow Invoice Distribution Identifier
92531  , p_source_94            IN NUMBER
92532 --Business Flow Invoice Identifier
92533  , p_source_95            IN NUMBER
92534 --When to Account for Payment Option
92535  , p_source_97            IN VARCHAR2
92536 --Payment Distribution Type
92537  , p_source_98            IN VARCHAR2
92538  , p_source_98_meaning    IN VARCHAR2
92539 --Payment Distribution Amount
92540  , p_source_99            IN NUMBER
92541 --Payment Distribution Identifier
92542  , p_source_104            IN NUMBER
92543 --Payment Distribution Reversed Identifier
92544  , p_source_112            IN NUMBER
92545 --Payment Distribution (Invoice Rate) Ledger Amount
92546  , p_source_116            IN NUMBER
92547 --Payment Type
92548  , p_source_122            IN VARCHAR2
92549  , p_source_122_meaning    IN VARCHAR2
92550 )
92551 IS
92552 
92553 l_component_type              VARCHAR2(80);
92554 l_component_code              VARCHAR2(30);
92555 l_component_type_code         VARCHAR2(1);
92556 l_component_appl_id           INTEGER;
92557 l_amb_context_code            VARCHAR2(30);
92558 l_entity_code                 VARCHAR2(30);
92559 l_event_class_code            VARCHAR2(30);
92560 l_ae_header_id                NUMBER;
92561 l_event_type_code             VARCHAR2(30);
92562 l_line_definition_code        VARCHAR2(30);
92563 l_line_definition_owner_code  VARCHAR2(1);
92564 --
92568 l_adr_transaction_coa_id      NUMBER;
92565 -- adr variables
92566 l_segment                     VARCHAR2(30);
92567 l_ccid                        NUMBER;
92569 l_adr_accounting_coa_id       NUMBER;
92570 l_adr_flexfield_segment_code  VARCHAR2(30);
92571 l_adr_flex_value_set_id       NUMBER;
92572 l_adr_value_type_code         VARCHAR2(30);
92573 l_adr_value_combination_id    NUMBER;
92574 l_adr_value_segment_code      VARCHAR2(30);
92575 
92576 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
92577 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
92578 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
92579 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
92580 
92581 -- 4262811 Variables ------------------------------------------------------------------------------------------
92582 l_entered_amt_idx             NUMBER;
92583 l_accted_amt_idx              NUMBER;
92584 l_acc_rev_flag                VARCHAR2(1);
92585 l_accrual_line_num            NUMBER;
92586 l_tmp_amt                     NUMBER;
92587 l_acc_rev_natural_side_code   VARCHAR2(1);
92588 
92589 l_num_entries                 NUMBER;
92590 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
92591 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
92592 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
92593 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
92594 l_recog_line_1                NUMBER;
92595 l_recog_line_2                NUMBER;
92596 
92597 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
92598 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
92599 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
92600 
92601 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
92602 
92603 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
92604 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
92605 
92606 ---------------------------------------------------------------------------------------------------------------
92607 
92608 
92609 --
92610 -- bulk performance
92611 --
92612 l_balance_type_code           VARCHAR2(1);
92613 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
92614 l_log_module                  VARCHAR2(240);
92615 
92616 --
92617 -- Upgrade strategy
92618 --
92619 l_actual_upg_option           VARCHAR2(1);
92620 l_enc_upg_option           VARCHAR2(1);
92621 
92622 --
92623 BEGIN
92624 --
92625 IF g_log_enabled THEN
92626       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_162';
92627 END IF;
92628 --
92629 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
92630 
92631       trace
92632          (p_msg      => 'BEGIN of AcctLineType_162'
92633          ,p_level    => C_LEVEL_PROCEDURE
92634          ,p_module   => l_log_module);
92635 
92636 END IF;
92637 --
92638 l_component_type             := 'AMB_JLT';
92639 l_component_code             := 'AP_LIAB_REF';
92640 l_component_type_code        := 'S';
92641 l_component_appl_id          :=  200;
92642 l_amb_context_code           := 'DEFAULT';
92643 l_entity_code                := 'AP_PAYMENTS';
92644 l_event_class_code           := 'REFUNDS';
92645 l_event_type_code            := 'REFUNDS_ALL';
92646 l_line_definition_owner_code := 'S';
92647 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
92648 --
92649 l_balance_type_code          := 'A';
92650 l_segment                     := NULL;
92651 l_ccid                        := NULL;
92652 l_adr_transaction_coa_id      := NULL;
92653 l_adr_accounting_coa_id       := NULL;
92654 l_adr_flexfield_segment_code  := NULL;
92655 l_adr_flex_value_set_id       := NULL;
92656 l_adr_value_type_code         := NULL;
92657 l_adr_value_combination_id    := NULL;
92658 l_adr_value_segment_code      := NULL;
92659 
92660 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
92661 l_bflow_class_code           := 'AP_LIAB';    -- 4219869 Business Flow
92662 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
92663 l_budgetary_control_flag     := 'N';
92664 
92665 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
92666 l_bflow_applied_to_amt       := NULL; -- 5132302
92667 l_entered_amt_idx            := NULL;          -- 4262811
92668 l_accted_amt_idx             := NULL;          -- 4262811
92669 l_acc_rev_flag               := NULL;          -- 4262811
92670 l_accrual_line_num           := NULL;          -- 4262811
92671 l_tmp_amt                    := NULL;          -- 4262811
92672 --
92673  
92674 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
92675     l_balance_type_code <> 'B' THEN
92676 IF NVL(p_source_97,'
92677 ') <>  'CLEAR_CLEAR' AND 
92678 (NVL(p_source_98,'
92679 ') =  'ROUNDING' OR 
92680 NVL(p_source_98,'
92681 ') =  'CASH' OR 
92682 NVL(p_source_98,'
92683 ') =  'DISCOUNT') AND 
92684 NVL(p_source_122,'
92685 ') =  'R'
92686  THEN 
92687 
92688    --
92689    XLA_AE_LINES_PKG.SetNewLine;
92690 
92691    p_balance_type_code          := l_balance_type_code;
92692    -- set the flag so later we will know whether the gain loss line needs to be created
92693    
92694    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
92695      p_actual_flag :='A';
92696    END IF;
92697 
92698    --
92702                                       p_header_num   => 0); -- 4262811
92699    -- bulk performance
92700    --
92701    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
92703    --
92704    -- set accounting line options
92705    --
92706    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
92707            p_natural_side_code          => 'D'
92708          , p_gain_or_loss_flag          => 'N'
92709          , p_gl_transfer_mode_code      => 'S'
92710          , p_acct_entry_type_code       => 'A'
92711          , p_switch_side_flag           => 'Y'
92712          , p_merge_duplicate_code       => 'A'
92713          );
92714    --
92715    l_acc_rev_natural_side_code := 'C';  -- 4262811
92716    -- 
92717    --
92718    -- set accounting line type info
92719    --
92720    xla_ae_lines_pkg.SetAcctLineType
92721       (p_component_type             => l_component_type
92722       ,p_event_type_code            => l_event_type_code
92723       ,p_line_definition_owner_code => l_line_definition_owner_code
92724       ,p_line_definition_code       => l_line_definition_code
92725       ,p_accounting_line_code       => l_component_code
92726       ,p_accounting_line_type_code  => l_component_type_code
92727       ,p_accounting_line_appl_id    => l_component_appl_id
92728       ,p_amb_context_code           => l_amb_context_code
92729       ,p_entity_code                => l_entity_code
92730       ,p_event_class_code           => l_event_class_code);
92731    --
92732    -- set accounting class
92733    --
92734    xla_ae_lines_pkg.SetAcctClass(
92735            p_accounting_class_code  => 'LIABILITY'
92736          , p_ae_header_id           => l_ae_header_id
92737          );
92738 
92739    --
92740    -- set rounding class
92741    --
92742    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
92743                       'LIABILITY';
92744 
92745    --
92746    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
92747    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
92748    --
92749    -- bulk performance
92750    --
92751    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
92752 
92753    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
92754       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
92755 
92756    -- 4955764
92757    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
92758       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
92759 
92760    -- 4458381 Public Sector Enh
92761    
92762    --
92763    -- set accounting attributes for the line type
92764    --
92765    l_entered_amt_idx := 9;
92766    l_accted_amt_idx  := 11;
92767    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
92768    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
92769    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
92770    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
92771    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
92772    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
92773    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
92774    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
92775    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
92776    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
92777    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
92778    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
92779    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
92780    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
92781    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
92782    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
92783    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
92784    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
92785    l_rec_acct_attrs.array_num_value(9)  := p_source_99;
92786    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
92787    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
92788    l_rec_acct_attrs.array_acct_attr_code(11) := 'LEDGER_AMOUNT';
92789    l_rec_acct_attrs.array_num_value(11)  := p_source_116;
92790    l_rec_acct_attrs.array_acct_attr_code(12) := 'OVERRIDE_ACCTD_AMT_FLAG';
92791    l_rec_acct_attrs.array_char_value(12)  := p_source_80;
92792    l_rec_acct_attrs.array_acct_attr_code(13) := 'PARTY_TYPE';
92793    l_rec_acct_attrs.array_char_value(13)  := p_source_83;
92794    l_rec_acct_attrs.array_acct_attr_code(14) := 'REVERSED_DISTRIBUTION_ID1';
92795    l_rec_acct_attrs.array_num_value(14)  :=  to_char(p_source_112);
92796    l_rec_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_TYPE';
92797    l_rec_acct_attrs.array_char_value(15)  := p_source_55;
92798    l_rec_acct_attrs.array_acct_attr_code(16) := 'TAX_LINE_REF_ID';
92799    l_rec_acct_attrs.array_num_value(16)  := p_source_86;
92800    l_rec_acct_attrs.array_acct_attr_code(17) := 'TAX_REC_NREC_DIST_REF_ID';
92801    l_rec_acct_attrs.array_num_value(17)  := p_source_87;
92802    l_rec_acct_attrs.array_acct_attr_code(18) := 'TAX_SUMMARY_LINE_REF_ID';
92803    l_rec_acct_attrs.array_num_value(18)  := p_source_88;
92804 
92805    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
92809    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
92806    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
92807 
92808    ---------------------------------------------------------------------------------------------------------------
92810    ---------------------------------------------------------------------------------------------------------------
92811    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
92812 
92813    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
92814    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
92815 
92816    IF xla_accounting_cache_pkg.GetValueChar
92817          (p_source_code         => 'LEDGER_CATEGORY_CODE'
92818          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
92819    AND l_bflow_method_code = 'PRIOR_ENTRY'
92820 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
92821    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
92822          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
92823        )
92824    THEN
92825          xla_ae_lines_pkg.BflowUpgEntry
92826            (p_business_method_code    => l_bflow_method_code
92827            ,p_business_class_code     => l_bflow_class_code
92828            ,p_balance_type            => l_balance_type_code);
92829    ELSE
92830       NULL;
92831 XLA_AE_LINES_PKG.business_flow_validation(
92832                                 p_business_method_code     => l_bflow_method_code
92833                                ,p_business_class_code      => l_bflow_class_code
92834                                ,p_inherit_description_flag => l_inherit_desc_flag);
92835    END IF;
92836 
92837    --
92838    -- call analytical criteria
92839    --
92840    -- Inherited Analytical Criteria for business flow method of Prior Entry.
92841    --
92842    -- call description
92843    --
92844    -- No description or it is inherited.
92845    --
92846    -- call ADRs
92847    -- Bug 4922099
92848    --
92849    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
92850         (NVL(l_actual_upg_option, 'N') = 'O') OR
92851         (NVL(l_enc_upg_option, 'N') = 'O')
92852       )
92853    THEN
92854    NULL;
92855    --
92856    --
92857    
92858    --
92859    --
92860    END IF;
92861    --
92862    -- Bug 4922099
92863    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
92864           (NVL(l_enc_upg_option, 'N') = 'O')
92865         ) AND
92866         (l_bflow_method_code = 'PRIOR_ENTRY')
92867       )
92868    THEN
92869       IF
92870       --
92871       1 = 1
92872       --
92873       THEN
92874       xla_accounting_err_pkg.build_message
92875                                     (p_appli_s_name            => 'XLA'
92876                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
92877                                     ,p_token_1                 => 'LINE_NUMBER'
92878                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
92879                                     ,p_token_2                 => 'LINE_TYPE_NAME'
92880                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
92881                                                                              l_component_type
92882                                                                             ,l_component_code
92883                                                                             ,l_component_type_code
92884                                                                             ,l_component_appl_id
92885                                                                             ,l_amb_context_code
92886                                                                             ,l_entity_code
92887                                                                             ,l_event_class_code
92888                                                                            )
92889                                     ,p_token_3                 => 'OWNER'
92890                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
92891                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
92892                                                                           ,p_lookup_code    => l_component_type_code
92893                                                                          )
92894                                     ,p_token_4                 => 'PRODUCT_NAME'
92895                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
92896                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
92897                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
92898                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
92899                                     ,p_ae_header_id            =>  NULL
92900                                        );
92901 
92902         IF (C_LEVEL_ERROR>= g_log_level) THEN
92903                  trace
92904                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
92905                       ,p_level    => C_LEVEL_ERROR
92909    END IF;
92906                       ,p_module   => l_log_module);
92907         END IF;
92908       END IF;
92910    --
92911    --
92912    ------------------------------------------------------------------------------------------------
92913    -- 4219869 Business Flow
92914    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
92915    -- Prior Entry.  Currently, the following code is always generated.
92916    ------------------------------------------------------------------------------------------------
92917    -- No ValidateCurrentLine for business flow method of Prior Entry
92918 
92919    ------------------------------------------------------------------------------------
92920    -- 4219869 Business Flow
92921    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
92922    ------------------------------------------------------------------------------------
92923    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
92924 
92925    ----------------------------------------------------------------------------------
92926    -- 4219869 Business Flow
92927    -- Update journal entry status -- Need to generate this within IF <condition>
92928    ----------------------------------------------------------------------------------
92929    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
92930          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
92931          ,p_balance_type_code => l_balance_type_code
92932          );
92933 
92934    -------------------------------------------------------------------------------------------
92935    -- 4262811 - Generate the Accrual Reversal lines
92936    -------------------------------------------------------------------------------------------
92937    BEGIN
92938       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
92939                               (g_array_event(p_event_id).array_value_num('header_index'));
92940       IF l_acc_rev_flag IS NULL THEN
92941          l_acc_rev_flag := 'N';
92942       END IF;
92943    EXCEPTION
92944       WHEN OTHERS THEN
92945          l_acc_rev_flag := 'N';
92946    END;
92947    --
92948    IF (l_acc_rev_flag = 'Y') THEN
92949 
92950        -- 4645092  ------------------------------------------------------------------------------
92951        -- To allow MPA report to determine if it should generate report process
92952        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
92953        ------------------------------------------------------------------------------------------
92954 
92955        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
92956        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
92957    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
92958    -- call ADRs
92959    -- Bug 4922099
92960    --
92961    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
92962         (NVL(l_actual_upg_option, 'N') = 'O') OR
92963         (NVL(l_enc_upg_option, 'N') = 'O')
92964       )
92965    THEN
92966    NULL;
92967    --
92968    --
92969    
92970    --
92971    --
92972    END IF;
92973 
92974        --
92975        -- Update the line information that should be overwritten
92976        --
92977        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
92978                                          p_header_num   => 1);
92979        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
92980 
92981        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
92982 
92983        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
92984           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
92985        END IF;
92986 
92987       --
92988       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
92989       --
92990       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
92991           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
92992       ELSE
92993           ---------------------------------------------------------------------------------------------------
92994           -- 4262811a Switch Sign
92995           ---------------------------------------------------------------------------------------------------
92996           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
92997           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
92998                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
92999           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
93000                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93001           -- 5132302
93002           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
93003                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93004 
93005       END IF;
93006 
93007       -- 4955764
93008       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
93009       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
93010 
93011 
93012       XLA_AE_LINES_PKG.ValidateCurrentLine;
93016                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
93013       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
93014 
93015       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
93017                ,p_balance_type_code => l_balance_type_code);
93018 
93019    END IF;
93020 
93021    -----------------------------------------------------------------------------------------
93022    -- 4262811 Multiperiod Accounting
93023    -----------------------------------------------------------------------------------------
93024      -- No MPA option is assigned.
93025 
93026 
93027 END IF;
93028 END IF;
93029 --
93030 
93031 --
93032 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
93033    trace
93034       (p_msg      => 'END of AcctLineType_162'
93035       ,p_level    => C_LEVEL_PROCEDURE
93036       ,p_module   => l_log_module);
93037 END IF;
93038 --
93039 EXCEPTION
93040   WHEN xla_exceptions_pkg.application_exception THEN
93041       RAISE;
93042   WHEN OTHERS THEN
93043        xla_exceptions_pkg.raise_message
93044            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_162');
93045 END AcctLineType_162;
93046 --
93047 
93048 ---------------------------------------
93049 --
93050 -- PRIVATE FUNCTION
93051 --         AcctLineType_163
93052 --
93053 ---------------------------------------
93054 PROCEDURE AcctLineType_163 (
93055   p_application_id        IN NUMBER
93056  ,p_event_id              IN NUMBER
93057  ,p_calculate_acctd_flag  IN VARCHAR2
93058  ,p_calculate_g_l_flag    IN VARCHAR2
93059  ,p_actual_flag           IN OUT VARCHAR2
93060  ,p_balance_type_code     OUT VARCHAR2
93061  ,p_gain_or_loss_ref      OUT VARCHAR2
93062  
93063 --Payment Currency Code
93064  , p_source_13            IN VARCHAR2
93065 --Automatic Offsets Value
93066  , p_source_15            IN VARCHAR2
93067  , p_source_15_meaning    IN VARCHAR2
93068 --Invoice Distribution Account
93069  , p_source_30            IN NUMBER
93070 --Internal Realized Loss Account
93071  , p_source_38            IN NUMBER
93072 --Bank Loss Account
93073  , p_source_39            IN NUMBER
93074 --Accounting Reversal Indicator
93075  , p_source_53            IN VARCHAR2
93076 --Distribution Link Type
93077  , p_source_55            IN VARCHAR2
93078 --Override Accounted Amount Indicator
93079  , p_source_80            IN VARCHAR2
93080  , p_source_80_meaning    IN VARCHAR2
93081 --Third Party Type
93082  , p_source_83            IN VARCHAR2
93083 --Invoice Distribution Tax Line Identifier
93084  , p_source_86            IN NUMBER
93085 --Invoice Distribution Summary Tax Line Identifier
93086  , p_source_88            IN NUMBER
93087 --Business Flow Accounts Payable Application Identifier
93088  , p_source_91            IN NUMBER
93089 --When to Account for Payment Option
93090  , p_source_97            IN VARCHAR2
93091 --Payment Distribution Type
93092  , p_source_98            IN VARCHAR2
93093  , p_source_98_meaning    IN VARCHAR2
93094 --Payment Distribution Amount
93095  , p_source_99            IN NUMBER
93096 --Business Flow Payment Distribution Type
93097  , p_source_100            IN VARCHAR2
93098 --Business Flow Payment Entity Code
93099  , p_source_101            IN VARCHAR2
93100 --Business Flow Payment Distribution Identifier
93101  , p_source_102            IN NUMBER
93102 --Business Flow Payment Identifier
93103  , p_source_103            IN NUMBER
93104 --Payment Distribution Identifier
93105  , p_source_104            IN NUMBER
93106 --Cleared Exchange Date
93107  , p_source_106            IN DATE
93108 --Cleared Exchange Rate
93109  , p_source_107            IN NUMBER
93110 --Cleared Exchange Rate Type
93111  , p_source_108            IN VARCHAR2
93112 --Payment Supplier Identifier
93113  , p_source_110            IN NUMBER
93114 --Payment Supplier Site Identifier
93115  , p_source_111            IN NUMBER
93116 --Payment Distribution Reversed Identifier
93117  , p_source_112            IN NUMBER
93118 --Gain or Loss Indicator between Invoice and Clearing
93119  , p_source_151            IN VARCHAR2
93120 --Invoice/Clearing Ledger Amount Difference
93121  , p_source_152            IN NUMBER
93122 )
93123 IS
93124 
93125 l_component_type              VARCHAR2(80);
93126 l_component_code              VARCHAR2(30);
93127 l_component_type_code         VARCHAR2(1);
93128 l_component_appl_id           INTEGER;
93129 l_amb_context_code            VARCHAR2(30);
93130 l_entity_code                 VARCHAR2(30);
93131 l_event_class_code            VARCHAR2(30);
93132 l_ae_header_id                NUMBER;
93133 l_event_type_code             VARCHAR2(30);
93134 l_line_definition_code        VARCHAR2(30);
93135 l_line_definition_owner_code  VARCHAR2(1);
93136 --
93137 -- adr variables
93138 l_segment                     VARCHAR2(30);
93139 l_ccid                        NUMBER;
93140 l_adr_transaction_coa_id      NUMBER;
93141 l_adr_accounting_coa_id       NUMBER;
93142 l_adr_flexfield_segment_code  VARCHAR2(30);
93143 l_adr_flex_value_set_id       NUMBER;
93144 l_adr_value_type_code         VARCHAR2(30);
93145 l_adr_value_combination_id    NUMBER;
93146 l_adr_value_segment_code      VARCHAR2(30);
93147 
93148 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
93149 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
93153 -- 4262811 Variables ------------------------------------------------------------------------------------------
93150 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
93151 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
93152 
93154 l_entered_amt_idx             NUMBER;
93155 l_accted_amt_idx              NUMBER;
93156 l_acc_rev_flag                VARCHAR2(1);
93157 l_accrual_line_num            NUMBER;
93158 l_tmp_amt                     NUMBER;
93159 l_acc_rev_natural_side_code   VARCHAR2(1);
93160 
93161 l_num_entries                 NUMBER;
93162 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
93163 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
93164 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
93165 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
93166 l_recog_line_1                NUMBER;
93167 l_recog_line_2                NUMBER;
93168 
93169 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
93170 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
93171 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
93172 
93173 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
93174 
93175 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
93176 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
93177 
93178 ---------------------------------------------------------------------------------------------------------------
93179 
93180 
93181 --
93182 -- bulk performance
93183 --
93184 l_balance_type_code           VARCHAR2(1);
93185 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
93186 l_log_module                  VARCHAR2(240);
93187 
93188 --
93189 -- Upgrade strategy
93190 --
93191 l_actual_upg_option           VARCHAR2(1);
93192 l_enc_upg_option           VARCHAR2(1);
93193 
93194 --
93195 BEGIN
93196 --
93197 IF g_log_enabled THEN
93198       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_163';
93199 END IF;
93200 --
93201 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
93202 
93203       trace
93204          (p_msg      => 'BEGIN of AcctLineType_163'
93205          ,p_level    => C_LEVEL_PROCEDURE
93206          ,p_module   => l_log_module);
93207 
93208 END IF;
93209 --
93210 l_component_type             := 'AMB_JLT';
93211 l_component_code             := 'AP_LOSS_INV_CLEAR';
93212 l_component_type_code        := 'S';
93213 l_component_appl_id          :=  200;
93214 l_amb_context_code           := 'DEFAULT';
93215 l_entity_code                := 'AP_PAYMENTS';
93216 l_event_class_code           := 'RECONCILED PAYMENTS';
93217 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
93218 l_line_definition_owner_code := 'S';
93219 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
93220 --
93221 l_balance_type_code          := 'A';
93222 l_segment                     := NULL;
93223 l_ccid                        := NULL;
93224 l_adr_transaction_coa_id      := NULL;
93225 l_adr_accounting_coa_id       := NULL;
93226 l_adr_flexfield_segment_code  := NULL;
93227 l_adr_flex_value_set_id       := NULL;
93228 l_adr_value_type_code         := NULL;
93229 l_adr_value_combination_id    := NULL;
93230 l_adr_value_segment_code      := NULL;
93231 
93232 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
93233 l_bflow_class_code           := '';    -- 4219869 Business Flow
93234 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
93235 l_budgetary_control_flag     := 'N';
93236 
93237 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
93238 l_bflow_applied_to_amt       := NULL; -- 5132302
93239 l_entered_amt_idx            := NULL;          -- 4262811
93240 l_accted_amt_idx             := NULL;          -- 4262811
93241 l_acc_rev_flag               := NULL;          -- 4262811
93242 l_accrual_line_num           := NULL;          -- 4262811
93243 l_tmp_amt                    := NULL;          -- 4262811
93244 --
93245 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
93246             (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
93247                return;
93248   END IF;
93249   
93250 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
93251     l_balance_type_code <> 'B' THEN
93252 IF (NVL(p_source_97,'
93253 ') =  'CLEAR_CLEAR' OR 
93254 NVL(p_source_97,'
93255 ') =  'ALWAYS_CLEAR') AND 
93256 NVL(p_source_151,'
93257 ') =  'LOSS' AND 
93258 NVL(p_source_98,'
93259 ') <>  'EXCHANGE RATE VARIANCE' AND 
93260 NVL(p_source_98,'
93261 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
93262 NVL(p_source_98,'
93263 ') <>  'BANK CHARGE' AND 
93264 NVL(p_source_98,'
93265 ') <>  'BANK ERROR' AND 
93266 NVL(p_source_98,'
93267 ') <>  'AWT'
93268  THEN 
93269 
93270    --
93271    XLA_AE_LINES_PKG.SetNewLine;
93272 
93273    p_balance_type_code          := l_balance_type_code;
93274    -- set the flag so later we will know whether the gain loss line needs to be created
93275    
93276    IF(l_balance_type_code = 'A' ) THEN
93277      p_actual_flag :='G';
93278    END IF;
93282    --
93279 
93280    --
93281    -- bulk performance
93283    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
93284                                       p_header_num   => 0); -- 4262811
93285    --
93286    -- set accounting line options
93287    --
93288    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
93289            p_natural_side_code          => 'C'
93290          , p_gain_or_loss_flag          => 'Y'
93291          , p_gl_transfer_mode_code      => 'S'
93292          , p_acct_entry_type_code       => 'A'
93293          , p_switch_side_flag           => 'Y'
93294          , p_merge_duplicate_code       => 'A'
93295          );
93296    --
93297    l_acc_rev_natural_side_code := 'D';  -- 4262811
93298    -- 
93299    --
93300    -- set accounting line type info
93301    --
93302    xla_ae_lines_pkg.SetAcctLineType
93303       (p_component_type             => l_component_type
93304       ,p_event_type_code            => l_event_type_code
93305       ,p_line_definition_owner_code => l_line_definition_owner_code
93306       ,p_line_definition_code       => l_line_definition_code
93307       ,p_accounting_line_code       => l_component_code
93308       ,p_accounting_line_type_code  => l_component_type_code
93309       ,p_accounting_line_appl_id    => l_component_appl_id
93310       ,p_amb_context_code           => l_amb_context_code
93311       ,p_entity_code                => l_entity_code
93312       ,p_event_class_code           => l_event_class_code);
93313    --
93314    -- set accounting class
93315    --
93316    xla_ae_lines_pkg.SetAcctClass(
93317            p_accounting_class_code  => 'LOSS'
93318          , p_ae_header_id           => l_ae_header_id
93319          );
93320 
93321    --
93322    -- set rounding class
93323    --
93324    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
93325                       'LOSS';
93326 
93327    --
93328    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
93329    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
93330    --
93331    -- bulk performance
93332    --
93333    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
93334 
93335    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
93336       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
93337 
93338    -- 4955764
93339    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
93340       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
93341 
93342    -- 4458381 Public Sector Enh
93343    
93344    --
93345    -- set accounting attributes for the line type
93346    --
93347    l_entered_amt_idx := 10;
93348    l_accted_amt_idx  := 15;
93349    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
93350    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
93351    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
93352    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
93353    l_rec_acct_attrs.array_num_value(2)  := p_source_99;
93354    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
93355    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
93356    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
93357    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
93358    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
93359    l_rec_acct_attrs.array_char_value(5)  := p_source_101;
93360    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
93361    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
93362    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
93363    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
93364    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
93365    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
93366    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
93367    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
93368    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
93369    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
93370    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
93371    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
93372    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
93373    l_rec_acct_attrs.array_date_value(12)  := p_source_106;
93374    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
93375    l_rec_acct_attrs.array_num_value(13)  := p_source_107;
93376    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
93377    l_rec_acct_attrs.array_char_value(14)  := p_source_108;
93378    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
93379    l_rec_acct_attrs.array_num_value(15)  := p_source_152;
93380    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
93381    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
93382    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
93383    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
93384    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
93385    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
93386    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
93387    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
93391    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
93388    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
93389    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
93390    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
93392    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
93393    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
93394    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
93395    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
93396    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
93397    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
93398 
93399    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
93400    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
93401 
93402    ---------------------------------------------------------------------------------------------------------------
93403    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
93404    ---------------------------------------------------------------------------------------------------------------
93405    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
93406 
93407    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
93408    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
93409 
93410    IF xla_accounting_cache_pkg.GetValueChar
93411          (p_source_code         => 'LEDGER_CATEGORY_CODE'
93412          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
93413    AND l_bflow_method_code = 'PRIOR_ENTRY'
93414 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
93415    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
93416          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
93417        )
93418    THEN
93419          xla_ae_lines_pkg.BflowUpgEntry
93420            (p_business_method_code    => l_bflow_method_code
93421            ,p_business_class_code     => l_bflow_class_code
93422            ,p_balance_type            => l_balance_type_code);
93423    ELSE
93424       NULL;
93425 -- No business flow processing for business flow method of NONE.
93426    END IF;
93427 
93428    --
93429    -- call analytical criteria
93430    --
93431    
93432    --
93433    -- call description
93434    --
93435    -- No description or it is inherited.
93436    --
93437    -- call ADRs
93438    -- Bug 4922099
93439    --
93440    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
93441         (NVL(l_actual_upg_option, 'N') = 'O') OR
93442         (NVL(l_enc_upg_option, 'N') = 'O')
93443       )
93444    THEN
93445    NULL;
93446    --
93447    --
93448    
93449   l_ccid := AcctDerRule_39(
93450            p_application_id           => p_application_id
93451          , p_ae_header_id             => l_ae_header_id 
93452 , p_source_15 => p_source_15
93453 , p_source_15_meaning => p_source_15_meaning
93454 , p_source_30 => p_source_30
93455 , p_source_38 => p_source_38
93456 , p_source_39 => p_source_39
93457          , x_transaction_coa_id       => l_adr_transaction_coa_id
93458          , x_accounting_coa_id        => l_adr_accounting_coa_id
93459          , x_value_type_code          => l_adr_value_type_code
93460          , p_side                     => 'NA'
93461    );
93462 
93463    xla_ae_lines_pkg.set_ccid(
93464     p_code_combination_id          => l_ccid
93465   , p_value_type_code              => l_adr_value_type_code
93466   , p_transaction_coa_id           => l_adr_transaction_coa_id
93467   , p_accounting_coa_id            => l_adr_accounting_coa_id
93468   , p_adr_code                     => 'AP_REAL_LOSS'
93469   , p_adr_type_code                => 'S'
93470   , p_component_type               => l_component_type
93471   , p_component_code               => l_component_code
93472   , p_component_type_code          => l_component_type_code
93473   , p_component_appl_id            => l_component_appl_id
93474   , p_amb_context_code             => l_amb_context_code
93475   , p_side                         => 'NA'
93476   );
93477 
93478 
93479    l_segment := AcctDerRule_22(
93480            p_application_id           => p_application_id
93481          , p_ae_header_id             => l_ae_header_id 
93482 , p_source_15 => p_source_15
93483 , p_source_15_meaning => p_source_15_meaning
93484 , p_source_30 => p_source_30
93485          , x_transaction_coa_id       => l_adr_transaction_coa_id
93486          , x_accounting_coa_id        => l_adr_accounting_coa_id
93487          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
93488          , x_flex_value_set_id        => l_adr_flex_value_set_id
93489          , x_value_type_code          => l_adr_value_type_code
93490          , x_value_combination_id     => l_adr_value_combination_id
93491          , x_value_segment_code       => l_adr_value_segment_code
93492          , p_side                     => 'NA'
93493          , p_override_seg_flag        => 'Y'
93494    );
93495 
93496    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
93497 
93498       xla_ae_lines_pkg.set_segment(
93499           p_to_segment_code         => 'GL_BALANCING'
93500         , p_segment_value           => l_segment
93501         , p_from_segment_code       => l_adr_value_segment_code
93505         , p_accounting_coa_id       => l_adr_accounting_coa_id
93502         , p_from_combination_id     => l_adr_value_combination_id
93503         , p_value_type_code         => l_adr_value_type_code
93504         , p_transaction_coa_id      => l_adr_transaction_coa_id
93506         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
93507         , p_flex_value_set_id       => l_adr_flex_value_set_id
93508         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
93509         , p_adr_type_code           => 'S'
93510         , p_component_type          => l_component_type
93511         , p_component_code          => l_component_code
93512         , p_component_type_code     => l_component_type_code
93513         , p_component_appl_id       => l_component_appl_id
93514         , p_amb_context_code        => l_amb_context_code
93515         , p_entity_code             => 'AP_PAYMENTS'
93516         , p_event_class_code        => 'RECONCILED PAYMENTS'
93517         , p_side                    => 'NA'
93518         );
93519 
93520   END IF;
93521 
93522    l_segment := AcctDerRule_18(
93523            p_application_id           => p_application_id
93524          , p_ae_header_id             => l_ae_header_id 
93525 , p_source_15 => p_source_15
93526 , p_source_15_meaning => p_source_15_meaning
93527 , p_source_38 => p_source_38
93528 , p_source_39 => p_source_39
93529          , x_transaction_coa_id       => l_adr_transaction_coa_id
93530          , x_accounting_coa_id        => l_adr_accounting_coa_id
93531          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
93532          , x_flex_value_set_id        => l_adr_flex_value_set_id
93533          , x_value_type_code          => l_adr_value_type_code
93534          , x_value_combination_id     => l_adr_value_combination_id
93535          , x_value_segment_code       => l_adr_value_segment_code
93536          , p_side                     => 'NA'
93537          , p_override_seg_flag        => 'Y'
93538    );
93539 
93540    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
93541 
93542       xla_ae_lines_pkg.set_segment(
93543           p_to_segment_code         => 'GL_ACCOUNT'
93544         , p_segment_value           => l_segment
93545         , p_from_segment_code       => l_adr_value_segment_code
93546         , p_from_combination_id     => l_adr_value_combination_id
93547         , p_value_type_code         => l_adr_value_type_code
93548         , p_transaction_coa_id      => l_adr_transaction_coa_id
93549         , p_accounting_coa_id       => l_adr_accounting_coa_id
93550         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
93551         , p_flex_value_set_id       => l_adr_flex_value_set_id
93552         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
93553         , p_adr_type_code           => 'S'
93554         , p_component_type          => l_component_type
93555         , p_component_code          => l_component_code
93556         , p_component_type_code     => l_component_type_code
93557         , p_component_appl_id       => l_component_appl_id
93558         , p_amb_context_code        => l_amb_context_code
93559         , p_entity_code             => 'AP_PAYMENTS'
93560         , p_event_class_code        => 'RECONCILED PAYMENTS'
93561         , p_side                    => 'NA'
93562         );
93563 
93564   END IF;
93565 
93566    --
93567    --
93568    END IF;
93569    --
93570    -- Bug 4922099
93571    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
93572           (NVL(l_enc_upg_option, 'N') = 'O')
93573         ) AND
93574         (l_bflow_method_code = 'PRIOR_ENTRY')
93575       )
93576    THEN
93577       IF
93578       --
93579       1 = 2
93580       --
93581       THEN
93582       xla_accounting_err_pkg.build_message
93583                                     (p_appli_s_name            => 'XLA'
93584                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
93585                                     ,p_token_1                 => 'LINE_NUMBER'
93586                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
93587                                     ,p_token_2                 => 'LINE_TYPE_NAME'
93588                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
93589                                                                              l_component_type
93590                                                                             ,l_component_code
93591                                                                             ,l_component_type_code
93592                                                                             ,l_component_appl_id
93593                                                                             ,l_amb_context_code
93594                                                                             ,l_entity_code
93595                                                                             ,l_event_class_code
93596                                                                            )
93597                                     ,p_token_3                 => 'OWNER'
93598                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
93599                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
93600                                                                           ,p_lookup_code    => l_component_type_code
93601                                                                          )
93602                                     ,p_token_4                 => 'PRODUCT_NAME'
93606                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
93603                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
93604                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
93605                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
93607                                     ,p_ae_header_id            =>  NULL
93608                                        );
93609 
93610         IF (C_LEVEL_ERROR>= g_log_level) THEN
93611                  trace
93612                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
93613                       ,p_level    => C_LEVEL_ERROR
93614                       ,p_module   => l_log_module);
93615         END IF;
93616       END IF;
93617    END IF;
93618    --
93619    --
93620    ------------------------------------------------------------------------------------------------
93621    -- 4219869 Business Flow
93622    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
93623    -- Prior Entry.  Currently, the following code is always generated.
93624    ------------------------------------------------------------------------------------------------
93625    XLA_AE_LINES_PKG.ValidateCurrentLine;
93626 
93627    ------------------------------------------------------------------------------------
93628    -- 4219869 Business Flow
93629    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
93630    ------------------------------------------------------------------------------------
93631    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
93632 
93633    ----------------------------------------------------------------------------------
93634    -- 4219869 Business Flow
93635    -- Update journal entry status -- Need to generate this within IF <condition>
93636    ----------------------------------------------------------------------------------
93637    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
93638          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
93639          ,p_balance_type_code => l_balance_type_code
93640          );
93641 
93642    -------------------------------------------------------------------------------------------
93643    -- 4262811 - Generate the Accrual Reversal lines
93644    -------------------------------------------------------------------------------------------
93645    BEGIN
93646       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
93647                               (g_array_event(p_event_id).array_value_num('header_index'));
93648       IF l_acc_rev_flag IS NULL THEN
93649          l_acc_rev_flag := 'N';
93650       END IF;
93651    EXCEPTION
93652       WHEN OTHERS THEN
93653          l_acc_rev_flag := 'N';
93654    END;
93655    --
93656    IF (l_acc_rev_flag = 'Y') THEN
93657 
93658        -- 4645092  ------------------------------------------------------------------------------
93659        -- To allow MPA report to determine if it should generate report process
93660        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
93661        ------------------------------------------------------------------------------------------
93662 
93663        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
93664        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
93665    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
93666    -- call ADRs
93667    -- Bug 4922099
93668    --
93669    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
93670         (NVL(l_actual_upg_option, 'N') = 'O') OR
93671         (NVL(l_enc_upg_option, 'N') = 'O')
93672       )
93673    THEN
93674    NULL;
93675    --
93676    --
93677    
93678   l_ccid := AcctDerRule_39(
93679            p_application_id           => p_application_id
93680          , p_ae_header_id             => l_ae_header_id 
93681 , p_source_15 => p_source_15
93682 , p_source_15_meaning => p_source_15_meaning
93683 , p_source_30 => p_source_30
93684 , p_source_38 => p_source_38
93685 , p_source_39 => p_source_39
93686          , x_transaction_coa_id       => l_adr_transaction_coa_id
93687          , x_accounting_coa_id        => l_adr_accounting_coa_id
93688          , x_value_type_code          => l_adr_value_type_code
93689          , p_side                     => 'NA'
93690    );
93691 
93692    xla_ae_lines_pkg.set_ccid(
93693     p_code_combination_id          => l_ccid
93694   , p_value_type_code              => l_adr_value_type_code
93695   , p_transaction_coa_id           => l_adr_transaction_coa_id
93696   , p_accounting_coa_id            => l_adr_accounting_coa_id
93697   , p_adr_code                     => 'AP_REAL_LOSS'
93698   , p_adr_type_code                => 'S'
93699   , p_component_type               => l_component_type
93700   , p_component_code               => l_component_code
93701   , p_component_type_code          => l_component_type_code
93702   , p_component_appl_id            => l_component_appl_id
93703   , p_amb_context_code             => l_amb_context_code
93704   , p_side                         => 'NA'
93705   );
93706 
93707 
93708    l_segment := AcctDerRule_22(
93709            p_application_id           => p_application_id
93710          , p_ae_header_id             => l_ae_header_id 
93711 , p_source_15 => p_source_15
93712 , p_source_15_meaning => p_source_15_meaning
93713 , p_source_30 => p_source_30
93714          , x_transaction_coa_id       => l_adr_transaction_coa_id
93718          , x_value_type_code          => l_adr_value_type_code
93715          , x_accounting_coa_id        => l_adr_accounting_coa_id
93716          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
93717          , x_flex_value_set_id        => l_adr_flex_value_set_id
93719          , x_value_combination_id     => l_adr_value_combination_id
93720          , x_value_segment_code       => l_adr_value_segment_code
93721          , p_side                     => 'NA'
93722          , p_override_seg_flag        => 'Y'
93723    );
93724 
93725    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
93726 
93727       xla_ae_lines_pkg.set_segment(
93728           p_to_segment_code         => 'GL_BALANCING'
93729         , p_segment_value           => l_segment
93730         , p_from_segment_code       => l_adr_value_segment_code
93731         , p_from_combination_id     => l_adr_value_combination_id
93732         , p_value_type_code         => l_adr_value_type_code
93733         , p_transaction_coa_id      => l_adr_transaction_coa_id
93734         , p_accounting_coa_id       => l_adr_accounting_coa_id
93735         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
93736         , p_flex_value_set_id       => l_adr_flex_value_set_id
93737         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
93738         , p_adr_type_code           => 'S'
93739         , p_component_type          => l_component_type
93740         , p_component_code          => l_component_code
93741         , p_component_type_code     => l_component_type_code
93742         , p_component_appl_id       => l_component_appl_id
93743         , p_amb_context_code        => l_amb_context_code
93744         , p_entity_code             => 'AP_PAYMENTS'
93745         , p_event_class_code        => 'RECONCILED PAYMENTS'
93746         , p_side                    => 'NA'
93747         );
93748 
93749   END IF;
93750 
93751    l_segment := AcctDerRule_18(
93752            p_application_id           => p_application_id
93753          , p_ae_header_id             => l_ae_header_id 
93754 , p_source_15 => p_source_15
93755 , p_source_15_meaning => p_source_15_meaning
93756 , p_source_38 => p_source_38
93757 , p_source_39 => p_source_39
93758          , x_transaction_coa_id       => l_adr_transaction_coa_id
93759          , x_accounting_coa_id        => l_adr_accounting_coa_id
93760          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
93761          , x_flex_value_set_id        => l_adr_flex_value_set_id
93762          , x_value_type_code          => l_adr_value_type_code
93763          , x_value_combination_id     => l_adr_value_combination_id
93764          , x_value_segment_code       => l_adr_value_segment_code
93765          , p_side                     => 'NA'
93766          , p_override_seg_flag        => 'Y'
93767    );
93768 
93769    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
93770 
93771       xla_ae_lines_pkg.set_segment(
93772           p_to_segment_code         => 'GL_ACCOUNT'
93773         , p_segment_value           => l_segment
93774         , p_from_segment_code       => l_adr_value_segment_code
93775         , p_from_combination_id     => l_adr_value_combination_id
93776         , p_value_type_code         => l_adr_value_type_code
93777         , p_transaction_coa_id      => l_adr_transaction_coa_id
93778         , p_accounting_coa_id       => l_adr_accounting_coa_id
93779         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
93780         , p_flex_value_set_id       => l_adr_flex_value_set_id
93781         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
93782         , p_adr_type_code           => 'S'
93783         , p_component_type          => l_component_type
93784         , p_component_code          => l_component_code
93785         , p_component_type_code     => l_component_type_code
93786         , p_component_appl_id       => l_component_appl_id
93787         , p_amb_context_code        => l_amb_context_code
93788         , p_entity_code             => 'AP_PAYMENTS'
93789         , p_event_class_code        => 'RECONCILED PAYMENTS'
93790         , p_side                    => 'NA'
93791         );
93792 
93793   END IF;
93794 
93795    --
93796    --
93797    END IF;
93798 
93799        --
93800        -- Update the line information that should be overwritten
93801        --
93802        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
93803                                          p_header_num   => 1);
93804        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
93805 
93806        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
93807 
93808        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
93809           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
93810        END IF;
93811 
93812       --
93813       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
93814       --
93815       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
93816           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
93817       ELSE
93818           ---------------------------------------------------------------------------------------------------
93819           -- 4262811a Switch Sign
93820           ---------------------------------------------------------------------------------------------------
93824           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
93821           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
93822           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
93823                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93825                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93826           -- 5132302
93827           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
93828                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
93829 
93830       END IF;
93831 
93832       -- 4955764
93833       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
93834       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
93835 
93836 
93837       XLA_AE_LINES_PKG.ValidateCurrentLine;
93838       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
93839 
93840       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
93841                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
93842                ,p_balance_type_code => l_balance_type_code);
93843 
93844    END IF;
93845 
93846    -----------------------------------------------------------------------------------------
93847    -- 4262811 Multiperiod Accounting
93848    -----------------------------------------------------------------------------------------
93849      -- No MPA option is assigned.
93850 
93851 
93852 END IF;
93853 END IF;
93854 --
93855 
93856 --
93857 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
93858    trace
93859       (p_msg      => 'END of AcctLineType_163'
93860       ,p_level    => C_LEVEL_PROCEDURE
93861       ,p_module   => l_log_module);
93862 END IF;
93863 --
93864 EXCEPTION
93865   WHEN xla_exceptions_pkg.application_exception THEN
93866       RAISE;
93867   WHEN OTHERS THEN
93868        xla_exceptions_pkg.raise_message
93869            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_163');
93870 END AcctLineType_163;
93871 --
93872 
93873 ---------------------------------------
93874 --
93875 -- PRIVATE FUNCTION
93876 --         AcctLineType_164
93877 --
93878 ---------------------------------------
93879 PROCEDURE AcctLineType_164 (
93880   p_application_id        IN NUMBER
93881  ,p_event_id              IN NUMBER
93882  ,p_calculate_acctd_flag  IN VARCHAR2
93883  ,p_calculate_g_l_flag    IN VARCHAR2
93884  ,p_actual_flag           IN OUT VARCHAR2
93885  ,p_balance_type_code     OUT VARCHAR2
93886  ,p_gain_or_loss_ref      OUT VARCHAR2
93887  
93888 --Payment Currency Code
93889  , p_source_13            IN VARCHAR2
93890 --Automatic Offsets Value
93891  , p_source_15            IN VARCHAR2
93892  , p_source_15_meaning    IN VARCHAR2
93893 --Invoice Distribution Account
93894  , p_source_30            IN NUMBER
93895 --Internal Realized Loss Account
93896  , p_source_38            IN NUMBER
93897 --Bank Loss Account
93898  , p_source_39            IN NUMBER
93899 --Accounting Reversal Indicator
93900  , p_source_53            IN VARCHAR2
93901 --Distribution Link Type
93902  , p_source_55            IN VARCHAR2
93903 --Override Accounted Amount Indicator
93904  , p_source_80            IN VARCHAR2
93905  , p_source_80_meaning    IN VARCHAR2
93906 --Third Party Type
93907  , p_source_83            IN VARCHAR2
93908 --Invoice Distribution Tax Line Identifier
93909  , p_source_86            IN NUMBER
93910 --Invoice Distribution Summary Tax Line Identifier
93911  , p_source_88            IN NUMBER
93912 --Business Flow Accounts Payable Application Identifier
93913  , p_source_91            IN NUMBER
93914 --When to Account for Payment Option
93915  , p_source_97            IN VARCHAR2
93916 --Payment Distribution Type
93917  , p_source_98            IN VARCHAR2
93918  , p_source_98_meaning    IN VARCHAR2
93919 --Payment Distribution Amount
93920  , p_source_99            IN NUMBER
93921 --Business Flow Payment Distribution Type
93922  , p_source_100            IN VARCHAR2
93923 --Business Flow Payment Entity Code
93924  , p_source_101            IN VARCHAR2
93925 --Business Flow Payment Distribution Identifier
93926  , p_source_102            IN NUMBER
93927 --Business Flow Payment Identifier
93928  , p_source_103            IN NUMBER
93929 --Payment Distribution Identifier
93930  , p_source_104            IN NUMBER
93931 --Cleared Exchange Date
93932  , p_source_106            IN DATE
93933 --Cleared Exchange Rate
93934  , p_source_107            IN NUMBER
93935 --Cleared Exchange Rate Type
93936  , p_source_108            IN VARCHAR2
93937 --Payment Supplier Identifier
93938  , p_source_110            IN NUMBER
93939 --Payment Supplier Site Identifier
93940  , p_source_111            IN NUMBER
93941 --Payment Distribution Reversed Identifier
93942  , p_source_112            IN NUMBER
93943 --Payment Maturity Date
93944  , p_source_114            IN DATE
93945 --Gain or Loss Indicator between Maturity and Clearing
93946  , p_source_156            IN VARCHAR2
93947 --Maturity/Clearing Ledger Amount Difference
93948  , p_source_157            IN NUMBER
93949 )
93950 IS
93951 
93955 l_component_appl_id           INTEGER;
93952 l_component_type              VARCHAR2(80);
93953 l_component_code              VARCHAR2(30);
93954 l_component_type_code         VARCHAR2(1);
93956 l_amb_context_code            VARCHAR2(30);
93957 l_entity_code                 VARCHAR2(30);
93958 l_event_class_code            VARCHAR2(30);
93959 l_ae_header_id                NUMBER;
93960 l_event_type_code             VARCHAR2(30);
93961 l_line_definition_code        VARCHAR2(30);
93962 l_line_definition_owner_code  VARCHAR2(1);
93963 --
93964 -- adr variables
93965 l_segment                     VARCHAR2(30);
93966 l_ccid                        NUMBER;
93967 l_adr_transaction_coa_id      NUMBER;
93968 l_adr_accounting_coa_id       NUMBER;
93969 l_adr_flexfield_segment_code  VARCHAR2(30);
93970 l_adr_flex_value_set_id       NUMBER;
93971 l_adr_value_type_code         VARCHAR2(30);
93972 l_adr_value_combination_id    NUMBER;
93973 l_adr_value_segment_code      VARCHAR2(30);
93974 
93975 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
93976 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
93977 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
93978 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
93979 
93980 -- 4262811 Variables ------------------------------------------------------------------------------------------
93981 l_entered_amt_idx             NUMBER;
93982 l_accted_amt_idx              NUMBER;
93983 l_acc_rev_flag                VARCHAR2(1);
93984 l_accrual_line_num            NUMBER;
93985 l_tmp_amt                     NUMBER;
93986 l_acc_rev_natural_side_code   VARCHAR2(1);
93987 
93988 l_num_entries                 NUMBER;
93989 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
93990 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
93991 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
93992 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
93993 l_recog_line_1                NUMBER;
93994 l_recog_line_2                NUMBER;
93995 
93996 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
93997 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
93998 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
93999 
94000 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
94001 
94002 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
94003 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
94004 
94005 ---------------------------------------------------------------------------------------------------------------
94006 
94007 
94008 --
94009 -- bulk performance
94010 --
94011 l_balance_type_code           VARCHAR2(1);
94012 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
94013 l_log_module                  VARCHAR2(240);
94014 
94015 --
94016 -- Upgrade strategy
94017 --
94018 l_actual_upg_option           VARCHAR2(1);
94019 l_enc_upg_option           VARCHAR2(1);
94020 
94021 --
94022 BEGIN
94023 --
94024 IF g_log_enabled THEN
94025       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_164';
94026 END IF;
94027 --
94028 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
94029 
94030       trace
94031          (p_msg      => 'BEGIN of AcctLineType_164'
94032          ,p_level    => C_LEVEL_PROCEDURE
94033          ,p_module   => l_log_module);
94034 
94035 END IF;
94036 --
94037 l_component_type             := 'AMB_JLT';
94038 l_component_code             := 'AP_LOSS_MAT_CLEAR';
94039 l_component_type_code        := 'S';
94040 l_component_appl_id          :=  200;
94041 l_amb_context_code           := 'DEFAULT';
94042 l_entity_code                := 'AP_PAYMENTS';
94043 l_event_class_code           := 'RECONCILED PAYMENTS';
94044 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
94045 l_line_definition_owner_code := 'S';
94046 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
94047 --
94048 l_balance_type_code          := 'A';
94049 l_segment                     := NULL;
94050 l_ccid                        := NULL;
94051 l_adr_transaction_coa_id      := NULL;
94052 l_adr_accounting_coa_id       := NULL;
94053 l_adr_flexfield_segment_code  := NULL;
94054 l_adr_flex_value_set_id       := NULL;
94055 l_adr_value_type_code         := NULL;
94056 l_adr_value_combination_id    := NULL;
94057 l_adr_value_segment_code      := NULL;
94058 
94059 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
94060 l_bflow_class_code           := '';    -- 4219869 Business Flow
94061 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
94062 l_budgetary_control_flag     := 'N';
94063 
94064 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
94065 l_bflow_applied_to_amt       := NULL; -- 5132302
94066 l_entered_amt_idx            := NULL;          -- 4262811
94067 l_accted_amt_idx             := NULL;          -- 4262811
94068 l_acc_rev_flag               := NULL;          -- 4262811
94069 l_accrual_line_num           := NULL;          -- 4262811
94070 l_tmp_amt                    := NULL;          -- 4262811
94071 --
94072 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
94076   
94073             (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
94074                return;
94075   END IF;
94077 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
94078     l_balance_type_code <> 'B' THEN
94079 IF NVL(p_source_97,'
94080 ') =  'ALWAYS_ALWAYS' AND 
94081 p_source_114 IS NOT NULL AND 
94082 NVL(p_source_156,'
94083 ') =  'LOSS' AND 
94084 NVL(p_source_98,'
94085 ') <>  'EXCHANGE RATE VARIANCE' AND 
94086 NVL(p_source_98,'
94087 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
94088 NVL(p_source_98,'
94089 ') <>  'BANK CHARGE' AND 
94090 NVL(p_source_98,'
94091 ') <>  'BANK ERROR'
94092  THEN 
94093 
94094    --
94095    XLA_AE_LINES_PKG.SetNewLine;
94096 
94097    p_balance_type_code          := l_balance_type_code;
94098    -- set the flag so later we will know whether the gain loss line needs to be created
94099    
94100    IF(l_balance_type_code = 'A' ) THEN
94101      p_actual_flag :='G';
94102    END IF;
94103 
94104    --
94105    -- bulk performance
94106    --
94107    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
94108                                       p_header_num   => 0); -- 4262811
94109    --
94110    -- set accounting line options
94111    --
94112    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
94113            p_natural_side_code          => 'C'
94114          , p_gain_or_loss_flag          => 'Y'
94115          , p_gl_transfer_mode_code      => 'S'
94116          , p_acct_entry_type_code       => 'A'
94117          , p_switch_side_flag           => 'Y'
94118          , p_merge_duplicate_code       => 'A'
94119          );
94120    --
94121    l_acc_rev_natural_side_code := 'D';  -- 4262811
94122    -- 
94123    --
94124    -- set accounting line type info
94125    --
94126    xla_ae_lines_pkg.SetAcctLineType
94127       (p_component_type             => l_component_type
94128       ,p_event_type_code            => l_event_type_code
94129       ,p_line_definition_owner_code => l_line_definition_owner_code
94130       ,p_line_definition_code       => l_line_definition_code
94131       ,p_accounting_line_code       => l_component_code
94132       ,p_accounting_line_type_code  => l_component_type_code
94133       ,p_accounting_line_appl_id    => l_component_appl_id
94134       ,p_amb_context_code           => l_amb_context_code
94135       ,p_entity_code                => l_entity_code
94136       ,p_event_class_code           => l_event_class_code);
94137    --
94138    -- set accounting class
94139    --
94140    xla_ae_lines_pkg.SetAcctClass(
94141            p_accounting_class_code  => 'LOSS'
94142          , p_ae_header_id           => l_ae_header_id
94143          );
94144 
94145    --
94146    -- set rounding class
94147    --
94148    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
94149                       'LOSS';
94150 
94151    --
94152    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
94153    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
94154    --
94155    -- bulk performance
94156    --
94157    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
94158 
94159    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
94160       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
94161 
94162    -- 4955764
94163    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
94164       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
94165 
94166    -- 4458381 Public Sector Enh
94167    
94168    --
94169    -- set accounting attributes for the line type
94170    --
94171    l_entered_amt_idx := 10;
94172    l_accted_amt_idx  := 15;
94173    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
94174    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
94175    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
94176    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
94177    l_rec_acct_attrs.array_num_value(2)  := p_source_99;
94178    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
94179    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
94180    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
94181    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
94182    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
94183    l_rec_acct_attrs.array_char_value(5)  := p_source_101;
94184    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
94185    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
94186    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
94187    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
94188    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
94189    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
94190    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
94191    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
94192    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
94193    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
94194    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
94198    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
94195    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
94196    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
94197    l_rec_acct_attrs.array_date_value(12)  := p_source_106;
94199    l_rec_acct_attrs.array_num_value(13)  := p_source_107;
94200    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
94201    l_rec_acct_attrs.array_char_value(14)  := p_source_108;
94202    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
94203    l_rec_acct_attrs.array_num_value(15)  := p_source_157;
94204    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
94205    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
94206    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
94207    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
94208    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
94209    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
94210    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
94211    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
94212    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
94213    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
94214    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
94215    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
94216    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
94217    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
94218    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
94219    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
94220    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
94221    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
94222 
94223    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
94224    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
94225 
94226    ---------------------------------------------------------------------------------------------------------------
94227    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
94228    ---------------------------------------------------------------------------------------------------------------
94229    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
94230 
94231    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
94232    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
94233 
94234    IF xla_accounting_cache_pkg.GetValueChar
94235          (p_source_code         => 'LEDGER_CATEGORY_CODE'
94236          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
94237    AND l_bflow_method_code = 'PRIOR_ENTRY'
94238 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
94239    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
94240          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
94241        )
94242    THEN
94243          xla_ae_lines_pkg.BflowUpgEntry
94244            (p_business_method_code    => l_bflow_method_code
94245            ,p_business_class_code     => l_bflow_class_code
94246            ,p_balance_type            => l_balance_type_code);
94247    ELSE
94248       NULL;
94249 -- No business flow processing for business flow method of NONE.
94250    END IF;
94251 
94252    --
94253    -- call analytical criteria
94254    --
94255    
94256    --
94257    -- call description
94258    --
94259    -- No description or it is inherited.
94260    --
94261    -- call ADRs
94262    -- Bug 4922099
94263    --
94264    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
94265         (NVL(l_actual_upg_option, 'N') = 'O') OR
94266         (NVL(l_enc_upg_option, 'N') = 'O')
94267       )
94268    THEN
94269    NULL;
94270    --
94271    --
94272    
94273   l_ccid := AcctDerRule_39(
94274            p_application_id           => p_application_id
94275          , p_ae_header_id             => l_ae_header_id 
94276 , p_source_15 => p_source_15
94277 , p_source_15_meaning => p_source_15_meaning
94278 , p_source_30 => p_source_30
94279 , p_source_38 => p_source_38
94280 , p_source_39 => p_source_39
94281          , x_transaction_coa_id       => l_adr_transaction_coa_id
94282          , x_accounting_coa_id        => l_adr_accounting_coa_id
94283          , x_value_type_code          => l_adr_value_type_code
94284          , p_side                     => 'NA'
94285    );
94286 
94287    xla_ae_lines_pkg.set_ccid(
94288     p_code_combination_id          => l_ccid
94289   , p_value_type_code              => l_adr_value_type_code
94290   , p_transaction_coa_id           => l_adr_transaction_coa_id
94291   , p_accounting_coa_id            => l_adr_accounting_coa_id
94292   , p_adr_code                     => 'AP_REAL_LOSS'
94293   , p_adr_type_code                => 'S'
94294   , p_component_type               => l_component_type
94295   , p_component_code               => l_component_code
94296   , p_component_type_code          => l_component_type_code
94297   , p_component_appl_id            => l_component_appl_id
94298   , p_amb_context_code             => l_amb_context_code
94299   , p_side                         => 'NA'
94300   );
94301 
94302 
94303    l_segment := AcctDerRule_22(
94304            p_application_id           => p_application_id
94305          , p_ae_header_id             => l_ae_header_id 
94309          , x_transaction_coa_id       => l_adr_transaction_coa_id
94306 , p_source_15 => p_source_15
94307 , p_source_15_meaning => p_source_15_meaning
94308 , p_source_30 => p_source_30
94310          , x_accounting_coa_id        => l_adr_accounting_coa_id
94311          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
94312          , x_flex_value_set_id        => l_adr_flex_value_set_id
94313          , x_value_type_code          => l_adr_value_type_code
94314          , x_value_combination_id     => l_adr_value_combination_id
94315          , x_value_segment_code       => l_adr_value_segment_code
94316          , p_side                     => 'NA'
94317          , p_override_seg_flag        => 'Y'
94318    );
94319 
94320    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
94321 
94322       xla_ae_lines_pkg.set_segment(
94323           p_to_segment_code         => 'GL_BALANCING'
94324         , p_segment_value           => l_segment
94325         , p_from_segment_code       => l_adr_value_segment_code
94326         , p_from_combination_id     => l_adr_value_combination_id
94327         , p_value_type_code         => l_adr_value_type_code
94328         , p_transaction_coa_id      => l_adr_transaction_coa_id
94329         , p_accounting_coa_id       => l_adr_accounting_coa_id
94330         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
94331         , p_flex_value_set_id       => l_adr_flex_value_set_id
94332         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
94333         , p_adr_type_code           => 'S'
94334         , p_component_type          => l_component_type
94335         , p_component_code          => l_component_code
94336         , p_component_type_code     => l_component_type_code
94337         , p_component_appl_id       => l_component_appl_id
94338         , p_amb_context_code        => l_amb_context_code
94339         , p_entity_code             => 'AP_PAYMENTS'
94340         , p_event_class_code        => 'RECONCILED PAYMENTS'
94341         , p_side                    => 'NA'
94342         );
94343 
94344   END IF;
94345 
94346    l_segment := AcctDerRule_18(
94347            p_application_id           => p_application_id
94348          , p_ae_header_id             => l_ae_header_id 
94349 , p_source_15 => p_source_15
94350 , p_source_15_meaning => p_source_15_meaning
94351 , p_source_38 => p_source_38
94352 , p_source_39 => p_source_39
94353          , x_transaction_coa_id       => l_adr_transaction_coa_id
94354          , x_accounting_coa_id        => l_adr_accounting_coa_id
94355          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
94356          , x_flex_value_set_id        => l_adr_flex_value_set_id
94357          , x_value_type_code          => l_adr_value_type_code
94358          , x_value_combination_id     => l_adr_value_combination_id
94359          , x_value_segment_code       => l_adr_value_segment_code
94360          , p_side                     => 'NA'
94361          , p_override_seg_flag        => 'Y'
94362    );
94363 
94364    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
94365 
94366       xla_ae_lines_pkg.set_segment(
94367           p_to_segment_code         => 'GL_ACCOUNT'
94368         , p_segment_value           => l_segment
94369         , p_from_segment_code       => l_adr_value_segment_code
94370         , p_from_combination_id     => l_adr_value_combination_id
94371         , p_value_type_code         => l_adr_value_type_code
94372         , p_transaction_coa_id      => l_adr_transaction_coa_id
94373         , p_accounting_coa_id       => l_adr_accounting_coa_id
94374         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
94375         , p_flex_value_set_id       => l_adr_flex_value_set_id
94376         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
94377         , p_adr_type_code           => 'S'
94378         , p_component_type          => l_component_type
94379         , p_component_code          => l_component_code
94380         , p_component_type_code     => l_component_type_code
94381         , p_component_appl_id       => l_component_appl_id
94382         , p_amb_context_code        => l_amb_context_code
94383         , p_entity_code             => 'AP_PAYMENTS'
94384         , p_event_class_code        => 'RECONCILED PAYMENTS'
94385         , p_side                    => 'NA'
94386         );
94387 
94388   END IF;
94389 
94390    --
94391    --
94392    END IF;
94393    --
94394    -- Bug 4922099
94395    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
94396           (NVL(l_enc_upg_option, 'N') = 'O')
94397         ) AND
94398         (l_bflow_method_code = 'PRIOR_ENTRY')
94399       )
94400    THEN
94401       IF
94402       --
94403       1 = 2
94404       --
94405       THEN
94406       xla_accounting_err_pkg.build_message
94407                                     (p_appli_s_name            => 'XLA'
94408                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
94409                                     ,p_token_1                 => 'LINE_NUMBER'
94410                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
94411                                     ,p_token_2                 => 'LINE_TYPE_NAME'
94412                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
94413                                                                              l_component_type
94414                                                                             ,l_component_code
94418                                                                             ,l_entity_code
94415                                                                             ,l_component_type_code
94416                                                                             ,l_component_appl_id
94417                                                                             ,l_amb_context_code
94419                                                                             ,l_event_class_code
94420                                                                            )
94421                                     ,p_token_3                 => 'OWNER'
94422                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
94423                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
94424                                                                           ,p_lookup_code    => l_component_type_code
94425                                                                          )
94426                                     ,p_token_4                 => 'PRODUCT_NAME'
94427                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
94428                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
94429                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
94430                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
94431                                     ,p_ae_header_id            =>  NULL
94432                                        );
94433 
94434         IF (C_LEVEL_ERROR>= g_log_level) THEN
94435                  trace
94436                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
94437                       ,p_level    => C_LEVEL_ERROR
94438                       ,p_module   => l_log_module);
94439         END IF;
94440       END IF;
94441    END IF;
94442    --
94443    --
94444    ------------------------------------------------------------------------------------------------
94445    -- 4219869 Business Flow
94446    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
94447    -- Prior Entry.  Currently, the following code is always generated.
94448    ------------------------------------------------------------------------------------------------
94449    XLA_AE_LINES_PKG.ValidateCurrentLine;
94450 
94451    ------------------------------------------------------------------------------------
94452    -- 4219869 Business Flow
94453    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
94454    ------------------------------------------------------------------------------------
94455    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
94456 
94457    ----------------------------------------------------------------------------------
94458    -- 4219869 Business Flow
94459    -- Update journal entry status -- Need to generate this within IF <condition>
94460    ----------------------------------------------------------------------------------
94461    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
94462          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
94463          ,p_balance_type_code => l_balance_type_code
94464          );
94465 
94466    -------------------------------------------------------------------------------------------
94467    -- 4262811 - Generate the Accrual Reversal lines
94468    -------------------------------------------------------------------------------------------
94469    BEGIN
94470       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
94471                               (g_array_event(p_event_id).array_value_num('header_index'));
94472       IF l_acc_rev_flag IS NULL THEN
94473          l_acc_rev_flag := 'N';
94474       END IF;
94475    EXCEPTION
94476       WHEN OTHERS THEN
94477          l_acc_rev_flag := 'N';
94478    END;
94479    --
94480    IF (l_acc_rev_flag = 'Y') THEN
94481 
94482        -- 4645092  ------------------------------------------------------------------------------
94483        -- To allow MPA report to determine if it should generate report process
94484        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
94485        ------------------------------------------------------------------------------------------
94486 
94487        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
94488        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
94489    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
94490    -- call ADRs
94491    -- Bug 4922099
94492    --
94493    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
94494         (NVL(l_actual_upg_option, 'N') = 'O') OR
94495         (NVL(l_enc_upg_option, 'N') = 'O')
94496       )
94497    THEN
94498    NULL;
94499    --
94500    --
94501    
94502   l_ccid := AcctDerRule_39(
94503            p_application_id           => p_application_id
94504          , p_ae_header_id             => l_ae_header_id 
94505 , p_source_15 => p_source_15
94506 , p_source_15_meaning => p_source_15_meaning
94507 , p_source_30 => p_source_30
94508 , p_source_38 => p_source_38
94509 , p_source_39 => p_source_39
94510          , x_transaction_coa_id       => l_adr_transaction_coa_id
94511          , x_accounting_coa_id        => l_adr_accounting_coa_id
94512          , x_value_type_code          => l_adr_value_type_code
94513          , p_side                     => 'NA'
94517     p_code_combination_id          => l_ccid
94514    );
94515 
94516    xla_ae_lines_pkg.set_ccid(
94518   , p_value_type_code              => l_adr_value_type_code
94519   , p_transaction_coa_id           => l_adr_transaction_coa_id
94520   , p_accounting_coa_id            => l_adr_accounting_coa_id
94521   , p_adr_code                     => 'AP_REAL_LOSS'
94522   , p_adr_type_code                => 'S'
94523   , p_component_type               => l_component_type
94524   , p_component_code               => l_component_code
94525   , p_component_type_code          => l_component_type_code
94526   , p_component_appl_id            => l_component_appl_id
94527   , p_amb_context_code             => l_amb_context_code
94528   , p_side                         => 'NA'
94529   );
94530 
94531 
94532    l_segment := AcctDerRule_22(
94533            p_application_id           => p_application_id
94534          , p_ae_header_id             => l_ae_header_id 
94535 , p_source_15 => p_source_15
94536 , p_source_15_meaning => p_source_15_meaning
94537 , p_source_30 => p_source_30
94538          , x_transaction_coa_id       => l_adr_transaction_coa_id
94539          , x_accounting_coa_id        => l_adr_accounting_coa_id
94540          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
94541          , x_flex_value_set_id        => l_adr_flex_value_set_id
94542          , x_value_type_code          => l_adr_value_type_code
94543          , x_value_combination_id     => l_adr_value_combination_id
94544          , x_value_segment_code       => l_adr_value_segment_code
94545          , p_side                     => 'NA'
94546          , p_override_seg_flag        => 'Y'
94547    );
94548 
94549    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
94550 
94551       xla_ae_lines_pkg.set_segment(
94552           p_to_segment_code         => 'GL_BALANCING'
94553         , p_segment_value           => l_segment
94554         , p_from_segment_code       => l_adr_value_segment_code
94555         , p_from_combination_id     => l_adr_value_combination_id
94556         , p_value_type_code         => l_adr_value_type_code
94557         , p_transaction_coa_id      => l_adr_transaction_coa_id
94558         , p_accounting_coa_id       => l_adr_accounting_coa_id
94559         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
94560         , p_flex_value_set_id       => l_adr_flex_value_set_id
94561         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
94562         , p_adr_type_code           => 'S'
94563         , p_component_type          => l_component_type
94564         , p_component_code          => l_component_code
94565         , p_component_type_code     => l_component_type_code
94566         , p_component_appl_id       => l_component_appl_id
94567         , p_amb_context_code        => l_amb_context_code
94568         , p_entity_code             => 'AP_PAYMENTS'
94569         , p_event_class_code        => 'RECONCILED PAYMENTS'
94570         , p_side                    => 'NA'
94571         );
94572 
94573   END IF;
94574 
94575    l_segment := AcctDerRule_18(
94576            p_application_id           => p_application_id
94577          , p_ae_header_id             => l_ae_header_id 
94578 , p_source_15 => p_source_15
94579 , p_source_15_meaning => p_source_15_meaning
94580 , p_source_38 => p_source_38
94581 , p_source_39 => p_source_39
94582          , x_transaction_coa_id       => l_adr_transaction_coa_id
94583          , x_accounting_coa_id        => l_adr_accounting_coa_id
94584          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
94585          , x_flex_value_set_id        => l_adr_flex_value_set_id
94586          , x_value_type_code          => l_adr_value_type_code
94587          , x_value_combination_id     => l_adr_value_combination_id
94588          , x_value_segment_code       => l_adr_value_segment_code
94589          , p_side                     => 'NA'
94590          , p_override_seg_flag        => 'Y'
94591    );
94592 
94593    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
94594 
94595       xla_ae_lines_pkg.set_segment(
94596           p_to_segment_code         => 'GL_ACCOUNT'
94597         , p_segment_value           => l_segment
94598         , p_from_segment_code       => l_adr_value_segment_code
94599         , p_from_combination_id     => l_adr_value_combination_id
94600         , p_value_type_code         => l_adr_value_type_code
94601         , p_transaction_coa_id      => l_adr_transaction_coa_id
94602         , p_accounting_coa_id       => l_adr_accounting_coa_id
94603         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
94604         , p_flex_value_set_id       => l_adr_flex_value_set_id
94605         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
94606         , p_adr_type_code           => 'S'
94607         , p_component_type          => l_component_type
94608         , p_component_code          => l_component_code
94609         , p_component_type_code     => l_component_type_code
94610         , p_component_appl_id       => l_component_appl_id
94611         , p_amb_context_code        => l_amb_context_code
94612         , p_entity_code             => 'AP_PAYMENTS'
94613         , p_event_class_code        => 'RECONCILED PAYMENTS'
94614         , p_side                    => 'NA'
94615         );
94616 
94617   END IF;
94618 
94619    --
94620    --
94621    END IF;
94622 
94623        --
94624        -- Update the line information that should be overwritten
94625        --
94629 
94626        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
94627                                          p_header_num   => 1);
94628        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
94630        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
94631 
94632        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
94633           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
94634        END IF;
94635 
94636       --
94637       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
94638       --
94639       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
94640           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
94641       ELSE
94642           ---------------------------------------------------------------------------------------------------
94643           -- 4262811a Switch Sign
94644           ---------------------------------------------------------------------------------------------------
94645           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
94646           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
94647                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94648           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
94649                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94650           -- 5132302
94651           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
94652                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
94653 
94654       END IF;
94655 
94656       -- 4955764
94657       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
94658       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
94659 
94660 
94661       XLA_AE_LINES_PKG.ValidateCurrentLine;
94662       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
94663 
94664       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
94665                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
94666                ,p_balance_type_code => l_balance_type_code);
94667 
94668    END IF;
94669 
94670    -----------------------------------------------------------------------------------------
94671    -- 4262811 Multiperiod Accounting
94672    -----------------------------------------------------------------------------------------
94673      -- No MPA option is assigned.
94674 
94675 
94676 END IF;
94677 END IF;
94678 --
94679 
94680 --
94681 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
94682    trace
94683       (p_msg      => 'END of AcctLineType_164'
94684       ,p_level    => C_LEVEL_PROCEDURE
94685       ,p_module   => l_log_module);
94686 END IF;
94687 --
94688 EXCEPTION
94689   WHEN xla_exceptions_pkg.application_exception THEN
94690       RAISE;
94691   WHEN OTHERS THEN
94692        xla_exceptions_pkg.raise_message
94693            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_164');
94694 END AcctLineType_164;
94695 --
94696 
94697 ---------------------------------------
94698 --
94699 -- PRIVATE FUNCTION
94700 --         AcctLineType_165
94701 --
94702 ---------------------------------------
94703 PROCEDURE AcctLineType_165 (
94704   p_application_id        IN NUMBER
94705  ,p_event_id              IN NUMBER
94706  ,p_calculate_acctd_flag  IN VARCHAR2
94707  ,p_calculate_g_l_flag    IN VARCHAR2
94708  ,p_actual_flag           IN OUT VARCHAR2
94709  ,p_balance_type_code     OUT VARCHAR2
94710  ,p_gain_or_loss_ref      OUT VARCHAR2
94711  
94712 --Payment Currency Code
94713  , p_source_13            IN VARCHAR2
94714 --Automatic Offsets Value
94715  , p_source_15            IN VARCHAR2
94716  , p_source_15_meaning    IN VARCHAR2
94717 --Invoice Distribution Account
94718  , p_source_30            IN NUMBER
94719 --Internal Realized Loss Account
94720  , p_source_38            IN NUMBER
94721 --Bank Loss Account
94722  , p_source_39            IN NUMBER
94723 --Accounting Reversal Indicator
94724  , p_source_53            IN VARCHAR2
94725 --Distribution Link Type
94726  , p_source_55            IN VARCHAR2
94727 --Override Accounted Amount Indicator
94728  , p_source_80            IN VARCHAR2
94729  , p_source_80_meaning    IN VARCHAR2
94730 --Third Party Type
94731  , p_source_83            IN VARCHAR2
94732 --Invoice Distribution Tax Line Identifier
94733  , p_source_86            IN NUMBER
94734 --Invoice Distribution Tax Distribution Identifier from Tax
94735  , p_source_87            IN NUMBER
94736 --Invoice Distribution Summary Tax Line Identifier
94737  , p_source_88            IN NUMBER
94738 --Business Flow Accounts Payable Application Identifier
94739  , p_source_91            IN NUMBER
94740 --Business Flow Invoice Distribution Type
94741  , p_source_92            IN VARCHAR2
94742 --Business Flow Invoice Entity Code
94743  , p_source_93            IN VARCHAR2
94744 --Business Flow Invoice Distribution Identifier
94748 --When to Account for Payment Option
94745  , p_source_94            IN NUMBER
94746 --Business Flow Invoice Identifier
94747  , p_source_95            IN NUMBER
94749  , p_source_97            IN VARCHAR2
94750 --Payment Distribution Type
94751  , p_source_98            IN VARCHAR2
94752  , p_source_98_meaning    IN VARCHAR2
94753 --Payment Distribution Amount
94754  , p_source_99            IN NUMBER
94755 --Payment Distribution Identifier
94756  , p_source_104            IN NUMBER
94757 --Payment Supplier Identifier
94758  , p_source_110            IN NUMBER
94759 --Payment Supplier Site Identifier
94760  , p_source_111            IN NUMBER
94761 --Payment Distribution Reversed Identifier
94762  , p_source_112            IN NUMBER
94763 --Payment Exchange Date
94764  , p_source_117            IN DATE
94765 --Payment Exchange Rate
94766  , p_source_118            IN NUMBER
94767 --Payment Exchange Rate Type
94768  , p_source_119            IN VARCHAR2
94769 --Payment Type
94770  , p_source_122            IN VARCHAR2
94771  , p_source_122_meaning    IN VARCHAR2
94772 --Invoice Distribution Amount of the Payment Distribution
94773  , p_source_124            IN NUMBER
94774 --Invoice/Payment Ledger Amount Difference
94775  , p_source_153            IN NUMBER
94776 --Gain or Loss Indicator between Invoice and Payment
94777  , p_source_158            IN VARCHAR2
94778 )
94779 IS
94780 
94781 l_component_type              VARCHAR2(80);
94782 l_component_code              VARCHAR2(30);
94783 l_component_type_code         VARCHAR2(1);
94784 l_component_appl_id           INTEGER;
94785 l_amb_context_code            VARCHAR2(30);
94786 l_entity_code                 VARCHAR2(30);
94787 l_event_class_code            VARCHAR2(30);
94788 l_ae_header_id                NUMBER;
94789 l_event_type_code             VARCHAR2(30);
94790 l_line_definition_code        VARCHAR2(30);
94791 l_line_definition_owner_code  VARCHAR2(1);
94792 --
94793 -- adr variables
94794 l_segment                     VARCHAR2(30);
94795 l_ccid                        NUMBER;
94796 l_adr_transaction_coa_id      NUMBER;
94797 l_adr_accounting_coa_id       NUMBER;
94798 l_adr_flexfield_segment_code  VARCHAR2(30);
94799 l_adr_flex_value_set_id       NUMBER;
94800 l_adr_value_type_code         VARCHAR2(30);
94801 l_adr_value_combination_id    NUMBER;
94802 l_adr_value_segment_code      VARCHAR2(30);
94803 
94804 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
94805 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
94806 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
94807 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
94808 
94809 -- 4262811 Variables ------------------------------------------------------------------------------------------
94810 l_entered_amt_idx             NUMBER;
94811 l_accted_amt_idx              NUMBER;
94812 l_acc_rev_flag                VARCHAR2(1);
94813 l_accrual_line_num            NUMBER;
94814 l_tmp_amt                     NUMBER;
94815 l_acc_rev_natural_side_code   VARCHAR2(1);
94816 
94817 l_num_entries                 NUMBER;
94818 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
94819 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
94820 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
94821 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
94822 l_recog_line_1                NUMBER;
94823 l_recog_line_2                NUMBER;
94824 
94825 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
94826 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
94827 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
94828 
94829 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
94830 
94831 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
94832 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
94833 
94834 ---------------------------------------------------------------------------------------------------------------
94835 
94836 
94837 --
94838 -- bulk performance
94839 --
94840 l_balance_type_code           VARCHAR2(1);
94841 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
94842 l_log_module                  VARCHAR2(240);
94843 
94844 --
94845 -- Upgrade strategy
94846 --
94847 l_actual_upg_option           VARCHAR2(1);
94848 l_enc_upg_option           VARCHAR2(1);
94849 
94850 --
94851 BEGIN
94852 --
94853 IF g_log_enabled THEN
94854       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_165';
94855 END IF;
94856 --
94857 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
94858 
94859       trace
94860          (p_msg      => 'BEGIN of AcctLineType_165'
94861          ,p_level    => C_LEVEL_PROCEDURE
94862          ,p_module   => l_log_module);
94863 
94864 END IF;
94865 --
94866 l_component_type             := 'AMB_JLT';
94867 l_component_code             := 'AP_LOSS_PMT';
94868 l_component_type_code        := 'S';
94869 l_component_appl_id          :=  200;
94870 l_amb_context_code           := 'DEFAULT';
94871 l_entity_code                := 'AP_PAYMENTS';
94872 l_event_class_code           := 'PAYMENTS';
94873 l_event_type_code            := 'PAYMENTS_ALL';
94874 l_line_definition_owner_code := 'S';
94878 l_segment                     := NULL;
94875 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
94876 --
94877 l_balance_type_code          := 'A';
94879 l_ccid                        := NULL;
94880 l_adr_transaction_coa_id      := NULL;
94881 l_adr_accounting_coa_id       := NULL;
94882 l_adr_flexfield_segment_code  := NULL;
94883 l_adr_flex_value_set_id       := NULL;
94884 l_adr_value_type_code         := NULL;
94885 l_adr_value_combination_id    := NULL;
94886 l_adr_value_segment_code      := NULL;
94887 
94888 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
94889 l_bflow_class_code           := '';    -- 4219869 Business Flow
94890 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
94891 l_budgetary_control_flag     := 'N';
94892 
94893 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
94894 l_bflow_applied_to_amt       := NULL; -- 5132302
94895 l_entered_amt_idx            := NULL;          -- 4262811
94896 l_accted_amt_idx             := NULL;          -- 4262811
94897 l_acc_rev_flag               := NULL;          -- 4262811
94898 l_accrual_line_num           := NULL;          -- 4262811
94899 l_tmp_amt                    := NULL;          -- 4262811
94900 --
94901 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
94902             (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
94903                return;
94904   END IF;
94905   
94906 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
94907     l_balance_type_code <> 'B' THEN
94908 IF (NVL(p_source_97,'
94909 ') <>  'CLEAR_CLEAR' AND 
94910 NVL(p_source_97,'
94911 ') <>  'ALWAYS_CLEAR') AND 
94912 NVL(p_source_158,'
94913 ') =  'LOSS' AND 
94914 NVL(p_source_98,'
94915 ') <>  'EXCHANGE RATE VARIANCE' AND 
94916 NVL(p_source_98,'
94917 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
94918 NVL(p_source_98,'
94919 ') <>  'BANK CHARGE' AND 
94920 NVL(p_source_98,'
94921 ') <>  'BANK ERROR' AND 
94922 NVL(p_source_98,'
94923 ') <>  'AWT' AND 
94924 NVL(p_source_122,'
94925 ') <>  'R'
94926  THEN 
94927 
94928    --
94929    XLA_AE_LINES_PKG.SetNewLine;
94930 
94931    p_balance_type_code          := l_balance_type_code;
94932    -- set the flag so later we will know whether the gain loss line needs to be created
94933    
94934    IF(l_balance_type_code = 'A' ) THEN
94935      p_actual_flag :='G';
94936    END IF;
94937 
94938    --
94939    -- bulk performance
94940    --
94941    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
94942                                       p_header_num   => 0); -- 4262811
94943    --
94944    -- set accounting line options
94945    --
94946    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
94947            p_natural_side_code          => 'C'
94948          , p_gain_or_loss_flag          => 'Y'
94949          , p_gl_transfer_mode_code      => 'S'
94950          , p_acct_entry_type_code       => 'A'
94951          , p_switch_side_flag           => 'Y'
94952          , p_merge_duplicate_code       => 'A'
94953          );
94954    --
94955    l_acc_rev_natural_side_code := 'D';  -- 4262811
94956    -- 
94957    --
94958    -- set accounting line type info
94959    --
94960    xla_ae_lines_pkg.SetAcctLineType
94961       (p_component_type             => l_component_type
94962       ,p_event_type_code            => l_event_type_code
94963       ,p_line_definition_owner_code => l_line_definition_owner_code
94964       ,p_line_definition_code       => l_line_definition_code
94965       ,p_accounting_line_code       => l_component_code
94966       ,p_accounting_line_type_code  => l_component_type_code
94967       ,p_accounting_line_appl_id    => l_component_appl_id
94968       ,p_amb_context_code           => l_amb_context_code
94969       ,p_entity_code                => l_entity_code
94970       ,p_event_class_code           => l_event_class_code);
94971    --
94972    -- set accounting class
94973    --
94974    xla_ae_lines_pkg.SetAcctClass(
94975            p_accounting_class_code  => 'LOSS'
94976          , p_ae_header_id           => l_ae_header_id
94977          );
94978 
94979    --
94980    -- set rounding class
94981    --
94982    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
94983                       'LOSS';
94984 
94985    --
94986    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
94987    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
94988    --
94989    -- bulk performance
94990    --
94991    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
94992 
94993    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
94994       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
94995 
94996    -- 4955764
94997    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
94998       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
94999 
95000    -- 4458381 Public Sector Enh
95001    
95002    --
95003    -- set accounting attributes for the line type
95004    --
95005    l_entered_amt_idx := 10;
95006    l_accted_amt_idx  := 15;
95010    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
95007    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
95008    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
95009    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
95011    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
95012    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
95013    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
95014    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
95015    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
95016    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
95017    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
95018    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
95019    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
95020    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
95021    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
95022    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
95023    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
95024    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
95025    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
95026    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
95027    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
95028    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
95029    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
95030    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
95031    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
95032    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
95033    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
95034    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
95035    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
95036    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
95037    l_rec_acct_attrs.array_num_value(15)  := p_source_153;
95038    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
95039    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
95040    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
95041    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
95042    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
95043    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
95044    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
95045    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
95046    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
95047    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
95048    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
95049    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
95050    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
95051    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
95052    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
95053    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
95054    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
95055    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
95056 
95057    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
95058    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
95059 
95060    ---------------------------------------------------------------------------------------------------------------
95061    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
95062    ---------------------------------------------------------------------------------------------------------------
95063    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
95064 
95065    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
95066    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
95067 
95068    IF xla_accounting_cache_pkg.GetValueChar
95069          (p_source_code         => 'LEDGER_CATEGORY_CODE'
95070          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
95071    AND l_bflow_method_code = 'PRIOR_ENTRY'
95072 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
95073    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
95074          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
95075        )
95076    THEN
95077          xla_ae_lines_pkg.BflowUpgEntry
95078            (p_business_method_code    => l_bflow_method_code
95079            ,p_business_class_code     => l_bflow_class_code
95080            ,p_balance_type            => l_balance_type_code);
95081    ELSE
95082       NULL;
95083 -- No business flow processing for business flow method of NONE.
95084    END IF;
95085 
95086    --
95087    -- call analytical criteria
95088    --
95089    
95090    --
95091    -- call description
95092    --
95093    -- No description or it is inherited.
95094    --
95095    -- call ADRs
95096    -- Bug 4922099
95097    --
95098    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
95099         (NVL(l_actual_upg_option, 'N') = 'O') OR
95100         (NVL(l_enc_upg_option, 'N') = 'O')
95101       )
95102    THEN
95103    NULL;
95104    --
95105    --
95106    
95107   l_ccid := AcctDerRule_39(
95111 , p_source_15_meaning => p_source_15_meaning
95108            p_application_id           => p_application_id
95109          , p_ae_header_id             => l_ae_header_id 
95110 , p_source_15 => p_source_15
95112 , p_source_30 => p_source_30
95113 , p_source_38 => p_source_38
95114 , p_source_39 => p_source_39
95115          , x_transaction_coa_id       => l_adr_transaction_coa_id
95116          , x_accounting_coa_id        => l_adr_accounting_coa_id
95117          , x_value_type_code          => l_adr_value_type_code
95118          , p_side                     => 'NA'
95119    );
95120 
95121    xla_ae_lines_pkg.set_ccid(
95122     p_code_combination_id          => l_ccid
95123   , p_value_type_code              => l_adr_value_type_code
95124   , p_transaction_coa_id           => l_adr_transaction_coa_id
95125   , p_accounting_coa_id            => l_adr_accounting_coa_id
95126   , p_adr_code                     => 'AP_REAL_LOSS'
95127   , p_adr_type_code                => 'S'
95128   , p_component_type               => l_component_type
95129   , p_component_code               => l_component_code
95130   , p_component_type_code          => l_component_type_code
95131   , p_component_appl_id            => l_component_appl_id
95132   , p_amb_context_code             => l_amb_context_code
95133   , p_side                         => 'NA'
95134   );
95135 
95136 
95137    l_segment := AcctDerRule_22(
95138            p_application_id           => p_application_id
95139          , p_ae_header_id             => l_ae_header_id 
95140 , p_source_15 => p_source_15
95141 , p_source_15_meaning => p_source_15_meaning
95142 , p_source_30 => p_source_30
95143          , x_transaction_coa_id       => l_adr_transaction_coa_id
95144          , x_accounting_coa_id        => l_adr_accounting_coa_id
95145          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
95146          , x_flex_value_set_id        => l_adr_flex_value_set_id
95147          , x_value_type_code          => l_adr_value_type_code
95148          , x_value_combination_id     => l_adr_value_combination_id
95149          , x_value_segment_code       => l_adr_value_segment_code
95150          , p_side                     => 'NA'
95151          , p_override_seg_flag        => 'Y'
95152    );
95153 
95154    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
95155 
95156       xla_ae_lines_pkg.set_segment(
95157           p_to_segment_code         => 'GL_BALANCING'
95158         , p_segment_value           => l_segment
95159         , p_from_segment_code       => l_adr_value_segment_code
95160         , p_from_combination_id     => l_adr_value_combination_id
95161         , p_value_type_code         => l_adr_value_type_code
95162         , p_transaction_coa_id      => l_adr_transaction_coa_id
95163         , p_accounting_coa_id       => l_adr_accounting_coa_id
95164         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
95165         , p_flex_value_set_id       => l_adr_flex_value_set_id
95166         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
95167         , p_adr_type_code           => 'S'
95168         , p_component_type          => l_component_type
95169         , p_component_code          => l_component_code
95170         , p_component_type_code     => l_component_type_code
95171         , p_component_appl_id       => l_component_appl_id
95172         , p_amb_context_code        => l_amb_context_code
95173         , p_entity_code             => 'AP_PAYMENTS'
95174         , p_event_class_code        => 'PAYMENTS'
95175         , p_side                    => 'NA'
95176         );
95177 
95178   END IF;
95179 
95180    l_segment := AcctDerRule_18(
95181            p_application_id           => p_application_id
95182          , p_ae_header_id             => l_ae_header_id 
95183 , p_source_15 => p_source_15
95184 , p_source_15_meaning => p_source_15_meaning
95185 , p_source_38 => p_source_38
95186 , p_source_39 => p_source_39
95187          , x_transaction_coa_id       => l_adr_transaction_coa_id
95188          , x_accounting_coa_id        => l_adr_accounting_coa_id
95189          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
95190          , x_flex_value_set_id        => l_adr_flex_value_set_id
95191          , x_value_type_code          => l_adr_value_type_code
95192          , x_value_combination_id     => l_adr_value_combination_id
95193          , x_value_segment_code       => l_adr_value_segment_code
95194          , p_side                     => 'NA'
95195          , p_override_seg_flag        => 'Y'
95196    );
95197 
95198    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
95199 
95200       xla_ae_lines_pkg.set_segment(
95201           p_to_segment_code         => 'GL_ACCOUNT'
95202         , p_segment_value           => l_segment
95203         , p_from_segment_code       => l_adr_value_segment_code
95204         , p_from_combination_id     => l_adr_value_combination_id
95205         , p_value_type_code         => l_adr_value_type_code
95206         , p_transaction_coa_id      => l_adr_transaction_coa_id
95207         , p_accounting_coa_id       => l_adr_accounting_coa_id
95208         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
95209         , p_flex_value_set_id       => l_adr_flex_value_set_id
95210         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
95211         , p_adr_type_code           => 'S'
95212         , p_component_type          => l_component_type
95213         , p_component_code          => l_component_code
95214         , p_component_type_code     => l_component_type_code
95218         , p_event_class_code        => 'PAYMENTS'
95215         , p_component_appl_id       => l_component_appl_id
95216         , p_amb_context_code        => l_amb_context_code
95217         , p_entity_code             => 'AP_PAYMENTS'
95219         , p_side                    => 'NA'
95220         );
95221 
95222   END IF;
95223 
95224    --
95225    --
95226    END IF;
95227    --
95228    -- Bug 4922099
95229    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
95230           (NVL(l_enc_upg_option, 'N') = 'O')
95231         ) AND
95232         (l_bflow_method_code = 'PRIOR_ENTRY')
95233       )
95234    THEN
95235       IF
95236       --
95237       1 = 2
95238       --
95239       THEN
95240       xla_accounting_err_pkg.build_message
95241                                     (p_appli_s_name            => 'XLA'
95242                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
95243                                     ,p_token_1                 => 'LINE_NUMBER'
95244                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
95245                                     ,p_token_2                 => 'LINE_TYPE_NAME'
95246                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
95247                                                                              l_component_type
95248                                                                             ,l_component_code
95249                                                                             ,l_component_type_code
95250                                                                             ,l_component_appl_id
95251                                                                             ,l_amb_context_code
95252                                                                             ,l_entity_code
95253                                                                             ,l_event_class_code
95254                                                                            )
95255                                     ,p_token_3                 => 'OWNER'
95256                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
95257                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
95258                                                                           ,p_lookup_code    => l_component_type_code
95259                                                                          )
95260                                     ,p_token_4                 => 'PRODUCT_NAME'
95261                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
95262                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
95263                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
95264                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
95265                                     ,p_ae_header_id            =>  NULL
95266                                        );
95267 
95268         IF (C_LEVEL_ERROR>= g_log_level) THEN
95269                  trace
95270                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
95271                       ,p_level    => C_LEVEL_ERROR
95272                       ,p_module   => l_log_module);
95273         END IF;
95274       END IF;
95275    END IF;
95276    --
95277    --
95278    ------------------------------------------------------------------------------------------------
95279    -- 4219869 Business Flow
95280    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
95281    -- Prior Entry.  Currently, the following code is always generated.
95282    ------------------------------------------------------------------------------------------------
95283    XLA_AE_LINES_PKG.ValidateCurrentLine;
95284 
95285    ------------------------------------------------------------------------------------
95286    -- 4219869 Business Flow
95287    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
95288    ------------------------------------------------------------------------------------
95289    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
95290 
95291    ----------------------------------------------------------------------------------
95292    -- 4219869 Business Flow
95293    -- Update journal entry status -- Need to generate this within IF <condition>
95294    ----------------------------------------------------------------------------------
95295    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
95296          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
95297          ,p_balance_type_code => l_balance_type_code
95298          );
95299 
95300    -------------------------------------------------------------------------------------------
95301    -- 4262811 - Generate the Accrual Reversal lines
95302    -------------------------------------------------------------------------------------------
95303    BEGIN
95304       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
95305                               (g_array_event(p_event_id).array_value_num('header_index'));
95306       IF l_acc_rev_flag IS NULL THEN
95307          l_acc_rev_flag := 'N';
95308       END IF;
95309    EXCEPTION
95310       WHEN OTHERS THEN
95311          l_acc_rev_flag := 'N';
95315 
95312    END;
95313    --
95314    IF (l_acc_rev_flag = 'Y') THEN
95316        -- 4645092  ------------------------------------------------------------------------------
95317        -- To allow MPA report to determine if it should generate report process
95318        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
95319        ------------------------------------------------------------------------------------------
95320 
95321        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
95322        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
95323    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
95324    -- call ADRs
95325    -- Bug 4922099
95326    --
95327    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
95328         (NVL(l_actual_upg_option, 'N') = 'O') OR
95329         (NVL(l_enc_upg_option, 'N') = 'O')
95330       )
95331    THEN
95332    NULL;
95333    --
95334    --
95335    
95336   l_ccid := AcctDerRule_39(
95337            p_application_id           => p_application_id
95338          , p_ae_header_id             => l_ae_header_id 
95339 , p_source_15 => p_source_15
95340 , p_source_15_meaning => p_source_15_meaning
95341 , p_source_30 => p_source_30
95342 , p_source_38 => p_source_38
95343 , p_source_39 => p_source_39
95344          , x_transaction_coa_id       => l_adr_transaction_coa_id
95345          , x_accounting_coa_id        => l_adr_accounting_coa_id
95346          , x_value_type_code          => l_adr_value_type_code
95347          , p_side                     => 'NA'
95348    );
95349 
95350    xla_ae_lines_pkg.set_ccid(
95351     p_code_combination_id          => l_ccid
95352   , p_value_type_code              => l_adr_value_type_code
95353   , p_transaction_coa_id           => l_adr_transaction_coa_id
95354   , p_accounting_coa_id            => l_adr_accounting_coa_id
95355   , p_adr_code                     => 'AP_REAL_LOSS'
95356   , p_adr_type_code                => 'S'
95357   , p_component_type               => l_component_type
95358   , p_component_code               => l_component_code
95359   , p_component_type_code          => l_component_type_code
95360   , p_component_appl_id            => l_component_appl_id
95361   , p_amb_context_code             => l_amb_context_code
95362   , p_side                         => 'NA'
95363   );
95364 
95365 
95366    l_segment := AcctDerRule_22(
95367            p_application_id           => p_application_id
95368          , p_ae_header_id             => l_ae_header_id 
95369 , p_source_15 => p_source_15
95370 , p_source_15_meaning => p_source_15_meaning
95371 , p_source_30 => p_source_30
95372          , x_transaction_coa_id       => l_adr_transaction_coa_id
95373          , x_accounting_coa_id        => l_adr_accounting_coa_id
95374          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
95375          , x_flex_value_set_id        => l_adr_flex_value_set_id
95376          , x_value_type_code          => l_adr_value_type_code
95377          , x_value_combination_id     => l_adr_value_combination_id
95378          , x_value_segment_code       => l_adr_value_segment_code
95379          , p_side                     => 'NA'
95380          , p_override_seg_flag        => 'Y'
95381    );
95382 
95383    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
95384 
95385       xla_ae_lines_pkg.set_segment(
95386           p_to_segment_code         => 'GL_BALANCING'
95387         , p_segment_value           => l_segment
95388         , p_from_segment_code       => l_adr_value_segment_code
95389         , p_from_combination_id     => l_adr_value_combination_id
95390         , p_value_type_code         => l_adr_value_type_code
95391         , p_transaction_coa_id      => l_adr_transaction_coa_id
95392         , p_accounting_coa_id       => l_adr_accounting_coa_id
95393         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
95394         , p_flex_value_set_id       => l_adr_flex_value_set_id
95395         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
95396         , p_adr_type_code           => 'S'
95397         , p_component_type          => l_component_type
95398         , p_component_code          => l_component_code
95399         , p_component_type_code     => l_component_type_code
95400         , p_component_appl_id       => l_component_appl_id
95401         , p_amb_context_code        => l_amb_context_code
95402         , p_entity_code             => 'AP_PAYMENTS'
95403         , p_event_class_code        => 'PAYMENTS'
95404         , p_side                    => 'NA'
95405         );
95406 
95407   END IF;
95408 
95409    l_segment := AcctDerRule_18(
95410            p_application_id           => p_application_id
95411          , p_ae_header_id             => l_ae_header_id 
95412 , p_source_15 => p_source_15
95413 , p_source_15_meaning => p_source_15_meaning
95414 , p_source_38 => p_source_38
95415 , p_source_39 => p_source_39
95416          , x_transaction_coa_id       => l_adr_transaction_coa_id
95417          , x_accounting_coa_id        => l_adr_accounting_coa_id
95418          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
95419          , x_flex_value_set_id        => l_adr_flex_value_set_id
95420          , x_value_type_code          => l_adr_value_type_code
95421          , x_value_combination_id     => l_adr_value_combination_id
95422          , x_value_segment_code       => l_adr_value_segment_code
95423          , p_side                     => 'NA'
95424          , p_override_seg_flag        => 'Y'
95425    );
95426 
95430           p_to_segment_code         => 'GL_ACCOUNT'
95427    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
95428 
95429       xla_ae_lines_pkg.set_segment(
95431         , p_segment_value           => l_segment
95432         , p_from_segment_code       => l_adr_value_segment_code
95433         , p_from_combination_id     => l_adr_value_combination_id
95434         , p_value_type_code         => l_adr_value_type_code
95435         , p_transaction_coa_id      => l_adr_transaction_coa_id
95436         , p_accounting_coa_id       => l_adr_accounting_coa_id
95437         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
95438         , p_flex_value_set_id       => l_adr_flex_value_set_id
95439         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
95440         , p_adr_type_code           => 'S'
95441         , p_component_type          => l_component_type
95442         , p_component_code          => l_component_code
95443         , p_component_type_code     => l_component_type_code
95444         , p_component_appl_id       => l_component_appl_id
95445         , p_amb_context_code        => l_amb_context_code
95446         , p_entity_code             => 'AP_PAYMENTS'
95447         , p_event_class_code        => 'PAYMENTS'
95448         , p_side                    => 'NA'
95449         );
95450 
95451   END IF;
95452 
95453    --
95454    --
95455    END IF;
95456 
95457        --
95458        -- Update the line information that should be overwritten
95459        --
95460        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
95461                                          p_header_num   => 1);
95462        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
95463 
95464        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
95465 
95466        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
95467           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
95468        END IF;
95469 
95470       --
95471       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
95472       --
95473       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
95474           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
95475       ELSE
95476           ---------------------------------------------------------------------------------------------------
95477           -- 4262811a Switch Sign
95478           ---------------------------------------------------------------------------------------------------
95479           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
95480           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
95481                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
95482           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
95483                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
95484           -- 5132302
95485           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
95486                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
95487 
95488       END IF;
95489 
95490       -- 4955764
95491       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
95492       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
95493 
95494 
95495       XLA_AE_LINES_PKG.ValidateCurrentLine;
95496       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
95497 
95498       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
95499                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
95500                ,p_balance_type_code => l_balance_type_code);
95501 
95502    END IF;
95503 
95504    -----------------------------------------------------------------------------------------
95505    -- 4262811 Multiperiod Accounting
95506    -----------------------------------------------------------------------------------------
95507      -- No MPA option is assigned.
95508 
95509 
95510 END IF;
95511 END IF;
95512 --
95513 
95514 --
95515 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
95516    trace
95517       (p_msg      => 'END of AcctLineType_165'
95518       ,p_level    => C_LEVEL_PROCEDURE
95519       ,p_module   => l_log_module);
95520 END IF;
95521 --
95522 EXCEPTION
95523   WHEN xla_exceptions_pkg.application_exception THEN
95524       RAISE;
95525   WHEN OTHERS THEN
95526        xla_exceptions_pkg.raise_message
95527            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_165');
95528 END AcctLineType_165;
95529 --
95530 
95531 ---------------------------------------
95532 --
95533 -- PRIVATE FUNCTION
95534 --         AcctLineType_166
95535 --
95536 ---------------------------------------
95537 PROCEDURE AcctLineType_166 (
95538   p_application_id        IN NUMBER
95539  ,p_event_id              IN NUMBER
95540  ,p_calculate_acctd_flag  IN VARCHAR2
95541  ,p_calculate_g_l_flag    IN VARCHAR2
95542  ,p_actual_flag           IN OUT VARCHAR2
95543  ,p_balance_type_code     OUT VARCHAR2
95547  , p_source_13            IN VARCHAR2
95544  ,p_gain_or_loss_ref      OUT VARCHAR2
95545  
95546 --Payment Currency Code
95548 --Automatic Offsets Value
95549  , p_source_15            IN VARCHAR2
95550  , p_source_15_meaning    IN VARCHAR2
95551 --Invoice Distribution Account
95552  , p_source_30            IN NUMBER
95553 --Internal Realized Loss Account
95554  , p_source_38            IN NUMBER
95555 --Bank Loss Account
95556  , p_source_39            IN NUMBER
95557 --Accounting Reversal Indicator
95558  , p_source_53            IN VARCHAR2
95559 --Distribution Link Type
95560  , p_source_55            IN VARCHAR2
95561 --Override Accounted Amount Indicator
95562  , p_source_80            IN VARCHAR2
95563  , p_source_80_meaning    IN VARCHAR2
95564 --Third Party Type
95565  , p_source_83            IN VARCHAR2
95566 --Invoice Distribution Tax Line Identifier
95567  , p_source_86            IN NUMBER
95568 --Invoice Distribution Summary Tax Line Identifier
95569  , p_source_88            IN NUMBER
95570 --Business Flow Accounts Payable Application Identifier
95571  , p_source_91            IN NUMBER
95572 --When to Account for Payment Option
95573  , p_source_97            IN VARCHAR2
95574 --Payment Distribution Type
95575  , p_source_98            IN VARCHAR2
95576  , p_source_98_meaning    IN VARCHAR2
95577 --Payment Distribution Amount
95578  , p_source_99            IN NUMBER
95579 --Business Flow Payment Distribution Type
95580  , p_source_100            IN VARCHAR2
95581 --Business Flow Payment Entity Code
95582  , p_source_101            IN VARCHAR2
95583 --Business Flow Payment Distribution Identifier
95584  , p_source_102            IN NUMBER
95585 --Business Flow Payment Identifier
95586  , p_source_103            IN NUMBER
95587 --Payment Distribution Identifier
95588  , p_source_104            IN NUMBER
95589 --Cleared Exchange Date
95590  , p_source_106            IN DATE
95591 --Cleared Exchange Rate
95592  , p_source_107            IN NUMBER
95593 --Cleared Exchange Rate Type
95594  , p_source_108            IN VARCHAR2
95595 --Payment Supplier Identifier
95596  , p_source_110            IN NUMBER
95597 --Payment Supplier Site Identifier
95598  , p_source_111            IN NUMBER
95599 --Payment Distribution Reversed Identifier
95600  , p_source_112            IN NUMBER
95601 --Payment Maturity Date
95602  , p_source_114            IN DATE
95603 --Gain or Loss Indicator between Payment and Clearing
95604  , p_source_159            IN VARCHAR2
95605 --Payment/Clearing Ledger Amount Difference
95606  , p_source_160            IN NUMBER
95607 )
95608 IS
95609 
95610 l_component_type              VARCHAR2(80);
95611 l_component_code              VARCHAR2(30);
95612 l_component_type_code         VARCHAR2(1);
95613 l_component_appl_id           INTEGER;
95614 l_amb_context_code            VARCHAR2(30);
95615 l_entity_code                 VARCHAR2(30);
95616 l_event_class_code            VARCHAR2(30);
95617 l_ae_header_id                NUMBER;
95618 l_event_type_code             VARCHAR2(30);
95619 l_line_definition_code        VARCHAR2(30);
95620 l_line_definition_owner_code  VARCHAR2(1);
95621 --
95622 -- adr variables
95623 l_segment                     VARCHAR2(30);
95624 l_ccid                        NUMBER;
95625 l_adr_transaction_coa_id      NUMBER;
95626 l_adr_accounting_coa_id       NUMBER;
95627 l_adr_flexfield_segment_code  VARCHAR2(30);
95628 l_adr_flex_value_set_id       NUMBER;
95629 l_adr_value_type_code         VARCHAR2(30);
95630 l_adr_value_combination_id    NUMBER;
95631 l_adr_value_segment_code      VARCHAR2(30);
95632 
95633 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
95634 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
95635 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
95636 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
95637 
95638 -- 4262811 Variables ------------------------------------------------------------------------------------------
95639 l_entered_amt_idx             NUMBER;
95640 l_accted_amt_idx              NUMBER;
95641 l_acc_rev_flag                VARCHAR2(1);
95642 l_accrual_line_num            NUMBER;
95643 l_tmp_amt                     NUMBER;
95644 l_acc_rev_natural_side_code   VARCHAR2(1);
95645 
95646 l_num_entries                 NUMBER;
95647 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
95648 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
95649 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
95650 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
95651 l_recog_line_1                NUMBER;
95652 l_recog_line_2                NUMBER;
95653 
95654 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
95655 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
95656 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
95657 
95658 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
95659 
95660 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
95661 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
95662 
95663 ---------------------------------------------------------------------------------------------------------------
95664 
95665 
95666 --
95667 -- bulk performance
95668 --
95669 l_balance_type_code           VARCHAR2(1);
95670 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
95674 -- Upgrade strategy
95671 l_log_module                  VARCHAR2(240);
95672 
95673 --
95675 --
95676 l_actual_upg_option           VARCHAR2(1);
95677 l_enc_upg_option           VARCHAR2(1);
95678 
95679 --
95680 BEGIN
95681 --
95682 IF g_log_enabled THEN
95683       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_166';
95684 END IF;
95685 --
95686 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
95687 
95688       trace
95689          (p_msg      => 'BEGIN of AcctLineType_166'
95690          ,p_level    => C_LEVEL_PROCEDURE
95691          ,p_module   => l_log_module);
95692 
95693 END IF;
95694 --
95695 l_component_type             := 'AMB_JLT';
95696 l_component_code             := 'AP_LOSS_PMT_CLEAR';
95697 l_component_type_code        := 'S';
95698 l_component_appl_id          :=  200;
95699 l_amb_context_code           := 'DEFAULT';
95700 l_entity_code                := 'AP_PAYMENTS';
95701 l_event_class_code           := 'RECONCILED PAYMENTS';
95702 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
95703 l_line_definition_owner_code := 'S';
95704 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
95705 --
95706 l_balance_type_code          := 'A';
95707 l_segment                     := NULL;
95708 l_ccid                        := NULL;
95709 l_adr_transaction_coa_id      := NULL;
95710 l_adr_accounting_coa_id       := NULL;
95711 l_adr_flexfield_segment_code  := NULL;
95712 l_adr_flex_value_set_id       := NULL;
95713 l_adr_value_type_code         := NULL;
95714 l_adr_value_combination_id    := NULL;
95715 l_adr_value_segment_code      := NULL;
95716 
95717 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
95718 l_bflow_class_code           := '';    -- 4219869 Business Flow
95719 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
95720 l_budgetary_control_flag     := 'N';
95721 
95722 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
95723 l_bflow_applied_to_amt       := NULL; -- 5132302
95724 l_entered_amt_idx            := NULL;          -- 4262811
95725 l_accted_amt_idx             := NULL;          -- 4262811
95726 l_acc_rev_flag               := NULL;          -- 4262811
95727 l_accrual_line_num           := NULL;          -- 4262811
95728 l_tmp_amt                    := NULL;          -- 4262811
95729 --
95730 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
95731             (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
95732                return;
95733   END IF;
95734   
95735 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
95736     l_balance_type_code <> 'B' THEN
95737 IF NVL(p_source_97,'
95738 ') =  'ALWAYS_ALWAYS' AND 
95739 p_source_114 IS NULL AND 
95740 NVL(p_source_159,'
95741 ') =  'LOSS' AND 
95742 NVL(p_source_98,'
95743 ') <>  'EXCHANGE RATE VARIANCE' AND 
95744 NVL(p_source_98,'
95745 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
95746 NVL(p_source_98,'
95747 ') <>  'BANK CHARGE' AND 
95748 NVL(p_source_98,'
95749 ') <>  'BANK ERROR' AND 
95750 NVL(p_source_98,'
95751 ') <>  'AWT'
95752  THEN 
95753 
95754    --
95755    XLA_AE_LINES_PKG.SetNewLine;
95756 
95757    p_balance_type_code          := l_balance_type_code;
95758    -- set the flag so later we will know whether the gain loss line needs to be created
95759    
95760    IF(l_balance_type_code = 'A' ) THEN
95761      p_actual_flag :='G';
95762    END IF;
95763 
95764    --
95765    -- bulk performance
95766    --
95767    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
95768                                       p_header_num   => 0); -- 4262811
95769    --
95770    -- set accounting line options
95771    --
95772    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
95773            p_natural_side_code          => 'C'
95774          , p_gain_or_loss_flag          => 'Y'
95775          , p_gl_transfer_mode_code      => 'S'
95776          , p_acct_entry_type_code       => 'A'
95777          , p_switch_side_flag           => 'Y'
95778          , p_merge_duplicate_code       => 'A'
95779          );
95780    --
95781    l_acc_rev_natural_side_code := 'D';  -- 4262811
95782    -- 
95783    --
95784    -- set accounting line type info
95785    --
95786    xla_ae_lines_pkg.SetAcctLineType
95787       (p_component_type             => l_component_type
95788       ,p_event_type_code            => l_event_type_code
95789       ,p_line_definition_owner_code => l_line_definition_owner_code
95790       ,p_line_definition_code       => l_line_definition_code
95791       ,p_accounting_line_code       => l_component_code
95792       ,p_accounting_line_type_code  => l_component_type_code
95793       ,p_accounting_line_appl_id    => l_component_appl_id
95794       ,p_amb_context_code           => l_amb_context_code
95795       ,p_entity_code                => l_entity_code
95796       ,p_event_class_code           => l_event_class_code);
95797    --
95798    -- set accounting class
95799    --
95800    xla_ae_lines_pkg.SetAcctClass(
95801            p_accounting_class_code  => 'LOSS'
95802          , p_ae_header_id           => l_ae_header_id
95803          );
95804 
95805    --
95806    -- set rounding class
95807    --
95811    --
95808    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
95809                       'LOSS';
95810 
95812    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
95813    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
95814    --
95815    -- bulk performance
95816    --
95817    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
95818 
95819    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
95820       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
95821 
95822    -- 4955764
95823    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
95824       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
95825 
95826    -- 4458381 Public Sector Enh
95827    
95828    --
95829    -- set accounting attributes for the line type
95830    --
95831    l_entered_amt_idx := 10;
95832    l_accted_amt_idx  := 15;
95833    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
95834    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
95835    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
95836    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
95837    l_rec_acct_attrs.array_num_value(2)  := p_source_99;
95838    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
95839    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
95840    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
95841    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
95842    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
95843    l_rec_acct_attrs.array_char_value(5)  := p_source_101;
95844    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
95845    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
95846    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
95847    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
95848    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
95849    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
95850    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
95851    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
95852    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
95853    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
95854    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
95855    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
95856    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
95857    l_rec_acct_attrs.array_date_value(12)  := p_source_106;
95858    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
95859    l_rec_acct_attrs.array_num_value(13)  := p_source_107;
95860    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
95861    l_rec_acct_attrs.array_char_value(14)  := p_source_108;
95862    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
95863    l_rec_acct_attrs.array_num_value(15)  := p_source_160;
95864    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
95865    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
95866    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
95867    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
95868    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
95869    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
95870    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
95871    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
95872    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
95873    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
95874    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
95875    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
95876    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
95877    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
95878    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
95879    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
95880    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
95881    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
95882 
95883    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
95884    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
95885 
95886    ---------------------------------------------------------------------------------------------------------------
95887    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
95888    ---------------------------------------------------------------------------------------------------------------
95889    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
95890 
95891    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
95892    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
95893 
95894    IF xla_accounting_cache_pkg.GetValueChar
95895          (p_source_code         => 'LEDGER_CATEGORY_CODE'
95896          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
95900          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
95897    AND l_bflow_method_code = 'PRIOR_ENTRY'
95898 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
95899    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
95901        )
95902    THEN
95903          xla_ae_lines_pkg.BflowUpgEntry
95904            (p_business_method_code    => l_bflow_method_code
95905            ,p_business_class_code     => l_bflow_class_code
95906            ,p_balance_type            => l_balance_type_code);
95907    ELSE
95908       NULL;
95909 -- No business flow processing for business flow method of NONE.
95910    END IF;
95911 
95912    --
95913    -- call analytical criteria
95914    --
95915    
95916    --
95917    -- call description
95918    --
95919    -- No description or it is inherited.
95920    --
95921    -- call ADRs
95922    -- Bug 4922099
95923    --
95924    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
95925         (NVL(l_actual_upg_option, 'N') = 'O') OR
95926         (NVL(l_enc_upg_option, 'N') = 'O')
95927       )
95928    THEN
95929    NULL;
95930    --
95931    --
95932    
95933   l_ccid := AcctDerRule_39(
95934            p_application_id           => p_application_id
95935          , p_ae_header_id             => l_ae_header_id 
95936 , p_source_15 => p_source_15
95937 , p_source_15_meaning => p_source_15_meaning
95938 , p_source_30 => p_source_30
95939 , p_source_38 => p_source_38
95940 , p_source_39 => p_source_39
95941          , x_transaction_coa_id       => l_adr_transaction_coa_id
95942          , x_accounting_coa_id        => l_adr_accounting_coa_id
95943          , x_value_type_code          => l_adr_value_type_code
95944          , p_side                     => 'NA'
95945    );
95946 
95947    xla_ae_lines_pkg.set_ccid(
95948     p_code_combination_id          => l_ccid
95949   , p_value_type_code              => l_adr_value_type_code
95950   , p_transaction_coa_id           => l_adr_transaction_coa_id
95951   , p_accounting_coa_id            => l_adr_accounting_coa_id
95952   , p_adr_code                     => 'AP_REAL_LOSS'
95953   , p_adr_type_code                => 'S'
95954   , p_component_type               => l_component_type
95955   , p_component_code               => l_component_code
95956   , p_component_type_code          => l_component_type_code
95957   , p_component_appl_id            => l_component_appl_id
95958   , p_amb_context_code             => l_amb_context_code
95959   , p_side                         => 'NA'
95960   );
95961 
95962 
95963    l_segment := AcctDerRule_22(
95964            p_application_id           => p_application_id
95965          , p_ae_header_id             => l_ae_header_id 
95966 , p_source_15 => p_source_15
95967 , p_source_15_meaning => p_source_15_meaning
95968 , p_source_30 => p_source_30
95969          , x_transaction_coa_id       => l_adr_transaction_coa_id
95970          , x_accounting_coa_id        => l_adr_accounting_coa_id
95971          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
95972          , x_flex_value_set_id        => l_adr_flex_value_set_id
95973          , x_value_type_code          => l_adr_value_type_code
95974          , x_value_combination_id     => l_adr_value_combination_id
95975          , x_value_segment_code       => l_adr_value_segment_code
95976          , p_side                     => 'NA'
95977          , p_override_seg_flag        => 'Y'
95978    );
95979 
95980    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
95981 
95982       xla_ae_lines_pkg.set_segment(
95983           p_to_segment_code         => 'GL_BALANCING'
95984         , p_segment_value           => l_segment
95985         , p_from_segment_code       => l_adr_value_segment_code
95986         , p_from_combination_id     => l_adr_value_combination_id
95987         , p_value_type_code         => l_adr_value_type_code
95988         , p_transaction_coa_id      => l_adr_transaction_coa_id
95989         , p_accounting_coa_id       => l_adr_accounting_coa_id
95990         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
95991         , p_flex_value_set_id       => l_adr_flex_value_set_id
95992         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
95993         , p_adr_type_code           => 'S'
95994         , p_component_type          => l_component_type
95995         , p_component_code          => l_component_code
95996         , p_component_type_code     => l_component_type_code
95997         , p_component_appl_id       => l_component_appl_id
95998         , p_amb_context_code        => l_amb_context_code
95999         , p_entity_code             => 'AP_PAYMENTS'
96000         , p_event_class_code        => 'RECONCILED PAYMENTS'
96001         , p_side                    => 'NA'
96002         );
96003 
96004   END IF;
96005 
96006    l_segment := AcctDerRule_18(
96007            p_application_id           => p_application_id
96008          , p_ae_header_id             => l_ae_header_id 
96009 , p_source_15 => p_source_15
96010 , p_source_15_meaning => p_source_15_meaning
96011 , p_source_38 => p_source_38
96012 , p_source_39 => p_source_39
96013          , x_transaction_coa_id       => l_adr_transaction_coa_id
96014          , x_accounting_coa_id        => l_adr_accounting_coa_id
96015          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
96016          , x_flex_value_set_id        => l_adr_flex_value_set_id
96017          , x_value_type_code          => l_adr_value_type_code
96018          , x_value_combination_id     => l_adr_value_combination_id
96022    );
96019          , x_value_segment_code       => l_adr_value_segment_code
96020          , p_side                     => 'NA'
96021          , p_override_seg_flag        => 'Y'
96023 
96024    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
96025 
96026       xla_ae_lines_pkg.set_segment(
96027           p_to_segment_code         => 'GL_ACCOUNT'
96028         , p_segment_value           => l_segment
96029         , p_from_segment_code       => l_adr_value_segment_code
96030         , p_from_combination_id     => l_adr_value_combination_id
96031         , p_value_type_code         => l_adr_value_type_code
96032         , p_transaction_coa_id      => l_adr_transaction_coa_id
96033         , p_accounting_coa_id       => l_adr_accounting_coa_id
96034         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
96035         , p_flex_value_set_id       => l_adr_flex_value_set_id
96036         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
96037         , p_adr_type_code           => 'S'
96038         , p_component_type          => l_component_type
96039         , p_component_code          => l_component_code
96040         , p_component_type_code     => l_component_type_code
96041         , p_component_appl_id       => l_component_appl_id
96042         , p_amb_context_code        => l_amb_context_code
96043         , p_entity_code             => 'AP_PAYMENTS'
96044         , p_event_class_code        => 'RECONCILED PAYMENTS'
96045         , p_side                    => 'NA'
96046         );
96047 
96048   END IF;
96049 
96050    --
96051    --
96052    END IF;
96053    --
96054    -- Bug 4922099
96055    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
96056           (NVL(l_enc_upg_option, 'N') = 'O')
96057         ) AND
96058         (l_bflow_method_code = 'PRIOR_ENTRY')
96059       )
96060    THEN
96061       IF
96062       --
96063       1 = 2
96064       --
96065       THEN
96066       xla_accounting_err_pkg.build_message
96067                                     (p_appli_s_name            => 'XLA'
96068                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
96069                                     ,p_token_1                 => 'LINE_NUMBER'
96070                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
96071                                     ,p_token_2                 => 'LINE_TYPE_NAME'
96072                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
96073                                                                              l_component_type
96074                                                                             ,l_component_code
96075                                                                             ,l_component_type_code
96076                                                                             ,l_component_appl_id
96077                                                                             ,l_amb_context_code
96078                                                                             ,l_entity_code
96079                                                                             ,l_event_class_code
96080                                                                            )
96081                                     ,p_token_3                 => 'OWNER'
96082                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
96083                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
96084                                                                           ,p_lookup_code    => l_component_type_code
96085                                                                          )
96086                                     ,p_token_4                 => 'PRODUCT_NAME'
96087                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
96088                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
96089                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
96090                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
96091                                     ,p_ae_header_id            =>  NULL
96092                                        );
96093 
96094         IF (C_LEVEL_ERROR>= g_log_level) THEN
96095                  trace
96096                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
96097                       ,p_level    => C_LEVEL_ERROR
96098                       ,p_module   => l_log_module);
96099         END IF;
96100       END IF;
96101    END IF;
96102    --
96103    --
96104    ------------------------------------------------------------------------------------------------
96105    -- 4219869 Business Flow
96106    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
96107    -- Prior Entry.  Currently, the following code is always generated.
96108    ------------------------------------------------------------------------------------------------
96109    XLA_AE_LINES_PKG.ValidateCurrentLine;
96110 
96111    ------------------------------------------------------------------------------------
96112    -- 4219869 Business Flow
96113    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
96114    ------------------------------------------------------------------------------------
96118    -- 4219869 Business Flow
96115    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
96116 
96117    ----------------------------------------------------------------------------------
96119    -- Update journal entry status -- Need to generate this within IF <condition>
96120    ----------------------------------------------------------------------------------
96121    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
96122          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
96123          ,p_balance_type_code => l_balance_type_code
96124          );
96125 
96126    -------------------------------------------------------------------------------------------
96127    -- 4262811 - Generate the Accrual Reversal lines
96128    -------------------------------------------------------------------------------------------
96129    BEGIN
96130       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
96131                               (g_array_event(p_event_id).array_value_num('header_index'));
96132       IF l_acc_rev_flag IS NULL THEN
96133          l_acc_rev_flag := 'N';
96134       END IF;
96135    EXCEPTION
96136       WHEN OTHERS THEN
96137          l_acc_rev_flag := 'N';
96138    END;
96139    --
96140    IF (l_acc_rev_flag = 'Y') THEN
96141 
96142        -- 4645092  ------------------------------------------------------------------------------
96143        -- To allow MPA report to determine if it should generate report process
96144        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
96145        ------------------------------------------------------------------------------------------
96146 
96147        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
96148        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
96149    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
96150    -- call ADRs
96151    -- Bug 4922099
96152    --
96153    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
96154         (NVL(l_actual_upg_option, 'N') = 'O') OR
96155         (NVL(l_enc_upg_option, 'N') = 'O')
96156       )
96157    THEN
96158    NULL;
96159    --
96160    --
96161    
96162   l_ccid := AcctDerRule_39(
96163            p_application_id           => p_application_id
96164          , p_ae_header_id             => l_ae_header_id 
96165 , p_source_15 => p_source_15
96166 , p_source_15_meaning => p_source_15_meaning
96167 , p_source_30 => p_source_30
96168 , p_source_38 => p_source_38
96169 , p_source_39 => p_source_39
96170          , x_transaction_coa_id       => l_adr_transaction_coa_id
96171          , x_accounting_coa_id        => l_adr_accounting_coa_id
96172          , x_value_type_code          => l_adr_value_type_code
96173          , p_side                     => 'NA'
96174    );
96175 
96176    xla_ae_lines_pkg.set_ccid(
96177     p_code_combination_id          => l_ccid
96178   , p_value_type_code              => l_adr_value_type_code
96179   , p_transaction_coa_id           => l_adr_transaction_coa_id
96180   , p_accounting_coa_id            => l_adr_accounting_coa_id
96181   , p_adr_code                     => 'AP_REAL_LOSS'
96182   , p_adr_type_code                => 'S'
96183   , p_component_type               => l_component_type
96184   , p_component_code               => l_component_code
96185   , p_component_type_code          => l_component_type_code
96186   , p_component_appl_id            => l_component_appl_id
96187   , p_amb_context_code             => l_amb_context_code
96188   , p_side                         => 'NA'
96189   );
96190 
96191 
96192    l_segment := AcctDerRule_22(
96193            p_application_id           => p_application_id
96194          , p_ae_header_id             => l_ae_header_id 
96195 , p_source_15 => p_source_15
96196 , p_source_15_meaning => p_source_15_meaning
96197 , p_source_30 => p_source_30
96198          , x_transaction_coa_id       => l_adr_transaction_coa_id
96199          , x_accounting_coa_id        => l_adr_accounting_coa_id
96200          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
96201          , x_flex_value_set_id        => l_adr_flex_value_set_id
96202          , x_value_type_code          => l_adr_value_type_code
96203          , x_value_combination_id     => l_adr_value_combination_id
96204          , x_value_segment_code       => l_adr_value_segment_code
96205          , p_side                     => 'NA'
96206          , p_override_seg_flag        => 'Y'
96207    );
96208 
96209    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
96210 
96211       xla_ae_lines_pkg.set_segment(
96212           p_to_segment_code         => 'GL_BALANCING'
96213         , p_segment_value           => l_segment
96214         , p_from_segment_code       => l_adr_value_segment_code
96215         , p_from_combination_id     => l_adr_value_combination_id
96216         , p_value_type_code         => l_adr_value_type_code
96217         , p_transaction_coa_id      => l_adr_transaction_coa_id
96218         , p_accounting_coa_id       => l_adr_accounting_coa_id
96219         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
96220         , p_flex_value_set_id       => l_adr_flex_value_set_id
96221         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
96222         , p_adr_type_code           => 'S'
96223         , p_component_type          => l_component_type
96224         , p_component_code          => l_component_code
96225         , p_component_type_code     => l_component_type_code
96226         , p_component_appl_id       => l_component_appl_id
96230         , p_side                    => 'NA'
96227         , p_amb_context_code        => l_amb_context_code
96228         , p_entity_code             => 'AP_PAYMENTS'
96229         , p_event_class_code        => 'RECONCILED PAYMENTS'
96231         );
96232 
96233   END IF;
96234 
96235    l_segment := AcctDerRule_18(
96236            p_application_id           => p_application_id
96237          , p_ae_header_id             => l_ae_header_id 
96238 , p_source_15 => p_source_15
96239 , p_source_15_meaning => p_source_15_meaning
96240 , p_source_38 => p_source_38
96241 , p_source_39 => p_source_39
96242          , x_transaction_coa_id       => l_adr_transaction_coa_id
96243          , x_accounting_coa_id        => l_adr_accounting_coa_id
96244          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
96245          , x_flex_value_set_id        => l_adr_flex_value_set_id
96246          , x_value_type_code          => l_adr_value_type_code
96247          , x_value_combination_id     => l_adr_value_combination_id
96248          , x_value_segment_code       => l_adr_value_segment_code
96249          , p_side                     => 'NA'
96250          , p_override_seg_flag        => 'Y'
96251    );
96252 
96253    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
96254 
96255       xla_ae_lines_pkg.set_segment(
96256           p_to_segment_code         => 'GL_ACCOUNT'
96257         , p_segment_value           => l_segment
96258         , p_from_segment_code       => l_adr_value_segment_code
96259         , p_from_combination_id     => l_adr_value_combination_id
96260         , p_value_type_code         => l_adr_value_type_code
96261         , p_transaction_coa_id      => l_adr_transaction_coa_id
96262         , p_accounting_coa_id       => l_adr_accounting_coa_id
96263         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
96264         , p_flex_value_set_id       => l_adr_flex_value_set_id
96265         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
96266         , p_adr_type_code           => 'S'
96267         , p_component_type          => l_component_type
96268         , p_component_code          => l_component_code
96269         , p_component_type_code     => l_component_type_code
96270         , p_component_appl_id       => l_component_appl_id
96271         , p_amb_context_code        => l_amb_context_code
96272         , p_entity_code             => 'AP_PAYMENTS'
96273         , p_event_class_code        => 'RECONCILED PAYMENTS'
96274         , p_side                    => 'NA'
96275         );
96276 
96277   END IF;
96278 
96279    --
96280    --
96281    END IF;
96282 
96283        --
96284        -- Update the line information that should be overwritten
96285        --
96286        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
96287                                          p_header_num   => 1);
96288        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
96289 
96290        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
96291 
96292        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
96293           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
96294        END IF;
96295 
96296       --
96297       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
96298       --
96299       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
96300           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
96301       ELSE
96302           ---------------------------------------------------------------------------------------------------
96303           -- 4262811a Switch Sign
96304           ---------------------------------------------------------------------------------------------------
96305           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
96306           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
96307                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96308           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
96309                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96310           -- 5132302
96311           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
96312                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
96313 
96314       END IF;
96315 
96316       -- 4955764
96317       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
96318       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
96319 
96320 
96321       XLA_AE_LINES_PKG.ValidateCurrentLine;
96322       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
96323 
96324       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
96325                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
96326                ,p_balance_type_code => l_balance_type_code);
96327 
96328    END IF;
96329 
96330    -----------------------------------------------------------------------------------------
96331    -- 4262811 Multiperiod Accounting
96335 
96332    -----------------------------------------------------------------------------------------
96333      -- No MPA option is assigned.
96334 
96336 END IF;
96337 END IF;
96338 --
96339 
96340 --
96341 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
96342    trace
96343       (p_msg      => 'END of AcctLineType_166'
96344       ,p_level    => C_LEVEL_PROCEDURE
96345       ,p_module   => l_log_module);
96346 END IF;
96347 --
96348 EXCEPTION
96349   WHEN xla_exceptions_pkg.application_exception THEN
96350       RAISE;
96351   WHEN OTHERS THEN
96352        xla_exceptions_pkg.raise_message
96353            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_166');
96354 END AcctLineType_166;
96355 --
96356 
96357 ---------------------------------------
96358 --
96359 -- PRIVATE FUNCTION
96360 --         AcctLineType_167
96361 --
96362 ---------------------------------------
96363 PROCEDURE AcctLineType_167 (
96364   p_application_id        IN NUMBER
96365  ,p_event_id              IN NUMBER
96366  ,p_calculate_acctd_flag  IN VARCHAR2
96367  ,p_calculate_g_l_flag    IN VARCHAR2
96368  ,p_actual_flag           IN OUT VARCHAR2
96369  ,p_balance_type_code     OUT VARCHAR2
96370  ,p_gain_or_loss_ref      OUT VARCHAR2
96371  
96372 --Payment Currency Code
96373  , p_source_13            IN VARCHAR2
96374 --Automatic Offsets Value
96375  , p_source_15            IN VARCHAR2
96376  , p_source_15_meaning    IN VARCHAR2
96377 --Invoice Distribution Account
96378  , p_source_30            IN NUMBER
96379 --Internal Realized Loss Account
96380  , p_source_38            IN NUMBER
96381 --Bank Loss Account
96382  , p_source_39            IN NUMBER
96383 --Accounting Reversal Indicator
96384  , p_source_53            IN VARCHAR2
96385 --Distribution Link Type
96386  , p_source_55            IN VARCHAR2
96387 --Override Accounted Amount Indicator
96388  , p_source_80            IN VARCHAR2
96389  , p_source_80_meaning    IN VARCHAR2
96390 --Third Party Type
96391  , p_source_83            IN VARCHAR2
96392 --Business Flow Accounts Payable Application Identifier
96393  , p_source_91            IN NUMBER
96394 --When to Account for Payment Option
96395  , p_source_97            IN VARCHAR2
96396 --Payment Distribution Type
96397  , p_source_98            IN VARCHAR2
96398  , p_source_98_meaning    IN VARCHAR2
96399 --Payment Distribution Amount
96400  , p_source_99            IN NUMBER
96401 --Business Flow Payment Distribution Type
96402  , p_source_100            IN VARCHAR2
96403 --Business Flow Payment Entity Code
96404  , p_source_101            IN VARCHAR2
96405 --Business Flow Payment Distribution Identifier
96406  , p_source_102            IN NUMBER
96407 --Business Flow Payment Identifier
96408  , p_source_103            IN NUMBER
96409 --Payment Distribution Identifier
96410  , p_source_104            IN NUMBER
96411 --Payment Supplier Identifier
96412  , p_source_110            IN NUMBER
96413 --Payment Supplier Site Identifier
96414  , p_source_111            IN NUMBER
96415 --Payment Distribution Reversed Identifier
96416  , p_source_112            IN NUMBER
96417 --Payment Maturity Date
96418  , p_source_114            IN DATE
96419 --Payment Exchange Date
96420  , p_source_117            IN DATE
96421 --Payment Exchange Rate
96422  , p_source_118            IN NUMBER
96423 --Payment Exchange Rate Type
96424  , p_source_119            IN VARCHAR2
96425 --Payment/Maturity Ledger Amount Difference
96426  , p_source_154            IN NUMBER
96427 --Gain or Loss Indicator between Payment and Maturity
96428  , p_source_161            IN VARCHAR2
96429 )
96430 IS
96431 
96432 l_component_type              VARCHAR2(80);
96433 l_component_code              VARCHAR2(30);
96434 l_component_type_code         VARCHAR2(1);
96435 l_component_appl_id           INTEGER;
96436 l_amb_context_code            VARCHAR2(30);
96437 l_entity_code                 VARCHAR2(30);
96438 l_event_class_code            VARCHAR2(30);
96439 l_ae_header_id                NUMBER;
96440 l_event_type_code             VARCHAR2(30);
96441 l_line_definition_code        VARCHAR2(30);
96442 l_line_definition_owner_code  VARCHAR2(1);
96443 --
96444 -- adr variables
96445 l_segment                     VARCHAR2(30);
96446 l_ccid                        NUMBER;
96447 l_adr_transaction_coa_id      NUMBER;
96448 l_adr_accounting_coa_id       NUMBER;
96449 l_adr_flexfield_segment_code  VARCHAR2(30);
96450 l_adr_flex_value_set_id       NUMBER;
96451 l_adr_value_type_code         VARCHAR2(30);
96452 l_adr_value_combination_id    NUMBER;
96453 l_adr_value_segment_code      VARCHAR2(30);
96454 
96455 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
96456 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
96457 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
96458 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
96459 
96460 -- 4262811 Variables ------------------------------------------------------------------------------------------
96461 l_entered_amt_idx             NUMBER;
96462 l_accted_amt_idx              NUMBER;
96463 l_acc_rev_flag                VARCHAR2(1);
96464 l_accrual_line_num            NUMBER;
96465 l_tmp_amt                     NUMBER;
96466 l_acc_rev_natural_side_code   VARCHAR2(1);
96467 
96468 l_num_entries                 NUMBER;
96469 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
96473 l_recog_line_1                NUMBER;
96470 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
96471 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
96472 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
96474 l_recog_line_2                NUMBER;
96475 
96476 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
96477 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
96478 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
96479 
96480 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
96481 
96482 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
96483 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
96484 
96485 ---------------------------------------------------------------------------------------------------------------
96486 
96487 
96488 --
96489 -- bulk performance
96490 --
96491 l_balance_type_code           VARCHAR2(1);
96492 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
96493 l_log_module                  VARCHAR2(240);
96494 
96495 --
96496 -- Upgrade strategy
96497 --
96498 l_actual_upg_option           VARCHAR2(1);
96499 l_enc_upg_option           VARCHAR2(1);
96500 
96501 --
96502 BEGIN
96503 --
96504 IF g_log_enabled THEN
96505       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_167';
96506 END IF;
96507 --
96508 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
96509 
96510       trace
96511          (p_msg      => 'BEGIN of AcctLineType_167'
96512          ,p_level    => C_LEVEL_PROCEDURE
96513          ,p_module   => l_log_module);
96514 
96515 END IF;
96516 --
96517 l_component_type             := 'AMB_JLT';
96518 l_component_code             := 'AP_LOSS_PMT_MAT';
96519 l_component_type_code        := 'S';
96520 l_component_appl_id          :=  200;
96521 l_amb_context_code           := 'DEFAULT';
96522 l_entity_code                := 'AP_PAYMENTS';
96523 l_event_class_code           := 'FUTURE DATED PAYMENTS';
96524 l_event_type_code            := 'FUTURE DATED PAYMENTS_ALL';
96525 l_line_definition_owner_code := 'S';
96526 l_line_definition_code       := 'ACCRUAL_FUTURE DATED PAYMENTS1';
96527 --
96528 l_balance_type_code          := 'A';
96529 l_segment                     := NULL;
96530 l_ccid                        := NULL;
96531 l_adr_transaction_coa_id      := NULL;
96532 l_adr_accounting_coa_id       := NULL;
96533 l_adr_flexfield_segment_code  := NULL;
96534 l_adr_flex_value_set_id       := NULL;
96535 l_adr_value_type_code         := NULL;
96536 l_adr_value_combination_id    := NULL;
96537 l_adr_value_segment_code      := NULL;
96538 
96539 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
96540 l_bflow_class_code           := '';    -- 4219869 Business Flow
96541 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
96542 l_budgetary_control_flag     := 'N';
96543 
96544 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
96545 l_bflow_applied_to_amt       := NULL; -- 5132302
96546 l_entered_amt_idx            := NULL;          -- 4262811
96547 l_accted_amt_idx             := NULL;          -- 4262811
96548 l_acc_rev_flag               := NULL;          -- 4262811
96549 l_accrual_line_num           := NULL;          -- 4262811
96550 l_tmp_amt                    := NULL;          -- 4262811
96551 --
96552 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
96553             (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
96554                return;
96555   END IF;
96556   
96557 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
96558     l_balance_type_code <> 'B' THEN
96559 IF (NVL(p_source_97,'
96560 ') =  'ALWAYS_ALWAYS' OR 
96561 NVL(p_source_97,'
96562 ') =  'ISSUE_ISSUE') AND 
96563 p_source_114 IS NOT NULL AND 
96564 NVL(p_source_161,'
96565 ') =  'LOSS' AND 
96566 NVL(p_source_98,'
96567 ') <>  'EXCHANGE RATE VARIANCE' AND 
96568 NVL(p_source_98,'
96569 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
96570 NVL(p_source_98,'
96571 ') <>  'BANK CHARGE' AND 
96572 NVL(p_source_98,'
96573 ') <>  'BANK ERROR' AND 
96574 NVL(p_source_98,'
96575 ') <>  'AWT'
96576  THEN 
96577 
96578    --
96579    XLA_AE_LINES_PKG.SetNewLine;
96580 
96581    p_balance_type_code          := l_balance_type_code;
96582    -- set the flag so later we will know whether the gain loss line needs to be created
96583    
96584    IF(l_balance_type_code = 'A' ) THEN
96585      p_actual_flag :='G';
96586    END IF;
96587 
96588    --
96589    -- bulk performance
96590    --
96591    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
96592                                       p_header_num   => 0); -- 4262811
96593    --
96594    -- set accounting line options
96595    --
96596    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
96597            p_natural_side_code          => 'C'
96598          , p_gain_or_loss_flag          => 'Y'
96599          , p_gl_transfer_mode_code      => 'S'
96600          , p_acct_entry_type_code       => 'A'
96601          , p_switch_side_flag           => 'Y'
96605    l_acc_rev_natural_side_code := 'D';  -- 4262811
96602          , p_merge_duplicate_code       => 'A'
96603          );
96604    --
96606    -- 
96607    --
96608    -- set accounting line type info
96609    --
96610    xla_ae_lines_pkg.SetAcctLineType
96611       (p_component_type             => l_component_type
96612       ,p_event_type_code            => l_event_type_code
96613       ,p_line_definition_owner_code => l_line_definition_owner_code
96614       ,p_line_definition_code       => l_line_definition_code
96615       ,p_accounting_line_code       => l_component_code
96616       ,p_accounting_line_type_code  => l_component_type_code
96617       ,p_accounting_line_appl_id    => l_component_appl_id
96618       ,p_amb_context_code           => l_amb_context_code
96619       ,p_entity_code                => l_entity_code
96620       ,p_event_class_code           => l_event_class_code);
96621    --
96622    -- set accounting class
96623    --
96624    xla_ae_lines_pkg.SetAcctClass(
96625            p_accounting_class_code  => 'LOSS'
96626          , p_ae_header_id           => l_ae_header_id
96627          );
96628 
96629    --
96630    -- set rounding class
96631    --
96632    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
96633                       'LOSS';
96634 
96635    --
96636    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
96637    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
96638    --
96639    -- bulk performance
96640    --
96641    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
96642 
96643    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
96644       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
96645 
96646    -- 4955764
96647    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
96648       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
96649 
96650    -- 4458381 Public Sector Enh
96651    
96652    --
96653    -- set accounting attributes for the line type
96654    --
96655    l_entered_amt_idx := 9;
96656    l_accted_amt_idx  := 14;
96657    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
96658    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
96659    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
96660    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
96661    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
96662    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
96663    l_rec_acct_attrs.array_char_value(3)  := p_source_100;
96664    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
96665    l_rec_acct_attrs.array_char_value(4)  := p_source_101;
96666    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
96667    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_102);
96668    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
96669    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_103);
96670    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
96671    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
96672    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
96673    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
96674    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
96675    l_rec_acct_attrs.array_num_value(9)  := p_source_99;
96676    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
96677    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
96678    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
96679    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
96680    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
96681    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
96682    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
96683    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
96684    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
96685    l_rec_acct_attrs.array_num_value(14)  := p_source_154;
96686    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
96687    l_rec_acct_attrs.array_char_value(15)  := p_source_80;
96688    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
96689    l_rec_acct_attrs.array_num_value(16)  := p_source_110;
96690    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
96691    l_rec_acct_attrs.array_num_value(17)  := p_source_111;
96692    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
96693    l_rec_acct_attrs.array_char_value(18)  := p_source_83;
96694    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
96695    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_112);
96696    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
96697    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
96698 
96699    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
96700    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
96701 
96702    ---------------------------------------------------------------------------------------------------------------
96703    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
96704    ---------------------------------------------------------------------------------------------------------------
96708    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
96705    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
96706 
96707    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
96709 
96710    IF xla_accounting_cache_pkg.GetValueChar
96711          (p_source_code         => 'LEDGER_CATEGORY_CODE'
96712          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
96713    AND l_bflow_method_code = 'PRIOR_ENTRY'
96714 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
96715    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
96716          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
96717        )
96718    THEN
96719          xla_ae_lines_pkg.BflowUpgEntry
96720            (p_business_method_code    => l_bflow_method_code
96721            ,p_business_class_code     => l_bflow_class_code
96722            ,p_balance_type            => l_balance_type_code);
96723    ELSE
96724       NULL;
96725 -- No business flow processing for business flow method of NONE.
96726    END IF;
96727 
96728    --
96729    -- call analytical criteria
96730    --
96731    
96732    --
96733    -- call description
96734    --
96735    -- No description or it is inherited.
96736    --
96737    -- call ADRs
96738    -- Bug 4922099
96739    --
96740    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
96741         (NVL(l_actual_upg_option, 'N') = 'O') OR
96742         (NVL(l_enc_upg_option, 'N') = 'O')
96743       )
96744    THEN
96745    NULL;
96746    --
96747    --
96748    
96749   l_ccid := AcctDerRule_39(
96750            p_application_id           => p_application_id
96751          , p_ae_header_id             => l_ae_header_id 
96752 , p_source_15 => p_source_15
96753 , p_source_15_meaning => p_source_15_meaning
96754 , p_source_30 => p_source_30
96755 , p_source_38 => p_source_38
96756 , p_source_39 => p_source_39
96757          , x_transaction_coa_id       => l_adr_transaction_coa_id
96758          , x_accounting_coa_id        => l_adr_accounting_coa_id
96759          , x_value_type_code          => l_adr_value_type_code
96760          , p_side                     => 'NA'
96761    );
96762 
96763    xla_ae_lines_pkg.set_ccid(
96764     p_code_combination_id          => l_ccid
96765   , p_value_type_code              => l_adr_value_type_code
96766   , p_transaction_coa_id           => l_adr_transaction_coa_id
96767   , p_accounting_coa_id            => l_adr_accounting_coa_id
96768   , p_adr_code                     => 'AP_REAL_LOSS'
96769   , p_adr_type_code                => 'S'
96770   , p_component_type               => l_component_type
96771   , p_component_code               => l_component_code
96772   , p_component_type_code          => l_component_type_code
96773   , p_component_appl_id            => l_component_appl_id
96774   , p_amb_context_code             => l_amb_context_code
96775   , p_side                         => 'NA'
96776   );
96777 
96778 
96779    l_segment := AcctDerRule_22(
96780            p_application_id           => p_application_id
96781          , p_ae_header_id             => l_ae_header_id 
96782 , p_source_15 => p_source_15
96783 , p_source_15_meaning => p_source_15_meaning
96784 , p_source_30 => p_source_30
96785          , x_transaction_coa_id       => l_adr_transaction_coa_id
96786          , x_accounting_coa_id        => l_adr_accounting_coa_id
96787          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
96788          , x_flex_value_set_id        => l_adr_flex_value_set_id
96789          , x_value_type_code          => l_adr_value_type_code
96790          , x_value_combination_id     => l_adr_value_combination_id
96791          , x_value_segment_code       => l_adr_value_segment_code
96792          , p_side                     => 'NA'
96793          , p_override_seg_flag        => 'Y'
96794    );
96795 
96796    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
96797 
96798       xla_ae_lines_pkg.set_segment(
96799           p_to_segment_code         => 'GL_BALANCING'
96800         , p_segment_value           => l_segment
96801         , p_from_segment_code       => l_adr_value_segment_code
96802         , p_from_combination_id     => l_adr_value_combination_id
96803         , p_value_type_code         => l_adr_value_type_code
96804         , p_transaction_coa_id      => l_adr_transaction_coa_id
96805         , p_accounting_coa_id       => l_adr_accounting_coa_id
96806         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
96807         , p_flex_value_set_id       => l_adr_flex_value_set_id
96808         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
96809         , p_adr_type_code           => 'S'
96810         , p_component_type          => l_component_type
96811         , p_component_code          => l_component_code
96812         , p_component_type_code     => l_component_type_code
96813         , p_component_appl_id       => l_component_appl_id
96814         , p_amb_context_code        => l_amb_context_code
96815         , p_entity_code             => 'AP_PAYMENTS'
96816         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
96817         , p_side                    => 'NA'
96818         );
96819 
96820   END IF;
96821 
96822    l_segment := AcctDerRule_18(
96826 , p_source_15_meaning => p_source_15_meaning
96823            p_application_id           => p_application_id
96824          , p_ae_header_id             => l_ae_header_id 
96825 , p_source_15 => p_source_15
96827 , p_source_38 => p_source_38
96828 , p_source_39 => p_source_39
96829          , x_transaction_coa_id       => l_adr_transaction_coa_id
96830          , x_accounting_coa_id        => l_adr_accounting_coa_id
96831          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
96832          , x_flex_value_set_id        => l_adr_flex_value_set_id
96833          , x_value_type_code          => l_adr_value_type_code
96834          , x_value_combination_id     => l_adr_value_combination_id
96835          , x_value_segment_code       => l_adr_value_segment_code
96836          , p_side                     => 'NA'
96837          , p_override_seg_flag        => 'Y'
96838    );
96839 
96840    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
96841 
96842       xla_ae_lines_pkg.set_segment(
96843           p_to_segment_code         => 'GL_ACCOUNT'
96844         , p_segment_value           => l_segment
96845         , p_from_segment_code       => l_adr_value_segment_code
96846         , p_from_combination_id     => l_adr_value_combination_id
96847         , p_value_type_code         => l_adr_value_type_code
96848         , p_transaction_coa_id      => l_adr_transaction_coa_id
96849         , p_accounting_coa_id       => l_adr_accounting_coa_id
96850         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
96851         , p_flex_value_set_id       => l_adr_flex_value_set_id
96852         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
96853         , p_adr_type_code           => 'S'
96854         , p_component_type          => l_component_type
96855         , p_component_code          => l_component_code
96856         , p_component_type_code     => l_component_type_code
96857         , p_component_appl_id       => l_component_appl_id
96858         , p_amb_context_code        => l_amb_context_code
96859         , p_entity_code             => 'AP_PAYMENTS'
96860         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
96861         , p_side                    => 'NA'
96862         );
96863 
96864   END IF;
96865 
96866    --
96867    --
96868    END IF;
96869    --
96870    -- Bug 4922099
96871    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
96872           (NVL(l_enc_upg_option, 'N') = 'O')
96873         ) AND
96874         (l_bflow_method_code = 'PRIOR_ENTRY')
96875       )
96876    THEN
96877       IF
96878       --
96879       1 = 2
96880       --
96881       THEN
96882       xla_accounting_err_pkg.build_message
96883                                     (p_appli_s_name            => 'XLA'
96884                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
96885                                     ,p_token_1                 => 'LINE_NUMBER'
96886                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
96887                                     ,p_token_2                 => 'LINE_TYPE_NAME'
96888                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
96889                                                                              l_component_type
96890                                                                             ,l_component_code
96891                                                                             ,l_component_type_code
96892                                                                             ,l_component_appl_id
96893                                                                             ,l_amb_context_code
96894                                                                             ,l_entity_code
96895                                                                             ,l_event_class_code
96896                                                                            )
96897                                     ,p_token_3                 => 'OWNER'
96898                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
96899                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
96900                                                                           ,p_lookup_code    => l_component_type_code
96901                                                                          )
96902                                     ,p_token_4                 => 'PRODUCT_NAME'
96903                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
96904                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
96905                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
96906                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
96907                                     ,p_ae_header_id            =>  NULL
96908                                        );
96909 
96910         IF (C_LEVEL_ERROR>= g_log_level) THEN
96911                  trace
96912                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
96913                       ,p_level    => C_LEVEL_ERROR
96914                       ,p_module   => l_log_module);
96915         END IF;
96916       END IF;
96917    END IF;
96918    --
96919    --
96920    ------------------------------------------------------------------------------------------------
96924    ------------------------------------------------------------------------------------------------
96921    -- 4219869 Business Flow
96922    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
96923    -- Prior Entry.  Currently, the following code is always generated.
96925    XLA_AE_LINES_PKG.ValidateCurrentLine;
96926 
96927    ------------------------------------------------------------------------------------
96928    -- 4219869 Business Flow
96929    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
96930    ------------------------------------------------------------------------------------
96931    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
96932 
96933    ----------------------------------------------------------------------------------
96934    -- 4219869 Business Flow
96935    -- Update journal entry status -- Need to generate this within IF <condition>
96936    ----------------------------------------------------------------------------------
96937    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
96938          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
96939          ,p_balance_type_code => l_balance_type_code
96940          );
96941 
96942    -------------------------------------------------------------------------------------------
96943    -- 4262811 - Generate the Accrual Reversal lines
96944    -------------------------------------------------------------------------------------------
96945    BEGIN
96946       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
96947                               (g_array_event(p_event_id).array_value_num('header_index'));
96948       IF l_acc_rev_flag IS NULL THEN
96949          l_acc_rev_flag := 'N';
96950       END IF;
96951    EXCEPTION
96952       WHEN OTHERS THEN
96953          l_acc_rev_flag := 'N';
96954    END;
96955    --
96956    IF (l_acc_rev_flag = 'Y') THEN
96957 
96958        -- 4645092  ------------------------------------------------------------------------------
96959        -- To allow MPA report to determine if it should generate report process
96960        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
96961        ------------------------------------------------------------------------------------------
96962 
96963        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
96964        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
96965    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
96966    -- call ADRs
96967    -- Bug 4922099
96968    --
96969    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
96970         (NVL(l_actual_upg_option, 'N') = 'O') OR
96971         (NVL(l_enc_upg_option, 'N') = 'O')
96972       )
96973    THEN
96974    NULL;
96975    --
96976    --
96977    
96978   l_ccid := AcctDerRule_39(
96979            p_application_id           => p_application_id
96980          , p_ae_header_id             => l_ae_header_id 
96981 , p_source_15 => p_source_15
96982 , p_source_15_meaning => p_source_15_meaning
96983 , p_source_30 => p_source_30
96984 , p_source_38 => p_source_38
96985 , p_source_39 => p_source_39
96986          , x_transaction_coa_id       => l_adr_transaction_coa_id
96987          , x_accounting_coa_id        => l_adr_accounting_coa_id
96988          , x_value_type_code          => l_adr_value_type_code
96989          , p_side                     => 'NA'
96990    );
96991 
96992    xla_ae_lines_pkg.set_ccid(
96993     p_code_combination_id          => l_ccid
96994   , p_value_type_code              => l_adr_value_type_code
96995   , p_transaction_coa_id           => l_adr_transaction_coa_id
96996   , p_accounting_coa_id            => l_adr_accounting_coa_id
96997   , p_adr_code                     => 'AP_REAL_LOSS'
96998   , p_adr_type_code                => 'S'
96999   , p_component_type               => l_component_type
97000   , p_component_code               => l_component_code
97001   , p_component_type_code          => l_component_type_code
97002   , p_component_appl_id            => l_component_appl_id
97003   , p_amb_context_code             => l_amb_context_code
97004   , p_side                         => 'NA'
97005   );
97006 
97007 
97008    l_segment := AcctDerRule_22(
97009            p_application_id           => p_application_id
97010          , p_ae_header_id             => l_ae_header_id 
97011 , p_source_15 => p_source_15
97012 , p_source_15_meaning => p_source_15_meaning
97013 , p_source_30 => p_source_30
97014          , x_transaction_coa_id       => l_adr_transaction_coa_id
97015          , x_accounting_coa_id        => l_adr_accounting_coa_id
97016          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
97017          , x_flex_value_set_id        => l_adr_flex_value_set_id
97018          , x_value_type_code          => l_adr_value_type_code
97019          , x_value_combination_id     => l_adr_value_combination_id
97020          , x_value_segment_code       => l_adr_value_segment_code
97021          , p_side                     => 'NA'
97022          , p_override_seg_flag        => 'Y'
97023    );
97024 
97025    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
97026 
97027       xla_ae_lines_pkg.set_segment(
97028           p_to_segment_code         => 'GL_BALANCING'
97029         , p_segment_value           => l_segment
97030         , p_from_segment_code       => l_adr_value_segment_code
97031         , p_from_combination_id     => l_adr_value_combination_id
97035         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
97032         , p_value_type_code         => l_adr_value_type_code
97033         , p_transaction_coa_id      => l_adr_transaction_coa_id
97034         , p_accounting_coa_id       => l_adr_accounting_coa_id
97036         , p_flex_value_set_id       => l_adr_flex_value_set_id
97037         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
97038         , p_adr_type_code           => 'S'
97039         , p_component_type          => l_component_type
97040         , p_component_code          => l_component_code
97041         , p_component_type_code     => l_component_type_code
97042         , p_component_appl_id       => l_component_appl_id
97043         , p_amb_context_code        => l_amb_context_code
97044         , p_entity_code             => 'AP_PAYMENTS'
97045         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
97046         , p_side                    => 'NA'
97047         );
97048 
97049   END IF;
97050 
97051    l_segment := AcctDerRule_18(
97052            p_application_id           => p_application_id
97053          , p_ae_header_id             => l_ae_header_id 
97054 , p_source_15 => p_source_15
97055 , p_source_15_meaning => p_source_15_meaning
97056 , p_source_38 => p_source_38
97057 , p_source_39 => p_source_39
97058          , x_transaction_coa_id       => l_adr_transaction_coa_id
97059          , x_accounting_coa_id        => l_adr_accounting_coa_id
97060          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
97061          , x_flex_value_set_id        => l_adr_flex_value_set_id
97062          , x_value_type_code          => l_adr_value_type_code
97063          , x_value_combination_id     => l_adr_value_combination_id
97064          , x_value_segment_code       => l_adr_value_segment_code
97065          , p_side                     => 'NA'
97066          , p_override_seg_flag        => 'Y'
97067    );
97068 
97069    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
97070 
97071       xla_ae_lines_pkg.set_segment(
97072           p_to_segment_code         => 'GL_ACCOUNT'
97073         , p_segment_value           => l_segment
97074         , p_from_segment_code       => l_adr_value_segment_code
97075         , p_from_combination_id     => l_adr_value_combination_id
97076         , p_value_type_code         => l_adr_value_type_code
97077         , p_transaction_coa_id      => l_adr_transaction_coa_id
97078         , p_accounting_coa_id       => l_adr_accounting_coa_id
97079         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
97080         , p_flex_value_set_id       => l_adr_flex_value_set_id
97081         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
97082         , p_adr_type_code           => 'S'
97083         , p_component_type          => l_component_type
97084         , p_component_code          => l_component_code
97085         , p_component_type_code     => l_component_type_code
97086         , p_component_appl_id       => l_component_appl_id
97087         , p_amb_context_code        => l_amb_context_code
97088         , p_entity_code             => 'AP_PAYMENTS'
97089         , p_event_class_code        => 'FUTURE DATED PAYMENTS'
97090         , p_side                    => 'NA'
97091         );
97092 
97093   END IF;
97094 
97095    --
97096    --
97097    END IF;
97098 
97099        --
97100        -- Update the line information that should be overwritten
97101        --
97102        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
97103                                          p_header_num   => 1);
97104        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
97105 
97106        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
97107 
97108        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
97109           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
97110        END IF;
97111 
97112       --
97113       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
97114       --
97115       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
97116           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
97117       ELSE
97118           ---------------------------------------------------------------------------------------------------
97119           -- 4262811a Switch Sign
97120           ---------------------------------------------------------------------------------------------------
97121           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
97122           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
97123                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
97124           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
97125                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
97126           -- 5132302
97127           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
97128                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
97129 
97130       END IF;
97131 
97132       -- 4955764
97133       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
97137       XLA_AE_LINES_PKG.ValidateCurrentLine;
97134       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
97135 
97136 
97138       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
97139 
97140       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
97141                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
97142                ,p_balance_type_code => l_balance_type_code);
97143 
97144    END IF;
97145 
97146    -----------------------------------------------------------------------------------------
97147    -- 4262811 Multiperiod Accounting
97148    -----------------------------------------------------------------------------------------
97149      -- No MPA option is assigned.
97150 
97151 
97152 END IF;
97153 END IF;
97154 --
97155 
97156 --
97157 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
97158    trace
97159       (p_msg      => 'END of AcctLineType_167'
97160       ,p_level    => C_LEVEL_PROCEDURE
97161       ,p_module   => l_log_module);
97162 END IF;
97163 --
97164 EXCEPTION
97165   WHEN xla_exceptions_pkg.application_exception THEN
97166       RAISE;
97167   WHEN OTHERS THEN
97168        xla_exceptions_pkg.raise_message
97169            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_167');
97170 END AcctLineType_167;
97171 --
97172 
97173 ---------------------------------------
97174 --
97175 -- PRIVATE FUNCTION
97176 --         AcctLineType_168
97177 --
97178 ---------------------------------------
97179 PROCEDURE AcctLineType_168 (
97180   p_application_id        IN NUMBER
97181  ,p_event_id              IN NUMBER
97182  ,p_calculate_acctd_flag  IN VARCHAR2
97183  ,p_calculate_g_l_flag    IN VARCHAR2
97184  ,p_actual_flag           IN OUT VARCHAR2
97185  ,p_balance_type_code     OUT VARCHAR2
97186  ,p_gain_or_loss_ref      OUT VARCHAR2
97187  
97188 --Automatic Offsets Value
97189  , p_source_15            IN VARCHAR2
97190  , p_source_15_meaning    IN VARCHAR2
97191 --Invoice Distribution Account
97192  , p_source_30            IN NUMBER
97193 --Internal Realized Loss Account
97194  , p_source_38            IN NUMBER
97195 --Bank Loss Account
97196  , p_source_39            IN NUMBER
97197 --Accounting Reversal Indicator
97198  , p_source_53            IN VARCHAR2
97199 --Distribution Link Type
97200  , p_source_55            IN VARCHAR2
97201 --Invoice Identifier
97202  , p_source_58            IN NUMBER
97203 --Payables Encumbrance Upgrade Credit Account
97204  , p_source_65            IN NUMBER
97205 --Payables Encumbrance Upgrade Credit Amount
97206  , p_source_66            IN NUMBER
97207 --Invoice Currency Code
97208  , p_source_67            IN VARCHAR2
97209 --Payables Encumbrance Upgrade Credit Base Amount
97210  , p_source_68            IN NUMBER
97211 --Payables Encumbrance Upgrade Debit Account
97212  , p_source_69            IN NUMBER
97213 --Payables Encumbrance Upgrade Debit Amount
97214  , p_source_70            IN NUMBER
97215 --Payables Encumbrance Upgrade Debit Base Amount
97216  , p_source_71            IN NUMBER
97217 --Payables Encumbrance Upgrade Option
97218  , p_source_72            IN VARCHAR2
97219 --Deferred Accounting End Date
97220  , p_source_77            IN DATE
97221 --Deferred Accounting Option
97222  , p_source_78            IN VARCHAR2
97223 --Deferred Accounting Start Date
97224  , p_source_79            IN DATE
97225 --Override Accounted Amount Indicator
97226  , p_source_80            IN VARCHAR2
97227  , p_source_80_meaning    IN VARCHAR2
97228 --Invoice Supplier Identifier
97229  , p_source_81            IN NUMBER
97230 --Invoice Supplier Site Identifier
97231  , p_source_82            IN NUMBER
97232 --Third Party Type
97233  , p_source_83            IN VARCHAR2
97234 --Invoice Distribution Tax Line Identifier
97235  , p_source_86            IN NUMBER
97236 --Invoice Distribution Tax Distribution Identifier from Tax
97237  , p_source_87            IN NUMBER
97238 --Invoice Distribution Summary Tax Line Identifier
97239  , p_source_88            IN NUMBER
97240 --Payables Upgrade Credit Encumbrance Type Identifier
97241  , p_source_89            IN NUMBER
97242 --Payables Upgrade Debit Encumbrance Type Identifier
97243  , p_source_90            IN NUMBER
97244 --Business Flow Accounts Payable Application Identifier
97245  , p_source_91            IN NUMBER
97246 --Prepayment Distribution Type
97247  , p_source_125            IN VARCHAR2
97248 --Prepayment Application Distribution Identifier
97249  , p_source_127            IN NUMBER
97250 --Upgrade Encumbrance Credit Account Class
97251  , p_source_132            IN VARCHAR2
97252 --Upgrade Encumbrance Debit Account Class
97253  , p_source_133            IN VARCHAR2
97254 --Prepayment Distribution Amount
97255  , p_source_134            IN NUMBER
97256 --Identifier of the Prepayment Application Reversed
97257  , p_source_136            IN NUMBER
97258 --Invoice Exchange Date
97259  , p_source_143            IN DATE
97260 --Invoice Exchange Rate
97261  , p_source_144            IN NUMBER
97262 --Invoice Exchange Rate Type
97263  , p_source_145            IN VARCHAR2
97264 --Business Flow Prepayment Invoice Distribution Type
97265  , p_source_146            IN VARCHAR2
97266 --Business Flow Prepayment Invoice Entity Code
97267  , p_source_147            IN VARCHAR2
97268 --Business Flow Prepayment Invoice Distribution Identifier
97269  , p_source_148            IN NUMBER
97273  , p_source_155            IN NUMBER
97270 --Business Flow Prepayment Invoice Identifier
97271  , p_source_149            IN NUMBER
97272 --Prepayment/Invoice Ledger Amount Difference
97274 --Gain or Loss Indicator between Prepayment and Invoice
97275  , p_source_162            IN VARCHAR2
97276 )
97277 IS
97278 
97279 l_component_type              VARCHAR2(80);
97280 l_component_code              VARCHAR2(30);
97281 l_component_type_code         VARCHAR2(1);
97282 l_component_appl_id           INTEGER;
97283 l_amb_context_code            VARCHAR2(30);
97284 l_entity_code                 VARCHAR2(30);
97285 l_event_class_code            VARCHAR2(30);
97286 l_ae_header_id                NUMBER;
97287 l_event_type_code             VARCHAR2(30);
97288 l_line_definition_code        VARCHAR2(30);
97289 l_line_definition_owner_code  VARCHAR2(1);
97290 --
97291 -- adr variables
97292 l_segment                     VARCHAR2(30);
97293 l_ccid                        NUMBER;
97294 l_adr_transaction_coa_id      NUMBER;
97295 l_adr_accounting_coa_id       NUMBER;
97296 l_adr_flexfield_segment_code  VARCHAR2(30);
97297 l_adr_flex_value_set_id       NUMBER;
97298 l_adr_value_type_code         VARCHAR2(30);
97299 l_adr_value_combination_id    NUMBER;
97300 l_adr_value_segment_code      VARCHAR2(30);
97301 
97302 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
97303 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
97304 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
97305 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
97306 
97307 -- 4262811 Variables ------------------------------------------------------------------------------------------
97308 l_entered_amt_idx             NUMBER;
97309 l_accted_amt_idx              NUMBER;
97310 l_acc_rev_flag                VARCHAR2(1);
97311 l_accrual_line_num            NUMBER;
97312 l_tmp_amt                     NUMBER;
97313 l_acc_rev_natural_side_code   VARCHAR2(1);
97314 
97315 l_num_entries                 NUMBER;
97316 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
97317 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
97318 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
97319 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
97320 l_recog_line_1                NUMBER;
97321 l_recog_line_2                NUMBER;
97322 
97323 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
97324 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
97325 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
97326 
97327 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
97328 
97329 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
97330 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
97331 
97332 ---------------------------------------------------------------------------------------------------------------
97333 
97334 
97335 --
97336 -- bulk performance
97337 --
97338 l_balance_type_code           VARCHAR2(1);
97339 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
97340 l_log_module                  VARCHAR2(240);
97341 
97342 --
97343 -- Upgrade strategy
97344 --
97345 l_actual_upg_option           VARCHAR2(1);
97346 l_enc_upg_option           VARCHAR2(1);
97347 
97348 --
97349 BEGIN
97350 --
97351 IF g_log_enabled THEN
97352       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_168';
97353 END IF;
97354 --
97355 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
97356 
97357       trace
97358          (p_msg      => 'BEGIN of AcctLineType_168'
97359          ,p_level    => C_LEVEL_PROCEDURE
97360          ,p_module   => l_log_module);
97361 
97362 END IF;
97363 --
97364 l_component_type             := 'AMB_JLT';
97365 l_component_code             := 'AP_LOSS_PREPAY_APP';
97366 l_component_type_code        := 'S';
97367 l_component_appl_id          :=  200;
97368 l_amb_context_code           := 'DEFAULT';
97369 l_entity_code                := 'AP_INVOICES';
97370 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
97371 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
97372 l_line_definition_owner_code := 'S';
97373 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
97374 --
97375 l_balance_type_code          := 'A';
97376 l_segment                     := NULL;
97377 l_ccid                        := NULL;
97378 l_adr_transaction_coa_id      := NULL;
97379 l_adr_accounting_coa_id       := NULL;
97380 l_adr_flexfield_segment_code  := NULL;
97381 l_adr_flex_value_set_id       := NULL;
97382 l_adr_value_type_code         := NULL;
97383 l_adr_value_combination_id    := NULL;
97384 l_adr_value_segment_code      := NULL;
97385 
97386 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
97387 l_bflow_class_code           := '';    -- 4219869 Business Flow
97388 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
97389 l_budgetary_control_flag     := 'N';
97390 
97391 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
97392 l_bflow_applied_to_amt       := NULL; -- 5132302
97393 l_entered_amt_idx            := NULL;          -- 4262811
97394 l_accted_amt_idx             := NULL;          -- 4262811
97398 --
97395 l_acc_rev_flag               := NULL;          -- 4262811
97396 l_accrual_line_num           := NULL;          -- 4262811
97397 l_tmp_amt                    := NULL;          -- 4262811
97399 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
97400             (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
97401                return;
97402   END IF;
97403   
97404 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
97405     l_balance_type_code <> 'B' THEN
97406 IF (NVL(p_source_125,'
97407 ') =  'PREPAY APPL' OR 
97408 NVL(p_source_125,'
97409 ') =  'PREPAY APPL NONREC TAX' OR 
97410 NVL(p_source_125,'
97411 ') =  'PREPAY APPL REC TAX') AND 
97412 NVL(p_source_162,'
97413 ') =  'LOSS'
97414  THEN 
97415 
97416    --
97417    XLA_AE_LINES_PKG.SetNewLine;
97418 
97419    p_balance_type_code          := l_balance_type_code;
97420    -- set the flag so later we will know whether the gain loss line needs to be created
97421    
97422    IF(l_balance_type_code = 'A' ) THEN
97423      p_actual_flag :='G';
97424    END IF;
97425 
97426    --
97427    -- bulk performance
97428    --
97429    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
97430                                       p_header_num   => 0); -- 4262811
97431    --
97432    -- set accounting line options
97433    --
97434    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
97435            p_natural_side_code          => 'D'
97436          , p_gain_or_loss_flag          => 'Y'
97437          , p_gl_transfer_mode_code      => 'S'
97438          , p_acct_entry_type_code       => 'A'
97439          , p_switch_side_flag           => 'Y'
97440          , p_merge_duplicate_code       => 'A'
97441          );
97442    --
97443    l_acc_rev_natural_side_code := 'C';  -- 4262811
97444    -- 
97445    --
97446    -- set accounting line type info
97447    --
97448    xla_ae_lines_pkg.SetAcctLineType
97449       (p_component_type             => l_component_type
97450       ,p_event_type_code            => l_event_type_code
97451       ,p_line_definition_owner_code => l_line_definition_owner_code
97452       ,p_line_definition_code       => l_line_definition_code
97453       ,p_accounting_line_code       => l_component_code
97454       ,p_accounting_line_type_code  => l_component_type_code
97455       ,p_accounting_line_appl_id    => l_component_appl_id
97456       ,p_amb_context_code           => l_amb_context_code
97457       ,p_entity_code                => l_entity_code
97458       ,p_event_class_code           => l_event_class_code);
97459    --
97460    -- set accounting class
97461    --
97462    xla_ae_lines_pkg.SetAcctClass(
97463            p_accounting_class_code  => 'LOSS'
97464          , p_ae_header_id           => l_ae_header_id
97465          );
97466 
97467    --
97468    -- set rounding class
97469    --
97470    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
97471                       'LOSS';
97472 
97473    --
97474    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
97475    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
97476    --
97477    -- bulk performance
97478    --
97479    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
97480 
97481    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
97482       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
97483 
97484    -- 4955764
97485    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
97486       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
97487 
97488    -- 4458381 Public Sector Enh
97489    
97490    --
97491    -- set accounting attributes for the line type
97492    --
97493    l_entered_amt_idx := 25;
97494    l_accted_amt_idx  := 30;
97495    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
97496    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
97497    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
97498    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
97499    l_rec_acct_attrs.array_num_value(2)  := 
97500 xla_ae_sources_pkg.GetSystemSourceNum(
97501    p_source_code           => 'XLA_EVENT_APPL_ID'
97502  , p_source_type_code      => 'Y'
97503  , p_source_application_id =>  602
97504 );
97505    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
97506    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
97507    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
97508    l_rec_acct_attrs.array_char_value(4)  := 
97509 xla_ae_sources_pkg.GetSystemSourceChar(
97510    p_source_code           => 'XLA_ENTITY_CODE'
97511  , p_source_type_code      => 'Y'
97512  , p_source_application_id =>  602
97513 );
97514    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
97515    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_127);
97516    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
97520    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
97517    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
97518    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
97519    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
97521    l_rec_acct_attrs.array_char_value(8)  := p_source_146;
97522    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
97523    l_rec_acct_attrs.array_char_value(9)  := p_source_147;
97524    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
97525    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_148);
97526    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
97527    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_149);
97528    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
97529    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_127);
97530    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
97531    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
97532    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
97533    l_rec_acct_attrs.array_char_value(14)  := p_source_132;
97534    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
97535    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
97536    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
97537    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
97538    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
97539    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
97540    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
97541    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
97542    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
97543    l_rec_acct_attrs.array_char_value(19)  := p_source_133;
97544    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
97545    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
97546    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
97547    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
97548    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
97549    l_rec_acct_attrs.array_char_value(22)  := p_source_67;
97550    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
97551    l_rec_acct_attrs.array_num_value(23)  := p_source_71;
97552    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
97553    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
97554    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
97555    l_rec_acct_attrs.array_num_value(25)  := p_source_134;
97556    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
97557    l_rec_acct_attrs.array_char_value(26)  := p_source_67;
97558    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
97559    l_rec_acct_attrs.array_date_value(27)  := p_source_143;
97560    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
97561    l_rec_acct_attrs.array_num_value(28)  := p_source_144;
97562    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
97563    l_rec_acct_attrs.array_char_value(29)  := p_source_145;
97564    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
97565    l_rec_acct_attrs.array_num_value(30)  := p_source_155;
97566    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
97567    l_rec_acct_attrs.array_date_value(31)  := p_source_77;
97568    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
97569    l_rec_acct_attrs.array_char_value(32)  := p_source_78;
97570    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
97571    l_rec_acct_attrs.array_date_value(33)  := p_source_79;
97572    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
97573    l_rec_acct_attrs.array_char_value(34)  := p_source_80;
97574    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
97575    l_rec_acct_attrs.array_num_value(35)  := p_source_81;
97576    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
97577    l_rec_acct_attrs.array_num_value(36)  := p_source_82;
97578    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
97579    l_rec_acct_attrs.array_char_value(37)  := p_source_83;
97580    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
97581    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_136);
97582    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
97583    l_rec_acct_attrs.array_char_value(39)  := p_source_55;
97584    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
97585    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
97586    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
97587    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
97588    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
97589    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
97590    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
97591    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
97592    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
97593    l_rec_acct_attrs.array_num_value(44)  := p_source_90;
97594 
97595    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
97596    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
97597 
97598    ---------------------------------------------------------------------------------------------------------------
97602 
97599    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
97600    ---------------------------------------------------------------------------------------------------------------
97601    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
97603    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
97604    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
97605 
97606    IF xla_accounting_cache_pkg.GetValueChar
97607          (p_source_code         => 'LEDGER_CATEGORY_CODE'
97608          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
97609    AND l_bflow_method_code = 'PRIOR_ENTRY'
97610 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
97611    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
97612          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
97613        )
97614    THEN
97615          xla_ae_lines_pkg.BflowUpgEntry
97616            (p_business_method_code    => l_bflow_method_code
97617            ,p_business_class_code     => l_bflow_class_code
97618            ,p_balance_type            => l_balance_type_code);
97619    ELSE
97620       NULL;
97621 -- No business flow processing for business flow method of NONE.
97622    END IF;
97623 
97624    --
97625    -- call analytical criteria
97626    --
97627    
97628    --
97629    -- call description
97630    --
97631    -- No description or it is inherited.
97632    --
97633    -- call ADRs
97634    -- Bug 4922099
97635    --
97636    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
97637         (NVL(l_actual_upg_option, 'N') = 'O') OR
97638         (NVL(l_enc_upg_option, 'N') = 'O')
97639       )
97640    THEN
97641    NULL;
97642    --
97643    --
97644    
97645   l_ccid := AcctDerRule_39(
97646            p_application_id           => p_application_id
97647          , p_ae_header_id             => l_ae_header_id 
97648 , p_source_15 => p_source_15
97649 , p_source_15_meaning => p_source_15_meaning
97650 , p_source_30 => p_source_30
97651 , p_source_38 => p_source_38
97652 , p_source_39 => p_source_39
97653          , x_transaction_coa_id       => l_adr_transaction_coa_id
97654          , x_accounting_coa_id        => l_adr_accounting_coa_id
97655          , x_value_type_code          => l_adr_value_type_code
97656          , p_side                     => 'NA'
97657    );
97658 
97659    xla_ae_lines_pkg.set_ccid(
97660     p_code_combination_id          => l_ccid
97661   , p_value_type_code              => l_adr_value_type_code
97662   , p_transaction_coa_id           => l_adr_transaction_coa_id
97663   , p_accounting_coa_id            => l_adr_accounting_coa_id
97664   , p_adr_code                     => 'AP_REAL_LOSS'
97665   , p_adr_type_code                => 'S'
97666   , p_component_type               => l_component_type
97667   , p_component_code               => l_component_code
97668   , p_component_type_code          => l_component_type_code
97669   , p_component_appl_id            => l_component_appl_id
97670   , p_amb_context_code             => l_amb_context_code
97671   , p_side                         => 'NA'
97672   );
97673 
97674 
97675    l_segment := AcctDerRule_22(
97676            p_application_id           => p_application_id
97677          , p_ae_header_id             => l_ae_header_id 
97678 , p_source_15 => p_source_15
97679 , p_source_15_meaning => p_source_15_meaning
97680 , p_source_30 => p_source_30
97681          , x_transaction_coa_id       => l_adr_transaction_coa_id
97682          , x_accounting_coa_id        => l_adr_accounting_coa_id
97683          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
97684          , x_flex_value_set_id        => l_adr_flex_value_set_id
97685          , x_value_type_code          => l_adr_value_type_code
97686          , x_value_combination_id     => l_adr_value_combination_id
97687          , x_value_segment_code       => l_adr_value_segment_code
97688          , p_side                     => 'NA'
97689          , p_override_seg_flag        => 'Y'
97690    );
97691 
97692    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
97693 
97694       xla_ae_lines_pkg.set_segment(
97695           p_to_segment_code         => 'GL_BALANCING'
97696         , p_segment_value           => l_segment
97697         , p_from_segment_code       => l_adr_value_segment_code
97698         , p_from_combination_id     => l_adr_value_combination_id
97699         , p_value_type_code         => l_adr_value_type_code
97700         , p_transaction_coa_id      => l_adr_transaction_coa_id
97701         , p_accounting_coa_id       => l_adr_accounting_coa_id
97702         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
97703         , p_flex_value_set_id       => l_adr_flex_value_set_id
97704         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
97705         , p_adr_type_code           => 'S'
97706         , p_component_type          => l_component_type
97707         , p_component_code          => l_component_code
97708         , p_component_type_code     => l_component_type_code
97709         , p_component_appl_id       => l_component_appl_id
97710         , p_amb_context_code        => l_amb_context_code
97711         , p_entity_code             => 'AP_INVOICES'
97712         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
97713         , p_side                    => 'NA'
97714         );
97718    l_segment := AcctDerRule_18(
97715 
97716   END IF;
97717 
97719            p_application_id           => p_application_id
97720          , p_ae_header_id             => l_ae_header_id 
97721 , p_source_15 => p_source_15
97722 , p_source_15_meaning => p_source_15_meaning
97723 , p_source_38 => p_source_38
97724 , p_source_39 => p_source_39
97725          , x_transaction_coa_id       => l_adr_transaction_coa_id
97726          , x_accounting_coa_id        => l_adr_accounting_coa_id
97727          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
97728          , x_flex_value_set_id        => l_adr_flex_value_set_id
97729          , x_value_type_code          => l_adr_value_type_code
97730          , x_value_combination_id     => l_adr_value_combination_id
97731          , x_value_segment_code       => l_adr_value_segment_code
97732          , p_side                     => 'NA'
97733          , p_override_seg_flag        => 'Y'
97734    );
97735 
97736    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
97737 
97738       xla_ae_lines_pkg.set_segment(
97739           p_to_segment_code         => 'GL_ACCOUNT'
97740         , p_segment_value           => l_segment
97741         , p_from_segment_code       => l_adr_value_segment_code
97742         , p_from_combination_id     => l_adr_value_combination_id
97743         , p_value_type_code         => l_adr_value_type_code
97744         , p_transaction_coa_id      => l_adr_transaction_coa_id
97745         , p_accounting_coa_id       => l_adr_accounting_coa_id
97746         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
97747         , p_flex_value_set_id       => l_adr_flex_value_set_id
97748         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
97749         , p_adr_type_code           => 'S'
97750         , p_component_type          => l_component_type
97751         , p_component_code          => l_component_code
97752         , p_component_type_code     => l_component_type_code
97753         , p_component_appl_id       => l_component_appl_id
97754         , p_amb_context_code        => l_amb_context_code
97755         , p_entity_code             => 'AP_INVOICES'
97756         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
97757         , p_side                    => 'NA'
97758         );
97759 
97760   END IF;
97761 
97762    --
97763    --
97764    END IF;
97765    --
97766    -- Bug 4922099
97767    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
97768           (NVL(l_enc_upg_option, 'N') = 'O')
97769         ) AND
97770         (l_bflow_method_code = 'PRIOR_ENTRY')
97771       )
97772    THEN
97773       IF
97774       --
97775       1 = 2
97776       --
97777       THEN
97778       xla_accounting_err_pkg.build_message
97779                                     (p_appli_s_name            => 'XLA'
97780                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
97781                                     ,p_token_1                 => 'LINE_NUMBER'
97782                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
97783                                     ,p_token_2                 => 'LINE_TYPE_NAME'
97784                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
97785                                                                              l_component_type
97786                                                                             ,l_component_code
97787                                                                             ,l_component_type_code
97788                                                                             ,l_component_appl_id
97789                                                                             ,l_amb_context_code
97790                                                                             ,l_entity_code
97791                                                                             ,l_event_class_code
97792                                                                            )
97793                                     ,p_token_3                 => 'OWNER'
97794                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
97795                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
97796                                                                           ,p_lookup_code    => l_component_type_code
97797                                                                          )
97798                                     ,p_token_4                 => 'PRODUCT_NAME'
97799                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
97800                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
97801                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
97802                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
97803                                     ,p_ae_header_id            =>  NULL
97804                                        );
97805 
97806         IF (C_LEVEL_ERROR>= g_log_level) THEN
97807                  trace
97808                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
97809                       ,p_level    => C_LEVEL_ERROR
97810                       ,p_module   => l_log_module);
97811         END IF;
97812       END IF;
97813    END IF;
97814    --
97815    --
97816    ------------------------------------------------------------------------------------------------
97820    ------------------------------------------------------------------------------------------------
97817    -- 4219869 Business Flow
97818    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
97819    -- Prior Entry.  Currently, the following code is always generated.
97821    XLA_AE_LINES_PKG.ValidateCurrentLine;
97822 
97823    ------------------------------------------------------------------------------------
97824    -- 4219869 Business Flow
97825    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
97826    ------------------------------------------------------------------------------------
97827    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
97828 
97829    ----------------------------------------------------------------------------------
97830    -- 4219869 Business Flow
97831    -- Update journal entry status -- Need to generate this within IF <condition>
97832    ----------------------------------------------------------------------------------
97833    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
97834          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
97835          ,p_balance_type_code => l_balance_type_code
97836          );
97837 
97838    -------------------------------------------------------------------------------------------
97839    -- 4262811 - Generate the Accrual Reversal lines
97840    -------------------------------------------------------------------------------------------
97841    BEGIN
97842       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
97843                               (g_array_event(p_event_id).array_value_num('header_index'));
97844       IF l_acc_rev_flag IS NULL THEN
97845          l_acc_rev_flag := 'N';
97846       END IF;
97847    EXCEPTION
97848       WHEN OTHERS THEN
97849          l_acc_rev_flag := 'N';
97850    END;
97851    --
97852    IF (l_acc_rev_flag = 'Y') THEN
97853 
97854        -- 4645092  ------------------------------------------------------------------------------
97855        -- To allow MPA report to determine if it should generate report process
97856        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
97857        ------------------------------------------------------------------------------------------
97858 
97859        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
97860        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
97861    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
97862    -- call ADRs
97863    -- Bug 4922099
97864    --
97865    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
97866         (NVL(l_actual_upg_option, 'N') = 'O') OR
97867         (NVL(l_enc_upg_option, 'N') = 'O')
97868       )
97869    THEN
97870    NULL;
97871    --
97872    --
97873    
97874   l_ccid := AcctDerRule_39(
97875            p_application_id           => p_application_id
97876          , p_ae_header_id             => l_ae_header_id 
97877 , p_source_15 => p_source_15
97878 , p_source_15_meaning => p_source_15_meaning
97879 , p_source_30 => p_source_30
97880 , p_source_38 => p_source_38
97881 , p_source_39 => p_source_39
97882          , x_transaction_coa_id       => l_adr_transaction_coa_id
97883          , x_accounting_coa_id        => l_adr_accounting_coa_id
97884          , x_value_type_code          => l_adr_value_type_code
97885          , p_side                     => 'NA'
97886    );
97887 
97888    xla_ae_lines_pkg.set_ccid(
97889     p_code_combination_id          => l_ccid
97890   , p_value_type_code              => l_adr_value_type_code
97891   , p_transaction_coa_id           => l_adr_transaction_coa_id
97892   , p_accounting_coa_id            => l_adr_accounting_coa_id
97893   , p_adr_code                     => 'AP_REAL_LOSS'
97894   , p_adr_type_code                => 'S'
97895   , p_component_type               => l_component_type
97896   , p_component_code               => l_component_code
97897   , p_component_type_code          => l_component_type_code
97898   , p_component_appl_id            => l_component_appl_id
97899   , p_amb_context_code             => l_amb_context_code
97900   , p_side                         => 'NA'
97901   );
97902 
97903 
97904    l_segment := AcctDerRule_22(
97905            p_application_id           => p_application_id
97906          , p_ae_header_id             => l_ae_header_id 
97907 , p_source_15 => p_source_15
97908 , p_source_15_meaning => p_source_15_meaning
97909 , p_source_30 => p_source_30
97910          , x_transaction_coa_id       => l_adr_transaction_coa_id
97911          , x_accounting_coa_id        => l_adr_accounting_coa_id
97912          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
97913          , x_flex_value_set_id        => l_adr_flex_value_set_id
97914          , x_value_type_code          => l_adr_value_type_code
97915          , x_value_combination_id     => l_adr_value_combination_id
97916          , x_value_segment_code       => l_adr_value_segment_code
97917          , p_side                     => 'NA'
97918          , p_override_seg_flag        => 'Y'
97919    );
97920 
97921    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
97922 
97923       xla_ae_lines_pkg.set_segment(
97924           p_to_segment_code         => 'GL_BALANCING'
97925         , p_segment_value           => l_segment
97926         , p_from_segment_code       => l_adr_value_segment_code
97927         , p_from_combination_id     => l_adr_value_combination_id
97931         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
97928         , p_value_type_code         => l_adr_value_type_code
97929         , p_transaction_coa_id      => l_adr_transaction_coa_id
97930         , p_accounting_coa_id       => l_adr_accounting_coa_id
97932         , p_flex_value_set_id       => l_adr_flex_value_set_id
97933         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
97934         , p_adr_type_code           => 'S'
97935         , p_component_type          => l_component_type
97936         , p_component_code          => l_component_code
97937         , p_component_type_code     => l_component_type_code
97938         , p_component_appl_id       => l_component_appl_id
97939         , p_amb_context_code        => l_amb_context_code
97940         , p_entity_code             => 'AP_INVOICES'
97941         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
97942         , p_side                    => 'NA'
97943         );
97944 
97945   END IF;
97946 
97947    l_segment := AcctDerRule_18(
97948            p_application_id           => p_application_id
97949          , p_ae_header_id             => l_ae_header_id 
97950 , p_source_15 => p_source_15
97951 , p_source_15_meaning => p_source_15_meaning
97952 , p_source_38 => p_source_38
97953 , p_source_39 => p_source_39
97954          , x_transaction_coa_id       => l_adr_transaction_coa_id
97955          , x_accounting_coa_id        => l_adr_accounting_coa_id
97956          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
97957          , x_flex_value_set_id        => l_adr_flex_value_set_id
97958          , x_value_type_code          => l_adr_value_type_code
97959          , x_value_combination_id     => l_adr_value_combination_id
97960          , x_value_segment_code       => l_adr_value_segment_code
97961          , p_side                     => 'NA'
97962          , p_override_seg_flag        => 'Y'
97963    );
97964 
97965    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
97966 
97967       xla_ae_lines_pkg.set_segment(
97968           p_to_segment_code         => 'GL_ACCOUNT'
97969         , p_segment_value           => l_segment
97970         , p_from_segment_code       => l_adr_value_segment_code
97971         , p_from_combination_id     => l_adr_value_combination_id
97972         , p_value_type_code         => l_adr_value_type_code
97973         , p_transaction_coa_id      => l_adr_transaction_coa_id
97974         , p_accounting_coa_id       => l_adr_accounting_coa_id
97975         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
97976         , p_flex_value_set_id       => l_adr_flex_value_set_id
97977         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
97978         , p_adr_type_code           => 'S'
97979         , p_component_type          => l_component_type
97980         , p_component_code          => l_component_code
97981         , p_component_type_code     => l_component_type_code
97982         , p_component_appl_id       => l_component_appl_id
97983         , p_amb_context_code        => l_amb_context_code
97984         , p_entity_code             => 'AP_INVOICES'
97985         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
97986         , p_side                    => 'NA'
97987         );
97988 
97989   END IF;
97990 
97991    --
97992    --
97993    END IF;
97994 
97995        --
97996        -- Update the line information that should be overwritten
97997        --
97998        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
97999                                          p_header_num   => 1);
98000        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
98001 
98002        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
98003 
98004        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
98005           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
98006        END IF;
98007 
98008       --
98009       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
98010       --
98011       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
98012           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
98013       ELSE
98014           ---------------------------------------------------------------------------------------------------
98015           -- 4262811a Switch Sign
98016           ---------------------------------------------------------------------------------------------------
98017           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
98018           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
98019                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98020           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
98021                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98022           -- 5132302
98023           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
98024                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98025 
98026       END IF;
98027 
98028       -- 4955764
98029       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
98033       XLA_AE_LINES_PKG.ValidateCurrentLine;
98030       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
98031 
98032 
98034       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
98035 
98036       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
98037                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
98038                ,p_balance_type_code => l_balance_type_code);
98039 
98040    END IF;
98041 
98042    -----------------------------------------------------------------------------------------
98043    -- 4262811 Multiperiod Accounting
98044    -----------------------------------------------------------------------------------------
98045      -- No MPA option is assigned.
98046 
98047 
98048 END IF;
98049 END IF;
98050 --
98051 
98052 --
98053 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
98054    trace
98055       (p_msg      => 'END of AcctLineType_168'
98056       ,p_level    => C_LEVEL_PROCEDURE
98057       ,p_module   => l_log_module);
98058 END IF;
98059 --
98060 EXCEPTION
98061   WHEN xla_exceptions_pkg.application_exception THEN
98062       RAISE;
98063   WHEN OTHERS THEN
98064        xla_exceptions_pkg.raise_message
98065            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_168');
98066 END AcctLineType_168;
98067 --
98068 
98069 ---------------------------------------
98070 --
98071 -- PRIVATE FUNCTION
98072 --         AcctLineType_169
98073 --
98074 ---------------------------------------
98075 PROCEDURE AcctLineType_169 (
98076   p_application_id        IN NUMBER
98077  ,p_event_id              IN NUMBER
98078  ,p_calculate_acctd_flag  IN VARCHAR2
98079  ,p_calculate_g_l_flag    IN VARCHAR2
98080  ,p_actual_flag           IN OUT VARCHAR2
98081  ,p_balance_type_code     OUT VARCHAR2
98082  ,p_gain_or_loss_ref      OUT VARCHAR2
98083  
98084 --Payment Currency Code
98085  , p_source_13            IN VARCHAR2
98086 --Automatic Offsets Value
98087  , p_source_15            IN VARCHAR2
98088  , p_source_15_meaning    IN VARCHAR2
98089 --Invoice Distribution Account
98090  , p_source_30            IN NUMBER
98091 --Internal Realized Loss Account
98092  , p_source_38            IN NUMBER
98093 --Bank Loss Account
98094  , p_source_39            IN NUMBER
98095 --Accounting Reversal Indicator
98096  , p_source_53            IN VARCHAR2
98097 --Distribution Link Type
98098  , p_source_55            IN VARCHAR2
98099 --Override Accounted Amount Indicator
98100  , p_source_80            IN VARCHAR2
98101  , p_source_80_meaning    IN VARCHAR2
98102 --Third Party Type
98103  , p_source_83            IN VARCHAR2
98104 --Invoice Distribution Tax Line Identifier
98105  , p_source_86            IN NUMBER
98106 --Invoice Distribution Tax Distribution Identifier from Tax
98107  , p_source_87            IN NUMBER
98108 --Invoice Distribution Summary Tax Line Identifier
98109  , p_source_88            IN NUMBER
98110 --Business Flow Accounts Payable Application Identifier
98111  , p_source_91            IN NUMBER
98112 --Business Flow Invoice Distribution Type
98113  , p_source_92            IN VARCHAR2
98114 --Business Flow Invoice Entity Code
98115  , p_source_93            IN VARCHAR2
98116 --Business Flow Invoice Distribution Identifier
98117  , p_source_94            IN NUMBER
98118 --Business Flow Invoice Identifier
98119  , p_source_95            IN NUMBER
98120 --When to Account for Payment Option
98121  , p_source_97            IN VARCHAR2
98122 --Payment Distribution Type
98123  , p_source_98            IN VARCHAR2
98124  , p_source_98_meaning    IN VARCHAR2
98125 --Payment Distribution Amount
98126  , p_source_99            IN NUMBER
98127 --Payment Distribution Identifier
98128  , p_source_104            IN NUMBER
98129 --Payment Supplier Identifier
98130  , p_source_110            IN NUMBER
98131 --Payment Supplier Site Identifier
98132  , p_source_111            IN NUMBER
98133 --Payment Distribution Reversed Identifier
98134  , p_source_112            IN NUMBER
98135 --Payment Exchange Date
98136  , p_source_117            IN DATE
98137 --Payment Exchange Rate
98138  , p_source_118            IN NUMBER
98139 --Payment Exchange Rate Type
98140  , p_source_119            IN VARCHAR2
98141 --Payment Type
98142  , p_source_122            IN VARCHAR2
98143  , p_source_122_meaning    IN VARCHAR2
98144 --Invoice/Payment Ledger Amount Difference
98145  , p_source_153            IN NUMBER
98146 --Gain or Loss Indicator between Invoice and Payment
98147  , p_source_158            IN VARCHAR2
98148 )
98149 IS
98150 
98151 l_component_type              VARCHAR2(80);
98152 l_component_code              VARCHAR2(30);
98153 l_component_type_code         VARCHAR2(1);
98154 l_component_appl_id           INTEGER;
98155 l_amb_context_code            VARCHAR2(30);
98156 l_entity_code                 VARCHAR2(30);
98157 l_event_class_code            VARCHAR2(30);
98158 l_ae_header_id                NUMBER;
98159 l_event_type_code             VARCHAR2(30);
98160 l_line_definition_code        VARCHAR2(30);
98161 l_line_definition_owner_code  VARCHAR2(1);
98162 --
98163 -- adr variables
98164 l_segment                     VARCHAR2(30);
98165 l_ccid                        NUMBER;
98166 l_adr_transaction_coa_id      NUMBER;
98167 l_adr_accounting_coa_id       NUMBER;
98168 l_adr_flexfield_segment_code  VARCHAR2(30);
98169 l_adr_flex_value_set_id       NUMBER;
98173 
98170 l_adr_value_type_code         VARCHAR2(30);
98171 l_adr_value_combination_id    NUMBER;
98172 l_adr_value_segment_code      VARCHAR2(30);
98174 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
98175 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
98176 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
98177 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
98178 
98179 -- 4262811 Variables ------------------------------------------------------------------------------------------
98180 l_entered_amt_idx             NUMBER;
98181 l_accted_amt_idx              NUMBER;
98182 l_acc_rev_flag                VARCHAR2(1);
98183 l_accrual_line_num            NUMBER;
98184 l_tmp_amt                     NUMBER;
98185 l_acc_rev_natural_side_code   VARCHAR2(1);
98186 
98187 l_num_entries                 NUMBER;
98188 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
98189 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
98190 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
98191 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
98192 l_recog_line_1                NUMBER;
98193 l_recog_line_2                NUMBER;
98194 
98195 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
98196 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
98197 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
98198 
98199 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
98200 
98201 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
98202 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
98203 
98204 ---------------------------------------------------------------------------------------------------------------
98205 
98206 
98207 --
98208 -- bulk performance
98209 --
98210 l_balance_type_code           VARCHAR2(1);
98211 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
98212 l_log_module                  VARCHAR2(240);
98213 
98214 --
98215 -- Upgrade strategy
98216 --
98217 l_actual_upg_option           VARCHAR2(1);
98218 l_enc_upg_option           VARCHAR2(1);
98219 
98220 --
98221 BEGIN
98222 --
98223 IF g_log_enabled THEN
98224       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_169';
98225 END IF;
98226 --
98227 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
98228 
98229       trace
98230          (p_msg      => 'BEGIN of AcctLineType_169'
98231          ,p_level    => C_LEVEL_PROCEDURE
98232          ,p_module   => l_log_module);
98233 
98234 END IF;
98235 --
98236 l_component_type             := 'AMB_JLT';
98237 l_component_code             := 'AP_LOSS_REF';
98238 l_component_type_code        := 'S';
98239 l_component_appl_id          :=  200;
98240 l_amb_context_code           := 'DEFAULT';
98241 l_entity_code                := 'AP_PAYMENTS';
98242 l_event_class_code           := 'REFUNDS';
98243 l_event_type_code            := 'REFUNDS_ALL';
98244 l_line_definition_owner_code := 'S';
98245 l_line_definition_code       := 'ACCRUAL_REFUNDS_ALL';
98246 --
98247 l_balance_type_code          := 'A';
98248 l_segment                     := NULL;
98249 l_ccid                        := NULL;
98250 l_adr_transaction_coa_id      := NULL;
98251 l_adr_accounting_coa_id       := NULL;
98252 l_adr_flexfield_segment_code  := NULL;
98253 l_adr_flex_value_set_id       := NULL;
98254 l_adr_value_type_code         := NULL;
98255 l_adr_value_combination_id    := NULL;
98256 l_adr_value_segment_code      := NULL;
98257 
98258 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
98259 l_bflow_class_code           := '';    -- 4219869 Business Flow
98260 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
98261 l_budgetary_control_flag     := 'N';
98262 
98263 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
98264 l_bflow_applied_to_amt       := NULL; -- 5132302
98265 l_entered_amt_idx            := NULL;          -- 4262811
98266 l_accted_amt_idx             := NULL;          -- 4262811
98267 l_acc_rev_flag               := NULL;          -- 4262811
98268 l_accrual_line_num           := NULL;          -- 4262811
98269 l_tmp_amt                    := NULL;          -- 4262811
98270 --
98271 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
98272             (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
98273                return;
98274   END IF;
98275   
98276 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
98277     l_balance_type_code <> 'B' THEN
98278 IF (NVL(p_source_97,'
98279 ') <>  'CLEAR_CLEAR' AND 
98280 NVL(p_source_97,'
98281 ') <>  'ALWAYS_CLEAR') AND 
98282 NVL(p_source_158,'
98283 ') =  'LOSS' AND 
98284 NVL(p_source_122,'
98285 ') =  'R' AND 
98286 NVL(p_source_98,'
98287 ') <>  'EXCHANGE RATE VARIANCE' AND 
98288 NVL(p_source_98,'
98289 ') <>  'TAX EXCHANGE RATE VARIANCE' AND 
98290 NVL(p_source_98,'
98291 ') <>  'BANK CHARGE' AND 
98292 NVL(p_source_98,'
98293 ') <>  'BANK ERROR'
98294  THEN 
98295 
98296    --
98297    XLA_AE_LINES_PKG.SetNewLine;
98298 
98302    IF(l_balance_type_code = 'A' ) THEN
98299    p_balance_type_code          := l_balance_type_code;
98300    -- set the flag so later we will know whether the gain loss line needs to be created
98301    
98303      p_actual_flag :='G';
98304    END IF;
98305 
98306    --
98307    -- bulk performance
98308    --
98309    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
98310                                       p_header_num   => 0); -- 4262811
98311    --
98312    -- set accounting line options
98313    --
98314    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
98315            p_natural_side_code          => 'C'
98316          , p_gain_or_loss_flag          => 'Y'
98317          , p_gl_transfer_mode_code      => 'S'
98318          , p_acct_entry_type_code       => 'A'
98319          , p_switch_side_flag           => 'Y'
98320          , p_merge_duplicate_code       => 'A'
98321          );
98322    --
98323    l_acc_rev_natural_side_code := 'D';  -- 4262811
98324    -- 
98325    --
98326    -- set accounting line type info
98327    --
98328    xla_ae_lines_pkg.SetAcctLineType
98329       (p_component_type             => l_component_type
98330       ,p_event_type_code            => l_event_type_code
98331       ,p_line_definition_owner_code => l_line_definition_owner_code
98332       ,p_line_definition_code       => l_line_definition_code
98333       ,p_accounting_line_code       => l_component_code
98334       ,p_accounting_line_type_code  => l_component_type_code
98335       ,p_accounting_line_appl_id    => l_component_appl_id
98336       ,p_amb_context_code           => l_amb_context_code
98337       ,p_entity_code                => l_entity_code
98338       ,p_event_class_code           => l_event_class_code);
98339    --
98340    -- set accounting class
98341    --
98342    xla_ae_lines_pkg.SetAcctClass(
98343            p_accounting_class_code  => 'LOSS'
98344          , p_ae_header_id           => l_ae_header_id
98345          );
98346 
98347    --
98348    -- set rounding class
98349    --
98350    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
98351                       'LOSS';
98352 
98353    --
98354    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
98355    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
98356    --
98357    -- bulk performance
98358    --
98359    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
98360 
98361    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
98362       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
98363 
98364    -- 4955764
98365    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
98366       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
98367 
98368    -- 4458381 Public Sector Enh
98369    
98370    --
98371    -- set accounting attributes for the line type
98372    --
98373    l_entered_amt_idx := 9;
98374    l_accted_amt_idx  := 14;
98375    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
98376    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
98377    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
98378    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_APPLICATION_ID';
98379    l_rec_acct_attrs.array_num_value(2)  := p_source_91;
98380    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_DISTRIBUTION_TYPE';
98381    l_rec_acct_attrs.array_char_value(3)  := p_source_92;
98382    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_ENTITY_CODE';
98383    l_rec_acct_attrs.array_char_value(4)  := p_source_93;
98384    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_FIRST_DIST_ID';
98385    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_94);
98386    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
98387    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_95);
98388    l_rec_acct_attrs.array_acct_attr_code(7) := 'DISTRIBUTION_IDENTIFIER_1';
98389    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_104);
98390    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_TYPE';
98391    l_rec_acct_attrs.array_char_value(8)  := p_source_55;
98392    l_rec_acct_attrs.array_acct_attr_code(9) := 'ENTERED_CURRENCY_AMOUNT';
98393    l_rec_acct_attrs.array_num_value(9)  := p_source_99;
98394    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_CODE';
98395    l_rec_acct_attrs.array_char_value(10)  := p_source_13;
98396    l_rec_acct_attrs.array_acct_attr_code(11) := 'EXCHANGE_DATE';
98397    l_rec_acct_attrs.array_date_value(11)  := p_source_117;
98398    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_RATE';
98399    l_rec_acct_attrs.array_num_value(12)  := p_source_118;
98400    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE_TYPE';
98401    l_rec_acct_attrs.array_char_value(13)  := p_source_119;
98402    l_rec_acct_attrs.array_acct_attr_code(14) := 'LEDGER_AMOUNT';
98403    l_rec_acct_attrs.array_num_value(14)  := p_source_153;
98404    l_rec_acct_attrs.array_acct_attr_code(15) := 'OVERRIDE_ACCTD_AMT_FLAG';
98405    l_rec_acct_attrs.array_char_value(15)  := p_source_80;
98406    l_rec_acct_attrs.array_acct_attr_code(16) := 'PARTY_ID';
98407    l_rec_acct_attrs.array_num_value(16)  := p_source_110;
98408    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_SITE_ID';
98412    l_rec_acct_attrs.array_acct_attr_code(19) := 'REVERSED_DISTRIBUTION_ID1';
98409    l_rec_acct_attrs.array_num_value(17)  := p_source_111;
98410    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_TYPE';
98411    l_rec_acct_attrs.array_char_value(18)  := p_source_83;
98413    l_rec_acct_attrs.array_num_value(19)  :=  to_char(p_source_112);
98414    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_TYPE';
98415    l_rec_acct_attrs.array_char_value(20)  := p_source_55;
98416    l_rec_acct_attrs.array_acct_attr_code(21) := 'TAX_LINE_REF_ID';
98417    l_rec_acct_attrs.array_num_value(21)  := p_source_86;
98418    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_REC_NREC_DIST_REF_ID';
98419    l_rec_acct_attrs.array_num_value(22)  := p_source_87;
98420    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_SUMMARY_LINE_REF_ID';
98421    l_rec_acct_attrs.array_num_value(23)  := p_source_88;
98422 
98423    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
98424    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
98425 
98426    ---------------------------------------------------------------------------------------------------------------
98427    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
98428    ---------------------------------------------------------------------------------------------------------------
98429    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
98430 
98431    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
98432    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
98433 
98434    IF xla_accounting_cache_pkg.GetValueChar
98435          (p_source_code         => 'LEDGER_CATEGORY_CODE'
98436          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
98437    AND l_bflow_method_code = 'PRIOR_ENTRY'
98438 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
98439    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
98440          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
98441        )
98442    THEN
98443          xla_ae_lines_pkg.BflowUpgEntry
98444            (p_business_method_code    => l_bflow_method_code
98445            ,p_business_class_code     => l_bflow_class_code
98446            ,p_balance_type            => l_balance_type_code);
98447    ELSE
98448       NULL;
98449 -- No business flow processing for business flow method of NONE.
98450    END IF;
98451 
98452    --
98453    -- call analytical criteria
98454    --
98455    
98456    --
98457    -- call description
98458    --
98459    -- No description or it is inherited.
98460    --
98461    -- call ADRs
98462    -- Bug 4922099
98463    --
98464    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
98465         (NVL(l_actual_upg_option, 'N') = 'O') OR
98466         (NVL(l_enc_upg_option, 'N') = 'O')
98467       )
98468    THEN
98469    NULL;
98470    --
98471    --
98472    
98473   l_ccid := AcctDerRule_39(
98474            p_application_id           => p_application_id
98475          , p_ae_header_id             => l_ae_header_id 
98476 , p_source_15 => p_source_15
98477 , p_source_15_meaning => p_source_15_meaning
98478 , p_source_30 => p_source_30
98479 , p_source_38 => p_source_38
98480 , p_source_39 => p_source_39
98481          , x_transaction_coa_id       => l_adr_transaction_coa_id
98482          , x_accounting_coa_id        => l_adr_accounting_coa_id
98483          , x_value_type_code          => l_adr_value_type_code
98484          , p_side                     => 'NA'
98485    );
98486 
98487    xla_ae_lines_pkg.set_ccid(
98488     p_code_combination_id          => l_ccid
98489   , p_value_type_code              => l_adr_value_type_code
98490   , p_transaction_coa_id           => l_adr_transaction_coa_id
98491   , p_accounting_coa_id            => l_adr_accounting_coa_id
98492   , p_adr_code                     => 'AP_REAL_LOSS'
98493   , p_adr_type_code                => 'S'
98494   , p_component_type               => l_component_type
98495   , p_component_code               => l_component_code
98496   , p_component_type_code          => l_component_type_code
98497   , p_component_appl_id            => l_component_appl_id
98498   , p_amb_context_code             => l_amb_context_code
98499   , p_side                         => 'NA'
98500   );
98501 
98502 
98503    l_segment := AcctDerRule_22(
98504            p_application_id           => p_application_id
98505          , p_ae_header_id             => l_ae_header_id 
98506 , p_source_15 => p_source_15
98507 , p_source_15_meaning => p_source_15_meaning
98508 , p_source_30 => p_source_30
98509          , x_transaction_coa_id       => l_adr_transaction_coa_id
98510          , x_accounting_coa_id        => l_adr_accounting_coa_id
98511          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
98512          , x_flex_value_set_id        => l_adr_flex_value_set_id
98513          , x_value_type_code          => l_adr_value_type_code
98514          , x_value_combination_id     => l_adr_value_combination_id
98515          , x_value_segment_code       => l_adr_value_segment_code
98516          , p_side                     => 'NA'
98517          , p_override_seg_flag        => 'Y'
98518    );
98519 
98520    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
98521 
98522       xla_ae_lines_pkg.set_segment(
98526         , p_from_combination_id     => l_adr_value_combination_id
98523           p_to_segment_code         => 'GL_BALANCING'
98524         , p_segment_value           => l_segment
98525         , p_from_segment_code       => l_adr_value_segment_code
98527         , p_value_type_code         => l_adr_value_type_code
98528         , p_transaction_coa_id      => l_adr_transaction_coa_id
98529         , p_accounting_coa_id       => l_adr_accounting_coa_id
98530         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
98531         , p_flex_value_set_id       => l_adr_flex_value_set_id
98532         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
98533         , p_adr_type_code           => 'S'
98534         , p_component_type          => l_component_type
98535         , p_component_code          => l_component_code
98536         , p_component_type_code     => l_component_type_code
98537         , p_component_appl_id       => l_component_appl_id
98538         , p_amb_context_code        => l_amb_context_code
98539         , p_entity_code             => 'AP_PAYMENTS'
98540         , p_event_class_code        => 'REFUNDS'
98541         , p_side                    => 'NA'
98542         );
98543 
98544   END IF;
98545 
98546    l_segment := AcctDerRule_18(
98547            p_application_id           => p_application_id
98548          , p_ae_header_id             => l_ae_header_id 
98549 , p_source_15 => p_source_15
98550 , p_source_15_meaning => p_source_15_meaning
98551 , p_source_38 => p_source_38
98552 , p_source_39 => p_source_39
98553          , x_transaction_coa_id       => l_adr_transaction_coa_id
98554          , x_accounting_coa_id        => l_adr_accounting_coa_id
98555          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
98556          , x_flex_value_set_id        => l_adr_flex_value_set_id
98557          , x_value_type_code          => l_adr_value_type_code
98558          , x_value_combination_id     => l_adr_value_combination_id
98559          , x_value_segment_code       => l_adr_value_segment_code
98560          , p_side                     => 'NA'
98561          , p_override_seg_flag        => 'Y'
98562    );
98563 
98564    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
98565 
98566       xla_ae_lines_pkg.set_segment(
98567           p_to_segment_code         => 'GL_ACCOUNT'
98568         , p_segment_value           => l_segment
98569         , p_from_segment_code       => l_adr_value_segment_code
98570         , p_from_combination_id     => l_adr_value_combination_id
98571         , p_value_type_code         => l_adr_value_type_code
98572         , p_transaction_coa_id      => l_adr_transaction_coa_id
98573         , p_accounting_coa_id       => l_adr_accounting_coa_id
98574         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
98575         , p_flex_value_set_id       => l_adr_flex_value_set_id
98576         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
98577         , p_adr_type_code           => 'S'
98578         , p_component_type          => l_component_type
98579         , p_component_code          => l_component_code
98580         , p_component_type_code     => l_component_type_code
98581         , p_component_appl_id       => l_component_appl_id
98582         , p_amb_context_code        => l_amb_context_code
98583         , p_entity_code             => 'AP_PAYMENTS'
98584         , p_event_class_code        => 'REFUNDS'
98585         , p_side                    => 'NA'
98586         );
98587 
98588   END IF;
98589 
98590    --
98591    --
98592    END IF;
98593    --
98594    -- Bug 4922099
98595    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
98596           (NVL(l_enc_upg_option, 'N') = 'O')
98597         ) AND
98598         (l_bflow_method_code = 'PRIOR_ENTRY')
98599       )
98600    THEN
98601       IF
98602       --
98603       1 = 2
98604       --
98605       THEN
98606       xla_accounting_err_pkg.build_message
98607                                     (p_appli_s_name            => 'XLA'
98608                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
98609                                     ,p_token_1                 => 'LINE_NUMBER'
98610                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
98611                                     ,p_token_2                 => 'LINE_TYPE_NAME'
98612                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
98613                                                                              l_component_type
98614                                                                             ,l_component_code
98615                                                                             ,l_component_type_code
98616                                                                             ,l_component_appl_id
98617                                                                             ,l_amb_context_code
98618                                                                             ,l_entity_code
98619                                                                             ,l_event_class_code
98620                                                                            )
98621                                     ,p_token_3                 => 'OWNER'
98622                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
98623                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
98627                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
98624                                                                           ,p_lookup_code    => l_component_type_code
98625                                                                          )
98626                                     ,p_token_4                 => 'PRODUCT_NAME'
98628                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
98629                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
98630                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
98631                                     ,p_ae_header_id            =>  NULL
98632                                        );
98633 
98634         IF (C_LEVEL_ERROR>= g_log_level) THEN
98635                  trace
98636                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
98637                       ,p_level    => C_LEVEL_ERROR
98638                       ,p_module   => l_log_module);
98639         END IF;
98640       END IF;
98641    END IF;
98642    --
98643    --
98644    ------------------------------------------------------------------------------------------------
98645    -- 4219869 Business Flow
98646    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
98647    -- Prior Entry.  Currently, the following code is always generated.
98648    ------------------------------------------------------------------------------------------------
98649    XLA_AE_LINES_PKG.ValidateCurrentLine;
98650 
98651    ------------------------------------------------------------------------------------
98652    -- 4219869 Business Flow
98653    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
98654    ------------------------------------------------------------------------------------
98655    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
98656 
98657    ----------------------------------------------------------------------------------
98658    -- 4219869 Business Flow
98659    -- Update journal entry status -- Need to generate this within IF <condition>
98660    ----------------------------------------------------------------------------------
98661    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
98662          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
98663          ,p_balance_type_code => l_balance_type_code
98664          );
98665 
98666    -------------------------------------------------------------------------------------------
98667    -- 4262811 - Generate the Accrual Reversal lines
98668    -------------------------------------------------------------------------------------------
98669    BEGIN
98670       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
98671                               (g_array_event(p_event_id).array_value_num('header_index'));
98672       IF l_acc_rev_flag IS NULL THEN
98673          l_acc_rev_flag := 'N';
98674       END IF;
98675    EXCEPTION
98676       WHEN OTHERS THEN
98677          l_acc_rev_flag := 'N';
98678    END;
98679    --
98680    IF (l_acc_rev_flag = 'Y') THEN
98681 
98682        -- 4645092  ------------------------------------------------------------------------------
98683        -- To allow MPA report to determine if it should generate report process
98684        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
98685        ------------------------------------------------------------------------------------------
98686 
98687        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
98688        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
98689    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
98690    -- call ADRs
98691    -- Bug 4922099
98692    --
98693    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
98694         (NVL(l_actual_upg_option, 'N') = 'O') OR
98695         (NVL(l_enc_upg_option, 'N') = 'O')
98696       )
98697    THEN
98698    NULL;
98699    --
98700    --
98701    
98702   l_ccid := AcctDerRule_39(
98703            p_application_id           => p_application_id
98704          , p_ae_header_id             => l_ae_header_id 
98705 , p_source_15 => p_source_15
98706 , p_source_15_meaning => p_source_15_meaning
98707 , p_source_30 => p_source_30
98708 , p_source_38 => p_source_38
98709 , p_source_39 => p_source_39
98710          , x_transaction_coa_id       => l_adr_transaction_coa_id
98711          , x_accounting_coa_id        => l_adr_accounting_coa_id
98712          , x_value_type_code          => l_adr_value_type_code
98713          , p_side                     => 'NA'
98714    );
98715 
98716    xla_ae_lines_pkg.set_ccid(
98717     p_code_combination_id          => l_ccid
98718   , p_value_type_code              => l_adr_value_type_code
98719   , p_transaction_coa_id           => l_adr_transaction_coa_id
98720   , p_accounting_coa_id            => l_adr_accounting_coa_id
98721   , p_adr_code                     => 'AP_REAL_LOSS'
98722   , p_adr_type_code                => 'S'
98723   , p_component_type               => l_component_type
98724   , p_component_code               => l_component_code
98725   , p_component_type_code          => l_component_type_code
98726   , p_component_appl_id            => l_component_appl_id
98727   , p_amb_context_code             => l_amb_context_code
98731 
98728   , p_side                         => 'NA'
98729   );
98730 
98732    l_segment := AcctDerRule_22(
98733            p_application_id           => p_application_id
98734          , p_ae_header_id             => l_ae_header_id 
98735 , p_source_15 => p_source_15
98736 , p_source_15_meaning => p_source_15_meaning
98737 , p_source_30 => p_source_30
98738          , x_transaction_coa_id       => l_adr_transaction_coa_id
98739          , x_accounting_coa_id        => l_adr_accounting_coa_id
98740          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
98741          , x_flex_value_set_id        => l_adr_flex_value_set_id
98742          , x_value_type_code          => l_adr_value_type_code
98743          , x_value_combination_id     => l_adr_value_combination_id
98744          , x_value_segment_code       => l_adr_value_segment_code
98745          , p_side                     => 'NA'
98746          , p_override_seg_flag        => 'Y'
98747    );
98748 
98749    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
98750 
98751       xla_ae_lines_pkg.set_segment(
98752           p_to_segment_code         => 'GL_BALANCING'
98753         , p_segment_value           => l_segment
98754         , p_from_segment_code       => l_adr_value_segment_code
98755         , p_from_combination_id     => l_adr_value_combination_id
98756         , p_value_type_code         => l_adr_value_type_code
98757         , p_transaction_coa_id      => l_adr_transaction_coa_id
98758         , p_accounting_coa_id       => l_adr_accounting_coa_id
98759         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
98760         , p_flex_value_set_id       => l_adr_flex_value_set_id
98761         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
98762         , p_adr_type_code           => 'S'
98763         , p_component_type          => l_component_type
98764         , p_component_code          => l_component_code
98765         , p_component_type_code     => l_component_type_code
98766         , p_component_appl_id       => l_component_appl_id
98767         , p_amb_context_code        => l_amb_context_code
98768         , p_entity_code             => 'AP_PAYMENTS'
98769         , p_event_class_code        => 'REFUNDS'
98770         , p_side                    => 'NA'
98771         );
98772 
98773   END IF;
98774 
98775    l_segment := AcctDerRule_18(
98776            p_application_id           => p_application_id
98777          , p_ae_header_id             => l_ae_header_id 
98778 , p_source_15 => p_source_15
98779 , p_source_15_meaning => p_source_15_meaning
98780 , p_source_38 => p_source_38
98781 , p_source_39 => p_source_39
98782          , x_transaction_coa_id       => l_adr_transaction_coa_id
98783          , x_accounting_coa_id        => l_adr_accounting_coa_id
98784          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
98785          , x_flex_value_set_id        => l_adr_flex_value_set_id
98786          , x_value_type_code          => l_adr_value_type_code
98787          , x_value_combination_id     => l_adr_value_combination_id
98788          , x_value_segment_code       => l_adr_value_segment_code
98789          , p_side                     => 'NA'
98790          , p_override_seg_flag        => 'Y'
98791    );
98792 
98793    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
98794 
98795       xla_ae_lines_pkg.set_segment(
98796           p_to_segment_code         => 'GL_ACCOUNT'
98797         , p_segment_value           => l_segment
98798         , p_from_segment_code       => l_adr_value_segment_code
98799         , p_from_combination_id     => l_adr_value_combination_id
98800         , p_value_type_code         => l_adr_value_type_code
98801         , p_transaction_coa_id      => l_adr_transaction_coa_id
98802         , p_accounting_coa_id       => l_adr_accounting_coa_id
98803         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
98804         , p_flex_value_set_id       => l_adr_flex_value_set_id
98805         , p_adr_code                => 'AP_REAL_LOSS_NAT_ACCT_SEG'
98806         , p_adr_type_code           => 'S'
98807         , p_component_type          => l_component_type
98808         , p_component_code          => l_component_code
98809         , p_component_type_code     => l_component_type_code
98810         , p_component_appl_id       => l_component_appl_id
98811         , p_amb_context_code        => l_amb_context_code
98812         , p_entity_code             => 'AP_PAYMENTS'
98813         , p_event_class_code        => 'REFUNDS'
98814         , p_side                    => 'NA'
98815         );
98816 
98817   END IF;
98818 
98819    --
98820    --
98821    END IF;
98822 
98823        --
98824        -- Update the line information that should be overwritten
98825        --
98826        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
98827                                          p_header_num   => 1);
98828        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
98829 
98830        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
98831 
98832        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
98833           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
98834        END IF;
98835 
98836       --
98837       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
98838       --
98839       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
98843           -- 4262811a Switch Sign
98840           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
98841       ELSE
98842           ---------------------------------------------------------------------------------------------------
98844           ---------------------------------------------------------------------------------------------------
98845           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
98846           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
98847                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98848           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
98849                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98850           -- 5132302
98851           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
98852                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
98853 
98854       END IF;
98855 
98856       -- 4955764
98857       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
98858       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
98859 
98860 
98861       XLA_AE_LINES_PKG.ValidateCurrentLine;
98862       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
98863 
98864       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
98865                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
98866                ,p_balance_type_code => l_balance_type_code);
98867 
98868    END IF;
98869 
98870    -----------------------------------------------------------------------------------------
98871    -- 4262811 Multiperiod Accounting
98872    -----------------------------------------------------------------------------------------
98873      -- No MPA option is assigned.
98874 
98875 
98876 END IF;
98877 END IF;
98878 --
98879 
98880 --
98881 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
98882    trace
98883       (p_msg      => 'END of AcctLineType_169'
98884       ,p_level    => C_LEVEL_PROCEDURE
98885       ,p_module   => l_log_module);
98886 END IF;
98887 --
98888 EXCEPTION
98889   WHEN xla_exceptions_pkg.application_exception THEN
98890       RAISE;
98891   WHEN OTHERS THEN
98892        xla_exceptions_pkg.raise_message
98893            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_169');
98894 END AcctLineType_169;
98895 --
98896 
98897 ---------------------------------------
98898 --
98899 -- PRIVATE FUNCTION
98900 --         AcctLineType_170
98901 --
98902 ---------------------------------------
98903 PROCEDURE AcctLineType_170 (
98904   p_application_id        IN NUMBER
98905  ,p_event_id              IN NUMBER
98906  ,p_calculate_acctd_flag  IN VARCHAR2
98907  ,p_calculate_g_l_flag    IN VARCHAR2
98908  ,p_actual_flag           IN OUT VARCHAR2
98909  ,p_balance_type_code     OUT VARCHAR2
98910  ,p_gain_or_loss_ref      OUT VARCHAR2
98911  
98912 --Payment Currency Code
98913  , p_source_13            IN VARCHAR2
98914 --Automatic Offsets Value
98915  , p_source_15            IN VARCHAR2
98916  , p_source_15_meaning    IN VARCHAR2
98917 --Invoice Distribution Account
98918  , p_source_30            IN NUMBER
98919 --Payables Options Rounding Account
98920  , p_source_49            IN NUMBER
98921 --Accounting Reversal Indicator
98922  , p_source_53            IN VARCHAR2
98923 --Distribution Link Type
98924  , p_source_55            IN VARCHAR2
98925 --Override Accounted Amount Indicator
98926  , p_source_80            IN VARCHAR2
98927  , p_source_80_meaning    IN VARCHAR2
98928 --Third Party Type
98929  , p_source_83            IN VARCHAR2
98930 --Invoice Distribution Tax Line Identifier
98931  , p_source_86            IN NUMBER
98932 --Invoice Distribution Summary Tax Line Identifier
98933  , p_source_88            IN NUMBER
98934 --Business Flow Accounts Payable Application Identifier
98935  , p_source_91            IN NUMBER
98936 --When to Account for Payment Option
98937  , p_source_97            IN VARCHAR2
98938 --Payment Distribution Type
98939  , p_source_98            IN VARCHAR2
98940  , p_source_98_meaning    IN VARCHAR2
98941 --Payment Distribution Amount
98942  , p_source_99            IN NUMBER
98943 --Business Flow Payment Distribution Type
98944  , p_source_100            IN VARCHAR2
98945 --Business Flow Payment Entity Code
98946  , p_source_101            IN VARCHAR2
98947 --Business Flow Payment Distribution Identifier
98948  , p_source_102            IN NUMBER
98949 --Business Flow Payment Identifier
98950  , p_source_103            IN NUMBER
98951 --Payment Distribution Identifier
98952  , p_source_104            IN NUMBER
98953 --Cleared Exchange Date
98954  , p_source_106            IN DATE
98955 --Cleared Exchange Rate
98956  , p_source_107            IN NUMBER
98957 --Cleared Exchange Rate Type
98958  , p_source_108            IN VARCHAR2
98959 --Payment Supplier Identifier
98960  , p_source_110            IN NUMBER
98961 --Payment Supplier Site Identifier
98962  , p_source_111            IN NUMBER
98963 --Payment Distribution Reversed Identifier
98964  , p_source_112            IN NUMBER
98965 --Payment Maturity Date
98966  , p_source_114            IN DATE
98970 IS
98967 --Payment Distribution (Matured Rate) Ledger Amount
98968  , p_source_121            IN NUMBER
98969 )
98971 
98972 l_component_type              VARCHAR2(80);
98973 l_component_code              VARCHAR2(30);
98974 l_component_type_code         VARCHAR2(1);
98975 l_component_appl_id           INTEGER;
98976 l_amb_context_code            VARCHAR2(30);
98977 l_entity_code                 VARCHAR2(30);
98978 l_event_class_code            VARCHAR2(30);
98979 l_ae_header_id                NUMBER;
98980 l_event_type_code             VARCHAR2(30);
98981 l_line_definition_code        VARCHAR2(30);
98982 l_line_definition_owner_code  VARCHAR2(1);
98983 --
98984 -- adr variables
98985 l_segment                     VARCHAR2(30);
98986 l_ccid                        NUMBER;
98987 l_adr_transaction_coa_id      NUMBER;
98988 l_adr_accounting_coa_id       NUMBER;
98989 l_adr_flexfield_segment_code  VARCHAR2(30);
98990 l_adr_flex_value_set_id       NUMBER;
98991 l_adr_value_type_code         VARCHAR2(30);
98992 l_adr_value_combination_id    NUMBER;
98993 l_adr_value_segment_code      VARCHAR2(30);
98994 
98995 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
98996 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
98997 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
98998 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
98999 
99000 -- 4262811 Variables ------------------------------------------------------------------------------------------
99001 l_entered_amt_idx             NUMBER;
99002 l_accted_amt_idx              NUMBER;
99003 l_acc_rev_flag                VARCHAR2(1);
99004 l_accrual_line_num            NUMBER;
99005 l_tmp_amt                     NUMBER;
99006 l_acc_rev_natural_side_code   VARCHAR2(1);
99007 
99008 l_num_entries                 NUMBER;
99009 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
99010 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
99011 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
99012 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
99013 l_recog_line_1                NUMBER;
99014 l_recog_line_2                NUMBER;
99015 
99016 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
99017 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
99018 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
99019 
99020 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
99021 
99022 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
99023 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
99024 
99025 ---------------------------------------------------------------------------------------------------------------
99026 
99027 
99028 --
99029 -- bulk performance
99030 --
99031 l_balance_type_code           VARCHAR2(1);
99032 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
99033 l_log_module                  VARCHAR2(240);
99034 
99035 --
99036 -- Upgrade strategy
99037 --
99038 l_actual_upg_option           VARCHAR2(1);
99039 l_enc_upg_option           VARCHAR2(1);
99040 
99041 --
99042 BEGIN
99043 --
99044 IF g_log_enabled THEN
99045       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_170';
99046 END IF;
99047 --
99048 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
99049 
99050       trace
99051          (p_msg      => 'BEGIN of AcctLineType_170'
99052          ,p_level    => C_LEVEL_PROCEDURE
99053          ,p_module   => l_log_module);
99054 
99055 END IF;
99056 --
99057 l_component_type             := 'AMB_JLT';
99058 l_component_code             := 'AP_MAT_CLR_ROUNDING_CLEAR';
99059 l_component_type_code        := 'S';
99060 l_component_appl_id          :=  200;
99061 l_amb_context_code           := 'DEFAULT';
99062 l_entity_code                := 'AP_PAYMENTS';
99063 l_event_class_code           := 'RECONCILED PAYMENTS';
99064 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
99065 l_line_definition_owner_code := 'S';
99066 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
99067 --
99068 l_balance_type_code          := 'A';
99069 l_segment                     := NULL;
99070 l_ccid                        := NULL;
99071 l_adr_transaction_coa_id      := NULL;
99072 l_adr_accounting_coa_id       := NULL;
99073 l_adr_flexfield_segment_code  := NULL;
99074 l_adr_flex_value_set_id       := NULL;
99075 l_adr_value_type_code         := NULL;
99076 l_adr_value_combination_id    := NULL;
99077 l_adr_value_segment_code      := NULL;
99078 
99079 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
99080 l_bflow_class_code           := '';    -- 4219869 Business Flow
99081 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
99082 l_budgetary_control_flag     := 'N';
99083 
99084 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
99085 l_bflow_applied_to_amt       := NULL; -- 5132302
99086 l_entered_amt_idx            := NULL;          -- 4262811
99087 l_accted_amt_idx             := NULL;          -- 4262811
99088 l_acc_rev_flag               := NULL;          -- 4262811
99089 l_accrual_line_num           := NULL;          -- 4262811
99090 l_tmp_amt                    := NULL;          -- 4262811
99091 --
99092  
99096 ') =  'ALWAYS_ALWAYS' OR 
99093 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
99094     l_balance_type_code <> 'B' THEN
99095 IF (NVL(p_source_97,'
99097 NVL(p_source_97,'
99098 ') =  'ALWAYS_CLEAR') AND 
99099 NVL(p_source_98,'
99100 ') =  'MATURITY TO CLEARING ROUNDING' AND 
99101 p_source_114 IS NOT NULL 
99102  THEN 
99103 
99104    --
99105    XLA_AE_LINES_PKG.SetNewLine;
99106 
99107    p_balance_type_code          := l_balance_type_code;
99108    -- set the flag so later we will know whether the gain loss line needs to be created
99109    
99110    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
99111      p_actual_flag :='A';
99112    END IF;
99113 
99114    --
99115    -- bulk performance
99116    --
99117    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
99118                                       p_header_num   => 0); -- 4262811
99119    --
99120    -- set accounting line options
99121    --
99122    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
99123            p_natural_side_code          => 'D'
99124          , p_gain_or_loss_flag          => 'N'
99125          , p_gl_transfer_mode_code      => 'S'
99126          , p_acct_entry_type_code       => 'A'
99127          , p_switch_side_flag           => 'Y'
99128          , p_merge_duplicate_code       => 'A'
99129          );
99130    --
99131    l_acc_rev_natural_side_code := 'C';  -- 4262811
99132    -- 
99133    --
99134    -- set accounting line type info
99135    --
99136    xla_ae_lines_pkg.SetAcctLineType
99137       (p_component_type             => l_component_type
99138       ,p_event_type_code            => l_event_type_code
99139       ,p_line_definition_owner_code => l_line_definition_owner_code
99140       ,p_line_definition_code       => l_line_definition_code
99141       ,p_accounting_line_code       => l_component_code
99142       ,p_accounting_line_type_code  => l_component_type_code
99143       ,p_accounting_line_appl_id    => l_component_appl_id
99144       ,p_amb_context_code           => l_amb_context_code
99145       ,p_entity_code                => l_entity_code
99146       ,p_event_class_code           => l_event_class_code);
99147    --
99148    -- set accounting class
99149    --
99150    xla_ae_lines_pkg.SetAcctClass(
99151            p_accounting_class_code  => 'ROUNDING'
99152          , p_ae_header_id           => l_ae_header_id
99153          );
99154 
99155    --
99156    -- set rounding class
99157    --
99158    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
99159                       'ROUNDING';
99160 
99161    --
99162    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
99163    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
99164    --
99165    -- bulk performance
99166    --
99167    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
99168 
99169    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
99170       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
99171 
99172    -- 4955764
99173    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
99174       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
99175 
99176    -- 4458381 Public Sector Enh
99177    
99178    --
99179    -- set accounting attributes for the line type
99180    --
99181    l_entered_amt_idx := 10;
99182    l_accted_amt_idx  := 15;
99183    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
99184    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
99185    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
99186    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
99187    l_rec_acct_attrs.array_num_value(2)  := p_source_99;
99188    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
99189    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
99190    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
99191    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
99192    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
99193    l_rec_acct_attrs.array_char_value(5)  := p_source_101;
99194    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
99195    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
99196    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
99197    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
99198    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
99199    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
99200    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
99201    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
99202    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
99203    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
99204    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
99205    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
99206    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
99207    l_rec_acct_attrs.array_date_value(12)  := p_source_106;
99208    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
99209    l_rec_acct_attrs.array_num_value(13)  := p_source_107;
99213    l_rec_acct_attrs.array_num_value(15)  := p_source_121;
99210    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
99211    l_rec_acct_attrs.array_char_value(14)  := p_source_108;
99212    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
99214    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
99215    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
99216    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
99217    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
99218    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
99219    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
99220    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
99221    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
99222    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
99223    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
99224    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
99225    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
99226    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
99227    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
99228    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
99229    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
99230    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
99231    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
99232 
99233    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
99234    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
99235 
99236    ---------------------------------------------------------------------------------------------------------------
99237    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
99238    ---------------------------------------------------------------------------------------------------------------
99239    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
99240 
99241    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
99242    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
99243 
99244    IF xla_accounting_cache_pkg.GetValueChar
99245          (p_source_code         => 'LEDGER_CATEGORY_CODE'
99246          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
99247    AND l_bflow_method_code = 'PRIOR_ENTRY'
99248 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
99249    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
99250          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
99251        )
99252    THEN
99253          xla_ae_lines_pkg.BflowUpgEntry
99254            (p_business_method_code    => l_bflow_method_code
99255            ,p_business_class_code     => l_bflow_class_code
99256            ,p_balance_type            => l_balance_type_code);
99257    ELSE
99258       NULL;
99259 -- No business flow processing for business flow method of NONE.
99260    END IF;
99261 
99262    --
99263    -- call analytical criteria
99264    --
99265    
99266    --
99267    -- call description
99268    --
99269    -- No description or it is inherited.
99270    --
99271    -- call ADRs
99272    -- Bug 4922099
99273    --
99274    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
99275         (NVL(l_actual_upg_option, 'N') = 'O') OR
99276         (NVL(l_enc_upg_option, 'N') = 'O')
99277       )
99278    THEN
99279    NULL;
99280    --
99281    --
99282    
99283   l_ccid := AcctDerRule_41(
99284            p_application_id           => p_application_id
99285          , p_ae_header_id             => l_ae_header_id 
99286 , p_source_15 => p_source_15
99287 , p_source_15_meaning => p_source_15_meaning
99288 , p_source_30 => p_source_30
99289 , p_source_49 => p_source_49
99290          , x_transaction_coa_id       => l_adr_transaction_coa_id
99291          , x_accounting_coa_id        => l_adr_accounting_coa_id
99292          , x_value_type_code          => l_adr_value_type_code
99293          , p_side                     => 'NA'
99294    );
99295 
99296    xla_ae_lines_pkg.set_ccid(
99297     p_code_combination_id          => l_ccid
99298   , p_value_type_code              => l_adr_value_type_code
99299   , p_transaction_coa_id           => l_adr_transaction_coa_id
99300   , p_accounting_coa_id            => l_adr_accounting_coa_id
99301   , p_adr_code                     => 'AP_ROUNDING'
99302   , p_adr_type_code                => 'S'
99303   , p_component_type               => l_component_type
99304   , p_component_code               => l_component_code
99305   , p_component_type_code          => l_component_type_code
99306   , p_component_appl_id            => l_component_appl_id
99307   , p_amb_context_code             => l_amb_context_code
99308   , p_side                         => 'NA'
99309   );
99310 
99311 
99312    --
99313    --
99314    END IF;
99315    --
99316    -- Bug 4922099
99317    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
99318           (NVL(l_enc_upg_option, 'N') = 'O')
99319         ) AND
99320         (l_bflow_method_code = 'PRIOR_ENTRY')
99321       )
99322    THEN
99323       IF
99324       --
99325       1 = 2
99326       --
99327       THEN
99331                                     ,p_token_1                 => 'LINE_NUMBER'
99328       xla_accounting_err_pkg.build_message
99329                                     (p_appli_s_name            => 'XLA'
99330                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
99332                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
99333                                     ,p_token_2                 => 'LINE_TYPE_NAME'
99334                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
99335                                                                              l_component_type
99336                                                                             ,l_component_code
99337                                                                             ,l_component_type_code
99338                                                                             ,l_component_appl_id
99339                                                                             ,l_amb_context_code
99340                                                                             ,l_entity_code
99341                                                                             ,l_event_class_code
99342                                                                            )
99343                                     ,p_token_3                 => 'OWNER'
99344                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
99345                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
99346                                                                           ,p_lookup_code    => l_component_type_code
99347                                                                          )
99348                                     ,p_token_4                 => 'PRODUCT_NAME'
99349                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
99350                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
99351                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
99352                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
99353                                     ,p_ae_header_id            =>  NULL
99354                                        );
99355 
99356         IF (C_LEVEL_ERROR>= g_log_level) THEN
99357                  trace
99358                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
99359                       ,p_level    => C_LEVEL_ERROR
99360                       ,p_module   => l_log_module);
99361         END IF;
99362       END IF;
99363    END IF;
99364    --
99365    --
99366    ------------------------------------------------------------------------------------------------
99367    -- 4219869 Business Flow
99368    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
99369    -- Prior Entry.  Currently, the following code is always generated.
99370    ------------------------------------------------------------------------------------------------
99371    XLA_AE_LINES_PKG.ValidateCurrentLine;
99372 
99373    ------------------------------------------------------------------------------------
99374    -- 4219869 Business Flow
99375    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
99376    ------------------------------------------------------------------------------------
99377    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
99378 
99379    ----------------------------------------------------------------------------------
99380    -- 4219869 Business Flow
99381    -- Update journal entry status -- Need to generate this within IF <condition>
99382    ----------------------------------------------------------------------------------
99383    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
99384          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
99385          ,p_balance_type_code => l_balance_type_code
99386          );
99387 
99388    -------------------------------------------------------------------------------------------
99389    -- 4262811 - Generate the Accrual Reversal lines
99390    -------------------------------------------------------------------------------------------
99391    BEGIN
99392       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
99393                               (g_array_event(p_event_id).array_value_num('header_index'));
99394       IF l_acc_rev_flag IS NULL THEN
99395          l_acc_rev_flag := 'N';
99396       END IF;
99397    EXCEPTION
99398       WHEN OTHERS THEN
99399          l_acc_rev_flag := 'N';
99400    END;
99401    --
99402    IF (l_acc_rev_flag = 'Y') THEN
99403 
99404        -- 4645092  ------------------------------------------------------------------------------
99405        -- To allow MPA report to determine if it should generate report process
99406        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
99407        ------------------------------------------------------------------------------------------
99408 
99409        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
99410        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
99411    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
99412    -- call ADRs
99413    -- Bug 4922099
99417         (NVL(l_enc_upg_option, 'N') = 'O')
99414    --
99415    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
99416         (NVL(l_actual_upg_option, 'N') = 'O') OR
99418       )
99419    THEN
99420    NULL;
99421    --
99422    --
99423    
99424   l_ccid := AcctDerRule_41(
99425            p_application_id           => p_application_id
99426          , p_ae_header_id             => l_ae_header_id 
99427 , p_source_15 => p_source_15
99428 , p_source_15_meaning => p_source_15_meaning
99429 , p_source_30 => p_source_30
99430 , p_source_49 => p_source_49
99431          , x_transaction_coa_id       => l_adr_transaction_coa_id
99432          , x_accounting_coa_id        => l_adr_accounting_coa_id
99433          , x_value_type_code          => l_adr_value_type_code
99434          , p_side                     => 'NA'
99435    );
99436 
99437    xla_ae_lines_pkg.set_ccid(
99438     p_code_combination_id          => l_ccid
99439   , p_value_type_code              => l_adr_value_type_code
99440   , p_transaction_coa_id           => l_adr_transaction_coa_id
99441   , p_accounting_coa_id            => l_adr_accounting_coa_id
99442   , p_adr_code                     => 'AP_ROUNDING'
99443   , p_adr_type_code                => 'S'
99444   , p_component_type               => l_component_type
99445   , p_component_code               => l_component_code
99446   , p_component_type_code          => l_component_type_code
99447   , p_component_appl_id            => l_component_appl_id
99448   , p_amb_context_code             => l_amb_context_code
99449   , p_side                         => 'NA'
99450   );
99451 
99452 
99453    --
99454    --
99455    END IF;
99456 
99457        --
99458        -- Update the line information that should be overwritten
99459        --
99460        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
99461                                          p_header_num   => 1);
99462        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
99463 
99464        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
99465 
99466        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
99467           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
99468        END IF;
99469 
99470       --
99471       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
99472       --
99473       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
99474           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
99475       ELSE
99476           ---------------------------------------------------------------------------------------------------
99477           -- 4262811a Switch Sign
99478           ---------------------------------------------------------------------------------------------------
99479           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
99480           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
99481                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
99482           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
99483                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
99484           -- 5132302
99485           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
99486                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
99487 
99488       END IF;
99489 
99490       -- 4955764
99491       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
99492       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
99493 
99494 
99495       XLA_AE_LINES_PKG.ValidateCurrentLine;
99496       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
99497 
99498       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
99499                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
99500                ,p_balance_type_code => l_balance_type_code);
99501 
99502    END IF;
99503 
99504    -----------------------------------------------------------------------------------------
99505    -- 4262811 Multiperiod Accounting
99506    -----------------------------------------------------------------------------------------
99507      -- No MPA option is assigned.
99508 
99509 
99510 END IF;
99511 END IF;
99512 --
99513 
99514 --
99515 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
99516    trace
99517       (p_msg      => 'END of AcctLineType_170'
99518       ,p_level    => C_LEVEL_PROCEDURE
99519       ,p_module   => l_log_module);
99520 END IF;
99521 --
99522 EXCEPTION
99523   WHEN xla_exceptions_pkg.application_exception THEN
99524       RAISE;
99525   WHEN OTHERS THEN
99526        xla_exceptions_pkg.raise_message
99527            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_170');
99528 END AcctLineType_170;
99529 --
99530 
99531 ---------------------------------------
99532 --
99533 -- PRIVATE FUNCTION
99534 --         AcctLineType_171
99535 --
99536 ---------------------------------------
99537 PROCEDURE AcctLineType_171 (
99541  ,p_calculate_g_l_flag    IN VARCHAR2
99538   p_application_id        IN NUMBER
99539  ,p_event_id              IN NUMBER
99540  ,p_calculate_acctd_flag  IN VARCHAR2
99542  ,p_actual_flag           IN OUT VARCHAR2
99543  ,p_balance_type_code     OUT VARCHAR2
99544  ,p_gain_or_loss_ref      OUT VARCHAR2
99545  
99546 --Invoice Distribution Description
99547  , p_source_1            IN VARCHAR2
99548 --Invoice Distribution Ledger Amount
99549  , p_source_21            IN NUMBER
99550 --Invoice Distribution Account
99551  , p_source_30            IN NUMBER
99552 --Invoice Distribution Type
99553  , p_source_33            IN VARCHAR2
99554  , p_source_33_meaning    IN VARCHAR2
99555 --Accounting Reversal Indicator
99556  , p_source_53            IN VARCHAR2
99557 --Distribution Link Type
99558  , p_source_55            IN VARCHAR2
99559 --Allocation to Main Distribution Identifier
99560  , p_source_57            IN NUMBER
99561 --Invoice Identifier
99562  , p_source_58            IN NUMBER
99563 --Invoice Distribution Identifier
99564  , p_source_64            IN NUMBER
99565 --Payables Encumbrance Upgrade Credit Account
99566  , p_source_65            IN NUMBER
99567 --Payables Encumbrance Upgrade Credit Amount
99568  , p_source_66            IN NUMBER
99569 --Invoice Currency Code
99570  , p_source_67            IN VARCHAR2
99571 --Payables Encumbrance Upgrade Credit Base Amount
99572  , p_source_68            IN NUMBER
99573 --Payables Encumbrance Upgrade Debit Account
99574  , p_source_69            IN NUMBER
99575 --Payables Encumbrance Upgrade Debit Amount
99576  , p_source_70            IN NUMBER
99577 --Payables Encumbrance Upgrade Debit Base Amount
99578  , p_source_71            IN NUMBER
99579 --Payables Encumbrance Upgrade Option
99580  , p_source_72            IN VARCHAR2
99581 --Invoice Distribution Amount
99582  , p_source_73            IN NUMBER
99583 --Deferred Accounting End Date
99584  , p_source_77            IN DATE
99585 --Deferred Accounting Option
99586  , p_source_78            IN VARCHAR2
99587 --Deferred Accounting Start Date
99588  , p_source_79            IN DATE
99589 --Override Accounted Amount Indicator
99590  , p_source_80            IN VARCHAR2
99591  , p_source_80_meaning    IN VARCHAR2
99592 --Invoice Supplier Identifier
99593  , p_source_81            IN NUMBER
99594 --Invoice Supplier Site Identifier
99595  , p_source_82            IN NUMBER
99596 --Third Party Type
99597  , p_source_83            IN VARCHAR2
99598 --Parent Reversal Identifier
99599  , p_source_84            IN NUMBER
99600 --Invoice Distribution Statistical Amount
99601  , p_source_85            IN NUMBER
99602 --Invoice Distribution Tax Line Identifier
99603  , p_source_86            IN NUMBER
99604 --Invoice Distribution Tax Distribution Identifier from Tax
99605  , p_source_87            IN NUMBER
99606 --Invoice Distribution Summary Tax Line Identifier
99607  , p_source_88            IN NUMBER
99608 --Payables Upgrade Credit Encumbrance Type Identifier
99609  , p_source_89            IN NUMBER
99610 --Payables Upgrade Debit Encumbrance Type Identifier
99611  , p_source_90            IN NUMBER
99612 --Business Flow Accounts Payable Application Identifier
99613  , p_source_91            IN NUMBER
99614 --Business Flow Invoice Distribution Type
99615  , p_source_92            IN VARCHAR2
99616 --Business Flow Invoice Entity Code
99617  , p_source_93            IN VARCHAR2
99618 --Business Flow Invoice Distribution Identifier
99619  , p_source_94            IN NUMBER
99620 --Business Flow Invoice Identifier
99621  , p_source_95            IN NUMBER
99622 --Invoice Exchange Date
99623  , p_source_143            IN DATE
99624 --Invoice Exchange Rate
99625  , p_source_144            IN NUMBER
99626 --Invoice Exchange Rate Type
99627  , p_source_145            IN VARCHAR2
99628 )
99629 IS
99630 
99631 l_component_type              VARCHAR2(80);
99632 l_component_code              VARCHAR2(30);
99633 l_component_type_code         VARCHAR2(1);
99634 l_component_appl_id           INTEGER;
99635 l_amb_context_code            VARCHAR2(30);
99636 l_entity_code                 VARCHAR2(30);
99637 l_event_class_code            VARCHAR2(30);
99638 l_ae_header_id                NUMBER;
99639 l_event_type_code             VARCHAR2(30);
99640 l_line_definition_code        VARCHAR2(30);
99641 l_line_definition_owner_code  VARCHAR2(1);
99642 --
99643 -- adr variables
99644 l_segment                     VARCHAR2(30);
99645 l_ccid                        NUMBER;
99646 l_adr_transaction_coa_id      NUMBER;
99647 l_adr_accounting_coa_id       NUMBER;
99648 l_adr_flexfield_segment_code  VARCHAR2(30);
99649 l_adr_flex_value_set_id       NUMBER;
99650 l_adr_value_type_code         VARCHAR2(30);
99651 l_adr_value_combination_id    NUMBER;
99652 l_adr_value_segment_code      VARCHAR2(30);
99653 
99654 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
99655 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
99656 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
99657 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
99658 
99659 -- 4262811 Variables ------------------------------------------------------------------------------------------
99660 l_entered_amt_idx             NUMBER;
99661 l_accted_amt_idx              NUMBER;
99662 l_acc_rev_flag                VARCHAR2(1);
99663 l_accrual_line_num            NUMBER;
99664 l_tmp_amt                     NUMBER;
99668 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
99665 l_acc_rev_natural_side_code   VARCHAR2(1);
99666 
99667 l_num_entries                 NUMBER;
99669 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
99670 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
99671 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
99672 l_recog_line_1                NUMBER;
99673 l_recog_line_2                NUMBER;
99674 
99675 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
99676 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
99677 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
99678 
99679 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
99680 
99681 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
99682 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
99683 
99684 ---------------------------------------------------------------------------------------------------------------
99685 
99686 
99687 --
99688 -- bulk performance
99689 --
99690 l_balance_type_code           VARCHAR2(1);
99691 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
99692 l_log_module                  VARCHAR2(240);
99693 
99694 --
99695 -- Upgrade strategy
99696 --
99697 l_actual_upg_option           VARCHAR2(1);
99698 l_enc_upg_option           VARCHAR2(1);
99699 
99700 --
99701 BEGIN
99702 --
99703 IF g_log_enabled THEN
99704       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_171';
99705 END IF;
99706 --
99707 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
99708 
99709       trace
99710          (p_msg      => 'BEGIN of AcctLineType_171'
99711          ,p_level    => C_LEVEL_PROCEDURE
99712          ,p_module   => l_log_module);
99713 
99714 END IF;
99715 --
99716 l_component_type             := 'AMB_JLT';
99717 l_component_code             := 'AP_MISC_EXPENSE_CM';
99718 l_component_type_code        := 'S';
99719 l_component_appl_id          :=  200;
99720 l_amb_context_code           := 'DEFAULT';
99721 l_entity_code                := 'AP_INVOICES';
99722 l_event_class_code           := 'CREDIT MEMOS';
99723 l_event_type_code            := 'CREDIT MEMOS_ALL';
99724 l_line_definition_owner_code := 'S';
99725 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
99726 --
99727 l_balance_type_code          := 'A';
99728 l_segment                     := NULL;
99729 l_ccid                        := NULL;
99730 l_adr_transaction_coa_id      := NULL;
99731 l_adr_accounting_coa_id       := NULL;
99732 l_adr_flexfield_segment_code  := NULL;
99733 l_adr_flex_value_set_id       := NULL;
99734 l_adr_value_type_code         := NULL;
99735 l_adr_value_combination_id    := NULL;
99736 l_adr_value_segment_code      := NULL;
99737 
99738 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
99739 l_bflow_class_code           := '';    -- 4219869 Business Flow
99740 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
99741 l_budgetary_control_flag     := 'N';
99742 
99743 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
99744 l_bflow_applied_to_amt       := NULL; -- 5132302
99745 l_entered_amt_idx            := NULL;          -- 4262811
99746 l_accted_amt_idx             := NULL;          -- 4262811
99747 l_acc_rev_flag               := NULL;          -- 4262811
99748 l_accrual_line_num           := NULL;          -- 4262811
99749 l_tmp_amt                    := NULL;          -- 4262811
99750 --
99751  
99752 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
99753     l_balance_type_code <> 'B' THEN
99754 IF NVL(p_source_33,'
99755 ') =  'MISCELLANEOUS'
99756  THEN 
99757 
99758    --
99759    XLA_AE_LINES_PKG.SetNewLine;
99760 
99761    p_balance_type_code          := l_balance_type_code;
99762    -- set the flag so later we will know whether the gain loss line needs to be created
99763    
99764    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
99765      p_actual_flag :='A';
99766    END IF;
99767 
99768    --
99769    -- bulk performance
99770    --
99771    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
99772                                       p_header_num   => 0); -- 4262811
99773    --
99774    -- set accounting line options
99775    --
99776    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
99777            p_natural_side_code          => 'D'
99778          , p_gain_or_loss_flag          => 'N'
99779          , p_gl_transfer_mode_code      => 'S'
99780          , p_acct_entry_type_code       => 'A'
99781          , p_switch_side_flag           => 'Y'
99782          , p_merge_duplicate_code       => 'A'
99783          );
99784    --
99785    l_acc_rev_natural_side_code := 'C';  -- 4262811
99786    -- 
99787    --
99788    -- set accounting line type info
99789    --
99790    xla_ae_lines_pkg.SetAcctLineType
99791       (p_component_type             => l_component_type
99792       ,p_event_type_code            => l_event_type_code
99793       ,p_line_definition_owner_code => l_line_definition_owner_code
99794       ,p_line_definition_code       => l_line_definition_code
99795       ,p_accounting_line_code       => l_component_code
99796       ,p_accounting_line_type_code  => l_component_type_code
99797       ,p_accounting_line_appl_id    => l_component_appl_id
99801    --
99798       ,p_amb_context_code           => l_amb_context_code
99799       ,p_entity_code                => l_entity_code
99800       ,p_event_class_code           => l_event_class_code);
99802    -- set accounting class
99803    --
99804    xla_ae_lines_pkg.SetAcctClass(
99805            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
99806          , p_ae_header_id           => l_ae_header_id
99807          );
99808 
99809    --
99810    -- set rounding class
99811    --
99812    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
99813                       'MISCELLANEOUS EXPENSE';
99814 
99815    --
99816    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
99817    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
99818    --
99819    -- bulk performance
99820    --
99821    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
99822 
99823    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
99824       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
99825 
99826    -- 4955764
99827    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
99828       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
99829 
99830    -- 4458381 Public Sector Enh
99831    
99832    --
99833    -- set accounting attributes for the line type
99834    --
99835    l_entered_amt_idx := 23;
99836    l_accted_amt_idx  := 28;
99837    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
99838    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
99839    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
99840    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
99841    l_rec_acct_attrs.array_num_value(2)  := 
99842 xla_ae_sources_pkg.GetSystemSourceNum(
99843    p_source_code           => 'XLA_EVENT_APPL_ID'
99844  , p_source_type_code      => 'Y'
99845  , p_source_application_id =>  602
99846 );
99847    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
99848    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
99849    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
99850    l_rec_acct_attrs.array_char_value(4)  := 
99851 xla_ae_sources_pkg.GetSystemSourceChar(
99852    p_source_code           => 'XLA_ENTITY_CODE'
99853  , p_source_type_code      => 'Y'
99854  , p_source_application_id =>  602
99855 );
99856    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
99857    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
99858    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
99859    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
99860    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
99861    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
99862    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
99863    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
99864    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
99865    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
99866    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
99867    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
99868    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
99869    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
99870    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
99871    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
99872    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
99873    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
99874    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
99875    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
99876    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
99877    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
99878    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
99879    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
99880    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
99881    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
99882    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
99883    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
99884    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
99885    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
99886    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
99887    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
99888    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
99889    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
99890    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
99891    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
99892    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
99893    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
99894    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
99895    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
99896    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
99897    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
99898    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
99902    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
99899    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
99900    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
99901    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
99903    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
99904    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
99905    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
99906    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
99907    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
99908    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
99909    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
99910    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
99911    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
99912    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
99913    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
99914    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
99915    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
99916    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
99917    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
99918    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
99919    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
99920    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
99921    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
99922    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
99923    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
99924    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
99925    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
99926    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
99927    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
99928    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
99929    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
99930    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
99931    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
99932    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
99933    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
99934 
99935    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
99936    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
99937 
99938    ---------------------------------------------------------------------------------------------------------------
99939    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
99940    ---------------------------------------------------------------------------------------------------------------
99941    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
99942 
99943    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
99944    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
99945 
99946    IF xla_accounting_cache_pkg.GetValueChar
99947          (p_source_code         => 'LEDGER_CATEGORY_CODE'
99948          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
99949    AND l_bflow_method_code = 'PRIOR_ENTRY'
99950 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
99951    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
99952          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
99953        )
99954    THEN
99955          xla_ae_lines_pkg.BflowUpgEntry
99956            (p_business_method_code    => l_bflow_method_code
99957            ,p_business_class_code     => l_bflow_class_code
99958            ,p_balance_type            => l_balance_type_code);
99959    ELSE
99960       NULL;
99961 -- No business flow processing for business flow method of NONE.
99962    END IF;
99963 
99964    --
99965    -- call analytical criteria
99966    --
99967    
99968    --
99969    -- call description
99970    --
99971    
99972 xla_ae_lines_pkg.SetLineDescription(
99973    p_ae_header_id => l_ae_header_id
99974   ,p_description  => Description_1 (
99975      p_application_id         => p_application_id
99976    , p_ae_header_id           => l_ae_header_id 
99977 , p_source_1 => p_source_1
99978    )
99979 );
99980 
99981 
99982    --
99983    -- call ADRs
99984    -- Bug 4922099
99985    --
99986    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
99987         (NVL(l_actual_upg_option, 'N') = 'O') OR
99988         (NVL(l_enc_upg_option, 'N') = 'O')
99989       )
99990    THEN
99991    NULL;
99992    --
99993    --
99994    
99995   l_ccid := AcctDerRule_33(
99996            p_application_id           => p_application_id
99997          , p_ae_header_id             => l_ae_header_id 
99998 , p_source_30 => p_source_30
99999          , x_transaction_coa_id       => l_adr_transaction_coa_id
100000          , x_accounting_coa_id        => l_adr_accounting_coa_id
100001          , x_value_type_code          => l_adr_value_type_code
100002          , p_side                     => 'NA'
100003    );
100004 
100005    xla_ae_lines_pkg.set_ccid(
100006     p_code_combination_id          => l_ccid
100007   , p_value_type_code              => l_adr_value_type_code
100011   , p_adr_type_code                => 'S'
100008   , p_transaction_coa_id           => l_adr_transaction_coa_id
100009   , p_accounting_coa_id            => l_adr_accounting_coa_id
100010   , p_adr_code                     => 'AP_INVOICE_DIST'
100012   , p_component_type               => l_component_type
100013   , p_component_code               => l_component_code
100014   , p_component_type_code          => l_component_type_code
100015   , p_component_appl_id            => l_component_appl_id
100016   , p_amb_context_code             => l_amb_context_code
100017   , p_side                         => 'NA'
100018   );
100019 
100020 
100021    --
100022    --
100023    END IF;
100024    --
100025    -- Bug 4922099
100026    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
100027           (NVL(l_enc_upg_option, 'N') = 'O')
100028         ) AND
100029         (l_bflow_method_code = 'PRIOR_ENTRY')
100030       )
100031    THEN
100032       IF
100033       --
100034       1 = 2
100035       --
100036       THEN
100037       xla_accounting_err_pkg.build_message
100038                                     (p_appli_s_name            => 'XLA'
100039                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
100040                                     ,p_token_1                 => 'LINE_NUMBER'
100041                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
100042                                     ,p_token_2                 => 'LINE_TYPE_NAME'
100043                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
100044                                                                              l_component_type
100045                                                                             ,l_component_code
100046                                                                             ,l_component_type_code
100047                                                                             ,l_component_appl_id
100048                                                                             ,l_amb_context_code
100049                                                                             ,l_entity_code
100050                                                                             ,l_event_class_code
100051                                                                            )
100052                                     ,p_token_3                 => 'OWNER'
100053                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
100054                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
100055                                                                           ,p_lookup_code    => l_component_type_code
100056                                                                          )
100057                                     ,p_token_4                 => 'PRODUCT_NAME'
100058                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
100059                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
100060                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
100061                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
100062                                     ,p_ae_header_id            =>  NULL
100063                                        );
100064 
100065         IF (C_LEVEL_ERROR>= g_log_level) THEN
100066                  trace
100067                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
100068                       ,p_level    => C_LEVEL_ERROR
100069                       ,p_module   => l_log_module);
100070         END IF;
100071       END IF;
100072    END IF;
100073    --
100074    --
100075    ------------------------------------------------------------------------------------------------
100076    -- 4219869 Business Flow
100077    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
100078    -- Prior Entry.  Currently, the following code is always generated.
100079    ------------------------------------------------------------------------------------------------
100080    XLA_AE_LINES_PKG.ValidateCurrentLine;
100081 
100082    ------------------------------------------------------------------------------------
100083    -- 4219869 Business Flow
100084    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
100085    ------------------------------------------------------------------------------------
100086    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
100087 
100088    ----------------------------------------------------------------------------------
100089    -- 4219869 Business Flow
100090    -- Update journal entry status -- Need to generate this within IF <condition>
100091    ----------------------------------------------------------------------------------
100092    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
100093          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
100094          ,p_balance_type_code => l_balance_type_code
100095          );
100096 
100097    -------------------------------------------------------------------------------------------
100098    -- 4262811 - Generate the Accrual Reversal lines
100099    -------------------------------------------------------------------------------------------
100100    BEGIN
100101       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
100105       END IF;
100102                               (g_array_event(p_event_id).array_value_num('header_index'));
100103       IF l_acc_rev_flag IS NULL THEN
100104          l_acc_rev_flag := 'N';
100106    EXCEPTION
100107       WHEN OTHERS THEN
100108          l_acc_rev_flag := 'N';
100109    END;
100110    --
100111    IF (l_acc_rev_flag = 'Y') THEN
100112 
100113        -- 4645092  ------------------------------------------------------------------------------
100114        -- To allow MPA report to determine if it should generate report process
100115        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
100116        ------------------------------------------------------------------------------------------
100117 
100118        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
100119        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
100120    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
100121    -- call ADRs
100122    -- Bug 4922099
100123    --
100124    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
100125         (NVL(l_actual_upg_option, 'N') = 'O') OR
100126         (NVL(l_enc_upg_option, 'N') = 'O')
100127       )
100128    THEN
100129    NULL;
100130    --
100131    --
100132    
100133   l_ccid := AcctDerRule_33(
100134            p_application_id           => p_application_id
100135          , p_ae_header_id             => l_ae_header_id 
100136 , p_source_30 => p_source_30
100137          , x_transaction_coa_id       => l_adr_transaction_coa_id
100138          , x_accounting_coa_id        => l_adr_accounting_coa_id
100139          , x_value_type_code          => l_adr_value_type_code
100140          , p_side                     => 'NA'
100141    );
100142 
100143    xla_ae_lines_pkg.set_ccid(
100144     p_code_combination_id          => l_ccid
100145   , p_value_type_code              => l_adr_value_type_code
100146   , p_transaction_coa_id           => l_adr_transaction_coa_id
100147   , p_accounting_coa_id            => l_adr_accounting_coa_id
100148   , p_adr_code                     => 'AP_INVOICE_DIST'
100149   , p_adr_type_code                => 'S'
100150   , p_component_type               => l_component_type
100151   , p_component_code               => l_component_code
100152   , p_component_type_code          => l_component_type_code
100153   , p_component_appl_id            => l_component_appl_id
100154   , p_amb_context_code             => l_amb_context_code
100155   , p_side                         => 'NA'
100156   );
100157 
100158 
100159    --
100160    --
100161    END IF;
100162 
100163        --
100164        -- Update the line information that should be overwritten
100165        --
100166        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
100167                                          p_header_num   => 1);
100168        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
100169 
100170        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
100171 
100172        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
100173           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
100174        END IF;
100175 
100176       --
100177       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
100178       --
100179       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
100180           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
100181       ELSE
100182           ---------------------------------------------------------------------------------------------------
100183           -- 4262811a Switch Sign
100184           ---------------------------------------------------------------------------------------------------
100185           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
100186           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
100187                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
100188           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
100189                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
100190           -- 5132302
100191           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
100192                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
100193 
100194       END IF;
100195 
100196       -- 4955764
100197       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
100198       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
100199 
100200 
100201       XLA_AE_LINES_PKG.ValidateCurrentLine;
100202       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
100203 
100204       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
100205                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
100206                ,p_balance_type_code => l_balance_type_code);
100207 
100208    END IF;
100209 
100210    -----------------------------------------------------------------------------------------
100211    -- 4262811 Multiperiod Accounting
100212    -----------------------------------------------------------------------------------------
100213      -- No MPA option is assigned.
100214 
100215 
100216 END IF;
100217 END IF;
100218 --
100222    trace
100219 
100220 --
100221 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
100223       (p_msg      => 'END of AcctLineType_171'
100224       ,p_level    => C_LEVEL_PROCEDURE
100225       ,p_module   => l_log_module);
100226 END IF;
100227 --
100228 EXCEPTION
100229   WHEN xla_exceptions_pkg.application_exception THEN
100230       RAISE;
100231   WHEN OTHERS THEN
100232        xla_exceptions_pkg.raise_message
100233            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_171');
100234 END AcctLineType_171;
100235 --
100236 
100237 ---------------------------------------
100238 --
100239 -- PRIVATE FUNCTION
100240 --         AcctLineType_172
100241 --
100242 ---------------------------------------
100243 PROCEDURE AcctLineType_172 (
100244   p_application_id        IN NUMBER
100245  ,p_event_id              IN NUMBER
100246  ,p_calculate_acctd_flag  IN VARCHAR2
100247  ,p_calculate_g_l_flag    IN VARCHAR2
100248  ,p_actual_flag           IN OUT VARCHAR2
100249  ,p_balance_type_code     OUT VARCHAR2
100250  ,p_gain_or_loss_ref      OUT VARCHAR2
100251  
100252 --Invoice Distribution Description
100253  , p_source_1            IN VARCHAR2
100254 --Invoice Distribution Ledger Amount
100255  , p_source_21            IN NUMBER
100256 --Invoice Distribution Account
100257  , p_source_30            IN NUMBER
100258 --Invoice Distribution Type
100259  , p_source_33            IN VARCHAR2
100260  , p_source_33_meaning    IN VARCHAR2
100261 --Accounting Reversal Indicator
100262  , p_source_53            IN VARCHAR2
100263 --Distribution Link Type
100264  , p_source_55            IN VARCHAR2
100265 --Allocation to Main Distribution Identifier
100266  , p_source_57            IN NUMBER
100267 --Invoice Identifier
100268  , p_source_58            IN NUMBER
100269 --Invoice Distribution Identifier
100270  , p_source_64            IN NUMBER
100271 --Payables Encumbrance Upgrade Credit Account
100272  , p_source_65            IN NUMBER
100273 --Payables Encumbrance Upgrade Credit Amount
100274  , p_source_66            IN NUMBER
100275 --Invoice Currency Code
100276  , p_source_67            IN VARCHAR2
100277 --Payables Encumbrance Upgrade Credit Base Amount
100278  , p_source_68            IN NUMBER
100279 --Payables Encumbrance Upgrade Debit Account
100280  , p_source_69            IN NUMBER
100281 --Payables Encumbrance Upgrade Debit Amount
100282  , p_source_70            IN NUMBER
100283 --Payables Encumbrance Upgrade Debit Base Amount
100284  , p_source_71            IN NUMBER
100285 --Payables Encumbrance Upgrade Option
100286  , p_source_72            IN VARCHAR2
100287 --Invoice Distribution Amount
100288  , p_source_73            IN NUMBER
100289 --Deferred Accounting End Date
100290  , p_source_77            IN DATE
100291 --Deferred Accounting Option
100292  , p_source_78            IN VARCHAR2
100293 --Deferred Accounting Start Date
100294  , p_source_79            IN DATE
100295 --Override Accounted Amount Indicator
100296  , p_source_80            IN VARCHAR2
100297  , p_source_80_meaning    IN VARCHAR2
100298 --Invoice Supplier Identifier
100299  , p_source_81            IN NUMBER
100300 --Invoice Supplier Site Identifier
100301  , p_source_82            IN NUMBER
100302 --Third Party Type
100303  , p_source_83            IN VARCHAR2
100304 --Parent Reversal Identifier
100305  , p_source_84            IN NUMBER
100306 --Invoice Distribution Tax Line Identifier
100307  , p_source_86            IN NUMBER
100308 --Invoice Distribution Tax Distribution Identifier from Tax
100309  , p_source_87            IN NUMBER
100310 --Invoice Distribution Summary Tax Line Identifier
100311  , p_source_88            IN NUMBER
100312 --Payables Upgrade Credit Encumbrance Type Identifier
100313  , p_source_89            IN NUMBER
100314 --Payables Upgrade Debit Encumbrance Type Identifier
100315  , p_source_90            IN NUMBER
100316 --Business Flow Accounts Payable Application Identifier
100317  , p_source_91            IN NUMBER
100318 --Business Flow Invoice Distribution Type
100319  , p_source_92            IN VARCHAR2
100320 --Business Flow Invoice Entity Code
100321  , p_source_93            IN VARCHAR2
100322 --Business Flow Invoice Distribution Identifier
100323  , p_source_94            IN NUMBER
100324 --Business Flow Invoice Identifier
100325  , p_source_95            IN NUMBER
100326 --Invoice Exchange Date
100327  , p_source_143            IN DATE
100328 --Invoice Exchange Rate
100329  , p_source_144            IN NUMBER
100330 --Invoice Exchange Rate Type
100331  , p_source_145            IN VARCHAR2
100332 )
100333 IS
100334 
100335 l_component_type              VARCHAR2(80);
100336 l_component_code              VARCHAR2(30);
100337 l_component_type_code         VARCHAR2(1);
100338 l_component_appl_id           INTEGER;
100339 l_amb_context_code            VARCHAR2(30);
100340 l_entity_code                 VARCHAR2(30);
100341 l_event_class_code            VARCHAR2(30);
100342 l_ae_header_id                NUMBER;
100343 l_event_type_code             VARCHAR2(30);
100344 l_line_definition_code        VARCHAR2(30);
100345 l_line_definition_owner_code  VARCHAR2(1);
100346 --
100347 -- adr variables
100348 l_segment                     VARCHAR2(30);
100349 l_ccid                        NUMBER;
100350 l_adr_transaction_coa_id      NUMBER;
100351 l_adr_accounting_coa_id       NUMBER;
100352 l_adr_flexfield_segment_code  VARCHAR2(30);
100353 l_adr_flex_value_set_id       NUMBER;
100354 l_adr_value_type_code         VARCHAR2(30);
100358 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
100355 l_adr_value_combination_id    NUMBER;
100356 l_adr_value_segment_code      VARCHAR2(30);
100357 
100359 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
100360 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
100361 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
100362 
100363 -- 4262811 Variables ------------------------------------------------------------------------------------------
100364 l_entered_amt_idx             NUMBER;
100365 l_accted_amt_idx              NUMBER;
100366 l_acc_rev_flag                VARCHAR2(1);
100367 l_accrual_line_num            NUMBER;
100368 l_tmp_amt                     NUMBER;
100369 l_acc_rev_natural_side_code   VARCHAR2(1);
100370 
100371 l_num_entries                 NUMBER;
100372 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
100373 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
100374 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
100375 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
100376 l_recog_line_1                NUMBER;
100377 l_recog_line_2                NUMBER;
100378 
100379 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
100380 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
100381 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
100382 
100383 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
100384 
100385 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
100386 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
100387 
100388 ---------------------------------------------------------------------------------------------------------------
100389 
100390 
100391 --
100392 -- bulk performance
100393 --
100394 l_balance_type_code           VARCHAR2(1);
100395 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
100396 l_log_module                  VARCHAR2(240);
100397 
100398 --
100399 -- Upgrade strategy
100400 --
100401 l_actual_upg_option           VARCHAR2(1);
100402 l_enc_upg_option           VARCHAR2(1);
100403 
100404 --
100405 BEGIN
100406 --
100407 IF g_log_enabled THEN
100408       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_172';
100409 END IF;
100410 --
100411 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
100412 
100413       trace
100414          (p_msg      => 'BEGIN of AcctLineType_172'
100415          ,p_level    => C_LEVEL_PROCEDURE
100416          ,p_module   => l_log_module);
100417 
100418 END IF;
100419 --
100420 l_component_type             := 'AMB_JLT';
100421 l_component_code             := 'AP_MISC_EXPENSE_DM';
100422 l_component_type_code        := 'S';
100423 l_component_appl_id          :=  200;
100424 l_amb_context_code           := 'DEFAULT';
100425 l_entity_code                := 'AP_INVOICES';
100426 l_event_class_code           := 'DEBIT MEMOS';
100427 l_event_type_code            := 'DEBIT MEMOS_ALL';
100428 l_line_definition_owner_code := 'S';
100429 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
100430 --
100431 l_balance_type_code          := 'A';
100432 l_segment                     := NULL;
100433 l_ccid                        := NULL;
100434 l_adr_transaction_coa_id      := NULL;
100435 l_adr_accounting_coa_id       := NULL;
100436 l_adr_flexfield_segment_code  := NULL;
100437 l_adr_flex_value_set_id       := NULL;
100438 l_adr_value_type_code         := NULL;
100439 l_adr_value_combination_id    := NULL;
100440 l_adr_value_segment_code      := NULL;
100441 
100442 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
100443 l_bflow_class_code           := '';    -- 4219869 Business Flow
100444 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
100445 l_budgetary_control_flag     := 'N';
100446 
100447 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
100448 l_bflow_applied_to_amt       := NULL; -- 5132302
100449 l_entered_amt_idx            := NULL;          -- 4262811
100450 l_accted_amt_idx             := NULL;          -- 4262811
100451 l_acc_rev_flag               := NULL;          -- 4262811
100452 l_accrual_line_num           := NULL;          -- 4262811
100453 l_tmp_amt                    := NULL;          -- 4262811
100454 --
100455  
100456 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
100457     l_balance_type_code <> 'B' THEN
100458 IF NVL(p_source_33,'
100459 ') =  'MISCELLANEOUS'
100460  THEN 
100461 
100462    --
100463    XLA_AE_LINES_PKG.SetNewLine;
100464 
100465    p_balance_type_code          := l_balance_type_code;
100466    -- set the flag so later we will know whether the gain loss line needs to be created
100467    
100468    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
100469      p_actual_flag :='A';
100470    END IF;
100471 
100472    --
100473    -- bulk performance
100474    --
100475    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
100476                                       p_header_num   => 0); -- 4262811
100477    --
100478    -- set accounting line options
100479    --
100480    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
100481            p_natural_side_code          => 'D'
100482          , p_gain_or_loss_flag          => 'N'
100483          , p_gl_transfer_mode_code      => 'S'
100484          , p_acct_entry_type_code       => 'A'
100485          , p_switch_side_flag           => 'Y'
100489    l_acc_rev_natural_side_code := 'C';  -- 4262811
100486          , p_merge_duplicate_code       => 'A'
100487          );
100488    --
100490    -- 
100491    --
100492    -- set accounting line type info
100493    --
100494    xla_ae_lines_pkg.SetAcctLineType
100495       (p_component_type             => l_component_type
100496       ,p_event_type_code            => l_event_type_code
100497       ,p_line_definition_owner_code => l_line_definition_owner_code
100498       ,p_line_definition_code       => l_line_definition_code
100499       ,p_accounting_line_code       => l_component_code
100500       ,p_accounting_line_type_code  => l_component_type_code
100501       ,p_accounting_line_appl_id    => l_component_appl_id
100502       ,p_amb_context_code           => l_amb_context_code
100503       ,p_entity_code                => l_entity_code
100504       ,p_event_class_code           => l_event_class_code);
100505    --
100506    -- set accounting class
100507    --
100508    xla_ae_lines_pkg.SetAcctClass(
100509            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
100510          , p_ae_header_id           => l_ae_header_id
100511          );
100512 
100513    --
100514    -- set rounding class
100515    --
100516    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
100517                       'MISCELLANEOUS EXPENSE';
100518 
100519    --
100520    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
100521    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
100522    --
100523    -- bulk performance
100524    --
100525    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
100526 
100527    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
100528       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
100529 
100530    -- 4955764
100531    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
100532       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
100533 
100534    -- 4458381 Public Sector Enh
100535    
100536    --
100537    -- set accounting attributes for the line type
100538    --
100539    l_entered_amt_idx := 23;
100540    l_accted_amt_idx  := 28;
100541    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
100542    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
100543    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
100544    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
100545    l_rec_acct_attrs.array_num_value(2)  := 
100546 xla_ae_sources_pkg.GetSystemSourceNum(
100547    p_source_code           => 'XLA_EVENT_APPL_ID'
100548  , p_source_type_code      => 'Y'
100549  , p_source_application_id =>  602
100550 );
100551    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
100552    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
100553    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
100554    l_rec_acct_attrs.array_char_value(4)  := 
100555 xla_ae_sources_pkg.GetSystemSourceChar(
100556    p_source_code           => 'XLA_ENTITY_CODE'
100557  , p_source_type_code      => 'Y'
100558  , p_source_application_id =>  602
100559 );
100560    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
100561    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
100562    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
100563    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
100564    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
100565    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
100566    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
100567    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
100568    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
100569    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
100570    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
100571    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
100572    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
100573    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
100574    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
100575    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
100576    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
100577    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
100578    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
100579    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
100580    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
100581    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
100582    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
100583    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
100584    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
100585    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
100586    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
100587    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
100588    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
100589    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
100590    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
100594    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
100591    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
100592    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
100593    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
100595    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
100596    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
100597    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
100598    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
100599    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
100600    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
100601    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
100602    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
100603    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
100604    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
100605    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
100606    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
100607    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
100608    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
100609    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
100610    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
100611    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
100612    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
100613    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
100614    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
100615    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
100616    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
100617    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
100618    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
100619    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
100620    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
100621    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
100622    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
100623    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
100624    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
100625    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
100626    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
100627    l_rec_acct_attrs.array_num_value(38)  := p_source_86;
100628    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
100629    l_rec_acct_attrs.array_num_value(39)  := p_source_87;
100630    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
100631    l_rec_acct_attrs.array_num_value(40)  := p_source_88;
100632    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
100633    l_rec_acct_attrs.array_num_value(41)  := p_source_89;
100634    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
100635    l_rec_acct_attrs.array_num_value(42)  := p_source_90;
100636 
100637    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
100638    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
100639 
100640    ---------------------------------------------------------------------------------------------------------------
100641    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
100642    ---------------------------------------------------------------------------------------------------------------
100643    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
100644 
100645    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
100646    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
100647 
100648    IF xla_accounting_cache_pkg.GetValueChar
100649          (p_source_code         => 'LEDGER_CATEGORY_CODE'
100650          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
100651    AND l_bflow_method_code = 'PRIOR_ENTRY'
100652 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
100653    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
100654          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
100655        )
100656    THEN
100657          xla_ae_lines_pkg.BflowUpgEntry
100658            (p_business_method_code    => l_bflow_method_code
100659            ,p_business_class_code     => l_bflow_class_code
100660            ,p_balance_type            => l_balance_type_code);
100661    ELSE
100662       NULL;
100663 -- No business flow processing for business flow method of NONE.
100664    END IF;
100665 
100666    --
100667    -- call analytical criteria
100668    --
100669    
100670    --
100671    -- call description
100672    --
100673    
100674 xla_ae_lines_pkg.SetLineDescription(
100675    p_ae_header_id => l_ae_header_id
100676   ,p_description  => Description_1 (
100677      p_application_id         => p_application_id
100678    , p_ae_header_id           => l_ae_header_id 
100679 , p_source_1 => p_source_1
100680    )
100681 );
100682 
100683 
100684    --
100685    -- call ADRs
100686    -- Bug 4922099
100687    --
100688    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
100689         (NVL(l_actual_upg_option, 'N') = 'O') OR
100690         (NVL(l_enc_upg_option, 'N') = 'O')
100691       )
100692    THEN
100693    NULL;
100697   l_ccid := AcctDerRule_33(
100694    --
100695    --
100696    
100698            p_application_id           => p_application_id
100699          , p_ae_header_id             => l_ae_header_id 
100700 , p_source_30 => p_source_30
100701          , x_transaction_coa_id       => l_adr_transaction_coa_id
100702          , x_accounting_coa_id        => l_adr_accounting_coa_id
100703          , x_value_type_code          => l_adr_value_type_code
100704          , p_side                     => 'NA'
100705    );
100706 
100707    xla_ae_lines_pkg.set_ccid(
100708     p_code_combination_id          => l_ccid
100709   , p_value_type_code              => l_adr_value_type_code
100710   , p_transaction_coa_id           => l_adr_transaction_coa_id
100711   , p_accounting_coa_id            => l_adr_accounting_coa_id
100712   , p_adr_code                     => 'AP_INVOICE_DIST'
100713   , p_adr_type_code                => 'S'
100714   , p_component_type               => l_component_type
100715   , p_component_code               => l_component_code
100716   , p_component_type_code          => l_component_type_code
100717   , p_component_appl_id            => l_component_appl_id
100718   , p_amb_context_code             => l_amb_context_code
100719   , p_side                         => 'NA'
100720   );
100721 
100722 
100723    --
100724    --
100725    END IF;
100726    --
100727    -- Bug 4922099
100728    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
100729           (NVL(l_enc_upg_option, 'N') = 'O')
100730         ) AND
100731         (l_bflow_method_code = 'PRIOR_ENTRY')
100732       )
100733    THEN
100734       IF
100735       --
100736       1 = 2
100737       --
100738       THEN
100739       xla_accounting_err_pkg.build_message
100740                                     (p_appli_s_name            => 'XLA'
100741                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
100742                                     ,p_token_1                 => 'LINE_NUMBER'
100743                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
100744                                     ,p_token_2                 => 'LINE_TYPE_NAME'
100745                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
100746                                                                              l_component_type
100747                                                                             ,l_component_code
100748                                                                             ,l_component_type_code
100749                                                                             ,l_component_appl_id
100750                                                                             ,l_amb_context_code
100751                                                                             ,l_entity_code
100752                                                                             ,l_event_class_code
100753                                                                            )
100754                                     ,p_token_3                 => 'OWNER'
100755                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
100756                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
100757                                                                           ,p_lookup_code    => l_component_type_code
100758                                                                          )
100759                                     ,p_token_4                 => 'PRODUCT_NAME'
100760                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
100761                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
100762                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
100763                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
100764                                     ,p_ae_header_id            =>  NULL
100765                                        );
100766 
100767         IF (C_LEVEL_ERROR>= g_log_level) THEN
100768                  trace
100769                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
100770                       ,p_level    => C_LEVEL_ERROR
100771                       ,p_module   => l_log_module);
100772         END IF;
100773       END IF;
100774    END IF;
100775    --
100776    --
100777    ------------------------------------------------------------------------------------------------
100778    -- 4219869 Business Flow
100779    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
100780    -- Prior Entry.  Currently, the following code is always generated.
100781    ------------------------------------------------------------------------------------------------
100782    XLA_AE_LINES_PKG.ValidateCurrentLine;
100783 
100784    ------------------------------------------------------------------------------------
100785    -- 4219869 Business Flow
100786    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
100787    ------------------------------------------------------------------------------------
100788    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
100789 
100790    ----------------------------------------------------------------------------------
100791    -- 4219869 Business Flow
100792    -- Update journal entry status -- Need to generate this within IF <condition>
100796          ,p_balance_type_code => l_balance_type_code
100793    ----------------------------------------------------------------------------------
100794    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
100795          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
100797          );
100798 
100799    -------------------------------------------------------------------------------------------
100800    -- 4262811 - Generate the Accrual Reversal lines
100801    -------------------------------------------------------------------------------------------
100802    BEGIN
100803       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
100804                               (g_array_event(p_event_id).array_value_num('header_index'));
100805       IF l_acc_rev_flag IS NULL THEN
100806          l_acc_rev_flag := 'N';
100807       END IF;
100808    EXCEPTION
100809       WHEN OTHERS THEN
100810          l_acc_rev_flag := 'N';
100811    END;
100812    --
100813    IF (l_acc_rev_flag = 'Y') THEN
100814 
100815        -- 4645092  ------------------------------------------------------------------------------
100816        -- To allow MPA report to determine if it should generate report process
100817        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
100818        ------------------------------------------------------------------------------------------
100819 
100820        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
100821        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
100822    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
100823    -- call ADRs
100824    -- Bug 4922099
100825    --
100826    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
100827         (NVL(l_actual_upg_option, 'N') = 'O') OR
100828         (NVL(l_enc_upg_option, 'N') = 'O')
100829       )
100830    THEN
100831    NULL;
100832    --
100833    --
100834    
100835   l_ccid := AcctDerRule_33(
100836            p_application_id           => p_application_id
100837          , p_ae_header_id             => l_ae_header_id 
100838 , p_source_30 => p_source_30
100839          , x_transaction_coa_id       => l_adr_transaction_coa_id
100840          , x_accounting_coa_id        => l_adr_accounting_coa_id
100841          , x_value_type_code          => l_adr_value_type_code
100842          , p_side                     => 'NA'
100843    );
100844 
100845    xla_ae_lines_pkg.set_ccid(
100846     p_code_combination_id          => l_ccid
100847   , p_value_type_code              => l_adr_value_type_code
100848   , p_transaction_coa_id           => l_adr_transaction_coa_id
100849   , p_accounting_coa_id            => l_adr_accounting_coa_id
100850   , p_adr_code                     => 'AP_INVOICE_DIST'
100851   , p_adr_type_code                => 'S'
100852   , p_component_type               => l_component_type
100853   , p_component_code               => l_component_code
100854   , p_component_type_code          => l_component_type_code
100855   , p_component_appl_id            => l_component_appl_id
100856   , p_amb_context_code             => l_amb_context_code
100857   , p_side                         => 'NA'
100858   );
100859 
100860 
100861    --
100862    --
100863    END IF;
100864 
100865        --
100866        -- Update the line information that should be overwritten
100867        --
100868        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
100869                                          p_header_num   => 1);
100870        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
100871 
100872        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
100873 
100874        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
100875           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
100876        END IF;
100877 
100878       --
100879       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
100880       --
100881       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
100882           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
100883       ELSE
100884           ---------------------------------------------------------------------------------------------------
100885           -- 4262811a Switch Sign
100886           ---------------------------------------------------------------------------------------------------
100887           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
100888           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
100889                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
100890           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
100891                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
100892           -- 5132302
100893           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
100894                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
100895 
100896       END IF;
100897 
100898       -- 4955764
100899       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
100900       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
100901 
100902 
100903       XLA_AE_LINES_PKG.ValidateCurrentLine;
100907                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
100904       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
100905 
100906       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
100908                ,p_balance_type_code => l_balance_type_code);
100909 
100910    END IF;
100911 
100912    -----------------------------------------------------------------------------------------
100913    -- 4262811 Multiperiod Accounting
100914    -----------------------------------------------------------------------------------------
100915      -- No MPA option is assigned.
100916 
100917 
100918 END IF;
100919 END IF;
100920 --
100921 
100922 --
100923 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
100924    trace
100925       (p_msg      => 'END of AcctLineType_172'
100926       ,p_level    => C_LEVEL_PROCEDURE
100927       ,p_module   => l_log_module);
100928 END IF;
100929 --
100930 EXCEPTION
100931   WHEN xla_exceptions_pkg.application_exception THEN
100932       RAISE;
100933   WHEN OTHERS THEN
100934        xla_exceptions_pkg.raise_message
100935            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_172');
100936 END AcctLineType_172;
100937 --
100938 
100939 ---------------------------------------
100940 --
100941 -- PRIVATE FUNCTION
100942 --         AcctLineType_173
100943 --
100944 ---------------------------------------
100945 PROCEDURE AcctLineType_173 (
100946   p_application_id        IN NUMBER
100947  ,p_event_id              IN NUMBER
100948  ,p_calculate_acctd_flag  IN VARCHAR2
100949  ,p_calculate_g_l_flag    IN VARCHAR2
100950  ,p_actual_flag           IN OUT VARCHAR2
100951  ,p_balance_type_code     OUT VARCHAR2
100952  ,p_gain_or_loss_ref      OUT VARCHAR2
100953  
100954 --Invoice Distribution Description
100955  , p_source_1            IN VARCHAR2
100956 --Invoice Distribution Ledger Amount
100957  , p_source_21            IN NUMBER
100958 --Invoice Distribution Account
100959  , p_source_30            IN NUMBER
100960 --Invoice Distribution Type
100961  , p_source_33            IN VARCHAR2
100962  , p_source_33_meaning    IN VARCHAR2
100963 --Accounting Reversal Indicator
100964  , p_source_53            IN VARCHAR2
100965 --Distribution Link Type
100966  , p_source_55            IN VARCHAR2
100967 --Allocation to Main Distribution Identifier
100968  , p_source_57            IN NUMBER
100969 --Invoice Identifier
100970  , p_source_58            IN NUMBER
100971 --Invoice Distribution Identifier
100972  , p_source_64            IN NUMBER
100973 --Payables Encumbrance Upgrade Credit Account
100974  , p_source_65            IN NUMBER
100975 --Payables Encumbrance Upgrade Credit Amount
100976  , p_source_66            IN NUMBER
100977 --Invoice Currency Code
100978  , p_source_67            IN VARCHAR2
100979 --Payables Encumbrance Upgrade Credit Base Amount
100980  , p_source_68            IN NUMBER
100981 --Payables Encumbrance Upgrade Debit Account
100982  , p_source_69            IN NUMBER
100983 --Payables Encumbrance Upgrade Debit Amount
100984  , p_source_70            IN NUMBER
100985 --Payables Encumbrance Upgrade Debit Base Amount
100986  , p_source_71            IN NUMBER
100987 --Payables Encumbrance Upgrade Option
100988  , p_source_72            IN VARCHAR2
100989 --Invoice Distribution Amount
100990  , p_source_73            IN NUMBER
100991 --Deferred Accounting End Date
100992  , p_source_77            IN DATE
100993 --Deferred Accounting Option
100994  , p_source_78            IN VARCHAR2
100995 --Deferred Accounting Start Date
100996  , p_source_79            IN DATE
100997 --Override Accounted Amount Indicator
100998  , p_source_80            IN VARCHAR2
100999  , p_source_80_meaning    IN VARCHAR2
101000 --Invoice Supplier Identifier
101001  , p_source_81            IN NUMBER
101002 --Invoice Supplier Site Identifier
101003  , p_source_82            IN NUMBER
101004 --Third Party Type
101005  , p_source_83            IN VARCHAR2
101006 --Parent Reversal Identifier
101007  , p_source_84            IN NUMBER
101008 --Invoice Distribution Statistical Amount
101009  , p_source_85            IN NUMBER
101010 --Invoice Distribution Tax Line Identifier
101011  , p_source_86            IN NUMBER
101012 --Invoice Distribution Tax Distribution Identifier from Tax
101013  , p_source_87            IN NUMBER
101014 --Invoice Distribution Summary Tax Line Identifier
101015  , p_source_88            IN NUMBER
101016 --Payables Upgrade Credit Encumbrance Type Identifier
101017  , p_source_89            IN NUMBER
101018 --Payables Upgrade Debit Encumbrance Type Identifier
101019  , p_source_90            IN NUMBER
101020 --Business Flow Accounts Payable Application Identifier
101021  , p_source_91            IN NUMBER
101022 --Business Flow Invoice Distribution Type
101023  , p_source_92            IN VARCHAR2
101024 --Business Flow Invoice Entity Code
101025  , p_source_93            IN VARCHAR2
101026 --Business Flow Invoice Distribution Identifier
101027  , p_source_94            IN NUMBER
101028 --Business Flow Invoice Identifier
101029  , p_source_95            IN NUMBER
101030 --Invoice Exchange Date
101031  , p_source_143            IN DATE
101032 --Invoice Exchange Rate
101033  , p_source_144            IN NUMBER
101034 --Invoice Exchange Rate Type
101035  , p_source_145            IN VARCHAR2
101036 )
101037 IS
101038 
101039 l_component_type              VARCHAR2(80);
101040 l_component_code              VARCHAR2(30);
101041 l_component_type_code         VARCHAR2(1);
101045 l_event_class_code            VARCHAR2(30);
101042 l_component_appl_id           INTEGER;
101043 l_amb_context_code            VARCHAR2(30);
101044 l_entity_code                 VARCHAR2(30);
101046 l_ae_header_id                NUMBER;
101047 l_event_type_code             VARCHAR2(30);
101048 l_line_definition_code        VARCHAR2(30);
101049 l_line_definition_owner_code  VARCHAR2(1);
101050 --
101051 -- adr variables
101052 l_segment                     VARCHAR2(30);
101053 l_ccid                        NUMBER;
101054 l_adr_transaction_coa_id      NUMBER;
101055 l_adr_accounting_coa_id       NUMBER;
101056 l_adr_flexfield_segment_code  VARCHAR2(30);
101057 l_adr_flex_value_set_id       NUMBER;
101058 l_adr_value_type_code         VARCHAR2(30);
101059 l_adr_value_combination_id    NUMBER;
101060 l_adr_value_segment_code      VARCHAR2(30);
101061 
101062 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
101063 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
101064 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
101065 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
101066 
101067 -- 4262811 Variables ------------------------------------------------------------------------------------------
101068 l_entered_amt_idx             NUMBER;
101069 l_accted_amt_idx              NUMBER;
101070 l_acc_rev_flag                VARCHAR2(1);
101071 l_accrual_line_num            NUMBER;
101072 l_tmp_amt                     NUMBER;
101073 l_acc_rev_natural_side_code   VARCHAR2(1);
101074 
101075 l_num_entries                 NUMBER;
101076 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
101077 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
101078 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
101079 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
101080 l_recog_line_1                NUMBER;
101081 l_recog_line_2                NUMBER;
101082 
101083 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
101084 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
101085 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
101086 
101087 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
101088 
101089 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
101090 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
101091 
101092 ---------------------------------------------------------------------------------------------------------------
101093 
101094 
101095 --
101096 -- bulk performance
101097 --
101098 l_balance_type_code           VARCHAR2(1);
101099 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
101100 l_log_module                  VARCHAR2(240);
101101 
101102 --
101103 -- Upgrade strategy
101104 --
101105 l_actual_upg_option           VARCHAR2(1);
101106 l_enc_upg_option           VARCHAR2(1);
101107 
101108 --
101109 BEGIN
101110 --
101111 IF g_log_enabled THEN
101112       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_173';
101113 END IF;
101114 --
101115 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
101116 
101117       trace
101118          (p_msg      => 'BEGIN of AcctLineType_173'
101119          ,p_level    => C_LEVEL_PROCEDURE
101120          ,p_module   => l_log_module);
101121 
101122 END IF;
101123 --
101124 l_component_type             := 'AMB_JLT';
101125 l_component_code             := 'AP_MISC_EXPENSE_INV';
101126 l_component_type_code        := 'S';
101127 l_component_appl_id          :=  200;
101128 l_amb_context_code           := 'DEFAULT';
101129 l_entity_code                := 'AP_INVOICES';
101130 l_event_class_code           := 'INVOICES';
101131 l_event_type_code            := 'INVOICES_ALL';
101132 l_line_definition_owner_code := 'S';
101133 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
101134 --
101135 l_balance_type_code          := 'A';
101136 l_segment                     := NULL;
101137 l_ccid                        := NULL;
101138 l_adr_transaction_coa_id      := NULL;
101139 l_adr_accounting_coa_id       := NULL;
101140 l_adr_flexfield_segment_code  := NULL;
101141 l_adr_flex_value_set_id       := NULL;
101142 l_adr_value_type_code         := NULL;
101143 l_adr_value_combination_id    := NULL;
101144 l_adr_value_segment_code      := NULL;
101145 
101146 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
101147 l_bflow_class_code           := '';    -- 4219869 Business Flow
101148 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
101149 l_budgetary_control_flag     := 'N';
101150 
101151 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
101152 l_bflow_applied_to_amt       := NULL; -- 5132302
101153 l_entered_amt_idx            := NULL;          -- 4262811
101154 l_accted_amt_idx             := NULL;          -- 4262811
101155 l_acc_rev_flag               := NULL;          -- 4262811
101156 l_accrual_line_num           := NULL;          -- 4262811
101157 l_tmp_amt                    := NULL;          -- 4262811
101158 --
101159  
101160 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
101161     l_balance_type_code <> 'B' THEN
101162 IF NVL(p_source_33,'
101163 ') =  'MISCELLANEOUS'
101164  THEN 
101165 
101166    --
101167    XLA_AE_LINES_PKG.SetNewLine;
101168 
101169    p_balance_type_code          := l_balance_type_code;
101170    -- set the flag so later we will know whether the gain loss line needs to be created
101174    END IF;
101171    
101172    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
101173      p_actual_flag :='A';
101175 
101176    --
101177    -- bulk performance
101178    --
101179    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
101180                                       p_header_num   => 0); -- 4262811
101181    --
101182    -- set accounting line options
101183    --
101184    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
101185            p_natural_side_code          => 'D'
101186          , p_gain_or_loss_flag          => 'N'
101187          , p_gl_transfer_mode_code      => 'S'
101188          , p_acct_entry_type_code       => 'A'
101189          , p_switch_side_flag           => 'Y'
101190          , p_merge_duplicate_code       => 'A'
101191          );
101192    --
101193    l_acc_rev_natural_side_code := 'C';  -- 4262811
101194    -- 
101195    --
101196    -- set accounting line type info
101197    --
101198    xla_ae_lines_pkg.SetAcctLineType
101199       (p_component_type             => l_component_type
101200       ,p_event_type_code            => l_event_type_code
101201       ,p_line_definition_owner_code => l_line_definition_owner_code
101202       ,p_line_definition_code       => l_line_definition_code
101203       ,p_accounting_line_code       => l_component_code
101204       ,p_accounting_line_type_code  => l_component_type_code
101205       ,p_accounting_line_appl_id    => l_component_appl_id
101206       ,p_amb_context_code           => l_amb_context_code
101207       ,p_entity_code                => l_entity_code
101208       ,p_event_class_code           => l_event_class_code);
101209    --
101210    -- set accounting class
101211    --
101212    xla_ae_lines_pkg.SetAcctClass(
101213            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
101214          , p_ae_header_id           => l_ae_header_id
101215          );
101216 
101217    --
101218    -- set rounding class
101219    --
101220    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
101221                       'MISCELLANEOUS EXPENSE';
101222 
101223    --
101224    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
101225    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
101226    --
101227    -- bulk performance
101228    --
101229    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
101230 
101231    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
101232       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
101233 
101234    -- 4955764
101235    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
101236       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
101237 
101238    -- 4458381 Public Sector Enh
101239    
101240    --
101241    -- set accounting attributes for the line type
101242    --
101243    l_entered_amt_idx := 24;
101244    l_accted_amt_idx  := 29;
101245    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
101246    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
101247    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
101248    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
101249    l_rec_acct_attrs.array_num_value(2)  := 
101250 xla_ae_sources_pkg.GetSystemSourceNum(
101251    p_source_code           => 'XLA_EVENT_APPL_ID'
101252  , p_source_type_code      => 'Y'
101253  , p_source_application_id =>  602
101254 );
101255    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
101256    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
101257    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
101258    l_rec_acct_attrs.array_char_value(4)  := 
101259 xla_ae_sources_pkg.GetSystemSourceChar(
101260    p_source_code           => 'XLA_ENTITY_CODE'
101261  , p_source_type_code      => 'Y'
101262  , p_source_application_id =>  602
101263 );
101264    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
101265    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
101266    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
101267    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
101268    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
101269    l_rec_acct_attrs.array_num_value(7)  := p_source_73;
101270    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
101271    l_rec_acct_attrs.array_num_value(8)  := p_source_91;
101272    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
101273    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
101274    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
101275    l_rec_acct_attrs.array_char_value(10)  := p_source_93;
101276    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
101277    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
101278    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
101279    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_95);
101280    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
101281    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_64);
101282    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
101286    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
101283    l_rec_acct_attrs.array_char_value(14)  := p_source_55;
101284    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
101285    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
101287    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
101288    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
101289    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
101290    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
101291    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
101292    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
101293    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
101294    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
101295    l_rec_acct_attrs.array_num_value(20)  := p_source_70;
101296    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
101297    l_rec_acct_attrs.array_char_value(21)  := p_source_67;
101298    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
101299    l_rec_acct_attrs.array_num_value(22)  := p_source_71;
101300    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
101301    l_rec_acct_attrs.array_char_value(23)  := p_source_72;
101302    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
101303    l_rec_acct_attrs.array_num_value(24)  := p_source_73;
101304    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
101305    l_rec_acct_attrs.array_char_value(25)  := p_source_67;
101306    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
101307    l_rec_acct_attrs.array_date_value(26)  := p_source_143;
101308    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
101309    l_rec_acct_attrs.array_num_value(27)  := p_source_144;
101310    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
101311    l_rec_acct_attrs.array_char_value(28)  := p_source_145;
101312    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
101313    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
101314    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
101315    l_rec_acct_attrs.array_date_value(30)  := p_source_77;
101316    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
101317    l_rec_acct_attrs.array_char_value(31)  := p_source_78;
101318    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
101319    l_rec_acct_attrs.array_date_value(32)  := p_source_79;
101320    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
101321    l_rec_acct_attrs.array_char_value(33)  := p_source_80;
101322    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
101323    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
101324    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
101325    l_rec_acct_attrs.array_num_value(35)  := p_source_82;
101326    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
101327    l_rec_acct_attrs.array_char_value(36)  := p_source_83;
101328    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
101329    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_84);
101330    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
101331    l_rec_acct_attrs.array_char_value(38)  := p_source_55;
101332    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
101333    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
101334    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
101335    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
101336    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
101337    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
101338    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
101339    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
101340    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
101341    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
101342    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
101343    l_rec_acct_attrs.array_num_value(44)  := p_source_90;
101344 
101345    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
101346    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
101347 
101348    ---------------------------------------------------------------------------------------------------------------
101349    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
101350    ---------------------------------------------------------------------------------------------------------------
101351    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
101352 
101353    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
101354    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
101355 
101356    IF xla_accounting_cache_pkg.GetValueChar
101357          (p_source_code         => 'LEDGER_CATEGORY_CODE'
101358          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
101359    AND l_bflow_method_code = 'PRIOR_ENTRY'
101360 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
101361    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
101362          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
101363        )
101364    THEN
101365          xla_ae_lines_pkg.BflowUpgEntry
101366            (p_business_method_code    => l_bflow_method_code
101370       NULL;
101367            ,p_business_class_code     => l_bflow_class_code
101368            ,p_balance_type            => l_balance_type_code);
101369    ELSE
101371 -- No business flow processing for business flow method of NONE.
101372    END IF;
101373 
101374    --
101375    -- call analytical criteria
101376    --
101377    
101378    --
101379    -- call description
101380    --
101381    
101382 xla_ae_lines_pkg.SetLineDescription(
101383    p_ae_header_id => l_ae_header_id
101384   ,p_description  => Description_1 (
101385      p_application_id         => p_application_id
101386    , p_ae_header_id           => l_ae_header_id 
101387 , p_source_1 => p_source_1
101388    )
101389 );
101390 
101391 
101392    --
101393    -- call ADRs
101394    -- Bug 4922099
101395    --
101396    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
101397         (NVL(l_actual_upg_option, 'N') = 'O') OR
101398         (NVL(l_enc_upg_option, 'N') = 'O')
101399       )
101400    THEN
101401    NULL;
101402    --
101403    --
101404    
101405   l_ccid := AcctDerRule_33(
101406            p_application_id           => p_application_id
101407          , p_ae_header_id             => l_ae_header_id 
101408 , p_source_30 => p_source_30
101409          , x_transaction_coa_id       => l_adr_transaction_coa_id
101410          , x_accounting_coa_id        => l_adr_accounting_coa_id
101411          , x_value_type_code          => l_adr_value_type_code
101412          , p_side                     => 'NA'
101413    );
101414 
101415    xla_ae_lines_pkg.set_ccid(
101416     p_code_combination_id          => l_ccid
101417   , p_value_type_code              => l_adr_value_type_code
101418   , p_transaction_coa_id           => l_adr_transaction_coa_id
101419   , p_accounting_coa_id            => l_adr_accounting_coa_id
101420   , p_adr_code                     => 'AP_INVOICE_DIST'
101421   , p_adr_type_code                => 'S'
101422   , p_component_type               => l_component_type
101423   , p_component_code               => l_component_code
101424   , p_component_type_code          => l_component_type_code
101425   , p_component_appl_id            => l_component_appl_id
101426   , p_amb_context_code             => l_amb_context_code
101427   , p_side                         => 'NA'
101428   );
101429 
101430 
101431    --
101432    --
101433    END IF;
101434    --
101435    -- Bug 4922099
101436    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
101437           (NVL(l_enc_upg_option, 'N') = 'O')
101438         ) AND
101439         (l_bflow_method_code = 'PRIOR_ENTRY')
101440       )
101441    THEN
101442       IF
101443       --
101444       1 = 2
101445       --
101446       THEN
101447       xla_accounting_err_pkg.build_message
101448                                     (p_appli_s_name            => 'XLA'
101449                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
101450                                     ,p_token_1                 => 'LINE_NUMBER'
101451                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
101452                                     ,p_token_2                 => 'LINE_TYPE_NAME'
101453                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
101454                                                                              l_component_type
101455                                                                             ,l_component_code
101456                                                                             ,l_component_type_code
101457                                                                             ,l_component_appl_id
101458                                                                             ,l_amb_context_code
101459                                                                             ,l_entity_code
101460                                                                             ,l_event_class_code
101461                                                                            )
101462                                     ,p_token_3                 => 'OWNER'
101463                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
101464                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
101465                                                                           ,p_lookup_code    => l_component_type_code
101466                                                                          )
101467                                     ,p_token_4                 => 'PRODUCT_NAME'
101468                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
101469                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
101470                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
101471                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
101472                                     ,p_ae_header_id            =>  NULL
101473                                        );
101474 
101475         IF (C_LEVEL_ERROR>= g_log_level) THEN
101476                  trace
101477                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
101478                       ,p_level    => C_LEVEL_ERROR
101479                       ,p_module   => l_log_module);
101480         END IF;
101481       END IF;
101482    END IF;
101483    --
101484    --
101488    -- Prior Entry.  Currently, the following code is always generated.
101485    ------------------------------------------------------------------------------------------------
101486    -- 4219869 Business Flow
101487    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
101489    ------------------------------------------------------------------------------------------------
101490    XLA_AE_LINES_PKG.ValidateCurrentLine;
101491 
101492    ------------------------------------------------------------------------------------
101493    -- 4219869 Business Flow
101494    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
101495    ------------------------------------------------------------------------------------
101496    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
101497 
101498    ----------------------------------------------------------------------------------
101499    -- 4219869 Business Flow
101500    -- Update journal entry status -- Need to generate this within IF <condition>
101501    ----------------------------------------------------------------------------------
101502    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
101503          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
101504          ,p_balance_type_code => l_balance_type_code
101505          );
101506 
101507    -------------------------------------------------------------------------------------------
101508    -- 4262811 - Generate the Accrual Reversal lines
101509    -------------------------------------------------------------------------------------------
101510    BEGIN
101511       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
101512                               (g_array_event(p_event_id).array_value_num('header_index'));
101513       IF l_acc_rev_flag IS NULL THEN
101514          l_acc_rev_flag := 'N';
101515       END IF;
101516    EXCEPTION
101517       WHEN OTHERS THEN
101518          l_acc_rev_flag := 'N';
101519    END;
101520    --
101521    IF (l_acc_rev_flag = 'Y') THEN
101522 
101523        -- 4645092  ------------------------------------------------------------------------------
101524        -- To allow MPA report to determine if it should generate report process
101525        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
101526        ------------------------------------------------------------------------------------------
101527 
101528        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
101529        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
101530    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
101531    -- call ADRs
101532    -- Bug 4922099
101533    --
101534    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
101535         (NVL(l_actual_upg_option, 'N') = 'O') OR
101536         (NVL(l_enc_upg_option, 'N') = 'O')
101537       )
101538    THEN
101539    NULL;
101540    --
101541    --
101542    
101543   l_ccid := AcctDerRule_33(
101544            p_application_id           => p_application_id
101545          , p_ae_header_id             => l_ae_header_id 
101546 , p_source_30 => p_source_30
101547          , x_transaction_coa_id       => l_adr_transaction_coa_id
101548          , x_accounting_coa_id        => l_adr_accounting_coa_id
101549          , x_value_type_code          => l_adr_value_type_code
101550          , p_side                     => 'NA'
101551    );
101552 
101553    xla_ae_lines_pkg.set_ccid(
101554     p_code_combination_id          => l_ccid
101555   , p_value_type_code              => l_adr_value_type_code
101556   , p_transaction_coa_id           => l_adr_transaction_coa_id
101557   , p_accounting_coa_id            => l_adr_accounting_coa_id
101558   , p_adr_code                     => 'AP_INVOICE_DIST'
101559   , p_adr_type_code                => 'S'
101560   , p_component_type               => l_component_type
101561   , p_component_code               => l_component_code
101562   , p_component_type_code          => l_component_type_code
101563   , p_component_appl_id            => l_component_appl_id
101564   , p_amb_context_code             => l_amb_context_code
101565   , p_side                         => 'NA'
101566   );
101567 
101568 
101569    --
101570    --
101571    END IF;
101572 
101573        --
101574        -- Update the line information that should be overwritten
101575        --
101576        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
101577                                          p_header_num   => 1);
101578        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
101579 
101580        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
101581 
101582        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
101583           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
101584        END IF;
101585 
101586       --
101587       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
101588       --
101589       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
101590           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
101591       ELSE
101592           ---------------------------------------------------------------------------------------------------
101593           -- 4262811a Switch Sign
101594           ---------------------------------------------------------------------------------------------------
101598           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
101595           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
101596           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
101597                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
101599                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
101600           -- 5132302
101601           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
101602                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
101603 
101604       END IF;
101605 
101606       -- 4955764
101607       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
101608       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
101609 
101610 
101611       XLA_AE_LINES_PKG.ValidateCurrentLine;
101612       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
101613 
101614       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
101615                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
101616                ,p_balance_type_code => l_balance_type_code);
101617 
101618    END IF;
101619 
101620    -----------------------------------------------------------------------------------------
101621    -- 4262811 Multiperiod Accounting
101622    -----------------------------------------------------------------------------------------
101623      -- No MPA option is assigned.
101624 
101625 
101626 END IF;
101627 END IF;
101628 --
101629 
101630 --
101631 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
101632    trace
101633       (p_msg      => 'END of AcctLineType_173'
101634       ,p_level    => C_LEVEL_PROCEDURE
101635       ,p_module   => l_log_module);
101636 END IF;
101637 --
101638 EXCEPTION
101639   WHEN xla_exceptions_pkg.application_exception THEN
101640       RAISE;
101641   WHEN OTHERS THEN
101642        xla_exceptions_pkg.raise_message
101643            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_173');
101644 END AcctLineType_173;
101645 --
101646 
101647 ---------------------------------------
101648 --
101649 -- PRIVATE FUNCTION
101650 --         AcctLineType_174
101651 --
101652 ---------------------------------------
101653 PROCEDURE AcctLineType_174 (
101654   p_application_id        IN NUMBER
101655  ,p_event_id              IN NUMBER
101656  ,p_calculate_acctd_flag  IN VARCHAR2
101657  ,p_calculate_g_l_flag    IN VARCHAR2
101658  ,p_actual_flag           IN OUT VARCHAR2
101659  ,p_balance_type_code     OUT VARCHAR2
101660  ,p_gain_or_loss_ref      OUT VARCHAR2
101661  
101662 --Invoice Distribution Description
101663  , p_source_1            IN VARCHAR2
101664 --Invoice Distribution Ledger Amount
101665  , p_source_21            IN NUMBER
101666 --Invoice Distribution Account
101667  , p_source_30            IN NUMBER
101668 --Invoice Distribution Type
101669  , p_source_33            IN VARCHAR2
101670  , p_source_33_meaning    IN VARCHAR2
101671 --Accounting Reversal Indicator
101672  , p_source_53            IN VARCHAR2
101673 --Distribution Link Type
101674  , p_source_55            IN VARCHAR2
101675 --Allocation to Main Distribution Identifier
101676  , p_source_57            IN NUMBER
101677 --Invoice Identifier
101678  , p_source_58            IN NUMBER
101679 --Invoice Distribution Identifier
101680  , p_source_64            IN NUMBER
101681 --Payables Encumbrance Upgrade Credit Account
101682  , p_source_65            IN NUMBER
101683 --Payables Encumbrance Upgrade Credit Amount
101684  , p_source_66            IN NUMBER
101685 --Invoice Currency Code
101686  , p_source_67            IN VARCHAR2
101687 --Payables Encumbrance Upgrade Credit Base Amount
101688  , p_source_68            IN NUMBER
101689 --Payables Encumbrance Upgrade Debit Account
101690  , p_source_69            IN NUMBER
101691 --Payables Encumbrance Upgrade Debit Amount
101692  , p_source_70            IN NUMBER
101693 --Payables Encumbrance Upgrade Debit Base Amount
101694  , p_source_71            IN NUMBER
101695 --Payables Encumbrance Upgrade Option
101696  , p_source_72            IN VARCHAR2
101697 --Invoice Distribution Amount
101698  , p_source_73            IN NUMBER
101699 --Deferred Accounting End Date
101700  , p_source_77            IN DATE
101701 --Deferred Accounting Option
101702  , p_source_78            IN VARCHAR2
101703 --Deferred Accounting Start Date
101704  , p_source_79            IN DATE
101705 --Override Accounted Amount Indicator
101706  , p_source_80            IN VARCHAR2
101707  , p_source_80_meaning    IN VARCHAR2
101708 --Invoice Supplier Identifier
101709  , p_source_81            IN NUMBER
101710 --Invoice Supplier Site Identifier
101711  , p_source_82            IN NUMBER
101712 --Third Party Type
101713  , p_source_83            IN VARCHAR2
101714 --Parent Reversal Identifier
101715  , p_source_84            IN NUMBER
101716 --Invoice Distribution Statistical Amount
101717  , p_source_85            IN NUMBER
101718 --Invoice Distribution Tax Line Identifier
101719  , p_source_86            IN NUMBER
101720 --Invoice Distribution Tax Distribution Identifier from Tax
101721  , p_source_87            IN NUMBER
101722 --Invoice Distribution Summary Tax Line Identifier
101723  , p_source_88            IN NUMBER
101724 --Payables Upgrade Credit Encumbrance Type Identifier
101728 --Business Flow Accounts Payable Application Identifier
101725  , p_source_89            IN NUMBER
101726 --Payables Upgrade Debit Encumbrance Type Identifier
101727  , p_source_90            IN NUMBER
101729  , p_source_91            IN NUMBER
101730 --Business Flow Invoice Distribution Type
101731  , p_source_92            IN VARCHAR2
101732 --Business Flow Invoice Entity Code
101733  , p_source_93            IN VARCHAR2
101734 --Business Flow Invoice Distribution Identifier
101735  , p_source_94            IN NUMBER
101736 --Business Flow Invoice Identifier
101737  , p_source_95            IN NUMBER
101738 --Invoice Exchange Date
101739  , p_source_143            IN DATE
101740 --Invoice Exchange Rate
101741  , p_source_144            IN NUMBER
101742 --Invoice Exchange Rate Type
101743  , p_source_145            IN VARCHAR2
101744 )
101745 IS
101746 
101747 l_component_type              VARCHAR2(80);
101748 l_component_code              VARCHAR2(30);
101749 l_component_type_code         VARCHAR2(1);
101750 l_component_appl_id           INTEGER;
101751 l_amb_context_code            VARCHAR2(30);
101752 l_entity_code                 VARCHAR2(30);
101753 l_event_class_code            VARCHAR2(30);
101754 l_ae_header_id                NUMBER;
101755 l_event_type_code             VARCHAR2(30);
101756 l_line_definition_code        VARCHAR2(30);
101757 l_line_definition_owner_code  VARCHAR2(1);
101758 --
101759 -- adr variables
101760 l_segment                     VARCHAR2(30);
101761 l_ccid                        NUMBER;
101762 l_adr_transaction_coa_id      NUMBER;
101763 l_adr_accounting_coa_id       NUMBER;
101764 l_adr_flexfield_segment_code  VARCHAR2(30);
101765 l_adr_flex_value_set_id       NUMBER;
101766 l_adr_value_type_code         VARCHAR2(30);
101767 l_adr_value_combination_id    NUMBER;
101768 l_adr_value_segment_code      VARCHAR2(30);
101769 
101770 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
101771 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
101772 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
101773 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
101774 
101775 -- 4262811 Variables ------------------------------------------------------------------------------------------
101776 l_entered_amt_idx             NUMBER;
101777 l_accted_amt_idx              NUMBER;
101778 l_acc_rev_flag                VARCHAR2(1);
101779 l_accrual_line_num            NUMBER;
101780 l_tmp_amt                     NUMBER;
101781 l_acc_rev_natural_side_code   VARCHAR2(1);
101782 
101783 l_num_entries                 NUMBER;
101784 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
101785 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
101786 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
101787 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
101788 l_recog_line_1                NUMBER;
101789 l_recog_line_2                NUMBER;
101790 
101791 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
101792 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
101793 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
101794 
101795 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
101796 
101797 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
101798 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
101799 
101800 ---------------------------------------------------------------------------------------------------------------
101801 
101802 
101803 --
101804 -- bulk performance
101805 --
101806 l_balance_type_code           VARCHAR2(1);
101807 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
101808 l_log_module                  VARCHAR2(240);
101809 
101810 --
101811 -- Upgrade strategy
101812 --
101813 l_actual_upg_option           VARCHAR2(1);
101814 l_enc_upg_option           VARCHAR2(1);
101815 
101816 --
101817 BEGIN
101818 --
101819 IF g_log_enabled THEN
101820       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_174';
101821 END IF;
101822 --
101823 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
101824 
101825       trace
101826          (p_msg      => 'BEGIN of AcctLineType_174'
101827          ,p_level    => C_LEVEL_PROCEDURE
101828          ,p_module   => l_log_module);
101829 
101830 END IF;
101831 --
101832 l_component_type             := 'AMB_JLT';
101833 l_component_code             := 'AP_MISC_EXPENSE_PREPAY';
101834 l_component_type_code        := 'S';
101835 l_component_appl_id          :=  200;
101836 l_amb_context_code           := 'DEFAULT';
101837 l_entity_code                := 'AP_INVOICES';
101838 l_event_class_code           := 'PREPAYMENTS';
101839 l_event_type_code            := 'PREPAYMENTS_ALL';
101840 l_line_definition_owner_code := 'S';
101841 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
101842 --
101843 l_balance_type_code          := 'A';
101844 l_segment                     := NULL;
101845 l_ccid                        := NULL;
101846 l_adr_transaction_coa_id      := NULL;
101847 l_adr_accounting_coa_id       := NULL;
101848 l_adr_flexfield_segment_code  := NULL;
101849 l_adr_flex_value_set_id       := NULL;
101850 l_adr_value_type_code         := NULL;
101851 l_adr_value_combination_id    := NULL;
101852 l_adr_value_segment_code      := NULL;
101853 
101854 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
101858 
101855 l_bflow_class_code           := '';    -- 4219869 Business Flow
101856 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
101857 l_budgetary_control_flag     := 'N';
101859 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
101860 l_bflow_applied_to_amt       := NULL; -- 5132302
101861 l_entered_amt_idx            := NULL;          -- 4262811
101862 l_accted_amt_idx             := NULL;          -- 4262811
101863 l_acc_rev_flag               := NULL;          -- 4262811
101864 l_accrual_line_num           := NULL;          -- 4262811
101865 l_tmp_amt                    := NULL;          -- 4262811
101866 --
101867  
101868 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
101869     l_balance_type_code <> 'B' THEN
101870 IF NVL(p_source_33,'
101871 ') =  'MISCELLANEOUS'
101872  THEN 
101873 
101874    --
101875    XLA_AE_LINES_PKG.SetNewLine;
101876 
101877    p_balance_type_code          := l_balance_type_code;
101878    -- set the flag so later we will know whether the gain loss line needs to be created
101879    
101880    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
101881      p_actual_flag :='A';
101882    END IF;
101883 
101884    --
101885    -- bulk performance
101886    --
101887    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
101888                                       p_header_num   => 0); -- 4262811
101889    --
101890    -- set accounting line options
101891    --
101892    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
101893            p_natural_side_code          => 'D'
101894          , p_gain_or_loss_flag          => 'N'
101895          , p_gl_transfer_mode_code      => 'S'
101896          , p_acct_entry_type_code       => 'A'
101897          , p_switch_side_flag           => 'Y'
101898          , p_merge_duplicate_code       => 'A'
101899          );
101900    --
101901    l_acc_rev_natural_side_code := 'C';  -- 4262811
101902    -- 
101903    --
101904    -- set accounting line type info
101905    --
101906    xla_ae_lines_pkg.SetAcctLineType
101907       (p_component_type             => l_component_type
101908       ,p_event_type_code            => l_event_type_code
101909       ,p_line_definition_owner_code => l_line_definition_owner_code
101910       ,p_line_definition_code       => l_line_definition_code
101911       ,p_accounting_line_code       => l_component_code
101912       ,p_accounting_line_type_code  => l_component_type_code
101913       ,p_accounting_line_appl_id    => l_component_appl_id
101914       ,p_amb_context_code           => l_amb_context_code
101915       ,p_entity_code                => l_entity_code
101916       ,p_event_class_code           => l_event_class_code);
101917    --
101918    -- set accounting class
101919    --
101920    xla_ae_lines_pkg.SetAcctClass(
101921            p_accounting_class_code  => 'MISCELLANEOUS EXPENSE'
101922          , p_ae_header_id           => l_ae_header_id
101923          );
101924 
101925    --
101926    -- set rounding class
101927    --
101928    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
101929                       'MISCELLANEOUS EXPENSE';
101930 
101931    --
101932    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
101933    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
101934    --
101935    -- bulk performance
101936    --
101937    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
101938 
101939    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
101940       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
101941 
101942    -- 4955764
101943    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
101944       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
101945 
101946    -- 4458381 Public Sector Enh
101947    
101948    --
101949    -- set accounting attributes for the line type
101950    --
101951    l_entered_amt_idx := 23;
101952    l_accted_amt_idx  := 28;
101953    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
101954    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
101955    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
101956    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
101957    l_rec_acct_attrs.array_num_value(2)  := 
101958 xla_ae_sources_pkg.GetSystemSourceNum(
101959    p_source_code           => 'XLA_EVENT_APPL_ID'
101960  , p_source_type_code      => 'Y'
101961  , p_source_application_id =>  602
101962 );
101963    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
101964    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
101965    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
101966    l_rec_acct_attrs.array_char_value(4)  := 
101967 xla_ae_sources_pkg.GetSystemSourceChar(
101968    p_source_code           => 'XLA_ENTITY_CODE'
101969  , p_source_type_code      => 'Y'
101970  , p_source_application_id =>  602
101971 );
101972    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
101973    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
101974    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
101975    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
101979    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
101976    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
101977    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
101978    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
101980    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
101981    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
101982    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
101983    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
101984    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
101985    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
101986    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
101987    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
101988    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
101989    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
101990    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
101991    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
101992    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
101993    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
101994    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
101995    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
101996    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
101997    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
101998    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
101999    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
102000    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
102001    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
102002    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
102003    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
102004    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
102005    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
102006    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
102007    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
102008    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
102009    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
102010    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
102011    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
102012    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
102013    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
102014    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
102015    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
102016    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
102017    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
102018    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
102019    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
102020    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
102021    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
102022    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
102023    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
102024    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
102025    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
102026    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
102027    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
102028    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
102029    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
102030    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
102031    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
102032    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
102033    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
102034    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
102035    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
102036    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
102037    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
102038    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
102039    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
102040    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
102041    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
102042    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
102043    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
102044    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
102045    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
102046    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
102047    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
102048    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
102049    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
102050 
102051    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
102052    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
102053 
102054    ---------------------------------------------------------------------------------------------------------------
102055    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
102056    ---------------------------------------------------------------------------------------------------------------
102060    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
102057    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
102058 
102059    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
102061 
102062    IF xla_accounting_cache_pkg.GetValueChar
102063          (p_source_code         => 'LEDGER_CATEGORY_CODE'
102064          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
102065    AND l_bflow_method_code = 'PRIOR_ENTRY'
102066 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
102067    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
102068          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
102069        )
102070    THEN
102071          xla_ae_lines_pkg.BflowUpgEntry
102072            (p_business_method_code    => l_bflow_method_code
102073            ,p_business_class_code     => l_bflow_class_code
102074            ,p_balance_type            => l_balance_type_code);
102075    ELSE
102076       NULL;
102077 -- No business flow processing for business flow method of NONE.
102078    END IF;
102079 
102080    --
102081    -- call analytical criteria
102082    --
102083    
102084    --
102085    -- call description
102086    --
102087    
102088 xla_ae_lines_pkg.SetLineDescription(
102089    p_ae_header_id => l_ae_header_id
102090   ,p_description  => Description_1 (
102091      p_application_id         => p_application_id
102092    , p_ae_header_id           => l_ae_header_id 
102093 , p_source_1 => p_source_1
102094    )
102095 );
102096 
102097 
102098    --
102099    -- call ADRs
102100    -- Bug 4922099
102101    --
102102    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
102103         (NVL(l_actual_upg_option, 'N') = 'O') OR
102104         (NVL(l_enc_upg_option, 'N') = 'O')
102105       )
102106    THEN
102107    NULL;
102108    --
102109    --
102110    
102111   l_ccid := AcctDerRule_33(
102112            p_application_id           => p_application_id
102113          , p_ae_header_id             => l_ae_header_id 
102114 , p_source_30 => p_source_30
102115          , x_transaction_coa_id       => l_adr_transaction_coa_id
102116          , x_accounting_coa_id        => l_adr_accounting_coa_id
102117          , x_value_type_code          => l_adr_value_type_code
102118          , p_side                     => 'NA'
102119    );
102120 
102121    xla_ae_lines_pkg.set_ccid(
102122     p_code_combination_id          => l_ccid
102123   , p_value_type_code              => l_adr_value_type_code
102124   , p_transaction_coa_id           => l_adr_transaction_coa_id
102125   , p_accounting_coa_id            => l_adr_accounting_coa_id
102126   , p_adr_code                     => 'AP_INVOICE_DIST'
102127   , p_adr_type_code                => 'S'
102128   , p_component_type               => l_component_type
102129   , p_component_code               => l_component_code
102130   , p_component_type_code          => l_component_type_code
102131   , p_component_appl_id            => l_component_appl_id
102132   , p_amb_context_code             => l_amb_context_code
102133   , p_side                         => 'NA'
102134   );
102135 
102136 
102137    --
102138    --
102139    END IF;
102140    --
102141    -- Bug 4922099
102142    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
102143           (NVL(l_enc_upg_option, 'N') = 'O')
102144         ) AND
102145         (l_bflow_method_code = 'PRIOR_ENTRY')
102146       )
102147    THEN
102148       IF
102149       --
102150       1 = 2
102151       --
102152       THEN
102153       xla_accounting_err_pkg.build_message
102154                                     (p_appli_s_name            => 'XLA'
102155                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
102156                                     ,p_token_1                 => 'LINE_NUMBER'
102157                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
102158                                     ,p_token_2                 => 'LINE_TYPE_NAME'
102159                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
102160                                                                              l_component_type
102161                                                                             ,l_component_code
102162                                                                             ,l_component_type_code
102163                                                                             ,l_component_appl_id
102164                                                                             ,l_amb_context_code
102165                                                                             ,l_entity_code
102166                                                                             ,l_event_class_code
102167                                                                            )
102168                                     ,p_token_3                 => 'OWNER'
102169                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
102170                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
102171                                                                           ,p_lookup_code    => l_component_type_code
102172                                                                          )
102173                                     ,p_token_4                 => 'PRODUCT_NAME'
102177                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
102174                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
102175                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
102176                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
102178                                     ,p_ae_header_id            =>  NULL
102179                                        );
102180 
102181         IF (C_LEVEL_ERROR>= g_log_level) THEN
102182                  trace
102183                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
102184                       ,p_level    => C_LEVEL_ERROR
102185                       ,p_module   => l_log_module);
102186         END IF;
102187       END IF;
102188    END IF;
102189    --
102190    --
102191    ------------------------------------------------------------------------------------------------
102192    -- 4219869 Business Flow
102193    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
102194    -- Prior Entry.  Currently, the following code is always generated.
102195    ------------------------------------------------------------------------------------------------
102196    XLA_AE_LINES_PKG.ValidateCurrentLine;
102197 
102198    ------------------------------------------------------------------------------------
102199    -- 4219869 Business Flow
102200    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
102201    ------------------------------------------------------------------------------------
102202    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
102203 
102204    ----------------------------------------------------------------------------------
102205    -- 4219869 Business Flow
102206    -- Update journal entry status -- Need to generate this within IF <condition>
102207    ----------------------------------------------------------------------------------
102208    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
102209          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
102210          ,p_balance_type_code => l_balance_type_code
102211          );
102212 
102213    -------------------------------------------------------------------------------------------
102214    -- 4262811 - Generate the Accrual Reversal lines
102215    -------------------------------------------------------------------------------------------
102216    BEGIN
102217       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
102218                               (g_array_event(p_event_id).array_value_num('header_index'));
102219       IF l_acc_rev_flag IS NULL THEN
102220          l_acc_rev_flag := 'N';
102221       END IF;
102222    EXCEPTION
102223       WHEN OTHERS THEN
102224          l_acc_rev_flag := 'N';
102225    END;
102226    --
102227    IF (l_acc_rev_flag = 'Y') THEN
102228 
102229        -- 4645092  ------------------------------------------------------------------------------
102230        -- To allow MPA report to determine if it should generate report process
102231        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
102232        ------------------------------------------------------------------------------------------
102233 
102234        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
102235        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
102236    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
102237    -- call ADRs
102238    -- Bug 4922099
102239    --
102240    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
102241         (NVL(l_actual_upg_option, 'N') = 'O') OR
102242         (NVL(l_enc_upg_option, 'N') = 'O')
102243       )
102244    THEN
102245    NULL;
102246    --
102247    --
102248    
102249   l_ccid := AcctDerRule_33(
102250            p_application_id           => p_application_id
102251          , p_ae_header_id             => l_ae_header_id 
102252 , p_source_30 => p_source_30
102253          , x_transaction_coa_id       => l_adr_transaction_coa_id
102254          , x_accounting_coa_id        => l_adr_accounting_coa_id
102255          , x_value_type_code          => l_adr_value_type_code
102256          , p_side                     => 'NA'
102257    );
102258 
102259    xla_ae_lines_pkg.set_ccid(
102260     p_code_combination_id          => l_ccid
102261   , p_value_type_code              => l_adr_value_type_code
102262   , p_transaction_coa_id           => l_adr_transaction_coa_id
102263   , p_accounting_coa_id            => l_adr_accounting_coa_id
102264   , p_adr_code                     => 'AP_INVOICE_DIST'
102265   , p_adr_type_code                => 'S'
102266   , p_component_type               => l_component_type
102267   , p_component_code               => l_component_code
102268   , p_component_type_code          => l_component_type_code
102269   , p_component_appl_id            => l_component_appl_id
102270   , p_amb_context_code             => l_amb_context_code
102271   , p_side                         => 'NA'
102272   );
102273 
102274 
102275    --
102276    --
102277    END IF;
102278 
102279        --
102280        -- Update the line information that should be overwritten
102281        --
102282        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
102283                                          p_header_num   => 1);
102284        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
102285 
102289           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
102286        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
102287 
102288        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
102290        END IF;
102291 
102292       --
102293       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
102294       --
102295       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
102296           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
102297       ELSE
102298           ---------------------------------------------------------------------------------------------------
102299           -- 4262811a Switch Sign
102300           ---------------------------------------------------------------------------------------------------
102301           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
102302           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
102303                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
102304           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
102305                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
102306           -- 5132302
102307           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
102308                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
102309 
102310       END IF;
102311 
102312       -- 4955764
102313       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
102314       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
102315 
102316 
102317       XLA_AE_LINES_PKG.ValidateCurrentLine;
102318       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
102319 
102320       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
102321                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
102322                ,p_balance_type_code => l_balance_type_code);
102323 
102324    END IF;
102325 
102326    -----------------------------------------------------------------------------------------
102327    -- 4262811 Multiperiod Accounting
102328    -----------------------------------------------------------------------------------------
102329      -- No MPA option is assigned.
102330 
102331 
102332 END IF;
102333 END IF;
102334 --
102335 
102336 --
102337 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
102338    trace
102339       (p_msg      => 'END of AcctLineType_174'
102340       ,p_level    => C_LEVEL_PROCEDURE
102341       ,p_module   => l_log_module);
102342 END IF;
102343 --
102344 EXCEPTION
102345   WHEN xla_exceptions_pkg.application_exception THEN
102346       RAISE;
102347   WHEN OTHERS THEN
102348        xla_exceptions_pkg.raise_message
102349            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_174');
102350 END AcctLineType_174;
102351 --
102352 
102353 ---------------------------------------
102354 --
102355 -- PRIVATE FUNCTION
102356 --         AcctLineType_175
102357 --
102358 ---------------------------------------
102359 PROCEDURE AcctLineType_175 (
102360   p_application_id        IN NUMBER
102361  ,p_event_id              IN NUMBER
102362  ,p_calculate_acctd_flag  IN VARCHAR2
102363  ,p_calculate_g_l_flag    IN VARCHAR2
102364  ,p_actual_flag           IN OUT VARCHAR2
102365  ,p_balance_type_code     OUT VARCHAR2
102366  ,p_gain_or_loss_ref      OUT VARCHAR2
102367  
102368 --Invoice Distribution Description
102369  , p_source_1            IN VARCHAR2
102370 --Invoice Distribution Ledger Amount
102371  , p_source_21            IN NUMBER
102372 --Invoice Distribution Account
102373  , p_source_30            IN NUMBER
102374 --Invoice Distribution Type
102375  , p_source_33            IN VARCHAR2
102376  , p_source_33_meaning    IN VARCHAR2
102377 --Accounting Reversal Indicator
102378  , p_source_53            IN VARCHAR2
102379 --Distribution Link Type
102380  , p_source_55            IN VARCHAR2
102381 --Allocation to Main Distribution Identifier
102382  , p_source_57            IN NUMBER
102383 --Invoice Identifier
102384  , p_source_58            IN NUMBER
102385 --Invoice Distribution Identifier
102386  , p_source_64            IN NUMBER
102387 --Payables Encumbrance Upgrade Credit Account
102388  , p_source_65            IN NUMBER
102389 --Payables Encumbrance Upgrade Credit Amount
102390  , p_source_66            IN NUMBER
102391 --Invoice Currency Code
102392  , p_source_67            IN VARCHAR2
102393 --Payables Encumbrance Upgrade Credit Base Amount
102394  , p_source_68            IN NUMBER
102395 --Payables Encumbrance Upgrade Debit Account
102396  , p_source_69            IN NUMBER
102397 --Payables Encumbrance Upgrade Debit Amount
102398  , p_source_70            IN NUMBER
102399 --Payables Encumbrance Upgrade Debit Base Amount
102400  , p_source_71            IN NUMBER
102401 --Payables Encumbrance Upgrade Option
102402  , p_source_72            IN VARCHAR2
102403 --Invoice Distribution Amount
102404  , p_source_73            IN NUMBER
102405 --Purchase Order Exchange Rate Date
102406  , p_source_74            IN DATE
102407 --Purchase Order Exchange Rate
102408  , p_source_75            IN NUMBER
102409 --Purchase Order Exchange Rate Type
102413 --Deferred Accounting Option
102410  , p_source_76            IN VARCHAR2
102411 --Deferred Accounting End Date
102412  , p_source_77            IN DATE
102414  , p_source_78            IN VARCHAR2
102415 --Deferred Accounting Start Date
102416  , p_source_79            IN DATE
102417 --Override Accounted Amount Indicator
102418  , p_source_80            IN VARCHAR2
102419  , p_source_80_meaning    IN VARCHAR2
102420 --Invoice Supplier Identifier
102421  , p_source_81            IN NUMBER
102422 --Invoice Supplier Site Identifier
102423  , p_source_82            IN NUMBER
102424 --Third Party Type
102425  , p_source_83            IN VARCHAR2
102426 --Parent Reversal Identifier
102427  , p_source_84            IN NUMBER
102428 --Invoice Distribution Statistical Amount
102429  , p_source_85            IN NUMBER
102430 --Invoice Distribution Tax Line Identifier
102431  , p_source_86            IN NUMBER
102432 --Invoice Distribution Tax Distribution Identifier from Tax
102433  , p_source_87            IN NUMBER
102434 --Invoice Distribution Summary Tax Line Identifier
102435  , p_source_88            IN NUMBER
102436 --Payables Upgrade Credit Encumbrance Type Identifier
102437  , p_source_89            IN NUMBER
102438 --Payables Upgrade Debit Encumbrance Type Identifier
102439  , p_source_90            IN NUMBER
102440 --Business Flow Accounts Payable Application Identifier
102441  , p_source_91            IN NUMBER
102442 --Business Flow Invoice Distribution Type
102443  , p_source_92            IN VARCHAR2
102444 --Business Flow Invoice Entity Code
102445  , p_source_93            IN VARCHAR2
102446 --Business Flow Invoice Distribution Identifier
102447  , p_source_94            IN NUMBER
102448 --Business Flow Invoice Identifier
102449  , p_source_95            IN NUMBER
102450 --Accrue on Receipt Option
102451  , p_source_96            IN VARCHAR2
102452  , p_source_96_meaning    IN VARCHAR2
102453 --Self-Assessed Tax Flag
102454  , p_source_142            IN VARCHAR2
102455  , p_source_142_meaning    IN VARCHAR2
102456 )
102457 IS
102458 
102459 l_component_type              VARCHAR2(80);
102460 l_component_code              VARCHAR2(30);
102461 l_component_type_code         VARCHAR2(1);
102462 l_component_appl_id           INTEGER;
102463 l_amb_context_code            VARCHAR2(30);
102464 l_entity_code                 VARCHAR2(30);
102465 l_event_class_code            VARCHAR2(30);
102466 l_ae_header_id                NUMBER;
102467 l_event_type_code             VARCHAR2(30);
102468 l_line_definition_code        VARCHAR2(30);
102469 l_line_definition_owner_code  VARCHAR2(1);
102470 --
102471 -- adr variables
102472 l_segment                     VARCHAR2(30);
102473 l_ccid                        NUMBER;
102474 l_adr_transaction_coa_id      NUMBER;
102475 l_adr_accounting_coa_id       NUMBER;
102476 l_adr_flexfield_segment_code  VARCHAR2(30);
102477 l_adr_flex_value_set_id       NUMBER;
102478 l_adr_value_type_code         VARCHAR2(30);
102479 l_adr_value_combination_id    NUMBER;
102480 l_adr_value_segment_code      VARCHAR2(30);
102481 
102482 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
102483 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
102484 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
102485 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
102486 
102487 -- 4262811 Variables ------------------------------------------------------------------------------------------
102488 l_entered_amt_idx             NUMBER;
102489 l_accted_amt_idx              NUMBER;
102490 l_acc_rev_flag                VARCHAR2(1);
102491 l_accrual_line_num            NUMBER;
102492 l_tmp_amt                     NUMBER;
102493 l_acc_rev_natural_side_code   VARCHAR2(1);
102494 
102495 l_num_entries                 NUMBER;
102496 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
102497 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
102498 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
102499 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
102500 l_recog_line_1                NUMBER;
102501 l_recog_line_2                NUMBER;
102502 
102503 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
102504 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
102505 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
102506 
102507 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
102508 
102509 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
102510 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
102511 
102512 ---------------------------------------------------------------------------------------------------------------
102513 
102514 
102515 --
102516 -- bulk performance
102517 --
102518 l_balance_type_code           VARCHAR2(1);
102519 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
102520 l_log_module                  VARCHAR2(240);
102521 
102522 --
102523 -- Upgrade strategy
102524 --
102525 l_actual_upg_option           VARCHAR2(1);
102526 l_enc_upg_option           VARCHAR2(1);
102527 
102528 --
102529 BEGIN
102530 --
102531 IF g_log_enabled THEN
102532       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_175';
102533 END IF;
102534 --
102535 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
102536 
102537       trace
102541 
102538          (p_msg      => 'BEGIN of AcctLineType_175'
102539          ,p_level    => C_LEVEL_PROCEDURE
102540          ,p_module   => l_log_module);
102542 END IF;
102543 --
102544 l_component_type             := 'AMB_JLT';
102545 l_component_code             := 'AP_NON_RECOV_TAX_ACCRUAL_CM';
102546 l_component_type_code        := 'S';
102547 l_component_appl_id          :=  200;
102548 l_amb_context_code           := 'DEFAULT';
102549 l_entity_code                := 'AP_INVOICES';
102550 l_event_class_code           := 'CREDIT MEMOS';
102551 l_event_type_code            := 'CREDIT MEMOS_ALL';
102552 l_line_definition_owner_code := 'S';
102553 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
102554 --
102555 l_balance_type_code          := 'A';
102556 l_segment                     := NULL;
102557 l_ccid                        := NULL;
102558 l_adr_transaction_coa_id      := NULL;
102559 l_adr_accounting_coa_id       := NULL;
102560 l_adr_flexfield_segment_code  := NULL;
102561 l_adr_flex_value_set_id       := NULL;
102562 l_adr_value_type_code         := NULL;
102563 l_adr_value_combination_id    := NULL;
102564 l_adr_value_segment_code      := NULL;
102565 
102566 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
102567 l_bflow_class_code           := '';    -- 4219869 Business Flow
102568 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
102569 l_budgetary_control_flag     := 'N';
102570 
102571 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
102572 l_bflow_applied_to_amt       := NULL; -- 5132302
102573 l_entered_amt_idx            := NULL;          -- 4262811
102574 l_accted_amt_idx             := NULL;          -- 4262811
102575 l_acc_rev_flag               := NULL;          -- 4262811
102576 l_accrual_line_num           := NULL;          -- 4262811
102577 l_tmp_amt                    := NULL;          -- 4262811
102578 --
102579  
102580 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
102581     l_balance_type_code <> 'B' THEN
102582 IF NVL(p_source_33,'
102583 ') =  'NONREC_TAX' AND 
102584 NVL(p_source_96,'
102585 ') =  'Y' AND 
102586 NVL(p_source_142,'
102587 ') <>  'Y'
102588  THEN 
102589 
102590    --
102591    XLA_AE_LINES_PKG.SetNewLine;
102592 
102593    p_balance_type_code          := l_balance_type_code;
102594    -- set the flag so later we will know whether the gain loss line needs to be created
102595    
102596    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
102597      p_actual_flag :='A';
102598    END IF;
102599 
102600    --
102601    -- bulk performance
102602    --
102603    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
102604                                       p_header_num   => 0); -- 4262811
102605    --
102606    -- set accounting line options
102607    --
102608    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
102609            p_natural_side_code          => 'D'
102610          , p_gain_or_loss_flag          => 'N'
102611          , p_gl_transfer_mode_code      => 'S'
102612          , p_acct_entry_type_code       => 'A'
102613          , p_switch_side_flag           => 'Y'
102614          , p_merge_duplicate_code       => 'A'
102615          );
102616    --
102617    l_acc_rev_natural_side_code := 'C';  -- 4262811
102618    -- 
102619    --
102620    -- set accounting line type info
102621    --
102622    xla_ae_lines_pkg.SetAcctLineType
102623       (p_component_type             => l_component_type
102624       ,p_event_type_code            => l_event_type_code
102625       ,p_line_definition_owner_code => l_line_definition_owner_code
102626       ,p_line_definition_code       => l_line_definition_code
102627       ,p_accounting_line_code       => l_component_code
102628       ,p_accounting_line_type_code  => l_component_type_code
102629       ,p_accounting_line_appl_id    => l_component_appl_id
102630       ,p_amb_context_code           => l_amb_context_code
102631       ,p_entity_code                => l_entity_code
102632       ,p_event_class_code           => l_event_class_code);
102633    --
102634    -- set accounting class
102635    --
102636    xla_ae_lines_pkg.SetAcctClass(
102637            p_accounting_class_code  => 'NRTAX'
102638          , p_ae_header_id           => l_ae_header_id
102639          );
102640 
102641    --
102642    -- set rounding class
102643    --
102644    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
102645                       'NRTAX';
102646 
102647    --
102648    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
102649    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
102650    --
102651    -- bulk performance
102652    --
102653    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
102654 
102655    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
102656       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
102657 
102658    -- 4955764
102659    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
102660       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
102661 
102662    -- 4458381 Public Sector Enh
102663    
102664    --
102665    -- set accounting attributes for the line type
102666    --
102667    l_entered_amt_idx := 23;
102671    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
102668    l_accted_amt_idx  := 28;
102669    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
102670    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
102672    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
102673    l_rec_acct_attrs.array_num_value(2)  := 
102674 xla_ae_sources_pkg.GetSystemSourceNum(
102675    p_source_code           => 'XLA_EVENT_APPL_ID'
102676  , p_source_type_code      => 'Y'
102677  , p_source_application_id =>  602
102678 );
102679    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
102680    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
102681    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
102682    l_rec_acct_attrs.array_char_value(4)  := 
102683 xla_ae_sources_pkg.GetSystemSourceChar(
102684    p_source_code           => 'XLA_ENTITY_CODE'
102685  , p_source_type_code      => 'Y'
102686  , p_source_application_id =>  602
102687 );
102688    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
102689    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
102690    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
102691    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
102692    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
102693    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
102694    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
102695    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
102696    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
102697    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
102698    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
102699    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
102700    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
102701    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
102702    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
102703    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
102704    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
102705    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
102706    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
102707    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
102708    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
102709    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
102710    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
102711    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
102712    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
102713    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
102714    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
102715    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
102716    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
102717    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
102718    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
102719    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
102720    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
102721    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
102722    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
102723    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
102724    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
102725    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
102726    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
102727    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
102728    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
102729    l_rec_acct_attrs.array_date_value(25)  := p_source_74;
102730    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
102731    l_rec_acct_attrs.array_num_value(26)  := p_source_75;
102732    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
102733    l_rec_acct_attrs.array_char_value(27)  := p_source_76;
102734    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
102735    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
102736    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
102737    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
102738    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
102739    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
102740    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
102741    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
102742    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
102743    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
102744    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
102745    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
102746    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
102747    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
102748    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
102749    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
102750    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
102751    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
102752    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
102753    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
102754    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
102758    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
102755    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
102756    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
102757    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
102759    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
102760    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
102761    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
102762    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
102763    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
102764    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
102765    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
102766 
102767    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
102768    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
102769 
102770    ---------------------------------------------------------------------------------------------------------------
102771    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
102772    ---------------------------------------------------------------------------------------------------------------
102773    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
102774 
102775    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
102776    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
102777 
102778    IF xla_accounting_cache_pkg.GetValueChar
102779          (p_source_code         => 'LEDGER_CATEGORY_CODE'
102780          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
102781    AND l_bflow_method_code = 'PRIOR_ENTRY'
102782 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
102783    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
102784          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
102785        )
102786    THEN
102787          xla_ae_lines_pkg.BflowUpgEntry
102788            (p_business_method_code    => l_bflow_method_code
102789            ,p_business_class_code     => l_bflow_class_code
102790            ,p_balance_type            => l_balance_type_code);
102791    ELSE
102792       NULL;
102793 -- No business flow processing for business flow method of NONE.
102794    END IF;
102795 
102796    --
102797    -- call analytical criteria
102798    --
102799    
102800    --
102801    -- call description
102802    --
102803    
102804 xla_ae_lines_pkg.SetLineDescription(
102805    p_ae_header_id => l_ae_header_id
102806   ,p_description  => Description_1 (
102807      p_application_id         => p_application_id
102808    , p_ae_header_id           => l_ae_header_id 
102809 , p_source_1 => p_source_1
102810    )
102811 );
102812 
102813 
102814    --
102815    -- call ADRs
102816    -- Bug 4922099
102817    --
102818    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
102819         (NVL(l_actual_upg_option, 'N') = 'O') OR
102820         (NVL(l_enc_upg_option, 'N') = 'O')
102821       )
102822    THEN
102823    NULL;
102824    --
102825    --
102826    
102827   l_ccid := AcctDerRule_33(
102828            p_application_id           => p_application_id
102829          , p_ae_header_id             => l_ae_header_id 
102830 , p_source_30 => p_source_30
102831          , x_transaction_coa_id       => l_adr_transaction_coa_id
102832          , x_accounting_coa_id        => l_adr_accounting_coa_id
102833          , x_value_type_code          => l_adr_value_type_code
102834          , p_side                     => 'NA'
102835    );
102836 
102837    xla_ae_lines_pkg.set_ccid(
102838     p_code_combination_id          => l_ccid
102839   , p_value_type_code              => l_adr_value_type_code
102840   , p_transaction_coa_id           => l_adr_transaction_coa_id
102841   , p_accounting_coa_id            => l_adr_accounting_coa_id
102842   , p_adr_code                     => 'AP_INVOICE_DIST'
102843   , p_adr_type_code                => 'S'
102844   , p_component_type               => l_component_type
102845   , p_component_code               => l_component_code
102846   , p_component_type_code          => l_component_type_code
102847   , p_component_appl_id            => l_component_appl_id
102848   , p_amb_context_code             => l_amb_context_code
102849   , p_side                         => 'NA'
102850   );
102851 
102852 
102853    --
102854    --
102855    END IF;
102856    --
102857    -- Bug 4922099
102858    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
102859           (NVL(l_enc_upg_option, 'N') = 'O')
102860         ) AND
102861         (l_bflow_method_code = 'PRIOR_ENTRY')
102862       )
102863    THEN
102864       IF
102865       --
102866       1 = 2
102867       --
102868       THEN
102869       xla_accounting_err_pkg.build_message
102870                                     (p_appli_s_name            => 'XLA'
102871                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
102872                                     ,p_token_1                 => 'LINE_NUMBER'
102873                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
102874                                     ,p_token_2                 => 'LINE_TYPE_NAME'
102875                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
102876                                                                              l_component_type
102880                                                                             ,l_amb_context_code
102877                                                                             ,l_component_code
102878                                                                             ,l_component_type_code
102879                                                                             ,l_component_appl_id
102881                                                                             ,l_entity_code
102882                                                                             ,l_event_class_code
102883                                                                            )
102884                                     ,p_token_3                 => 'OWNER'
102885                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
102886                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
102887                                                                           ,p_lookup_code    => l_component_type_code
102888                                                                          )
102889                                     ,p_token_4                 => 'PRODUCT_NAME'
102890                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
102891                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
102892                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
102893                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
102894                                     ,p_ae_header_id            =>  NULL
102895                                        );
102896 
102897         IF (C_LEVEL_ERROR>= g_log_level) THEN
102898                  trace
102899                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
102900                       ,p_level    => C_LEVEL_ERROR
102901                       ,p_module   => l_log_module);
102902         END IF;
102903       END IF;
102904    END IF;
102905    --
102906    --
102907    ------------------------------------------------------------------------------------------------
102908    -- 4219869 Business Flow
102909    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
102910    -- Prior Entry.  Currently, the following code is always generated.
102911    ------------------------------------------------------------------------------------------------
102912    XLA_AE_LINES_PKG.ValidateCurrentLine;
102913 
102914    ------------------------------------------------------------------------------------
102915    -- 4219869 Business Flow
102916    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
102917    ------------------------------------------------------------------------------------
102918    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
102919 
102920    ----------------------------------------------------------------------------------
102921    -- 4219869 Business Flow
102922    -- Update journal entry status -- Need to generate this within IF <condition>
102923    ----------------------------------------------------------------------------------
102924    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
102925          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
102926          ,p_balance_type_code => l_balance_type_code
102927          );
102928 
102929    -------------------------------------------------------------------------------------------
102930    -- 4262811 - Generate the Accrual Reversal lines
102931    -------------------------------------------------------------------------------------------
102932    BEGIN
102933       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
102934                               (g_array_event(p_event_id).array_value_num('header_index'));
102935       IF l_acc_rev_flag IS NULL THEN
102936          l_acc_rev_flag := 'N';
102937       END IF;
102938    EXCEPTION
102939       WHEN OTHERS THEN
102940          l_acc_rev_flag := 'N';
102941    END;
102942    --
102943    IF (l_acc_rev_flag = 'Y') THEN
102944 
102945        -- 4645092  ------------------------------------------------------------------------------
102946        -- To allow MPA report to determine if it should generate report process
102947        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
102948        ------------------------------------------------------------------------------------------
102949 
102950        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
102951        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
102952    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
102953    -- call ADRs
102954    -- Bug 4922099
102955    --
102956    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
102957         (NVL(l_actual_upg_option, 'N') = 'O') OR
102958         (NVL(l_enc_upg_option, 'N') = 'O')
102959       )
102960    THEN
102961    NULL;
102962    --
102963    --
102964    
102965   l_ccid := AcctDerRule_33(
102966            p_application_id           => p_application_id
102967          , p_ae_header_id             => l_ae_header_id 
102968 , p_source_30 => p_source_30
102969          , x_transaction_coa_id       => l_adr_transaction_coa_id
102970          , x_accounting_coa_id        => l_adr_accounting_coa_id
102971          , x_value_type_code          => l_adr_value_type_code
102972          , p_side                     => 'NA'
102973    );
102974 
102978   , p_transaction_coa_id           => l_adr_transaction_coa_id
102975    xla_ae_lines_pkg.set_ccid(
102976     p_code_combination_id          => l_ccid
102977   , p_value_type_code              => l_adr_value_type_code
102979   , p_accounting_coa_id            => l_adr_accounting_coa_id
102980   , p_adr_code                     => 'AP_INVOICE_DIST'
102981   , p_adr_type_code                => 'S'
102982   , p_component_type               => l_component_type
102983   , p_component_code               => l_component_code
102984   , p_component_type_code          => l_component_type_code
102985   , p_component_appl_id            => l_component_appl_id
102986   , p_amb_context_code             => l_amb_context_code
102987   , p_side                         => 'NA'
102988   );
102989 
102990 
102991    --
102992    --
102993    END IF;
102994 
102995        --
102996        -- Update the line information that should be overwritten
102997        --
102998        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
102999                                          p_header_num   => 1);
103000        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
103001 
103002        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
103003 
103004        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
103005           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
103006        END IF;
103007 
103008       --
103009       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
103010       --
103011       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
103012           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
103013       ELSE
103014           ---------------------------------------------------------------------------------------------------
103015           -- 4262811a Switch Sign
103016           ---------------------------------------------------------------------------------------------------
103017           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
103018           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
103019                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
103020           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
103021                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
103022           -- 5132302
103023           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
103024                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
103025 
103026       END IF;
103027 
103028       -- 4955764
103029       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
103030       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
103031 
103032 
103033       XLA_AE_LINES_PKG.ValidateCurrentLine;
103034       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
103035 
103036       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
103037                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
103038                ,p_balance_type_code => l_balance_type_code);
103039 
103040    END IF;
103041 
103042    -----------------------------------------------------------------------------------------
103043    -- 4262811 Multiperiod Accounting
103044    -----------------------------------------------------------------------------------------
103045      -- No MPA option is assigned.
103046 
103047 
103048 END IF;
103049 END IF;
103050 --
103051 
103052 --
103053 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
103054    trace
103055       (p_msg      => 'END of AcctLineType_175'
103056       ,p_level    => C_LEVEL_PROCEDURE
103057       ,p_module   => l_log_module);
103058 END IF;
103059 --
103060 EXCEPTION
103061   WHEN xla_exceptions_pkg.application_exception THEN
103062       RAISE;
103063   WHEN OTHERS THEN
103064        xla_exceptions_pkg.raise_message
103065            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_175');
103066 END AcctLineType_175;
103067 --
103068 
103069 ---------------------------------------
103070 --
103071 -- PRIVATE FUNCTION
103072 --         AcctLineType_176
103073 --
103074 ---------------------------------------
103075 PROCEDURE AcctLineType_176 (
103076   p_application_id        IN NUMBER
103077  ,p_event_id              IN NUMBER
103078  ,p_calculate_acctd_flag  IN VARCHAR2
103079  ,p_calculate_g_l_flag    IN VARCHAR2
103080  ,p_actual_flag           IN OUT VARCHAR2
103081  ,p_balance_type_code     OUT VARCHAR2
103082  ,p_gain_or_loss_ref      OUT VARCHAR2
103083  
103084 --Invoice Distribution Description
103085  , p_source_1            IN VARCHAR2
103086 --Invoice Distribution Ledger Amount
103087  , p_source_21            IN NUMBER
103088 --Invoice Distribution Account
103089  , p_source_30            IN NUMBER
103090 --Invoice Distribution Type
103091  , p_source_33            IN VARCHAR2
103092  , p_source_33_meaning    IN VARCHAR2
103093 --Accounting Reversal Indicator
103094  , p_source_53            IN VARCHAR2
103095 --Distribution Link Type
103096  , p_source_55            IN VARCHAR2
103097 --Allocation to Main Distribution Identifier
103101 --Invoice Distribution Identifier
103098  , p_source_57            IN NUMBER
103099 --Invoice Identifier
103100  , p_source_58            IN NUMBER
103102  , p_source_64            IN NUMBER
103103 --Payables Encumbrance Upgrade Credit Account
103104  , p_source_65            IN NUMBER
103105 --Payables Encumbrance Upgrade Credit Amount
103106  , p_source_66            IN NUMBER
103107 --Invoice Currency Code
103108  , p_source_67            IN VARCHAR2
103109 --Payables Encumbrance Upgrade Credit Base Amount
103110  , p_source_68            IN NUMBER
103111 --Payables Encumbrance Upgrade Debit Account
103112  , p_source_69            IN NUMBER
103113 --Payables Encumbrance Upgrade Debit Amount
103114  , p_source_70            IN NUMBER
103115 --Payables Encumbrance Upgrade Debit Base Amount
103116  , p_source_71            IN NUMBER
103117 --Payables Encumbrance Upgrade Option
103118  , p_source_72            IN VARCHAR2
103119 --Invoice Distribution Amount
103120  , p_source_73            IN NUMBER
103121 --Purchase Order Exchange Rate Date
103122  , p_source_74            IN DATE
103123 --Purchase Order Exchange Rate
103124  , p_source_75            IN NUMBER
103125 --Purchase Order Exchange Rate Type
103126  , p_source_76            IN VARCHAR2
103127 --Deferred Accounting End Date
103128  , p_source_77            IN DATE
103129 --Deferred Accounting Option
103130  , p_source_78            IN VARCHAR2
103131 --Deferred Accounting Start Date
103132  , p_source_79            IN DATE
103133 --Override Accounted Amount Indicator
103134  , p_source_80            IN VARCHAR2
103135  , p_source_80_meaning    IN VARCHAR2
103136 --Invoice Supplier Identifier
103137  , p_source_81            IN NUMBER
103138 --Invoice Supplier Site Identifier
103139  , p_source_82            IN NUMBER
103140 --Third Party Type
103141  , p_source_83            IN VARCHAR2
103142 --Parent Reversal Identifier
103143  , p_source_84            IN NUMBER
103144 --Invoice Distribution Tax Line Identifier
103145  , p_source_86            IN NUMBER
103146 --Invoice Distribution Tax Distribution Identifier from Tax
103147  , p_source_87            IN NUMBER
103148 --Invoice Distribution Summary Tax Line Identifier
103149  , p_source_88            IN NUMBER
103150 --Payables Upgrade Credit Encumbrance Type Identifier
103151  , p_source_89            IN NUMBER
103152 --Payables Upgrade Debit Encumbrance Type Identifier
103153  , p_source_90            IN NUMBER
103154 --Business Flow Accounts Payable Application Identifier
103155  , p_source_91            IN NUMBER
103156 --Business Flow Invoice Distribution Type
103157  , p_source_92            IN VARCHAR2
103158 --Business Flow Invoice Entity Code
103159  , p_source_93            IN VARCHAR2
103160 --Business Flow Invoice Distribution Identifier
103161  , p_source_94            IN NUMBER
103162 --Business Flow Invoice Identifier
103163  , p_source_95            IN NUMBER
103164 --Accrue on Receipt Option
103165  , p_source_96            IN VARCHAR2
103166  , p_source_96_meaning    IN VARCHAR2
103167 --Self-Assessed Tax Flag
103168  , p_source_142            IN VARCHAR2
103169  , p_source_142_meaning    IN VARCHAR2
103170 )
103171 IS
103172 
103173 l_component_type              VARCHAR2(80);
103174 l_component_code              VARCHAR2(30);
103175 l_component_type_code         VARCHAR2(1);
103176 l_component_appl_id           INTEGER;
103177 l_amb_context_code            VARCHAR2(30);
103178 l_entity_code                 VARCHAR2(30);
103179 l_event_class_code            VARCHAR2(30);
103180 l_ae_header_id                NUMBER;
103181 l_event_type_code             VARCHAR2(30);
103182 l_line_definition_code        VARCHAR2(30);
103183 l_line_definition_owner_code  VARCHAR2(1);
103184 --
103185 -- adr variables
103186 l_segment                     VARCHAR2(30);
103187 l_ccid                        NUMBER;
103188 l_adr_transaction_coa_id      NUMBER;
103189 l_adr_accounting_coa_id       NUMBER;
103190 l_adr_flexfield_segment_code  VARCHAR2(30);
103191 l_adr_flex_value_set_id       NUMBER;
103192 l_adr_value_type_code         VARCHAR2(30);
103193 l_adr_value_combination_id    NUMBER;
103194 l_adr_value_segment_code      VARCHAR2(30);
103195 
103196 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
103197 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
103198 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
103199 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
103200 
103201 -- 4262811 Variables ------------------------------------------------------------------------------------------
103202 l_entered_amt_idx             NUMBER;
103203 l_accted_amt_idx              NUMBER;
103204 l_acc_rev_flag                VARCHAR2(1);
103205 l_accrual_line_num            NUMBER;
103206 l_tmp_amt                     NUMBER;
103207 l_acc_rev_natural_side_code   VARCHAR2(1);
103208 
103209 l_num_entries                 NUMBER;
103210 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
103211 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
103212 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
103213 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
103214 l_recog_line_1                NUMBER;
103215 l_recog_line_2                NUMBER;
103216 
103217 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
103218 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
103222 
103219 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
103220 
103221 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
103223 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
103224 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
103225 
103226 ---------------------------------------------------------------------------------------------------------------
103227 
103228 
103229 --
103230 -- bulk performance
103231 --
103232 l_balance_type_code           VARCHAR2(1);
103233 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
103234 l_log_module                  VARCHAR2(240);
103235 
103236 --
103237 -- Upgrade strategy
103238 --
103239 l_actual_upg_option           VARCHAR2(1);
103240 l_enc_upg_option           VARCHAR2(1);
103241 
103242 --
103243 BEGIN
103244 --
103245 IF g_log_enabled THEN
103246       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_176';
103247 END IF;
103248 --
103249 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
103250 
103251       trace
103252          (p_msg      => 'BEGIN of AcctLineType_176'
103253          ,p_level    => C_LEVEL_PROCEDURE
103254          ,p_module   => l_log_module);
103255 
103256 END IF;
103257 --
103258 l_component_type             := 'AMB_JLT';
103259 l_component_code             := 'AP_NON_RECOV_TAX_ACCRUAL_DM';
103260 l_component_type_code        := 'S';
103261 l_component_appl_id          :=  200;
103262 l_amb_context_code           := 'DEFAULT';
103263 l_entity_code                := 'AP_INVOICES';
103264 l_event_class_code           := 'DEBIT MEMOS';
103265 l_event_type_code            := 'DEBIT MEMOS_ALL';
103266 l_line_definition_owner_code := 'S';
103267 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
103268 --
103269 l_balance_type_code          := 'A';
103270 l_segment                     := NULL;
103271 l_ccid                        := NULL;
103272 l_adr_transaction_coa_id      := NULL;
103273 l_adr_accounting_coa_id       := NULL;
103274 l_adr_flexfield_segment_code  := NULL;
103275 l_adr_flex_value_set_id       := NULL;
103276 l_adr_value_type_code         := NULL;
103277 l_adr_value_combination_id    := NULL;
103278 l_adr_value_segment_code      := NULL;
103279 
103280 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
103281 l_bflow_class_code           := '';    -- 4219869 Business Flow
103282 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
103283 l_budgetary_control_flag     := 'N';
103284 
103285 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
103286 l_bflow_applied_to_amt       := NULL; -- 5132302
103287 l_entered_amt_idx            := NULL;          -- 4262811
103288 l_accted_amt_idx             := NULL;          -- 4262811
103289 l_acc_rev_flag               := NULL;          -- 4262811
103290 l_accrual_line_num           := NULL;          -- 4262811
103291 l_tmp_amt                    := NULL;          -- 4262811
103292 --
103293  
103294 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
103295     l_balance_type_code <> 'B' THEN
103296 IF NVL(p_source_33,'
103297 ') =  'NONREC_TAX' AND 
103298 NVL(p_source_96,'
103299 ') =  'Y' AND 
103300 NVL(p_source_142,'
103301 ') <>  'Y'
103302  THEN 
103303 
103304    --
103305    XLA_AE_LINES_PKG.SetNewLine;
103306 
103307    p_balance_type_code          := l_balance_type_code;
103308    -- set the flag so later we will know whether the gain loss line needs to be created
103309    
103310    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
103311      p_actual_flag :='A';
103312    END IF;
103313 
103314    --
103315    -- bulk performance
103316    --
103317    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
103318                                       p_header_num   => 0); -- 4262811
103319    --
103320    -- set accounting line options
103321    --
103322    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
103323            p_natural_side_code          => 'D'
103324          , p_gain_or_loss_flag          => 'N'
103325          , p_gl_transfer_mode_code      => 'S'
103326          , p_acct_entry_type_code       => 'A'
103327          , p_switch_side_flag           => 'Y'
103328          , p_merge_duplicate_code       => 'A'
103329          );
103330    --
103331    l_acc_rev_natural_side_code := 'C';  -- 4262811
103332    -- 
103333    --
103334    -- set accounting line type info
103335    --
103336    xla_ae_lines_pkg.SetAcctLineType
103337       (p_component_type             => l_component_type
103338       ,p_event_type_code            => l_event_type_code
103339       ,p_line_definition_owner_code => l_line_definition_owner_code
103340       ,p_line_definition_code       => l_line_definition_code
103341       ,p_accounting_line_code       => l_component_code
103342       ,p_accounting_line_type_code  => l_component_type_code
103343       ,p_accounting_line_appl_id    => l_component_appl_id
103344       ,p_amb_context_code           => l_amb_context_code
103345       ,p_entity_code                => l_entity_code
103346       ,p_event_class_code           => l_event_class_code);
103347    --
103348    -- set accounting class
103349    --
103350    xla_ae_lines_pkg.SetAcctClass(
103351            p_accounting_class_code  => 'NRTAX'
103352          , p_ae_header_id           => l_ae_header_id
103356    -- set rounding class
103353          );
103354 
103355    --
103357    --
103358    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
103359                       'NRTAX';
103360 
103361    --
103362    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
103363    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
103364    --
103365    -- bulk performance
103366    --
103367    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
103368 
103369    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
103370       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
103371 
103372    -- 4955764
103373    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
103374       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
103375 
103376    -- 4458381 Public Sector Enh
103377    
103378    --
103379    -- set accounting attributes for the line type
103380    --
103381    l_entered_amt_idx := 23;
103382    l_accted_amt_idx  := 28;
103383    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
103384    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
103385    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
103386    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
103387    l_rec_acct_attrs.array_num_value(2)  := 
103388 xla_ae_sources_pkg.GetSystemSourceNum(
103389    p_source_code           => 'XLA_EVENT_APPL_ID'
103390  , p_source_type_code      => 'Y'
103391  , p_source_application_id =>  602
103392 );
103393    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
103394    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
103395    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
103396    l_rec_acct_attrs.array_char_value(4)  := 
103397 xla_ae_sources_pkg.GetSystemSourceChar(
103398    p_source_code           => 'XLA_ENTITY_CODE'
103399  , p_source_type_code      => 'Y'
103400  , p_source_application_id =>  602
103401 );
103402    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
103403    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
103404    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
103405    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
103406    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
103407    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
103408    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
103409    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
103410    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
103411    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
103412    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
103413    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
103414    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
103415    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
103416    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
103417    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
103418    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
103419    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
103420    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
103421    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
103422    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
103423    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
103424    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
103425    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
103426    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
103427    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
103428    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
103429    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
103430    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
103431    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
103432    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
103433    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
103434    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
103435    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
103436    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
103437    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
103438    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
103439    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
103440    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
103441    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
103442    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
103443    l_rec_acct_attrs.array_date_value(25)  := p_source_74;
103444    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
103445    l_rec_acct_attrs.array_num_value(26)  := p_source_75;
103446    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
103447    l_rec_acct_attrs.array_char_value(27)  := p_source_76;
103448    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
103449    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
103450    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
103451    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
103455    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
103452    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
103453    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
103454    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
103456    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
103457    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
103458    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
103459    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
103460    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
103461    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
103462    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
103463    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
103464    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
103465    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
103466    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
103467    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
103468    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
103469    l_rec_acct_attrs.array_num_value(38)  := p_source_86;
103470    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
103471    l_rec_acct_attrs.array_num_value(39)  := p_source_87;
103472    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
103473    l_rec_acct_attrs.array_num_value(40)  := p_source_88;
103474    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
103475    l_rec_acct_attrs.array_num_value(41)  := p_source_89;
103476    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
103477    l_rec_acct_attrs.array_num_value(42)  := p_source_90;
103478 
103479    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
103480    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
103481 
103482    ---------------------------------------------------------------------------------------------------------------
103483    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
103484    ---------------------------------------------------------------------------------------------------------------
103485    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
103486 
103487    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
103488    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
103489 
103490    IF xla_accounting_cache_pkg.GetValueChar
103491          (p_source_code         => 'LEDGER_CATEGORY_CODE'
103492          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
103493    AND l_bflow_method_code = 'PRIOR_ENTRY'
103494 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
103495    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
103496          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
103497        )
103498    THEN
103499          xla_ae_lines_pkg.BflowUpgEntry
103500            (p_business_method_code    => l_bflow_method_code
103501            ,p_business_class_code     => l_bflow_class_code
103502            ,p_balance_type            => l_balance_type_code);
103503    ELSE
103504       NULL;
103505 -- No business flow processing for business flow method of NONE.
103506    END IF;
103507 
103508    --
103509    -- call analytical criteria
103510    --
103511    
103512    --
103513    -- call description
103514    --
103515    
103516 xla_ae_lines_pkg.SetLineDescription(
103517    p_ae_header_id => l_ae_header_id
103518   ,p_description  => Description_1 (
103519      p_application_id         => p_application_id
103520    , p_ae_header_id           => l_ae_header_id 
103521 , p_source_1 => p_source_1
103522    )
103523 );
103524 
103525 
103526    --
103527    -- call ADRs
103528    -- Bug 4922099
103529    --
103530    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
103531         (NVL(l_actual_upg_option, 'N') = 'O') OR
103532         (NVL(l_enc_upg_option, 'N') = 'O')
103533       )
103534    THEN
103535    NULL;
103536    --
103537    --
103538    
103539   l_ccid := AcctDerRule_33(
103540            p_application_id           => p_application_id
103541          , p_ae_header_id             => l_ae_header_id 
103542 , p_source_30 => p_source_30
103543          , x_transaction_coa_id       => l_adr_transaction_coa_id
103544          , x_accounting_coa_id        => l_adr_accounting_coa_id
103545          , x_value_type_code          => l_adr_value_type_code
103546          , p_side                     => 'NA'
103547    );
103548 
103549    xla_ae_lines_pkg.set_ccid(
103550     p_code_combination_id          => l_ccid
103551   , p_value_type_code              => l_adr_value_type_code
103552   , p_transaction_coa_id           => l_adr_transaction_coa_id
103553   , p_accounting_coa_id            => l_adr_accounting_coa_id
103554   , p_adr_code                     => 'AP_INVOICE_DIST'
103555   , p_adr_type_code                => 'S'
103556   , p_component_type               => l_component_type
103557   , p_component_code               => l_component_code
103558   , p_component_type_code          => l_component_type_code
103559   , p_component_appl_id            => l_component_appl_id
103560   , p_amb_context_code             => l_amb_context_code
103561   , p_side                         => 'NA'
103562   );
103563 
103564 
103565    --
103569    -- Bug 4922099
103566    --
103567    END IF;
103568    --
103570    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
103571           (NVL(l_enc_upg_option, 'N') = 'O')
103572         ) AND
103573         (l_bflow_method_code = 'PRIOR_ENTRY')
103574       )
103575    THEN
103576       IF
103577       --
103578       1 = 2
103579       --
103580       THEN
103581       xla_accounting_err_pkg.build_message
103582                                     (p_appli_s_name            => 'XLA'
103583                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
103584                                     ,p_token_1                 => 'LINE_NUMBER'
103585                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
103586                                     ,p_token_2                 => 'LINE_TYPE_NAME'
103587                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
103588                                                                              l_component_type
103589                                                                             ,l_component_code
103590                                                                             ,l_component_type_code
103591                                                                             ,l_component_appl_id
103592                                                                             ,l_amb_context_code
103593                                                                             ,l_entity_code
103594                                                                             ,l_event_class_code
103595                                                                            )
103596                                     ,p_token_3                 => 'OWNER'
103597                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
103598                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
103599                                                                           ,p_lookup_code    => l_component_type_code
103600                                                                          )
103601                                     ,p_token_4                 => 'PRODUCT_NAME'
103602                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
103603                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
103604                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
103605                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
103606                                     ,p_ae_header_id            =>  NULL
103607                                        );
103608 
103609         IF (C_LEVEL_ERROR>= g_log_level) THEN
103610                  trace
103611                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
103612                       ,p_level    => C_LEVEL_ERROR
103613                       ,p_module   => l_log_module);
103614         END IF;
103615       END IF;
103616    END IF;
103617    --
103618    --
103619    ------------------------------------------------------------------------------------------------
103620    -- 4219869 Business Flow
103621    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
103622    -- Prior Entry.  Currently, the following code is always generated.
103623    ------------------------------------------------------------------------------------------------
103624    XLA_AE_LINES_PKG.ValidateCurrentLine;
103625 
103626    ------------------------------------------------------------------------------------
103627    -- 4219869 Business Flow
103628    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
103629    ------------------------------------------------------------------------------------
103630    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
103631 
103632    ----------------------------------------------------------------------------------
103633    -- 4219869 Business Flow
103634    -- Update journal entry status -- Need to generate this within IF <condition>
103635    ----------------------------------------------------------------------------------
103636    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
103637          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
103638          ,p_balance_type_code => l_balance_type_code
103639          );
103640 
103641    -------------------------------------------------------------------------------------------
103642    -- 4262811 - Generate the Accrual Reversal lines
103643    -------------------------------------------------------------------------------------------
103644    BEGIN
103645       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
103646                               (g_array_event(p_event_id).array_value_num('header_index'));
103647       IF l_acc_rev_flag IS NULL THEN
103648          l_acc_rev_flag := 'N';
103649       END IF;
103650    EXCEPTION
103651       WHEN OTHERS THEN
103652          l_acc_rev_flag := 'N';
103653    END;
103654    --
103655    IF (l_acc_rev_flag = 'Y') THEN
103656 
103657        -- 4645092  ------------------------------------------------------------------------------
103658        -- To allow MPA report to determine if it should generate report process
103659        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
103660        ------------------------------------------------------------------------------------------
103661 
103665    -- call ADRs
103662        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
103663        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
103664    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
103666    -- Bug 4922099
103667    --
103668    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
103669         (NVL(l_actual_upg_option, 'N') = 'O') OR
103670         (NVL(l_enc_upg_option, 'N') = 'O')
103671       )
103672    THEN
103673    NULL;
103674    --
103675    --
103676    
103677   l_ccid := AcctDerRule_33(
103678            p_application_id           => p_application_id
103679          , p_ae_header_id             => l_ae_header_id 
103680 , p_source_30 => p_source_30
103681          , x_transaction_coa_id       => l_adr_transaction_coa_id
103682          , x_accounting_coa_id        => l_adr_accounting_coa_id
103683          , x_value_type_code          => l_adr_value_type_code
103684          , p_side                     => 'NA'
103685    );
103686 
103687    xla_ae_lines_pkg.set_ccid(
103688     p_code_combination_id          => l_ccid
103689   , p_value_type_code              => l_adr_value_type_code
103690   , p_transaction_coa_id           => l_adr_transaction_coa_id
103691   , p_accounting_coa_id            => l_adr_accounting_coa_id
103692   , p_adr_code                     => 'AP_INVOICE_DIST'
103693   , p_adr_type_code                => 'S'
103694   , p_component_type               => l_component_type
103695   , p_component_code               => l_component_code
103696   , p_component_type_code          => l_component_type_code
103697   , p_component_appl_id            => l_component_appl_id
103698   , p_amb_context_code             => l_amb_context_code
103699   , p_side                         => 'NA'
103700   );
103701 
103702 
103703    --
103704    --
103705    END IF;
103706 
103707        --
103708        -- Update the line information that should be overwritten
103709        --
103710        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
103711                                          p_header_num   => 1);
103712        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
103713 
103714        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
103715 
103716        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
103717           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
103718        END IF;
103719 
103720       --
103721       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
103722       --
103723       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
103724           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
103725       ELSE
103726           ---------------------------------------------------------------------------------------------------
103727           -- 4262811a Switch Sign
103728           ---------------------------------------------------------------------------------------------------
103729           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
103730           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
103731                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
103732           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
103733                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
103734           -- 5132302
103735           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
103736                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
103737 
103738       END IF;
103739 
103740       -- 4955764
103741       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
103742       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
103743 
103744 
103745       XLA_AE_LINES_PKG.ValidateCurrentLine;
103746       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
103747 
103748       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
103749                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
103750                ,p_balance_type_code => l_balance_type_code);
103751 
103752    END IF;
103753 
103754    -----------------------------------------------------------------------------------------
103755    -- 4262811 Multiperiod Accounting
103756    -----------------------------------------------------------------------------------------
103757      -- No MPA option is assigned.
103758 
103759 
103760 END IF;
103761 END IF;
103762 --
103763 
103764 --
103765 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
103766    trace
103767       (p_msg      => 'END of AcctLineType_176'
103768       ,p_level    => C_LEVEL_PROCEDURE
103769       ,p_module   => l_log_module);
103770 END IF;
103771 --
103772 EXCEPTION
103773   WHEN xla_exceptions_pkg.application_exception THEN
103774       RAISE;
103775   WHEN OTHERS THEN
103776        xla_exceptions_pkg.raise_message
103777            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_176');
103778 END AcctLineType_176;
103779 --
103783 -- PRIVATE FUNCTION
103780 
103781 ---------------------------------------
103782 --
103784 --         AcctLineType_177
103785 --
103786 ---------------------------------------
103787 PROCEDURE AcctLineType_177 (
103788   p_application_id        IN NUMBER
103789  ,p_event_id              IN NUMBER
103790  ,p_calculate_acctd_flag  IN VARCHAR2
103791  ,p_calculate_g_l_flag    IN VARCHAR2
103792  ,p_actual_flag           IN OUT VARCHAR2
103793  ,p_balance_type_code     OUT VARCHAR2
103794  ,p_gain_or_loss_ref      OUT VARCHAR2
103795  
103796 --Invoice Distribution Description
103797  , p_source_1            IN VARCHAR2
103798 --Invoice Distribution Ledger Amount
103799  , p_source_21            IN NUMBER
103800 --Invoice Distribution Account
103801  , p_source_30            IN NUMBER
103802 --Invoice Distribution Type
103803  , p_source_33            IN VARCHAR2
103804  , p_source_33_meaning    IN VARCHAR2
103805 --Accounting Reversal Indicator
103806  , p_source_53            IN VARCHAR2
103807 --Distribution Link Type
103808  , p_source_55            IN VARCHAR2
103809 --Allocation to Main Distribution Identifier
103810  , p_source_57            IN NUMBER
103811 --Invoice Identifier
103812  , p_source_58            IN NUMBER
103813 --Invoice Distribution Identifier
103814  , p_source_64            IN NUMBER
103815 --Payables Encumbrance Upgrade Credit Account
103816  , p_source_65            IN NUMBER
103817 --Payables Encumbrance Upgrade Credit Amount
103818  , p_source_66            IN NUMBER
103819 --Invoice Currency Code
103820  , p_source_67            IN VARCHAR2
103821 --Payables Encumbrance Upgrade Credit Base Amount
103822  , p_source_68            IN NUMBER
103823 --Payables Encumbrance Upgrade Debit Account
103824  , p_source_69            IN NUMBER
103825 --Payables Encumbrance Upgrade Debit Amount
103826  , p_source_70            IN NUMBER
103827 --Payables Encumbrance Upgrade Debit Base Amount
103828  , p_source_71            IN NUMBER
103829 --Payables Encumbrance Upgrade Option
103830  , p_source_72            IN VARCHAR2
103831 --Invoice Distribution Amount
103832  , p_source_73            IN NUMBER
103833 --Purchase Order Exchange Rate Date
103834  , p_source_74            IN DATE
103835 --Purchase Order Exchange Rate
103836  , p_source_75            IN NUMBER
103837 --Purchase Order Exchange Rate Type
103838  , p_source_76            IN VARCHAR2
103839 --Deferred Accounting End Date
103840  , p_source_77            IN DATE
103841 --Deferred Accounting Option
103842  , p_source_78            IN VARCHAR2
103843 --Deferred Accounting Start Date
103844  , p_source_79            IN DATE
103845 --Override Accounted Amount Indicator
103846  , p_source_80            IN VARCHAR2
103847  , p_source_80_meaning    IN VARCHAR2
103848 --Invoice Supplier Identifier
103849  , p_source_81            IN NUMBER
103850 --Invoice Supplier Site Identifier
103851  , p_source_82            IN NUMBER
103852 --Third Party Type
103853  , p_source_83            IN VARCHAR2
103854 --Parent Reversal Identifier
103855  , p_source_84            IN NUMBER
103856 --Invoice Distribution Statistical Amount
103857  , p_source_85            IN NUMBER
103858 --Invoice Distribution Tax Line Identifier
103859  , p_source_86            IN NUMBER
103860 --Invoice Distribution Tax Distribution Identifier from Tax
103861  , p_source_87            IN NUMBER
103862 --Invoice Distribution Summary Tax Line Identifier
103863  , p_source_88            IN NUMBER
103864 --Payables Upgrade Credit Encumbrance Type Identifier
103865  , p_source_89            IN NUMBER
103866 --Payables Upgrade Debit Encumbrance Type Identifier
103867  , p_source_90            IN NUMBER
103868 --Business Flow Accounts Payable Application Identifier
103869  , p_source_91            IN NUMBER
103870 --Business Flow Invoice Distribution Type
103871  , p_source_92            IN VARCHAR2
103872 --Business Flow Invoice Entity Code
103873  , p_source_93            IN VARCHAR2
103874 --Business Flow Invoice Distribution Identifier
103875  , p_source_94            IN NUMBER
103876 --Business Flow Invoice Identifier
103877  , p_source_95            IN NUMBER
103878 --Accrue on Receipt Option
103879  , p_source_96            IN VARCHAR2
103880  , p_source_96_meaning    IN VARCHAR2
103881 --Self-Assessed Tax Flag
103882  , p_source_142            IN VARCHAR2
103883  , p_source_142_meaning    IN VARCHAR2
103884 )
103885 IS
103886 
103887 l_component_type              VARCHAR2(80);
103888 l_component_code              VARCHAR2(30);
103889 l_component_type_code         VARCHAR2(1);
103890 l_component_appl_id           INTEGER;
103891 l_amb_context_code            VARCHAR2(30);
103892 l_entity_code                 VARCHAR2(30);
103893 l_event_class_code            VARCHAR2(30);
103894 l_ae_header_id                NUMBER;
103895 l_event_type_code             VARCHAR2(30);
103896 l_line_definition_code        VARCHAR2(30);
103897 l_line_definition_owner_code  VARCHAR2(1);
103898 --
103899 -- adr variables
103900 l_segment                     VARCHAR2(30);
103901 l_ccid                        NUMBER;
103902 l_adr_transaction_coa_id      NUMBER;
103903 l_adr_accounting_coa_id       NUMBER;
103904 l_adr_flexfield_segment_code  VARCHAR2(30);
103905 l_adr_flex_value_set_id       NUMBER;
103906 l_adr_value_type_code         VARCHAR2(30);
103907 l_adr_value_combination_id    NUMBER;
103908 l_adr_value_segment_code      VARCHAR2(30);
103909 
103910 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
103914 
103911 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
103912 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
103913 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
103915 -- 4262811 Variables ------------------------------------------------------------------------------------------
103916 l_entered_amt_idx             NUMBER;
103917 l_accted_amt_idx              NUMBER;
103918 l_acc_rev_flag                VARCHAR2(1);
103919 l_accrual_line_num            NUMBER;
103920 l_tmp_amt                     NUMBER;
103921 l_acc_rev_natural_side_code   VARCHAR2(1);
103922 
103923 l_num_entries                 NUMBER;
103924 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
103925 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
103926 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
103927 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
103928 l_recog_line_1                NUMBER;
103929 l_recog_line_2                NUMBER;
103930 
103931 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
103932 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
103933 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
103934 
103935 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
103936 
103937 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
103938 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
103939 
103940 ---------------------------------------------------------------------------------------------------------------
103941 
103942 
103943 --
103944 -- bulk performance
103945 --
103946 l_balance_type_code           VARCHAR2(1);
103947 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
103948 l_log_module                  VARCHAR2(240);
103949 
103950 --
103951 -- Upgrade strategy
103952 --
103953 l_actual_upg_option           VARCHAR2(1);
103954 l_enc_upg_option           VARCHAR2(1);
103955 
103956 --
103957 BEGIN
103958 --
103959 IF g_log_enabled THEN
103960       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_177';
103961 END IF;
103962 --
103963 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
103964 
103965       trace
103966          (p_msg      => 'BEGIN of AcctLineType_177'
103967          ,p_level    => C_LEVEL_PROCEDURE
103968          ,p_module   => l_log_module);
103969 
103970 END IF;
103971 --
103972 l_component_type             := 'AMB_JLT';
103973 l_component_code             := 'AP_NON_RECOV_TAX_ACCRUAL_INV';
103974 l_component_type_code        := 'S';
103975 l_component_appl_id          :=  200;
103976 l_amb_context_code           := 'DEFAULT';
103977 l_entity_code                := 'AP_INVOICES';
103978 l_event_class_code           := 'INVOICES';
103979 l_event_type_code            := 'INVOICES_ALL';
103980 l_line_definition_owner_code := 'S';
103981 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
103982 --
103983 l_balance_type_code          := 'A';
103984 l_segment                     := NULL;
103985 l_ccid                        := NULL;
103986 l_adr_transaction_coa_id      := NULL;
103987 l_adr_accounting_coa_id       := NULL;
103988 l_adr_flexfield_segment_code  := NULL;
103989 l_adr_flex_value_set_id       := NULL;
103990 l_adr_value_type_code         := NULL;
103991 l_adr_value_combination_id    := NULL;
103992 l_adr_value_segment_code      := NULL;
103993 
103994 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
103995 l_bflow_class_code           := '';    -- 4219869 Business Flow
103996 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
103997 l_budgetary_control_flag     := 'N';
103998 
103999 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
104000 l_bflow_applied_to_amt       := NULL; -- 5132302
104001 l_entered_amt_idx            := NULL;          -- 4262811
104002 l_accted_amt_idx             := NULL;          -- 4262811
104003 l_acc_rev_flag               := NULL;          -- 4262811
104004 l_accrual_line_num           := NULL;          -- 4262811
104005 l_tmp_amt                    := NULL;          -- 4262811
104006 --
104007  
104008 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
104009     l_balance_type_code <> 'B' THEN
104010 IF NVL(p_source_33,'
104011 ') =  'NONREC_TAX' AND 
104012 NVL(p_source_96,'
104013 ') =  'Y' AND 
104014 NVL(p_source_142,'
104015 ') <>  'Y'
104016  THEN 
104017 
104018    --
104019    XLA_AE_LINES_PKG.SetNewLine;
104020 
104021    p_balance_type_code          := l_balance_type_code;
104022    -- set the flag so later we will know whether the gain loss line needs to be created
104023    
104024    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
104025      p_actual_flag :='A';
104026    END IF;
104027 
104028    --
104029    -- bulk performance
104030    --
104031    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
104032                                       p_header_num   => 0); -- 4262811
104033    --
104034    -- set accounting line options
104035    --
104036    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
104037            p_natural_side_code          => 'D'
104038          , p_gain_or_loss_flag          => 'N'
104039          , p_gl_transfer_mode_code      => 'S'
104040          , p_acct_entry_type_code       => 'A'
104041          , p_switch_side_flag           => 'Y'
104045    l_acc_rev_natural_side_code := 'C';  -- 4262811
104042          , p_merge_duplicate_code       => 'A'
104043          );
104044    --
104046    -- 
104047    --
104048    -- set accounting line type info
104049    --
104050    xla_ae_lines_pkg.SetAcctLineType
104051       (p_component_type             => l_component_type
104052       ,p_event_type_code            => l_event_type_code
104053       ,p_line_definition_owner_code => l_line_definition_owner_code
104054       ,p_line_definition_code       => l_line_definition_code
104055       ,p_accounting_line_code       => l_component_code
104056       ,p_accounting_line_type_code  => l_component_type_code
104057       ,p_accounting_line_appl_id    => l_component_appl_id
104058       ,p_amb_context_code           => l_amb_context_code
104059       ,p_entity_code                => l_entity_code
104060       ,p_event_class_code           => l_event_class_code);
104061    --
104062    -- set accounting class
104063    --
104064    xla_ae_lines_pkg.SetAcctClass(
104065            p_accounting_class_code  => 'NRTAX'
104066          , p_ae_header_id           => l_ae_header_id
104067          );
104068 
104069    --
104070    -- set rounding class
104071    --
104072    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
104073                       'NRTAX';
104074 
104075    --
104076    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
104077    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
104078    --
104079    -- bulk performance
104080    --
104081    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
104082 
104083    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
104084       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
104085 
104086    -- 4955764
104087    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
104088       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
104089 
104090    -- 4458381 Public Sector Enh
104091    
104092    --
104093    -- set accounting attributes for the line type
104094    --
104095    l_entered_amt_idx := 24;
104096    l_accted_amt_idx  := 29;
104097    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
104098    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
104099    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
104100    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
104101    l_rec_acct_attrs.array_num_value(2)  := 
104102 xla_ae_sources_pkg.GetSystemSourceNum(
104103    p_source_code           => 'XLA_EVENT_APPL_ID'
104104  , p_source_type_code      => 'Y'
104105  , p_source_application_id =>  602
104106 );
104107    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
104108    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
104109    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
104110    l_rec_acct_attrs.array_char_value(4)  := 
104111 xla_ae_sources_pkg.GetSystemSourceChar(
104112    p_source_code           => 'XLA_ENTITY_CODE'
104113  , p_source_type_code      => 'Y'
104114  , p_source_application_id =>  602
104115 );
104116    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
104117    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
104118    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
104119    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
104120    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
104121    l_rec_acct_attrs.array_num_value(7)  := p_source_73;
104122    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
104123    l_rec_acct_attrs.array_num_value(8)  := p_source_91;
104124    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
104125    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
104126    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
104127    l_rec_acct_attrs.array_char_value(10)  := p_source_93;
104128    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
104129    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
104130    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
104131    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_95);
104132    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
104133    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_64);
104134    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
104135    l_rec_acct_attrs.array_char_value(14)  := p_source_55;
104136    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
104137    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
104138    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
104139    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
104140    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
104141    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
104142    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
104143    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
104144    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
104145    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
104146    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
104147    l_rec_acct_attrs.array_num_value(20)  := p_source_70;
104151    l_rec_acct_attrs.array_num_value(22)  := p_source_71;
104148    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
104149    l_rec_acct_attrs.array_char_value(21)  := p_source_67;
104150    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
104152    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
104153    l_rec_acct_attrs.array_char_value(23)  := p_source_72;
104154    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
104155    l_rec_acct_attrs.array_num_value(24)  := p_source_73;
104156    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
104157    l_rec_acct_attrs.array_char_value(25)  := p_source_67;
104158    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
104159    l_rec_acct_attrs.array_date_value(26)  := p_source_74;
104160    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
104161    l_rec_acct_attrs.array_num_value(27)  := p_source_75;
104162    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
104163    l_rec_acct_attrs.array_char_value(28)  := p_source_76;
104164    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
104165    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
104166    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
104167    l_rec_acct_attrs.array_date_value(30)  := p_source_77;
104168    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
104169    l_rec_acct_attrs.array_char_value(31)  := p_source_78;
104170    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
104171    l_rec_acct_attrs.array_date_value(32)  := p_source_79;
104172    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
104173    l_rec_acct_attrs.array_char_value(33)  := p_source_80;
104174    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
104175    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
104176    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
104177    l_rec_acct_attrs.array_num_value(35)  := p_source_82;
104178    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
104179    l_rec_acct_attrs.array_char_value(36)  := p_source_83;
104180    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
104181    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_84);
104182    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
104183    l_rec_acct_attrs.array_char_value(38)  := p_source_55;
104184    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
104185    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
104186    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
104187    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
104188    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
104189    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
104190    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
104191    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
104192    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
104193    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
104194    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
104195    l_rec_acct_attrs.array_num_value(44)  := p_source_90;
104196 
104197    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
104198    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
104199 
104200    ---------------------------------------------------------------------------------------------------------------
104201    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
104202    ---------------------------------------------------------------------------------------------------------------
104203    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
104204 
104205    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
104206    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
104207 
104208    IF xla_accounting_cache_pkg.GetValueChar
104209          (p_source_code         => 'LEDGER_CATEGORY_CODE'
104210          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
104211    AND l_bflow_method_code = 'PRIOR_ENTRY'
104212 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
104213    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
104214          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
104215        )
104216    THEN
104217          xla_ae_lines_pkg.BflowUpgEntry
104218            (p_business_method_code    => l_bflow_method_code
104219            ,p_business_class_code     => l_bflow_class_code
104220            ,p_balance_type            => l_balance_type_code);
104221    ELSE
104222       NULL;
104223 -- No business flow processing for business flow method of NONE.
104224    END IF;
104225 
104226    --
104227    -- call analytical criteria
104228    --
104229    
104230    --
104231    -- call description
104232    --
104233    
104234 xla_ae_lines_pkg.SetLineDescription(
104235    p_ae_header_id => l_ae_header_id
104236   ,p_description  => Description_1 (
104237      p_application_id         => p_application_id
104238    , p_ae_header_id           => l_ae_header_id 
104239 , p_source_1 => p_source_1
104240    )
104241 );
104242 
104243 
104244    --
104245    -- call ADRs
104246    -- Bug 4922099
104247    --
104248    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
104249         (NVL(l_actual_upg_option, 'N') = 'O') OR
104253    NULL;
104250         (NVL(l_enc_upg_option, 'N') = 'O')
104251       )
104252    THEN
104254    --
104255    --
104256    
104257   l_ccid := AcctDerRule_33(
104258            p_application_id           => p_application_id
104259          , p_ae_header_id             => l_ae_header_id 
104260 , p_source_30 => p_source_30
104261          , x_transaction_coa_id       => l_adr_transaction_coa_id
104262          , x_accounting_coa_id        => l_adr_accounting_coa_id
104263          , x_value_type_code          => l_adr_value_type_code
104264          , p_side                     => 'NA'
104265    );
104266 
104267    xla_ae_lines_pkg.set_ccid(
104268     p_code_combination_id          => l_ccid
104269   , p_value_type_code              => l_adr_value_type_code
104270   , p_transaction_coa_id           => l_adr_transaction_coa_id
104271   , p_accounting_coa_id            => l_adr_accounting_coa_id
104272   , p_adr_code                     => 'AP_INVOICE_DIST'
104273   , p_adr_type_code                => 'S'
104274   , p_component_type               => l_component_type
104275   , p_component_code               => l_component_code
104276   , p_component_type_code          => l_component_type_code
104277   , p_component_appl_id            => l_component_appl_id
104278   , p_amb_context_code             => l_amb_context_code
104279   , p_side                         => 'NA'
104280   );
104281 
104282 
104283    --
104284    --
104285    END IF;
104286    --
104287    -- Bug 4922099
104288    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
104289           (NVL(l_enc_upg_option, 'N') = 'O')
104290         ) AND
104291         (l_bflow_method_code = 'PRIOR_ENTRY')
104292       )
104293    THEN
104294       IF
104295       --
104296       1 = 2
104297       --
104298       THEN
104299       xla_accounting_err_pkg.build_message
104300                                     (p_appli_s_name            => 'XLA'
104301                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
104302                                     ,p_token_1                 => 'LINE_NUMBER'
104303                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
104304                                     ,p_token_2                 => 'LINE_TYPE_NAME'
104305                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
104306                                                                              l_component_type
104307                                                                             ,l_component_code
104308                                                                             ,l_component_type_code
104309                                                                             ,l_component_appl_id
104310                                                                             ,l_amb_context_code
104311                                                                             ,l_entity_code
104312                                                                             ,l_event_class_code
104313                                                                            )
104314                                     ,p_token_3                 => 'OWNER'
104315                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
104316                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
104317                                                                           ,p_lookup_code    => l_component_type_code
104318                                                                          )
104319                                     ,p_token_4                 => 'PRODUCT_NAME'
104320                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
104321                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
104322                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
104323                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
104324                                     ,p_ae_header_id            =>  NULL
104325                                        );
104326 
104327         IF (C_LEVEL_ERROR>= g_log_level) THEN
104328                  trace
104329                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
104330                       ,p_level    => C_LEVEL_ERROR
104331                       ,p_module   => l_log_module);
104332         END IF;
104333       END IF;
104334    END IF;
104335    --
104336    --
104337    ------------------------------------------------------------------------------------------------
104338    -- 4219869 Business Flow
104339    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
104340    -- Prior Entry.  Currently, the following code is always generated.
104341    ------------------------------------------------------------------------------------------------
104342    XLA_AE_LINES_PKG.ValidateCurrentLine;
104343 
104344    ------------------------------------------------------------------------------------
104345    -- 4219869 Business Flow
104346    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
104347    ------------------------------------------------------------------------------------
104348    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
104349 
104353    ----------------------------------------------------------------------------------
104350    ----------------------------------------------------------------------------------
104351    -- 4219869 Business Flow
104352    -- Update journal entry status -- Need to generate this within IF <condition>
104354    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
104355          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
104356          ,p_balance_type_code => l_balance_type_code
104357          );
104358 
104359    -------------------------------------------------------------------------------------------
104360    -- 4262811 - Generate the Accrual Reversal lines
104361    -------------------------------------------------------------------------------------------
104362    BEGIN
104363       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
104364                               (g_array_event(p_event_id).array_value_num('header_index'));
104365       IF l_acc_rev_flag IS NULL THEN
104366          l_acc_rev_flag := 'N';
104367       END IF;
104368    EXCEPTION
104369       WHEN OTHERS THEN
104370          l_acc_rev_flag := 'N';
104371    END;
104372    --
104373    IF (l_acc_rev_flag = 'Y') THEN
104374 
104375        -- 4645092  ------------------------------------------------------------------------------
104376        -- To allow MPA report to determine if it should generate report process
104377        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
104378        ------------------------------------------------------------------------------------------
104379 
104380        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
104381        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
104382    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
104383    -- call ADRs
104384    -- Bug 4922099
104385    --
104386    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
104387         (NVL(l_actual_upg_option, 'N') = 'O') OR
104388         (NVL(l_enc_upg_option, 'N') = 'O')
104389       )
104390    THEN
104391    NULL;
104392    --
104393    --
104394    
104395   l_ccid := AcctDerRule_33(
104396            p_application_id           => p_application_id
104397          , p_ae_header_id             => l_ae_header_id 
104398 , p_source_30 => p_source_30
104399          , x_transaction_coa_id       => l_adr_transaction_coa_id
104400          , x_accounting_coa_id        => l_adr_accounting_coa_id
104401          , x_value_type_code          => l_adr_value_type_code
104402          , p_side                     => 'NA'
104403    );
104404 
104405    xla_ae_lines_pkg.set_ccid(
104406     p_code_combination_id          => l_ccid
104407   , p_value_type_code              => l_adr_value_type_code
104408   , p_transaction_coa_id           => l_adr_transaction_coa_id
104409   , p_accounting_coa_id            => l_adr_accounting_coa_id
104410   , p_adr_code                     => 'AP_INVOICE_DIST'
104411   , p_adr_type_code                => 'S'
104412   , p_component_type               => l_component_type
104413   , p_component_code               => l_component_code
104414   , p_component_type_code          => l_component_type_code
104415   , p_component_appl_id            => l_component_appl_id
104416   , p_amb_context_code             => l_amb_context_code
104417   , p_side                         => 'NA'
104418   );
104419 
104420 
104421    --
104422    --
104423    END IF;
104424 
104425        --
104426        -- Update the line information that should be overwritten
104427        --
104428        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
104429                                          p_header_num   => 1);
104430        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
104431 
104432        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
104433 
104434        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
104435           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
104436        END IF;
104437 
104438       --
104439       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
104440       --
104441       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
104442           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
104443       ELSE
104444           ---------------------------------------------------------------------------------------------------
104445           -- 4262811a Switch Sign
104446           ---------------------------------------------------------------------------------------------------
104447           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
104448           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
104449                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104450           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
104451                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104452           -- 5132302
104453           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
104454                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
104455 
104456       END IF;
104457 
104458       -- 4955764
104462 
104459       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
104460       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
104461 
104463       XLA_AE_LINES_PKG.ValidateCurrentLine;
104464       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
104465 
104466       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
104467                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
104468                ,p_balance_type_code => l_balance_type_code);
104469 
104470    END IF;
104471 
104472    -----------------------------------------------------------------------------------------
104473    -- 4262811 Multiperiod Accounting
104474    -----------------------------------------------------------------------------------------
104475      -- No MPA option is assigned.
104476 
104477 
104478 END IF;
104479 END IF;
104480 --
104481 
104482 --
104483 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
104484    trace
104485       (p_msg      => 'END of AcctLineType_177'
104486       ,p_level    => C_LEVEL_PROCEDURE
104487       ,p_module   => l_log_module);
104488 END IF;
104489 --
104490 EXCEPTION
104491   WHEN xla_exceptions_pkg.application_exception THEN
104492       RAISE;
104493   WHEN OTHERS THEN
104494        xla_exceptions_pkg.raise_message
104495            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_177');
104496 END AcctLineType_177;
104497 --
104498 
104499 ---------------------------------------
104500 --
104501 -- PRIVATE FUNCTION
104502 --         AcctLineType_178
104503 --
104504 ---------------------------------------
104505 PROCEDURE AcctLineType_178 (
104506   p_application_id        IN NUMBER
104507  ,p_event_id              IN NUMBER
104508  ,p_calculate_acctd_flag  IN VARCHAR2
104509  ,p_calculate_g_l_flag    IN VARCHAR2
104510  ,p_actual_flag           IN OUT VARCHAR2
104511  ,p_balance_type_code     OUT VARCHAR2
104512  ,p_gain_or_loss_ref      OUT VARCHAR2
104513  
104514 --Invoice Distribution Description
104515  , p_source_1            IN VARCHAR2
104516 --Invoice Distribution Ledger Amount
104517  , p_source_21            IN NUMBER
104518 --Invoice Distribution Account
104519  , p_source_30            IN NUMBER
104520 --Invoice Distribution Type
104521  , p_source_33            IN VARCHAR2
104522  , p_source_33_meaning    IN VARCHAR2
104523 --Accounting Reversal Indicator
104524  , p_source_53            IN VARCHAR2
104525 --Distribution Link Type
104526  , p_source_55            IN VARCHAR2
104527 --Allocation to Main Distribution Identifier
104528  , p_source_57            IN NUMBER
104529 --Invoice Identifier
104530  , p_source_58            IN NUMBER
104531 --Invoice Distribution Identifier
104532  , p_source_64            IN NUMBER
104533 --Payables Encumbrance Upgrade Credit Account
104534  , p_source_65            IN NUMBER
104535 --Payables Encumbrance Upgrade Credit Amount
104536  , p_source_66            IN NUMBER
104537 --Invoice Currency Code
104538  , p_source_67            IN VARCHAR2
104539 --Payables Encumbrance Upgrade Credit Base Amount
104540  , p_source_68            IN NUMBER
104541 --Payables Encumbrance Upgrade Debit Account
104542  , p_source_69            IN NUMBER
104543 --Payables Encumbrance Upgrade Debit Amount
104544  , p_source_70            IN NUMBER
104545 --Payables Encumbrance Upgrade Debit Base Amount
104546  , p_source_71            IN NUMBER
104547 --Payables Encumbrance Upgrade Option
104548  , p_source_72            IN VARCHAR2
104549 --Invoice Distribution Amount
104550  , p_source_73            IN NUMBER
104551 --Deferred Accounting End Date
104552  , p_source_77            IN DATE
104553 --Deferred Accounting Option
104554  , p_source_78            IN VARCHAR2
104555 --Deferred Accounting Start Date
104556  , p_source_79            IN DATE
104557 --Override Accounted Amount Indicator
104558  , p_source_80            IN VARCHAR2
104559  , p_source_80_meaning    IN VARCHAR2
104560 --Invoice Supplier Identifier
104561  , p_source_81            IN NUMBER
104562 --Invoice Supplier Site Identifier
104563  , p_source_82            IN NUMBER
104564 --Third Party Type
104565  , p_source_83            IN VARCHAR2
104566 --Parent Reversal Identifier
104567  , p_source_84            IN NUMBER
104568 --Invoice Distribution Statistical Amount
104569  , p_source_85            IN NUMBER
104570 --Invoice Distribution Tax Line Identifier
104571  , p_source_86            IN NUMBER
104572 --Invoice Distribution Tax Distribution Identifier from Tax
104573  , p_source_87            IN NUMBER
104574 --Invoice Distribution Summary Tax Line Identifier
104575  , p_source_88            IN NUMBER
104576 --Payables Upgrade Credit Encumbrance Type Identifier
104577  , p_source_89            IN NUMBER
104578 --Payables Upgrade Debit Encumbrance Type Identifier
104579  , p_source_90            IN NUMBER
104580 --Business Flow Accounts Payable Application Identifier
104581  , p_source_91            IN NUMBER
104582 --Business Flow Invoice Distribution Type
104583  , p_source_92            IN VARCHAR2
104584 --Business Flow Invoice Entity Code
104585  , p_source_93            IN VARCHAR2
104586 --Business Flow Invoice Distribution Identifier
104587  , p_source_94            IN NUMBER
104588 --Business Flow Invoice Identifier
104589  , p_source_95            IN NUMBER
104590 --Accrue on Receipt Option
104591  , p_source_96            IN VARCHAR2
104592  , p_source_96_meaning    IN VARCHAR2
104593 --Self-Assessed Tax Flag
104597  , p_source_143            IN DATE
104594  , p_source_142            IN VARCHAR2
104595  , p_source_142_meaning    IN VARCHAR2
104596 --Invoice Exchange Date
104598 --Invoice Exchange Rate
104599  , p_source_144            IN NUMBER
104600 --Invoice Exchange Rate Type
104601  , p_source_145            IN VARCHAR2
104602 )
104603 IS
104604 
104605 l_component_type              VARCHAR2(80);
104606 l_component_code              VARCHAR2(30);
104607 l_component_type_code         VARCHAR2(1);
104608 l_component_appl_id           INTEGER;
104609 l_amb_context_code            VARCHAR2(30);
104610 l_entity_code                 VARCHAR2(30);
104611 l_event_class_code            VARCHAR2(30);
104612 l_ae_header_id                NUMBER;
104613 l_event_type_code             VARCHAR2(30);
104614 l_line_definition_code        VARCHAR2(30);
104615 l_line_definition_owner_code  VARCHAR2(1);
104616 --
104617 -- adr variables
104618 l_segment                     VARCHAR2(30);
104619 l_ccid                        NUMBER;
104620 l_adr_transaction_coa_id      NUMBER;
104621 l_adr_accounting_coa_id       NUMBER;
104622 l_adr_flexfield_segment_code  VARCHAR2(30);
104623 l_adr_flex_value_set_id       NUMBER;
104624 l_adr_value_type_code         VARCHAR2(30);
104625 l_adr_value_combination_id    NUMBER;
104626 l_adr_value_segment_code      VARCHAR2(30);
104627 
104628 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
104629 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
104630 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
104631 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
104632 
104633 -- 4262811 Variables ------------------------------------------------------------------------------------------
104634 l_entered_amt_idx             NUMBER;
104635 l_accted_amt_idx              NUMBER;
104636 l_acc_rev_flag                VARCHAR2(1);
104637 l_accrual_line_num            NUMBER;
104638 l_tmp_amt                     NUMBER;
104639 l_acc_rev_natural_side_code   VARCHAR2(1);
104640 
104641 l_num_entries                 NUMBER;
104642 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
104643 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
104644 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
104645 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
104646 l_recog_line_1                NUMBER;
104647 l_recog_line_2                NUMBER;
104648 
104649 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
104650 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
104651 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
104652 
104653 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
104654 
104655 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
104656 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
104657 
104658 ---------------------------------------------------------------------------------------------------------------
104659 
104660 
104661 --
104662 -- bulk performance
104663 --
104664 l_balance_type_code           VARCHAR2(1);
104665 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
104666 l_log_module                  VARCHAR2(240);
104667 
104668 --
104669 -- Upgrade strategy
104670 --
104671 l_actual_upg_option           VARCHAR2(1);
104672 l_enc_upg_option           VARCHAR2(1);
104673 
104674 --
104675 BEGIN
104676 --
104677 IF g_log_enabled THEN
104678       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_178';
104679 END IF;
104680 --
104681 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
104682 
104683       trace
104684          (p_msg      => 'BEGIN of AcctLineType_178'
104685          ,p_level    => C_LEVEL_PROCEDURE
104686          ,p_module   => l_log_module);
104687 
104688 END IF;
104689 --
104690 l_component_type             := 'AMB_JLT';
104691 l_component_code             := 'AP_NON_RECOV_TAX_CM';
104692 l_component_type_code        := 'S';
104693 l_component_appl_id          :=  200;
104694 l_amb_context_code           := 'DEFAULT';
104695 l_entity_code                := 'AP_INVOICES';
104696 l_event_class_code           := 'CREDIT MEMOS';
104697 l_event_type_code            := 'CREDIT MEMOS_ALL';
104698 l_line_definition_owner_code := 'S';
104699 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
104700 --
104701 l_balance_type_code          := 'A';
104702 l_segment                     := NULL;
104703 l_ccid                        := NULL;
104704 l_adr_transaction_coa_id      := NULL;
104705 l_adr_accounting_coa_id       := NULL;
104706 l_adr_flexfield_segment_code  := NULL;
104707 l_adr_flex_value_set_id       := NULL;
104708 l_adr_value_type_code         := NULL;
104709 l_adr_value_combination_id    := NULL;
104710 l_adr_value_segment_code      := NULL;
104711 
104712 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
104713 l_bflow_class_code           := '';    -- 4219869 Business Flow
104714 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
104715 l_budgetary_control_flag     := 'N';
104716 
104717 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
104718 l_bflow_applied_to_amt       := NULL; -- 5132302
104719 l_entered_amt_idx            := NULL;          -- 4262811
104720 l_accted_amt_idx             := NULL;          -- 4262811
104721 l_acc_rev_flag               := NULL;          -- 4262811
104722 l_accrual_line_num           := NULL;          -- 4262811
104726 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
104723 l_tmp_amt                    := NULL;          -- 4262811
104724 --
104725  
104727     l_balance_type_code <> 'B' THEN
104728 IF (NVL(p_source_33,'
104729 ') =  'NONREC_TAX' OR 
104730 NVL(p_source_33,'
104731 ') =  'TERV' OR 
104732 NVL(p_source_33,'
104733 ') =  'TIPV' OR 
104734 NVL(p_source_33,'
104735 ') =  'TRV') AND 
104736 NVL(p_source_96,'
104737 ') <>  'Y' AND 
104738 NVL(p_source_142,'
104739 ') <>  'Y'
104740  THEN 
104741 
104742    --
104743    XLA_AE_LINES_PKG.SetNewLine;
104744 
104745    p_balance_type_code          := l_balance_type_code;
104746    -- set the flag so later we will know whether the gain loss line needs to be created
104747    
104748    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
104749      p_actual_flag :='A';
104750    END IF;
104751 
104752    --
104753    -- bulk performance
104754    --
104755    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
104756                                       p_header_num   => 0); -- 4262811
104757    --
104758    -- set accounting line options
104759    --
104760    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
104761            p_natural_side_code          => 'D'
104762          , p_gain_or_loss_flag          => 'N'
104763          , p_gl_transfer_mode_code      => 'S'
104764          , p_acct_entry_type_code       => 'A'
104765          , p_switch_side_flag           => 'Y'
104766          , p_merge_duplicate_code       => 'A'
104767          );
104768    --
104769    l_acc_rev_natural_side_code := 'C';  -- 4262811
104770    -- 
104771    --
104772    -- set accounting line type info
104773    --
104774    xla_ae_lines_pkg.SetAcctLineType
104775       (p_component_type             => l_component_type
104776       ,p_event_type_code            => l_event_type_code
104777       ,p_line_definition_owner_code => l_line_definition_owner_code
104778       ,p_line_definition_code       => l_line_definition_code
104779       ,p_accounting_line_code       => l_component_code
104780       ,p_accounting_line_type_code  => l_component_type_code
104781       ,p_accounting_line_appl_id    => l_component_appl_id
104782       ,p_amb_context_code           => l_amb_context_code
104783       ,p_entity_code                => l_entity_code
104784       ,p_event_class_code           => l_event_class_code);
104785    --
104786    -- set accounting class
104787    --
104788    xla_ae_lines_pkg.SetAcctClass(
104789            p_accounting_class_code  => 'NRTAX'
104790          , p_ae_header_id           => l_ae_header_id
104791          );
104792 
104793    --
104794    -- set rounding class
104795    --
104796    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
104797                       'NRTAX';
104798 
104799    --
104800    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
104801    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
104802    --
104803    -- bulk performance
104804    --
104805    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
104806 
104807    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
104808       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
104809 
104810    -- 4955764
104811    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
104812       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
104813 
104814    -- 4458381 Public Sector Enh
104815    
104816    --
104817    -- set accounting attributes for the line type
104818    --
104819    l_entered_amt_idx := 23;
104820    l_accted_amt_idx  := 28;
104821    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
104822    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
104823    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
104824    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
104825    l_rec_acct_attrs.array_num_value(2)  := 
104826 xla_ae_sources_pkg.GetSystemSourceNum(
104827    p_source_code           => 'XLA_EVENT_APPL_ID'
104828  , p_source_type_code      => 'Y'
104829  , p_source_application_id =>  602
104830 );
104831    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
104832    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
104833    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
104834    l_rec_acct_attrs.array_char_value(4)  := 
104835 xla_ae_sources_pkg.GetSystemSourceChar(
104836    p_source_code           => 'XLA_ENTITY_CODE'
104837  , p_source_type_code      => 'Y'
104838  , p_source_application_id =>  602
104839 );
104840    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
104841    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
104842    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
104843    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
104844    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
104845    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
104846    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
104847    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
104848    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
104849    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
104853    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
104850    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
104851    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
104852    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
104854    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
104855    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
104856    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
104857    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
104858    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
104859    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
104860    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
104861    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
104862    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
104863    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
104864    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
104865    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
104866    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
104867    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
104868    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
104869    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
104870    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
104871    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
104872    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
104873    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
104874    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
104875    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
104876    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
104877    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
104878    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
104879    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
104880    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
104881    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
104882    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
104883    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
104884    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
104885    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
104886    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
104887    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
104888    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
104889    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
104890    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
104891    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
104892    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
104893    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
104894    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
104895    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
104896    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
104897    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
104898    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
104899    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
104900    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
104901    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
104902    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
104903    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
104904    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
104905    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
104906    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
104907    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
104908    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
104909    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
104910    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
104911    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
104912    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
104913    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
104914    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
104915    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
104916    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
104917    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
104918 
104919    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
104920    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
104921 
104922    ---------------------------------------------------------------------------------------------------------------
104923    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
104924    ---------------------------------------------------------------------------------------------------------------
104925    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
104926 
104927    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
104928    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
104929 
104930    IF xla_accounting_cache_pkg.GetValueChar
104931          (p_source_code         => 'LEDGER_CATEGORY_CODE'
104935    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
104932          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
104933    AND l_bflow_method_code = 'PRIOR_ENTRY'
104934 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
104936          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
104937        )
104938    THEN
104939          xla_ae_lines_pkg.BflowUpgEntry
104940            (p_business_method_code    => l_bflow_method_code
104941            ,p_business_class_code     => l_bflow_class_code
104942            ,p_balance_type            => l_balance_type_code);
104943    ELSE
104944       NULL;
104945 -- No business flow processing for business flow method of NONE.
104946    END IF;
104947 
104948    --
104949    -- call analytical criteria
104950    --
104951    
104952    --
104953    -- call description
104954    --
104955    
104956 xla_ae_lines_pkg.SetLineDescription(
104957    p_ae_header_id => l_ae_header_id
104958   ,p_description  => Description_1 (
104959      p_application_id         => p_application_id
104960    , p_ae_header_id           => l_ae_header_id 
104961 , p_source_1 => p_source_1
104962    )
104963 );
104964 
104965 
104966    --
104967    -- call ADRs
104968    -- Bug 4922099
104969    --
104970    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
104971         (NVL(l_actual_upg_option, 'N') = 'O') OR
104972         (NVL(l_enc_upg_option, 'N') = 'O')
104973       )
104974    THEN
104975    NULL;
104976    --
104977    --
104978    
104979   l_ccid := AcctDerRule_33(
104980            p_application_id           => p_application_id
104981          , p_ae_header_id             => l_ae_header_id 
104982 , p_source_30 => p_source_30
104983          , x_transaction_coa_id       => l_adr_transaction_coa_id
104984          , x_accounting_coa_id        => l_adr_accounting_coa_id
104985          , x_value_type_code          => l_adr_value_type_code
104986          , p_side                     => 'NA'
104987    );
104988 
104989    xla_ae_lines_pkg.set_ccid(
104990     p_code_combination_id          => l_ccid
104991   , p_value_type_code              => l_adr_value_type_code
104992   , p_transaction_coa_id           => l_adr_transaction_coa_id
104993   , p_accounting_coa_id            => l_adr_accounting_coa_id
104994   , p_adr_code                     => 'AP_INVOICE_DIST'
104995   , p_adr_type_code                => 'S'
104996   , p_component_type               => l_component_type
104997   , p_component_code               => l_component_code
104998   , p_component_type_code          => l_component_type_code
104999   , p_component_appl_id            => l_component_appl_id
105000   , p_amb_context_code             => l_amb_context_code
105001   , p_side                         => 'NA'
105002   );
105003 
105004 
105005    --
105006    --
105007    END IF;
105008    --
105009    -- Bug 4922099
105010    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
105011           (NVL(l_enc_upg_option, 'N') = 'O')
105012         ) AND
105013         (l_bflow_method_code = 'PRIOR_ENTRY')
105014       )
105015    THEN
105016       IF
105017       --
105018       1 = 2
105019       --
105020       THEN
105021       xla_accounting_err_pkg.build_message
105022                                     (p_appli_s_name            => 'XLA'
105023                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
105024                                     ,p_token_1                 => 'LINE_NUMBER'
105025                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
105026                                     ,p_token_2                 => 'LINE_TYPE_NAME'
105027                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
105028                                                                              l_component_type
105029                                                                             ,l_component_code
105030                                                                             ,l_component_type_code
105031                                                                             ,l_component_appl_id
105032                                                                             ,l_amb_context_code
105033                                                                             ,l_entity_code
105034                                                                             ,l_event_class_code
105035                                                                            )
105036                                     ,p_token_3                 => 'OWNER'
105037                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
105038                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
105039                                                                           ,p_lookup_code    => l_component_type_code
105040                                                                          )
105041                                     ,p_token_4                 => 'PRODUCT_NAME'
105042                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
105043                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
105044                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
105048 
105045                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
105046                                     ,p_ae_header_id            =>  NULL
105047                                        );
105049         IF (C_LEVEL_ERROR>= g_log_level) THEN
105050                  trace
105051                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
105052                       ,p_level    => C_LEVEL_ERROR
105053                       ,p_module   => l_log_module);
105054         END IF;
105055       END IF;
105056    END IF;
105057    --
105058    --
105059    ------------------------------------------------------------------------------------------------
105060    -- 4219869 Business Flow
105061    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
105062    -- Prior Entry.  Currently, the following code is always generated.
105063    ------------------------------------------------------------------------------------------------
105064    XLA_AE_LINES_PKG.ValidateCurrentLine;
105065 
105066    ------------------------------------------------------------------------------------
105067    -- 4219869 Business Flow
105068    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
105069    ------------------------------------------------------------------------------------
105070    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
105071 
105072    ----------------------------------------------------------------------------------
105073    -- 4219869 Business Flow
105074    -- Update journal entry status -- Need to generate this within IF <condition>
105075    ----------------------------------------------------------------------------------
105076    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
105077          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
105078          ,p_balance_type_code => l_balance_type_code
105079          );
105080 
105081    -------------------------------------------------------------------------------------------
105082    -- 4262811 - Generate the Accrual Reversal lines
105083    -------------------------------------------------------------------------------------------
105084    BEGIN
105085       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
105086                               (g_array_event(p_event_id).array_value_num('header_index'));
105087       IF l_acc_rev_flag IS NULL THEN
105088          l_acc_rev_flag := 'N';
105089       END IF;
105090    EXCEPTION
105091       WHEN OTHERS THEN
105092          l_acc_rev_flag := 'N';
105093    END;
105094    --
105095    IF (l_acc_rev_flag = 'Y') THEN
105096 
105097        -- 4645092  ------------------------------------------------------------------------------
105098        -- To allow MPA report to determine if it should generate report process
105099        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
105100        ------------------------------------------------------------------------------------------
105101 
105102        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
105103        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
105104    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
105105    -- call ADRs
105106    -- Bug 4922099
105107    --
105108    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
105109         (NVL(l_actual_upg_option, 'N') = 'O') OR
105110         (NVL(l_enc_upg_option, 'N') = 'O')
105111       )
105112    THEN
105113    NULL;
105114    --
105115    --
105116    
105117   l_ccid := AcctDerRule_33(
105118            p_application_id           => p_application_id
105119          , p_ae_header_id             => l_ae_header_id 
105120 , p_source_30 => p_source_30
105121          , x_transaction_coa_id       => l_adr_transaction_coa_id
105122          , x_accounting_coa_id        => l_adr_accounting_coa_id
105123          , x_value_type_code          => l_adr_value_type_code
105124          , p_side                     => 'NA'
105125    );
105126 
105127    xla_ae_lines_pkg.set_ccid(
105128     p_code_combination_id          => l_ccid
105129   , p_value_type_code              => l_adr_value_type_code
105130   , p_transaction_coa_id           => l_adr_transaction_coa_id
105131   , p_accounting_coa_id            => l_adr_accounting_coa_id
105132   , p_adr_code                     => 'AP_INVOICE_DIST'
105133   , p_adr_type_code                => 'S'
105134   , p_component_type               => l_component_type
105135   , p_component_code               => l_component_code
105136   , p_component_type_code          => l_component_type_code
105137   , p_component_appl_id            => l_component_appl_id
105138   , p_amb_context_code             => l_amb_context_code
105139   , p_side                         => 'NA'
105140   );
105141 
105142 
105143    --
105144    --
105145    END IF;
105146 
105147        --
105148        -- Update the line information that should be overwritten
105149        --
105150        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
105151                                          p_header_num   => 1);
105152        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
105153 
105154        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
105155 
105156        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
105160       --
105157           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
105158        END IF;
105159 
105161       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
105162       --
105163       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
105164           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
105165       ELSE
105166           ---------------------------------------------------------------------------------------------------
105167           -- 4262811a Switch Sign
105168           ---------------------------------------------------------------------------------------------------
105169           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
105170           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
105171                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
105172           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
105173                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
105174           -- 5132302
105175           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
105176                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
105177 
105178       END IF;
105179 
105180       -- 4955764
105181       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
105182       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
105183 
105184 
105185       XLA_AE_LINES_PKG.ValidateCurrentLine;
105186       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
105187 
105188       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
105189                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
105190                ,p_balance_type_code => l_balance_type_code);
105191 
105192    END IF;
105193 
105194    -----------------------------------------------------------------------------------------
105195    -- 4262811 Multiperiod Accounting
105196    -----------------------------------------------------------------------------------------
105197      -- No MPA option is assigned.
105198 
105199 
105200 END IF;
105201 END IF;
105202 --
105203 
105204 --
105205 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
105206    trace
105207       (p_msg      => 'END of AcctLineType_178'
105208       ,p_level    => C_LEVEL_PROCEDURE
105209       ,p_module   => l_log_module);
105210 END IF;
105211 --
105212 EXCEPTION
105213   WHEN xla_exceptions_pkg.application_exception THEN
105214       RAISE;
105215   WHEN OTHERS THEN
105216        xla_exceptions_pkg.raise_message
105217            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_178');
105218 END AcctLineType_178;
105219 --
105220 
105221 ---------------------------------------
105222 --
105223 -- PRIVATE FUNCTION
105224 --         AcctLineType_179
105225 --
105226 ---------------------------------------
105227 PROCEDURE AcctLineType_179 (
105228   p_application_id        IN NUMBER
105229  ,p_event_id              IN NUMBER
105230  ,p_calculate_acctd_flag  IN VARCHAR2
105231  ,p_calculate_g_l_flag    IN VARCHAR2
105232  ,p_actual_flag           IN OUT VARCHAR2
105233  ,p_balance_type_code     OUT VARCHAR2
105234  ,p_gain_or_loss_ref      OUT VARCHAR2
105235  
105236 --Invoice Distribution Description
105237  , p_source_1            IN VARCHAR2
105238 --Invoice Distribution Ledger Amount
105239  , p_source_21            IN NUMBER
105240 --Invoice Distribution Account
105241  , p_source_30            IN NUMBER
105242 --Invoice Distribution Type
105243  , p_source_33            IN VARCHAR2
105244  , p_source_33_meaning    IN VARCHAR2
105245 --Accounting Reversal Indicator
105246  , p_source_53            IN VARCHAR2
105247 --Distribution Link Type
105248  , p_source_55            IN VARCHAR2
105249 --Allocation to Main Distribution Identifier
105250  , p_source_57            IN NUMBER
105251 --Invoice Identifier
105252  , p_source_58            IN NUMBER
105253 --Invoice Distribution Identifier
105254  , p_source_64            IN NUMBER
105255 --Payables Encumbrance Upgrade Credit Account
105256  , p_source_65            IN NUMBER
105257 --Payables Encumbrance Upgrade Credit Amount
105258  , p_source_66            IN NUMBER
105259 --Invoice Currency Code
105260  , p_source_67            IN VARCHAR2
105261 --Payables Encumbrance Upgrade Credit Base Amount
105262  , p_source_68            IN NUMBER
105263 --Payables Encumbrance Upgrade Debit Account
105264  , p_source_69            IN NUMBER
105265 --Payables Encumbrance Upgrade Debit Amount
105266  , p_source_70            IN NUMBER
105267 --Payables Encumbrance Upgrade Debit Base Amount
105268  , p_source_71            IN NUMBER
105269 --Payables Encumbrance Upgrade Option
105270  , p_source_72            IN VARCHAR2
105271 --Invoice Distribution Amount
105272  , p_source_73            IN NUMBER
105273 --Deferred Accounting End Date
105274  , p_source_77            IN DATE
105275 --Deferred Accounting Option
105276  , p_source_78            IN VARCHAR2
105277 --Deferred Accounting Start Date
105278  , p_source_79            IN DATE
105279 --Override Accounted Amount Indicator
105280  , p_source_80            IN VARCHAR2
105281  , p_source_80_meaning    IN VARCHAR2
105285  , p_source_82            IN NUMBER
105282 --Invoice Supplier Identifier
105283  , p_source_81            IN NUMBER
105284 --Invoice Supplier Site Identifier
105286 --Third Party Type
105287  , p_source_83            IN VARCHAR2
105288 --Parent Reversal Identifier
105289  , p_source_84            IN NUMBER
105290 --Invoice Distribution Tax Line Identifier
105291  , p_source_86            IN NUMBER
105292 --Invoice Distribution Tax Distribution Identifier from Tax
105293  , p_source_87            IN NUMBER
105294 --Invoice Distribution Summary Tax Line Identifier
105295  , p_source_88            IN NUMBER
105296 --Payables Upgrade Credit Encumbrance Type Identifier
105297  , p_source_89            IN NUMBER
105298 --Payables Upgrade Debit Encumbrance Type Identifier
105299  , p_source_90            IN NUMBER
105300 --Business Flow Accounts Payable Application Identifier
105301  , p_source_91            IN NUMBER
105302 --Business Flow Invoice Distribution Type
105303  , p_source_92            IN VARCHAR2
105304 --Business Flow Invoice Entity Code
105305  , p_source_93            IN VARCHAR2
105306 --Business Flow Invoice Distribution Identifier
105307  , p_source_94            IN NUMBER
105308 --Business Flow Invoice Identifier
105309  , p_source_95            IN NUMBER
105310 --Accrue on Receipt Option
105311  , p_source_96            IN VARCHAR2
105312  , p_source_96_meaning    IN VARCHAR2
105313 --Self-Assessed Tax Flag
105314  , p_source_142            IN VARCHAR2
105315  , p_source_142_meaning    IN VARCHAR2
105316 --Invoice Exchange Date
105317  , p_source_143            IN DATE
105318 --Invoice Exchange Rate
105319  , p_source_144            IN NUMBER
105320 --Invoice Exchange Rate Type
105321  , p_source_145            IN VARCHAR2
105322 )
105323 IS
105324 
105325 l_component_type              VARCHAR2(80);
105326 l_component_code              VARCHAR2(30);
105327 l_component_type_code         VARCHAR2(1);
105328 l_component_appl_id           INTEGER;
105329 l_amb_context_code            VARCHAR2(30);
105330 l_entity_code                 VARCHAR2(30);
105331 l_event_class_code            VARCHAR2(30);
105332 l_ae_header_id                NUMBER;
105333 l_event_type_code             VARCHAR2(30);
105334 l_line_definition_code        VARCHAR2(30);
105335 l_line_definition_owner_code  VARCHAR2(1);
105336 --
105337 -- adr variables
105338 l_segment                     VARCHAR2(30);
105339 l_ccid                        NUMBER;
105340 l_adr_transaction_coa_id      NUMBER;
105341 l_adr_accounting_coa_id       NUMBER;
105342 l_adr_flexfield_segment_code  VARCHAR2(30);
105343 l_adr_flex_value_set_id       NUMBER;
105344 l_adr_value_type_code         VARCHAR2(30);
105345 l_adr_value_combination_id    NUMBER;
105346 l_adr_value_segment_code      VARCHAR2(30);
105347 
105348 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
105349 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
105350 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
105351 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
105352 
105353 -- 4262811 Variables ------------------------------------------------------------------------------------------
105354 l_entered_amt_idx             NUMBER;
105355 l_accted_amt_idx              NUMBER;
105356 l_acc_rev_flag                VARCHAR2(1);
105357 l_accrual_line_num            NUMBER;
105358 l_tmp_amt                     NUMBER;
105359 l_acc_rev_natural_side_code   VARCHAR2(1);
105360 
105361 l_num_entries                 NUMBER;
105362 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
105363 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
105364 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
105365 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
105366 l_recog_line_1                NUMBER;
105367 l_recog_line_2                NUMBER;
105368 
105369 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
105370 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
105371 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
105372 
105373 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
105374 
105375 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
105376 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
105377 
105378 ---------------------------------------------------------------------------------------------------------------
105379 
105380 
105381 --
105382 -- bulk performance
105383 --
105384 l_balance_type_code           VARCHAR2(1);
105385 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
105386 l_log_module                  VARCHAR2(240);
105387 
105388 --
105389 -- Upgrade strategy
105390 --
105391 l_actual_upg_option           VARCHAR2(1);
105392 l_enc_upg_option           VARCHAR2(1);
105393 
105394 --
105395 BEGIN
105396 --
105397 IF g_log_enabled THEN
105398       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_179';
105399 END IF;
105400 --
105401 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
105402 
105403       trace
105404          (p_msg      => 'BEGIN of AcctLineType_179'
105405          ,p_level    => C_LEVEL_PROCEDURE
105406          ,p_module   => l_log_module);
105407 
105408 END IF;
105409 --
105410 l_component_type             := 'AMB_JLT';
105411 l_component_code             := 'AP_NON_RECOV_TAX_DM';
105412 l_component_type_code        := 'S';
105416 l_event_class_code           := 'DEBIT MEMOS';
105413 l_component_appl_id          :=  200;
105414 l_amb_context_code           := 'DEFAULT';
105415 l_entity_code                := 'AP_INVOICES';
105417 l_event_type_code            := 'DEBIT MEMOS_ALL';
105418 l_line_definition_owner_code := 'S';
105419 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
105420 --
105421 l_balance_type_code          := 'A';
105422 l_segment                     := NULL;
105423 l_ccid                        := NULL;
105424 l_adr_transaction_coa_id      := NULL;
105425 l_adr_accounting_coa_id       := NULL;
105426 l_adr_flexfield_segment_code  := NULL;
105427 l_adr_flex_value_set_id       := NULL;
105428 l_adr_value_type_code         := NULL;
105429 l_adr_value_combination_id    := NULL;
105430 l_adr_value_segment_code      := NULL;
105431 
105432 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
105433 l_bflow_class_code           := '';    -- 4219869 Business Flow
105434 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
105435 l_budgetary_control_flag     := 'N';
105436 
105437 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
105438 l_bflow_applied_to_amt       := NULL; -- 5132302
105439 l_entered_amt_idx            := NULL;          -- 4262811
105440 l_accted_amt_idx             := NULL;          -- 4262811
105441 l_acc_rev_flag               := NULL;          -- 4262811
105442 l_accrual_line_num           := NULL;          -- 4262811
105443 l_tmp_amt                    := NULL;          -- 4262811
105444 --
105445  
105446 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
105447     l_balance_type_code <> 'B' THEN
105448 IF (NVL(p_source_33,'
105449 ') =  'NONREC_TAX' OR 
105450 NVL(p_source_33,'
105451 ') =  'TERV' OR 
105452 NVL(p_source_33,'
105453 ') =  'TIPV' OR 
105454 NVL(p_source_33,'
105455 ') =  'TRV') AND 
105456 NVL(p_source_96,'
105457 ') <>  'Y' AND 
105458 NVL(p_source_142,'
105459 ') <>  'Y'
105460  THEN 
105461 
105462    --
105463    XLA_AE_LINES_PKG.SetNewLine;
105464 
105465    p_balance_type_code          := l_balance_type_code;
105466    -- set the flag so later we will know whether the gain loss line needs to be created
105467    
105468    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
105469      p_actual_flag :='A';
105470    END IF;
105471 
105472    --
105473    -- bulk performance
105474    --
105475    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
105476                                       p_header_num   => 0); -- 4262811
105477    --
105478    -- set accounting line options
105479    --
105480    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
105481            p_natural_side_code          => 'D'
105482          , p_gain_or_loss_flag          => 'N'
105483          , p_gl_transfer_mode_code      => 'S'
105484          , p_acct_entry_type_code       => 'A'
105485          , p_switch_side_flag           => 'Y'
105486          , p_merge_duplicate_code       => 'A'
105487          );
105488    --
105489    l_acc_rev_natural_side_code := 'C';  -- 4262811
105490    -- 
105491    --
105492    -- set accounting line type info
105493    --
105494    xla_ae_lines_pkg.SetAcctLineType
105495       (p_component_type             => l_component_type
105496       ,p_event_type_code            => l_event_type_code
105497       ,p_line_definition_owner_code => l_line_definition_owner_code
105498       ,p_line_definition_code       => l_line_definition_code
105499       ,p_accounting_line_code       => l_component_code
105500       ,p_accounting_line_type_code  => l_component_type_code
105501       ,p_accounting_line_appl_id    => l_component_appl_id
105502       ,p_amb_context_code           => l_amb_context_code
105503       ,p_entity_code                => l_entity_code
105504       ,p_event_class_code           => l_event_class_code);
105505    --
105506    -- set accounting class
105507    --
105508    xla_ae_lines_pkg.SetAcctClass(
105509            p_accounting_class_code  => 'NRTAX'
105510          , p_ae_header_id           => l_ae_header_id
105511          );
105512 
105513    --
105514    -- set rounding class
105515    --
105516    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
105517                       'NRTAX';
105518 
105519    --
105520    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
105521    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
105522    --
105523    -- bulk performance
105524    --
105525    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
105526 
105527    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
105528       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
105529 
105530    -- 4955764
105531    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
105532       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
105533 
105534    -- 4458381 Public Sector Enh
105535    
105536    --
105537    -- set accounting attributes for the line type
105538    --
105539    l_entered_amt_idx := 23;
105540    l_accted_amt_idx  := 28;
105541    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
105542    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
105546 xla_ae_sources_pkg.GetSystemSourceNum(
105543    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
105544    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
105545    l_rec_acct_attrs.array_num_value(2)  := 
105547    p_source_code           => 'XLA_EVENT_APPL_ID'
105548  , p_source_type_code      => 'Y'
105549  , p_source_application_id =>  602
105550 );
105551    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
105552    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
105553    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
105554    l_rec_acct_attrs.array_char_value(4)  := 
105555 xla_ae_sources_pkg.GetSystemSourceChar(
105556    p_source_code           => 'XLA_ENTITY_CODE'
105557  , p_source_type_code      => 'Y'
105558  , p_source_application_id =>  602
105559 );
105560    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
105561    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
105562    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
105563    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
105564    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
105565    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
105566    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
105567    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
105568    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
105569    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
105570    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
105571    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
105572    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
105573    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
105574    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
105575    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
105576    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
105577    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
105578    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
105579    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
105580    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
105581    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
105582    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
105583    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
105584    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
105585    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
105586    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
105587    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
105588    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
105589    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
105590    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
105591    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
105592    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
105593    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
105594    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
105595    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
105596    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
105597    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
105598    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
105599    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
105600    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
105601    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
105602    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
105603    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
105604    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
105605    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
105606    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
105607    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
105608    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
105609    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
105610    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
105611    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
105612    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
105613    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
105614    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
105615    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
105616    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
105617    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
105618    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
105619    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
105620    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
105621    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
105622    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
105623    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
105624    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
105625    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
105626    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
105627    l_rec_acct_attrs.array_num_value(38)  := p_source_86;
105628    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
105629    l_rec_acct_attrs.array_num_value(39)  := p_source_87;
105630    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
105634    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
105631    l_rec_acct_attrs.array_num_value(40)  := p_source_88;
105632    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
105633    l_rec_acct_attrs.array_num_value(41)  := p_source_89;
105635    l_rec_acct_attrs.array_num_value(42)  := p_source_90;
105636 
105637    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
105638    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
105639 
105640    ---------------------------------------------------------------------------------------------------------------
105641    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
105642    ---------------------------------------------------------------------------------------------------------------
105643    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
105644 
105645    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
105646    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
105647 
105648    IF xla_accounting_cache_pkg.GetValueChar
105649          (p_source_code         => 'LEDGER_CATEGORY_CODE'
105650          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
105651    AND l_bflow_method_code = 'PRIOR_ENTRY'
105652 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
105653    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
105654          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
105655        )
105656    THEN
105657          xla_ae_lines_pkg.BflowUpgEntry
105658            (p_business_method_code    => l_bflow_method_code
105659            ,p_business_class_code     => l_bflow_class_code
105660            ,p_balance_type            => l_balance_type_code);
105661    ELSE
105662       NULL;
105663 -- No business flow processing for business flow method of NONE.
105664    END IF;
105665 
105666    --
105667    -- call analytical criteria
105668    --
105669    
105670    --
105671    -- call description
105672    --
105673    
105674 xla_ae_lines_pkg.SetLineDescription(
105675    p_ae_header_id => l_ae_header_id
105676   ,p_description  => Description_1 (
105677      p_application_id         => p_application_id
105678    , p_ae_header_id           => l_ae_header_id 
105679 , p_source_1 => p_source_1
105680    )
105681 );
105682 
105683 
105684    --
105685    -- call ADRs
105686    -- Bug 4922099
105687    --
105688    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
105689         (NVL(l_actual_upg_option, 'N') = 'O') OR
105690         (NVL(l_enc_upg_option, 'N') = 'O')
105691       )
105692    THEN
105693    NULL;
105694    --
105695    --
105696    
105697   l_ccid := AcctDerRule_33(
105698            p_application_id           => p_application_id
105699          , p_ae_header_id             => l_ae_header_id 
105700 , p_source_30 => p_source_30
105701          , x_transaction_coa_id       => l_adr_transaction_coa_id
105702          , x_accounting_coa_id        => l_adr_accounting_coa_id
105703          , x_value_type_code          => l_adr_value_type_code
105704          , p_side                     => 'NA'
105705    );
105706 
105707    xla_ae_lines_pkg.set_ccid(
105708     p_code_combination_id          => l_ccid
105709   , p_value_type_code              => l_adr_value_type_code
105710   , p_transaction_coa_id           => l_adr_transaction_coa_id
105711   , p_accounting_coa_id            => l_adr_accounting_coa_id
105712   , p_adr_code                     => 'AP_INVOICE_DIST'
105713   , p_adr_type_code                => 'S'
105714   , p_component_type               => l_component_type
105715   , p_component_code               => l_component_code
105716   , p_component_type_code          => l_component_type_code
105717   , p_component_appl_id            => l_component_appl_id
105718   , p_amb_context_code             => l_amb_context_code
105719   , p_side                         => 'NA'
105720   );
105721 
105722 
105723    --
105724    --
105725    END IF;
105726    --
105727    -- Bug 4922099
105728    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
105729           (NVL(l_enc_upg_option, 'N') = 'O')
105730         ) AND
105731         (l_bflow_method_code = 'PRIOR_ENTRY')
105732       )
105733    THEN
105734       IF
105735       --
105736       1 = 2
105737       --
105738       THEN
105739       xla_accounting_err_pkg.build_message
105740                                     (p_appli_s_name            => 'XLA'
105741                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
105742                                     ,p_token_1                 => 'LINE_NUMBER'
105743                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
105744                                     ,p_token_2                 => 'LINE_TYPE_NAME'
105745                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
105746                                                                              l_component_type
105747                                                                             ,l_component_code
105748                                                                             ,l_component_type_code
105749                                                                             ,l_component_appl_id
105753                                                                            )
105750                                                                             ,l_amb_context_code
105751                                                                             ,l_entity_code
105752                                                                             ,l_event_class_code
105754                                     ,p_token_3                 => 'OWNER'
105755                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
105756                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
105757                                                                           ,p_lookup_code    => l_component_type_code
105758                                                                          )
105759                                     ,p_token_4                 => 'PRODUCT_NAME'
105760                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
105761                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
105762                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
105763                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
105764                                     ,p_ae_header_id            =>  NULL
105765                                        );
105766 
105767         IF (C_LEVEL_ERROR>= g_log_level) THEN
105768                  trace
105769                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
105770                       ,p_level    => C_LEVEL_ERROR
105771                       ,p_module   => l_log_module);
105772         END IF;
105773       END IF;
105774    END IF;
105775    --
105776    --
105777    ------------------------------------------------------------------------------------------------
105778    -- 4219869 Business Flow
105779    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
105780    -- Prior Entry.  Currently, the following code is always generated.
105781    ------------------------------------------------------------------------------------------------
105782    XLA_AE_LINES_PKG.ValidateCurrentLine;
105783 
105784    ------------------------------------------------------------------------------------
105785    -- 4219869 Business Flow
105786    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
105787    ------------------------------------------------------------------------------------
105788    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
105789 
105790    ----------------------------------------------------------------------------------
105791    -- 4219869 Business Flow
105792    -- Update journal entry status -- Need to generate this within IF <condition>
105793    ----------------------------------------------------------------------------------
105794    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
105795          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
105796          ,p_balance_type_code => l_balance_type_code
105797          );
105798 
105799    -------------------------------------------------------------------------------------------
105800    -- 4262811 - Generate the Accrual Reversal lines
105801    -------------------------------------------------------------------------------------------
105802    BEGIN
105803       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
105804                               (g_array_event(p_event_id).array_value_num('header_index'));
105805       IF l_acc_rev_flag IS NULL THEN
105806          l_acc_rev_flag := 'N';
105807       END IF;
105808    EXCEPTION
105809       WHEN OTHERS THEN
105810          l_acc_rev_flag := 'N';
105811    END;
105812    --
105813    IF (l_acc_rev_flag = 'Y') THEN
105814 
105815        -- 4645092  ------------------------------------------------------------------------------
105816        -- To allow MPA report to determine if it should generate report process
105817        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
105818        ------------------------------------------------------------------------------------------
105819 
105820        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
105821        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
105822    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
105823    -- call ADRs
105824    -- Bug 4922099
105825    --
105826    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
105827         (NVL(l_actual_upg_option, 'N') = 'O') OR
105828         (NVL(l_enc_upg_option, 'N') = 'O')
105829       )
105830    THEN
105831    NULL;
105832    --
105833    --
105834    
105835   l_ccid := AcctDerRule_33(
105836            p_application_id           => p_application_id
105837          , p_ae_header_id             => l_ae_header_id 
105838 , p_source_30 => p_source_30
105839          , x_transaction_coa_id       => l_adr_transaction_coa_id
105840          , x_accounting_coa_id        => l_adr_accounting_coa_id
105841          , x_value_type_code          => l_adr_value_type_code
105842          , p_side                     => 'NA'
105843    );
105844 
105845    xla_ae_lines_pkg.set_ccid(
105846     p_code_combination_id          => l_ccid
105847   , p_value_type_code              => l_adr_value_type_code
105848   , p_transaction_coa_id           => l_adr_transaction_coa_id
105849   , p_accounting_coa_id            => l_adr_accounting_coa_id
105853   , p_component_code               => l_component_code
105850   , p_adr_code                     => 'AP_INVOICE_DIST'
105851   , p_adr_type_code                => 'S'
105852   , p_component_type               => l_component_type
105854   , p_component_type_code          => l_component_type_code
105855   , p_component_appl_id            => l_component_appl_id
105856   , p_amb_context_code             => l_amb_context_code
105857   , p_side                         => 'NA'
105858   );
105859 
105860 
105861    --
105862    --
105863    END IF;
105864 
105865        --
105866        -- Update the line information that should be overwritten
105867        --
105868        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
105869                                          p_header_num   => 1);
105870        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
105871 
105872        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
105873 
105874        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
105875           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
105876        END IF;
105877 
105878       --
105879       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
105880       --
105881       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
105882           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
105883       ELSE
105884           ---------------------------------------------------------------------------------------------------
105885           -- 4262811a Switch Sign
105886           ---------------------------------------------------------------------------------------------------
105887           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
105888           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
105889                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
105890           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
105891                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
105892           -- 5132302
105893           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
105894                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
105895 
105896       END IF;
105897 
105898       -- 4955764
105899       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
105900       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
105901 
105902 
105903       XLA_AE_LINES_PKG.ValidateCurrentLine;
105904       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
105905 
105906       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
105907                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
105908                ,p_balance_type_code => l_balance_type_code);
105909 
105910    END IF;
105911 
105912    -----------------------------------------------------------------------------------------
105913    -- 4262811 Multiperiod Accounting
105914    -----------------------------------------------------------------------------------------
105915      -- No MPA option is assigned.
105916 
105917 
105918 END IF;
105919 END IF;
105920 --
105921 
105922 --
105923 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
105924    trace
105925       (p_msg      => 'END of AcctLineType_179'
105926       ,p_level    => C_LEVEL_PROCEDURE
105927       ,p_module   => l_log_module);
105928 END IF;
105929 --
105930 EXCEPTION
105931   WHEN xla_exceptions_pkg.application_exception THEN
105932       RAISE;
105933   WHEN OTHERS THEN
105934        xla_exceptions_pkg.raise_message
105935            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_179');
105936 END AcctLineType_179;
105937 --
105938 
105939 ---------------------------------------
105940 --
105941 -- PRIVATE FUNCTION
105942 --         AcctLineType_180
105943 --
105944 ---------------------------------------
105945 PROCEDURE AcctLineType_180 (
105946   p_application_id        IN NUMBER
105947  ,p_event_id              IN NUMBER
105948  ,p_calculate_acctd_flag  IN VARCHAR2
105949  ,p_calculate_g_l_flag    IN VARCHAR2
105950  ,p_actual_flag           IN OUT VARCHAR2
105951  ,p_balance_type_code     OUT VARCHAR2
105952  ,p_gain_or_loss_ref      OUT VARCHAR2
105953  
105954 --Invoice Distribution Description
105955  , p_source_1            IN VARCHAR2
105956 --Invoice Distribution Ledger Amount
105957  , p_source_21            IN NUMBER
105958 --Invoice Distribution Account
105959  , p_source_30            IN NUMBER
105960 --Invoice Distribution Type
105961  , p_source_33            IN VARCHAR2
105962  , p_source_33_meaning    IN VARCHAR2
105963 --Accounting Reversal Indicator
105964  , p_source_53            IN VARCHAR2
105965 --Distribution Link Type
105966  , p_source_55            IN VARCHAR2
105967 --Allocation to Main Distribution Identifier
105968  , p_source_57            IN NUMBER
105969 --Invoice Identifier
105970  , p_source_58            IN NUMBER
105971 --Invoice Distribution Identifier
105975 --Payables Encumbrance Upgrade Credit Amount
105972  , p_source_64            IN NUMBER
105973 --Payables Encumbrance Upgrade Credit Account
105974  , p_source_65            IN NUMBER
105976  , p_source_66            IN NUMBER
105977 --Invoice Currency Code
105978  , p_source_67            IN VARCHAR2
105979 --Payables Encumbrance Upgrade Credit Base Amount
105980  , p_source_68            IN NUMBER
105981 --Payables Encumbrance Upgrade Debit Account
105982  , p_source_69            IN NUMBER
105983 --Payables Encumbrance Upgrade Debit Amount
105984  , p_source_70            IN NUMBER
105985 --Payables Encumbrance Upgrade Debit Base Amount
105986  , p_source_71            IN NUMBER
105987 --Payables Encumbrance Upgrade Option
105988  , p_source_72            IN VARCHAR2
105989 --Invoice Distribution Amount
105990  , p_source_73            IN NUMBER
105991 --Deferred Accounting End Date
105992  , p_source_77            IN DATE
105993 --Deferred Accounting Option
105994  , p_source_78            IN VARCHAR2
105995 --Deferred Accounting Start Date
105996  , p_source_79            IN DATE
105997 --Override Accounted Amount Indicator
105998  , p_source_80            IN VARCHAR2
105999  , p_source_80_meaning    IN VARCHAR2
106000 --Invoice Supplier Identifier
106001  , p_source_81            IN NUMBER
106002 --Invoice Supplier Site Identifier
106003  , p_source_82            IN NUMBER
106004 --Third Party Type
106005  , p_source_83            IN VARCHAR2
106006 --Parent Reversal Identifier
106007  , p_source_84            IN NUMBER
106008 --Invoice Distribution Statistical Amount
106009  , p_source_85            IN NUMBER
106010 --Invoice Distribution Tax Line Identifier
106011  , p_source_86            IN NUMBER
106012 --Invoice Distribution Tax Distribution Identifier from Tax
106013  , p_source_87            IN NUMBER
106014 --Invoice Distribution Summary Tax Line Identifier
106015  , p_source_88            IN NUMBER
106016 --Payables Upgrade Credit Encumbrance Type Identifier
106017  , p_source_89            IN NUMBER
106018 --Payables Upgrade Debit Encumbrance Type Identifier
106019  , p_source_90            IN NUMBER
106020 --Business Flow Accounts Payable Application Identifier
106021  , p_source_91            IN NUMBER
106022 --Business Flow Invoice Distribution Type
106023  , p_source_92            IN VARCHAR2
106024 --Business Flow Invoice Entity Code
106025  , p_source_93            IN VARCHAR2
106026 --Business Flow Invoice Distribution Identifier
106027  , p_source_94            IN NUMBER
106028 --Business Flow Invoice Identifier
106029  , p_source_95            IN NUMBER
106030 --Accrue on Receipt Option
106031  , p_source_96            IN VARCHAR2
106032  , p_source_96_meaning    IN VARCHAR2
106033 --Self-Assessed Tax Flag
106034  , p_source_142            IN VARCHAR2
106035  , p_source_142_meaning    IN VARCHAR2
106036 --Invoice Exchange Date
106037  , p_source_143            IN DATE
106038 --Invoice Exchange Rate
106039  , p_source_144            IN NUMBER
106040 --Invoice Exchange Rate Type
106041  , p_source_145            IN VARCHAR2
106042 )
106043 IS
106044 
106045 l_component_type              VARCHAR2(80);
106046 l_component_code              VARCHAR2(30);
106047 l_component_type_code         VARCHAR2(1);
106048 l_component_appl_id           INTEGER;
106049 l_amb_context_code            VARCHAR2(30);
106050 l_entity_code                 VARCHAR2(30);
106051 l_event_class_code            VARCHAR2(30);
106052 l_ae_header_id                NUMBER;
106053 l_event_type_code             VARCHAR2(30);
106054 l_line_definition_code        VARCHAR2(30);
106055 l_line_definition_owner_code  VARCHAR2(1);
106056 --
106057 -- adr variables
106058 l_segment                     VARCHAR2(30);
106059 l_ccid                        NUMBER;
106060 l_adr_transaction_coa_id      NUMBER;
106061 l_adr_accounting_coa_id       NUMBER;
106062 l_adr_flexfield_segment_code  VARCHAR2(30);
106063 l_adr_flex_value_set_id       NUMBER;
106064 l_adr_value_type_code         VARCHAR2(30);
106065 l_adr_value_combination_id    NUMBER;
106066 l_adr_value_segment_code      VARCHAR2(30);
106067 
106068 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
106069 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
106070 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
106071 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
106072 
106073 -- 4262811 Variables ------------------------------------------------------------------------------------------
106074 l_entered_amt_idx             NUMBER;
106075 l_accted_amt_idx              NUMBER;
106076 l_acc_rev_flag                VARCHAR2(1);
106077 l_accrual_line_num            NUMBER;
106078 l_tmp_amt                     NUMBER;
106079 l_acc_rev_natural_side_code   VARCHAR2(1);
106080 
106081 l_num_entries                 NUMBER;
106082 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
106083 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
106084 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
106085 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
106086 l_recog_line_1                NUMBER;
106087 l_recog_line_2                NUMBER;
106088 
106089 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
106090 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
106091 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
106092 
106093 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
106094 
106098 ---------------------------------------------------------------------------------------------------------------
106095 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
106096 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
106097 
106099 
106100 
106101 --
106102 -- bulk performance
106103 --
106104 l_balance_type_code           VARCHAR2(1);
106105 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
106106 l_log_module                  VARCHAR2(240);
106107 
106108 --
106109 -- Upgrade strategy
106110 --
106111 l_actual_upg_option           VARCHAR2(1);
106112 l_enc_upg_option           VARCHAR2(1);
106113 
106114 --
106115 BEGIN
106116 --
106117 IF g_log_enabled THEN
106118       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_180';
106119 END IF;
106120 --
106121 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
106122 
106123       trace
106124          (p_msg      => 'BEGIN of AcctLineType_180'
106125          ,p_level    => C_LEVEL_PROCEDURE
106126          ,p_module   => l_log_module);
106127 
106128 END IF;
106129 --
106130 l_component_type             := 'AMB_JLT';
106131 l_component_code             := 'AP_NON_RECOV_TAX_INV';
106132 l_component_type_code        := 'S';
106133 l_component_appl_id          :=  200;
106134 l_amb_context_code           := 'DEFAULT';
106135 l_entity_code                := 'AP_INVOICES';
106136 l_event_class_code           := 'INVOICES';
106137 l_event_type_code            := 'INVOICES_ALL';
106138 l_line_definition_owner_code := 'S';
106139 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
106140 --
106141 l_balance_type_code          := 'A';
106142 l_segment                     := NULL;
106143 l_ccid                        := NULL;
106144 l_adr_transaction_coa_id      := NULL;
106145 l_adr_accounting_coa_id       := NULL;
106146 l_adr_flexfield_segment_code  := NULL;
106147 l_adr_flex_value_set_id       := NULL;
106148 l_adr_value_type_code         := NULL;
106149 l_adr_value_combination_id    := NULL;
106150 l_adr_value_segment_code      := NULL;
106151 
106152 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
106153 l_bflow_class_code           := '';    -- 4219869 Business Flow
106154 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
106155 l_budgetary_control_flag     := 'N';
106156 
106157 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
106158 l_bflow_applied_to_amt       := NULL; -- 5132302
106159 l_entered_amt_idx            := NULL;          -- 4262811
106160 l_accted_amt_idx             := NULL;          -- 4262811
106161 l_acc_rev_flag               := NULL;          -- 4262811
106162 l_accrual_line_num           := NULL;          -- 4262811
106163 l_tmp_amt                    := NULL;          -- 4262811
106164 --
106165  
106166 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
106167     l_balance_type_code <> 'B' THEN
106168 IF (NVL(p_source_33,'
106169 ') =  'NONREC_TAX' OR 
106170 NVL(p_source_33,'
106171 ') =  'TERV' OR 
106172 NVL(p_source_33,'
106173 ') =  'TIPV' OR 
106174 NVL(p_source_33,'
106175 ') =  'TRV') AND 
106176 NVL(p_source_96,'
106177 ') <>  'Y' AND 
106178 NVL(p_source_142,'
106179 ') <>  'Y'
106180  THEN 
106181 
106182    --
106183    XLA_AE_LINES_PKG.SetNewLine;
106184 
106185    p_balance_type_code          := l_balance_type_code;
106186    -- set the flag so later we will know whether the gain loss line needs to be created
106187    
106188    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
106189      p_actual_flag :='A';
106190    END IF;
106191 
106192    --
106193    -- bulk performance
106194    --
106195    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
106196                                       p_header_num   => 0); -- 4262811
106197    --
106198    -- set accounting line options
106199    --
106200    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
106201            p_natural_side_code          => 'D'
106202          , p_gain_or_loss_flag          => 'N'
106203          , p_gl_transfer_mode_code      => 'S'
106204          , p_acct_entry_type_code       => 'A'
106205          , p_switch_side_flag           => 'Y'
106206          , p_merge_duplicate_code       => 'W'
106207          );
106208    --
106209    l_acc_rev_natural_side_code := 'C';  -- 4262811
106210    -- 
106211    --
106212    -- set accounting line type info
106213    --
106214    xla_ae_lines_pkg.SetAcctLineType
106215       (p_component_type             => l_component_type
106216       ,p_event_type_code            => l_event_type_code
106217       ,p_line_definition_owner_code => l_line_definition_owner_code
106218       ,p_line_definition_code       => l_line_definition_code
106219       ,p_accounting_line_code       => l_component_code
106220       ,p_accounting_line_type_code  => l_component_type_code
106221       ,p_accounting_line_appl_id    => l_component_appl_id
106222       ,p_amb_context_code           => l_amb_context_code
106223       ,p_entity_code                => l_entity_code
106224       ,p_event_class_code           => l_event_class_code);
106225    --
106226    -- set accounting class
106227    --
106228    xla_ae_lines_pkg.SetAcctClass(
106229            p_accounting_class_code  => 'NRTAX'
106230          , p_ae_header_id           => l_ae_header_id
106231          );
106232 
106233    --
106234    -- set rounding class
106235    --
106239    --
106236    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
106237                       'NRTAX';
106238 
106240    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
106241    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
106242    --
106243    -- bulk performance
106244    --
106245    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
106246 
106247    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
106248       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
106249 
106250    -- 4955764
106251    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
106252       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
106253 
106254    -- 4458381 Public Sector Enh
106255    
106256    --
106257    -- set accounting attributes for the line type
106258    --
106259    l_entered_amt_idx := 24;
106260    l_accted_amt_idx  := 29;
106261    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
106262    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
106263    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
106264    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
106265    l_rec_acct_attrs.array_num_value(2)  := 
106266 xla_ae_sources_pkg.GetSystemSourceNum(
106267    p_source_code           => 'XLA_EVENT_APPL_ID'
106268  , p_source_type_code      => 'Y'
106269  , p_source_application_id =>  602
106270 );
106271    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
106272    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
106273    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
106274    l_rec_acct_attrs.array_char_value(4)  := 
106275 xla_ae_sources_pkg.GetSystemSourceChar(
106276    p_source_code           => 'XLA_ENTITY_CODE'
106277  , p_source_type_code      => 'Y'
106278  , p_source_application_id =>  602
106279 );
106280    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
106281    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
106282    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
106283    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
106284    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
106285    l_rec_acct_attrs.array_num_value(7)  := p_source_73;
106286    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
106287    l_rec_acct_attrs.array_num_value(8)  := p_source_91;
106288    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
106289    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
106290    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
106291    l_rec_acct_attrs.array_char_value(10)  := p_source_93;
106292    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
106293    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
106294    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
106295    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_95);
106296    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
106297    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_64);
106298    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
106299    l_rec_acct_attrs.array_char_value(14)  := p_source_55;
106300    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
106301    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
106302    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
106303    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
106304    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
106305    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
106306    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
106307    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
106308    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
106309    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
106310    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
106311    l_rec_acct_attrs.array_num_value(20)  := p_source_70;
106312    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
106313    l_rec_acct_attrs.array_char_value(21)  := p_source_67;
106314    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
106315    l_rec_acct_attrs.array_num_value(22)  := p_source_71;
106316    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
106317    l_rec_acct_attrs.array_char_value(23)  := p_source_72;
106318    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
106319    l_rec_acct_attrs.array_num_value(24)  := p_source_73;
106320    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
106321    l_rec_acct_attrs.array_char_value(25)  := p_source_67;
106322    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
106323    l_rec_acct_attrs.array_date_value(26)  := p_source_143;
106324    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
106325    l_rec_acct_attrs.array_num_value(27)  := p_source_144;
106326    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
106327    l_rec_acct_attrs.array_char_value(28)  := p_source_145;
106328    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
106329    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
106333    l_rec_acct_attrs.array_char_value(31)  := p_source_78;
106330    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
106331    l_rec_acct_attrs.array_date_value(30)  := p_source_77;
106332    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
106334    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
106335    l_rec_acct_attrs.array_date_value(32)  := p_source_79;
106336    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
106337    l_rec_acct_attrs.array_char_value(33)  := p_source_80;
106338    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
106339    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
106340    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
106341    l_rec_acct_attrs.array_num_value(35)  := p_source_82;
106342    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
106343    l_rec_acct_attrs.array_char_value(36)  := p_source_83;
106344    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
106345    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_84);
106346    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
106347    l_rec_acct_attrs.array_char_value(38)  := p_source_55;
106348    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
106349    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
106350    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
106351    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
106352    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
106353    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
106354    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
106355    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
106356    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
106357    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
106358    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
106359    l_rec_acct_attrs.array_num_value(44)  := p_source_90;
106360 
106361    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
106362    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
106363 
106364    ---------------------------------------------------------------------------------------------------------------
106365    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
106366    ---------------------------------------------------------------------------------------------------------------
106367    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
106368 
106369    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
106370    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
106371 
106372    IF xla_accounting_cache_pkg.GetValueChar
106373          (p_source_code         => 'LEDGER_CATEGORY_CODE'
106374          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
106375    AND l_bflow_method_code = 'PRIOR_ENTRY'
106376 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
106377    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
106378          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
106379        )
106380    THEN
106381          xla_ae_lines_pkg.BflowUpgEntry
106382            (p_business_method_code    => l_bflow_method_code
106383            ,p_business_class_code     => l_bflow_class_code
106384            ,p_balance_type            => l_balance_type_code);
106385    ELSE
106386       NULL;
106387 -- No business flow processing for business flow method of NONE.
106388    END IF;
106389 
106390    --
106391    -- call analytical criteria
106392    --
106393    
106394    --
106395    -- call description
106396    --
106397    
106398 xla_ae_lines_pkg.SetLineDescription(
106399    p_ae_header_id => l_ae_header_id
106400   ,p_description  => Description_1 (
106401      p_application_id         => p_application_id
106402    , p_ae_header_id           => l_ae_header_id 
106403 , p_source_1 => p_source_1
106404    )
106405 );
106406 
106407 
106408    --
106409    -- call ADRs
106410    -- Bug 4922099
106411    --
106412    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
106413         (NVL(l_actual_upg_option, 'N') = 'O') OR
106414         (NVL(l_enc_upg_option, 'N') = 'O')
106415       )
106416    THEN
106417    NULL;
106418    --
106419    --
106420    
106421   l_ccid := AcctDerRule_33(
106422            p_application_id           => p_application_id
106423          , p_ae_header_id             => l_ae_header_id 
106424 , p_source_30 => p_source_30
106425          , x_transaction_coa_id       => l_adr_transaction_coa_id
106426          , x_accounting_coa_id        => l_adr_accounting_coa_id
106427          , x_value_type_code          => l_adr_value_type_code
106428          , p_side                     => 'NA'
106429    );
106430 
106431    xla_ae_lines_pkg.set_ccid(
106432     p_code_combination_id          => l_ccid
106433   , p_value_type_code              => l_adr_value_type_code
106434   , p_transaction_coa_id           => l_adr_transaction_coa_id
106435   , p_accounting_coa_id            => l_adr_accounting_coa_id
106436   , p_adr_code                     => 'AP_INVOICE_DIST'
106437   , p_adr_type_code                => 'S'
106438   , p_component_type               => l_component_type
106439   , p_component_code               => l_component_code
106440   , p_component_type_code          => l_component_type_code
106444   );
106441   , p_component_appl_id            => l_component_appl_id
106442   , p_amb_context_code             => l_amb_context_code
106443   , p_side                         => 'NA'
106445 
106446 
106447    --
106448    --
106449    END IF;
106450    --
106451    -- Bug 4922099
106452    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
106453           (NVL(l_enc_upg_option, 'N') = 'O')
106454         ) AND
106455         (l_bflow_method_code = 'PRIOR_ENTRY')
106456       )
106457    THEN
106458       IF
106459       --
106460       1 = 2
106461       --
106462       THEN
106463       xla_accounting_err_pkg.build_message
106464                                     (p_appli_s_name            => 'XLA'
106465                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
106466                                     ,p_token_1                 => 'LINE_NUMBER'
106467                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
106468                                     ,p_token_2                 => 'LINE_TYPE_NAME'
106469                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
106470                                                                              l_component_type
106471                                                                             ,l_component_code
106472                                                                             ,l_component_type_code
106473                                                                             ,l_component_appl_id
106474                                                                             ,l_amb_context_code
106475                                                                             ,l_entity_code
106476                                                                             ,l_event_class_code
106477                                                                            )
106478                                     ,p_token_3                 => 'OWNER'
106479                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
106480                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
106481                                                                           ,p_lookup_code    => l_component_type_code
106482                                                                          )
106483                                     ,p_token_4                 => 'PRODUCT_NAME'
106484                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
106485                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
106486                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
106487                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
106488                                     ,p_ae_header_id            =>  NULL
106489                                        );
106490 
106491         IF (C_LEVEL_ERROR>= g_log_level) THEN
106492                  trace
106493                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
106494                       ,p_level    => C_LEVEL_ERROR
106495                       ,p_module   => l_log_module);
106496         END IF;
106497       END IF;
106498    END IF;
106499    --
106500    --
106501    ------------------------------------------------------------------------------------------------
106502    -- 4219869 Business Flow
106503    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
106504    -- Prior Entry.  Currently, the following code is always generated.
106505    ------------------------------------------------------------------------------------------------
106506    XLA_AE_LINES_PKG.ValidateCurrentLine;
106507 
106508    ------------------------------------------------------------------------------------
106509    -- 4219869 Business Flow
106510    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
106511    ------------------------------------------------------------------------------------
106512    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
106513 
106514    ----------------------------------------------------------------------------------
106515    -- 4219869 Business Flow
106516    -- Update journal entry status -- Need to generate this within IF <condition>
106517    ----------------------------------------------------------------------------------
106518    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
106519          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
106520          ,p_balance_type_code => l_balance_type_code
106521          );
106522 
106523    -------------------------------------------------------------------------------------------
106524    -- 4262811 - Generate the Accrual Reversal lines
106525    -------------------------------------------------------------------------------------------
106526    BEGIN
106527       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
106528                               (g_array_event(p_event_id).array_value_num('header_index'));
106529       IF l_acc_rev_flag IS NULL THEN
106530          l_acc_rev_flag := 'N';
106531       END IF;
106532    EXCEPTION
106533       WHEN OTHERS THEN
106534          l_acc_rev_flag := 'N';
106535    END;
106536    --
106537    IF (l_acc_rev_flag = 'Y') THEN
106538 
106539        -- 4645092  ------------------------------------------------------------------------------
106543 
106540        -- To allow MPA report to determine if it should generate report process
106541        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
106542        ------------------------------------------------------------------------------------------
106544        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
106545        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
106546    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
106547    -- call ADRs
106548    -- Bug 4922099
106549    --
106550    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
106551         (NVL(l_actual_upg_option, 'N') = 'O') OR
106552         (NVL(l_enc_upg_option, 'N') = 'O')
106553       )
106554    THEN
106555    NULL;
106556    --
106557    --
106558    
106559   l_ccid := AcctDerRule_33(
106560            p_application_id           => p_application_id
106561          , p_ae_header_id             => l_ae_header_id 
106562 , p_source_30 => p_source_30
106563          , x_transaction_coa_id       => l_adr_transaction_coa_id
106564          , x_accounting_coa_id        => l_adr_accounting_coa_id
106565          , x_value_type_code          => l_adr_value_type_code
106566          , p_side                     => 'NA'
106567    );
106568 
106569    xla_ae_lines_pkg.set_ccid(
106570     p_code_combination_id          => l_ccid
106571   , p_value_type_code              => l_adr_value_type_code
106572   , p_transaction_coa_id           => l_adr_transaction_coa_id
106573   , p_accounting_coa_id            => l_adr_accounting_coa_id
106574   , p_adr_code                     => 'AP_INVOICE_DIST'
106575   , p_adr_type_code                => 'S'
106576   , p_component_type               => l_component_type
106577   , p_component_code               => l_component_code
106578   , p_component_type_code          => l_component_type_code
106579   , p_component_appl_id            => l_component_appl_id
106580   , p_amb_context_code             => l_amb_context_code
106581   , p_side                         => 'NA'
106582   );
106583 
106584 
106585    --
106586    --
106587    END IF;
106588 
106589        --
106590        -- Update the line information that should be overwritten
106591        --
106592        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
106593                                          p_header_num   => 1);
106594        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
106595 
106596        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
106597 
106598        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
106599           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
106600        END IF;
106601 
106602       --
106603       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
106604       --
106605       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
106606           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
106607       ELSE
106608           ---------------------------------------------------------------------------------------------------
106609           -- 4262811a Switch Sign
106610           ---------------------------------------------------------------------------------------------------
106611           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
106612           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
106613                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
106614           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
106615                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
106616           -- 5132302
106617           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
106618                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
106619 
106620       END IF;
106621 
106622       -- 4955764
106623       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
106624       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
106625 
106626 
106627       XLA_AE_LINES_PKG.ValidateCurrentLine;
106628       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
106629 
106630       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
106631                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
106632                ,p_balance_type_code => l_balance_type_code);
106633 
106634    END IF;
106635 
106636    -----------------------------------------------------------------------------------------
106637    -- 4262811 Multiperiod Accounting
106638    -----------------------------------------------------------------------------------------
106639      -- No MPA option is assigned.
106640 
106641 
106642 END IF;
106643 END IF;
106644 --
106645 
106646 --
106647 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
106648    trace
106649       (p_msg      => 'END of AcctLineType_180'
106650       ,p_level    => C_LEVEL_PROCEDURE
106651       ,p_module   => l_log_module);
106652 END IF;
106653 --
106654 EXCEPTION
106655   WHEN xla_exceptions_pkg.application_exception THEN
106659            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_180');
106656       RAISE;
106657   WHEN OTHERS THEN
106658        xla_exceptions_pkg.raise_message
106660 END AcctLineType_180;
106661 --
106662 
106663 ---------------------------------------
106664 --
106665 -- PRIVATE FUNCTION
106666 --         AcctLineType_181
106667 --
106668 ---------------------------------------
106669 PROCEDURE AcctLineType_181 (
106670   p_application_id        IN NUMBER
106671  ,p_event_id              IN NUMBER
106672  ,p_calculate_acctd_flag  IN VARCHAR2
106673  ,p_calculate_g_l_flag    IN VARCHAR2
106674  ,p_actual_flag           IN OUT VARCHAR2
106675  ,p_balance_type_code     OUT VARCHAR2
106676  ,p_gain_or_loss_ref      OUT VARCHAR2
106677  
106678 --Invoice Distribution Description
106679  , p_source_1            IN VARCHAR2
106680 --Invoice Distribution Ledger Amount
106681  , p_source_21            IN NUMBER
106682 --Invoice Distribution Account
106683  , p_source_30            IN NUMBER
106684 --Invoice Distribution Type
106685  , p_source_33            IN VARCHAR2
106686  , p_source_33_meaning    IN VARCHAR2
106687 --Accounting Reversal Indicator
106688  , p_source_53            IN VARCHAR2
106689 --Distribution Link Type
106690  , p_source_55            IN VARCHAR2
106691 --Allocation to Main Distribution Identifier
106692  , p_source_57            IN NUMBER
106693 --Invoice Identifier
106694  , p_source_58            IN NUMBER
106695 --Invoice Distribution Identifier
106696  , p_source_64            IN NUMBER
106697 --Payables Encumbrance Upgrade Credit Account
106698  , p_source_65            IN NUMBER
106699 --Payables Encumbrance Upgrade Credit Amount
106700  , p_source_66            IN NUMBER
106701 --Invoice Currency Code
106702  , p_source_67            IN VARCHAR2
106703 --Payables Encumbrance Upgrade Credit Base Amount
106704  , p_source_68            IN NUMBER
106705 --Payables Encumbrance Upgrade Debit Account
106706  , p_source_69            IN NUMBER
106707 --Payables Encumbrance Upgrade Debit Amount
106708  , p_source_70            IN NUMBER
106709 --Payables Encumbrance Upgrade Debit Base Amount
106710  , p_source_71            IN NUMBER
106711 --Payables Encumbrance Upgrade Option
106712  , p_source_72            IN VARCHAR2
106713 --Invoice Distribution Amount
106714  , p_source_73            IN NUMBER
106715 --Deferred Accounting End Date
106716  , p_source_77            IN DATE
106717 --Deferred Accounting Option
106718  , p_source_78            IN VARCHAR2
106719 --Deferred Accounting Start Date
106720  , p_source_79            IN DATE
106721 --Override Accounted Amount Indicator
106722  , p_source_80            IN VARCHAR2
106723  , p_source_80_meaning    IN VARCHAR2
106724 --Invoice Supplier Identifier
106725  , p_source_81            IN NUMBER
106726 --Invoice Supplier Site Identifier
106727  , p_source_82            IN NUMBER
106728 --Third Party Type
106729  , p_source_83            IN VARCHAR2
106730 --Parent Reversal Identifier
106731  , p_source_84            IN NUMBER
106732 --Invoice Distribution Statistical Amount
106733  , p_source_85            IN NUMBER
106734 --Invoice Distribution Tax Line Identifier
106735  , p_source_86            IN NUMBER
106736 --Invoice Distribution Tax Distribution Identifier from Tax
106737  , p_source_87            IN NUMBER
106738 --Invoice Distribution Summary Tax Line Identifier
106739  , p_source_88            IN NUMBER
106740 --Payables Upgrade Credit Encumbrance Type Identifier
106741  , p_source_89            IN NUMBER
106742 --Payables Upgrade Debit Encumbrance Type Identifier
106743  , p_source_90            IN NUMBER
106744 --Business Flow Accounts Payable Application Identifier
106745  , p_source_91            IN NUMBER
106746 --Business Flow Invoice Distribution Type
106747  , p_source_92            IN VARCHAR2
106748 --Business Flow Invoice Entity Code
106749  , p_source_93            IN VARCHAR2
106750 --Business Flow Invoice Distribution Identifier
106751  , p_source_94            IN NUMBER
106752 --Business Flow Invoice Identifier
106753  , p_source_95            IN NUMBER
106754 --Accrue on Receipt Option
106755  , p_source_96            IN VARCHAR2
106756  , p_source_96_meaning    IN VARCHAR2
106757 --Self-Assessed Tax Flag
106758  , p_source_142            IN VARCHAR2
106759  , p_source_142_meaning    IN VARCHAR2
106760 --Invoice Exchange Date
106761  , p_source_143            IN DATE
106762 --Invoice Exchange Rate
106763  , p_source_144            IN NUMBER
106764 --Invoice Exchange Rate Type
106765  , p_source_145            IN VARCHAR2
106766 )
106767 IS
106768 
106769 l_component_type              VARCHAR2(80);
106770 l_component_code              VARCHAR2(30);
106771 l_component_type_code         VARCHAR2(1);
106772 l_component_appl_id           INTEGER;
106773 l_amb_context_code            VARCHAR2(30);
106774 l_entity_code                 VARCHAR2(30);
106775 l_event_class_code            VARCHAR2(30);
106776 l_ae_header_id                NUMBER;
106777 l_event_type_code             VARCHAR2(30);
106778 l_line_definition_code        VARCHAR2(30);
106779 l_line_definition_owner_code  VARCHAR2(1);
106780 --
106781 -- adr variables
106782 l_segment                     VARCHAR2(30);
106783 l_ccid                        NUMBER;
106784 l_adr_transaction_coa_id      NUMBER;
106785 l_adr_accounting_coa_id       NUMBER;
106786 l_adr_flexfield_segment_code  VARCHAR2(30);
106787 l_adr_flex_value_set_id       NUMBER;
106791 
106788 l_adr_value_type_code         VARCHAR2(30);
106789 l_adr_value_combination_id    NUMBER;
106790 l_adr_value_segment_code      VARCHAR2(30);
106792 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
106793 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
106794 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
106795 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
106796 
106797 -- 4262811 Variables ------------------------------------------------------------------------------------------
106798 l_entered_amt_idx             NUMBER;
106799 l_accted_amt_idx              NUMBER;
106800 l_acc_rev_flag                VARCHAR2(1);
106801 l_accrual_line_num            NUMBER;
106802 l_tmp_amt                     NUMBER;
106803 l_acc_rev_natural_side_code   VARCHAR2(1);
106804 
106805 l_num_entries                 NUMBER;
106806 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
106807 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
106808 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
106809 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
106810 l_recog_line_1                NUMBER;
106811 l_recog_line_2                NUMBER;
106812 
106813 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
106814 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
106815 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
106816 
106817 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
106818 
106819 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
106820 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
106821 
106822 ---------------------------------------------------------------------------------------------------------------
106823 
106824 
106825 --
106826 -- bulk performance
106827 --
106828 l_balance_type_code           VARCHAR2(1);
106829 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
106830 l_log_module                  VARCHAR2(240);
106831 
106832 --
106833 -- Upgrade strategy
106834 --
106835 l_actual_upg_option           VARCHAR2(1);
106836 l_enc_upg_option           VARCHAR2(1);
106837 
106838 --
106839 BEGIN
106840 --
106841 IF g_log_enabled THEN
106842       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_181';
106843 END IF;
106844 --
106845 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
106846 
106847       trace
106848          (p_msg      => 'BEGIN of AcctLineType_181'
106849          ,p_level    => C_LEVEL_PROCEDURE
106850          ,p_module   => l_log_module);
106851 
106852 END IF;
106853 --
106854 l_component_type             := 'AMB_JLT';
106855 l_component_code             := 'AP_NON_RECOV_TAX_PREPAY';
106856 l_component_type_code        := 'S';
106857 l_component_appl_id          :=  200;
106858 l_amb_context_code           := 'DEFAULT';
106859 l_entity_code                := 'AP_INVOICES';
106860 l_event_class_code           := 'PREPAYMENTS';
106861 l_event_type_code            := 'PREPAYMENTS_ALL';
106862 l_line_definition_owner_code := 'S';
106863 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
106864 --
106865 l_balance_type_code          := 'A';
106866 l_segment                     := NULL;
106867 l_ccid                        := NULL;
106868 l_adr_transaction_coa_id      := NULL;
106869 l_adr_accounting_coa_id       := NULL;
106870 l_adr_flexfield_segment_code  := NULL;
106871 l_adr_flex_value_set_id       := NULL;
106872 l_adr_value_type_code         := NULL;
106873 l_adr_value_combination_id    := NULL;
106874 l_adr_value_segment_code      := NULL;
106875 
106876 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
106877 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
106878 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
106879 l_budgetary_control_flag     := 'N';
106880 
106881 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
106882 l_bflow_applied_to_amt       := NULL; -- 5132302
106883 l_entered_amt_idx            := NULL;          -- 4262811
106884 l_accted_amt_idx             := NULL;          -- 4262811
106885 l_acc_rev_flag               := NULL;          -- 4262811
106886 l_accrual_line_num           := NULL;          -- 4262811
106887 l_tmp_amt                    := NULL;          -- 4262811
106888 --
106889  
106890 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
106891     l_balance_type_code <> 'B' THEN
106892 IF (NVL(p_source_33,'
106893 ') =  'NONREC_TAX' OR 
106894 NVL(p_source_33,'
106895 ') =  'TERV' OR 
106896 NVL(p_source_33,'
106897 ') =  'TIPV' OR 
106898 NVL(p_source_33,'
106899 ') =  'TRV') AND 
106900 NVL(p_source_96,'
106901 ') <>  'Y' AND 
106902 NVL(p_source_142,'
106903 ') <>  'Y'
106904  THEN 
106905 
106906    --
106907    XLA_AE_LINES_PKG.SetNewLine;
106908 
106909    p_balance_type_code          := l_balance_type_code;
106910    -- set the flag so later we will know whether the gain loss line needs to be created
106911    
106912    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
106913      p_actual_flag :='A';
106914    END IF;
106915 
106916    --
106917    -- bulk performance
106918    --
106919    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
106920                                       p_header_num   => 0); -- 4262811
106921    --
106922    -- set accounting line options
106926          , p_gain_or_loss_flag          => 'N'
106923    --
106924    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
106925            p_natural_side_code          => 'D'
106927          , p_gl_transfer_mode_code      => 'S'
106928          , p_acct_entry_type_code       => 'A'
106929          , p_switch_side_flag           => 'Y'
106930          , p_merge_duplicate_code       => 'A'
106931          );
106932    --
106933    l_acc_rev_natural_side_code := 'C';  -- 4262811
106934    -- 
106935    --
106936    -- set accounting line type info
106937    --
106938    xla_ae_lines_pkg.SetAcctLineType
106939       (p_component_type             => l_component_type
106940       ,p_event_type_code            => l_event_type_code
106941       ,p_line_definition_owner_code => l_line_definition_owner_code
106942       ,p_line_definition_code       => l_line_definition_code
106943       ,p_accounting_line_code       => l_component_code
106944       ,p_accounting_line_type_code  => l_component_type_code
106945       ,p_accounting_line_appl_id    => l_component_appl_id
106946       ,p_amb_context_code           => l_amb_context_code
106947       ,p_entity_code                => l_entity_code
106948       ,p_event_class_code           => l_event_class_code);
106949    --
106950    -- set accounting class
106951    --
106952    xla_ae_lines_pkg.SetAcctClass(
106953            p_accounting_class_code  => 'NRTAX'
106954          , p_ae_header_id           => l_ae_header_id
106955          );
106956 
106957    --
106958    -- set rounding class
106959    --
106960    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
106961                       'NRTAX';
106962 
106963    --
106964    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
106965    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
106966    --
106967    -- bulk performance
106968    --
106969    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
106970 
106971    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
106972       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
106973 
106974    -- 4955764
106975    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
106976       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
106977 
106978    -- 4458381 Public Sector Enh
106979    
106980    --
106981    -- set accounting attributes for the line type
106982    --
106983    l_entered_amt_idx := 23;
106984    l_accted_amt_idx  := 28;
106985    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
106986    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
106987    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
106988    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
106989    l_rec_acct_attrs.array_num_value(2)  := 
106990 xla_ae_sources_pkg.GetSystemSourceNum(
106991    p_source_code           => 'XLA_EVENT_APPL_ID'
106992  , p_source_type_code      => 'Y'
106993  , p_source_application_id =>  602
106994 );
106995    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
106996    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
106997    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
106998    l_rec_acct_attrs.array_char_value(4)  := 
106999 xla_ae_sources_pkg.GetSystemSourceChar(
107000    p_source_code           => 'XLA_ENTITY_CODE'
107001  , p_source_type_code      => 'Y'
107002  , p_source_application_id =>  602
107003 );
107004    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
107005    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
107006    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
107007    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
107008    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
107009    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
107010    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
107011    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
107012    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
107013    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
107014    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
107015    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
107016    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
107017    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
107018    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
107019    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
107020    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
107021    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
107022    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
107023    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
107024    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
107025    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
107026    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
107027    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
107028    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
107029    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
107030    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
107034    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
107031    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
107032    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
107033    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
107035    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
107036    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
107037    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
107038    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
107039    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
107040    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
107041    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
107042    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
107043    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
107044    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
107045    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
107046    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
107047    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
107048    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
107049    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
107050    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
107051    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
107052    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
107053    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
107054    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
107055    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
107056    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
107057    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
107058    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
107059    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
107060    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
107061    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
107062    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
107063    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
107064    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
107065    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
107066    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
107067    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
107068    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
107069    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
107070    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
107071    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
107072    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
107073    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
107074    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
107075    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
107076    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
107077    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
107078    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
107079    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
107080    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
107081    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
107082 
107083    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
107084    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
107085 
107086    ---------------------------------------------------------------------------------------------------------------
107087    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
107088    ---------------------------------------------------------------------------------------------------------------
107089    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
107090 
107091    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
107092    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
107093 
107094    IF xla_accounting_cache_pkg.GetValueChar
107095          (p_source_code         => 'LEDGER_CATEGORY_CODE'
107096          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
107097    AND l_bflow_method_code = 'PRIOR_ENTRY'
107098 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
107099    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
107100          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
107101        )
107102    THEN
107103          xla_ae_lines_pkg.BflowUpgEntry
107104            (p_business_method_code    => l_bflow_method_code
107105            ,p_business_class_code     => l_bflow_class_code
107106            ,p_balance_type            => l_balance_type_code);
107107    ELSE
107108       NULL;
107109 -- No business flow processing for business flow method of NONE.
107110    END IF;
107111 
107112    --
107113    -- call analytical criteria
107114    --
107115    
107116    --
107117    -- call description
107118    --
107119    
107120 xla_ae_lines_pkg.SetLineDescription(
107121    p_ae_header_id => l_ae_header_id
107122   ,p_description  => Description_1 (
107123      p_application_id         => p_application_id
107124    , p_ae_header_id           => l_ae_header_id 
107125 , p_source_1 => p_source_1
107126    )
107127 );
107128 
107132    -- Bug 4922099
107129 
107130    --
107131    -- call ADRs
107133    --
107134    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
107135         (NVL(l_actual_upg_option, 'N') = 'O') OR
107136         (NVL(l_enc_upg_option, 'N') = 'O')
107137       )
107138    THEN
107139    NULL;
107140    --
107141    --
107142    
107143   l_ccid := AcctDerRule_33(
107144            p_application_id           => p_application_id
107145          , p_ae_header_id             => l_ae_header_id 
107146 , p_source_30 => p_source_30
107147          , x_transaction_coa_id       => l_adr_transaction_coa_id
107148          , x_accounting_coa_id        => l_adr_accounting_coa_id
107149          , x_value_type_code          => l_adr_value_type_code
107150          , p_side                     => 'NA'
107151    );
107152 
107153    xla_ae_lines_pkg.set_ccid(
107154     p_code_combination_id          => l_ccid
107155   , p_value_type_code              => l_adr_value_type_code
107156   , p_transaction_coa_id           => l_adr_transaction_coa_id
107157   , p_accounting_coa_id            => l_adr_accounting_coa_id
107158   , p_adr_code                     => 'AP_INVOICE_DIST'
107159   , p_adr_type_code                => 'S'
107160   , p_component_type               => l_component_type
107161   , p_component_code               => l_component_code
107162   , p_component_type_code          => l_component_type_code
107163   , p_component_appl_id            => l_component_appl_id
107164   , p_amb_context_code             => l_amb_context_code
107165   , p_side                         => 'NA'
107166   );
107167 
107168 
107169    --
107170    --
107171    END IF;
107172    --
107173    -- Bug 4922099
107174    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
107175           (NVL(l_enc_upg_option, 'N') = 'O')
107176         ) AND
107177         (l_bflow_method_code = 'PRIOR_ENTRY')
107178       )
107179    THEN
107180       IF
107181       --
107182       1 = 2
107183       --
107184       THEN
107185       xla_accounting_err_pkg.build_message
107186                                     (p_appli_s_name            => 'XLA'
107187                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
107188                                     ,p_token_1                 => 'LINE_NUMBER'
107189                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
107190                                     ,p_token_2                 => 'LINE_TYPE_NAME'
107191                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
107192                                                                              l_component_type
107193                                                                             ,l_component_code
107194                                                                             ,l_component_type_code
107195                                                                             ,l_component_appl_id
107196                                                                             ,l_amb_context_code
107197                                                                             ,l_entity_code
107198                                                                             ,l_event_class_code
107199                                                                            )
107200                                     ,p_token_3                 => 'OWNER'
107201                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
107202                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
107203                                                                           ,p_lookup_code    => l_component_type_code
107204                                                                          )
107205                                     ,p_token_4                 => 'PRODUCT_NAME'
107206                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
107207                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
107208                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
107209                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
107210                                     ,p_ae_header_id            =>  NULL
107211                                        );
107212 
107213         IF (C_LEVEL_ERROR>= g_log_level) THEN
107214                  trace
107215                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
107216                       ,p_level    => C_LEVEL_ERROR
107217                       ,p_module   => l_log_module);
107218         END IF;
107219       END IF;
107220    END IF;
107221    --
107222    --
107223    ------------------------------------------------------------------------------------------------
107224    -- 4219869 Business Flow
107225    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
107226    -- Prior Entry.  Currently, the following code is always generated.
107227    ------------------------------------------------------------------------------------------------
107228    XLA_AE_LINES_PKG.ValidateCurrentLine;
107229 
107230    ------------------------------------------------------------------------------------
107231    -- 4219869 Business Flow
107232    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
107233    ------------------------------------------------------------------------------------
107234    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
107235 
107239    ----------------------------------------------------------------------------------
107236    ----------------------------------------------------------------------------------
107237    -- 4219869 Business Flow
107238    -- Update journal entry status -- Need to generate this within IF <condition>
107240    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
107241          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
107242          ,p_balance_type_code => l_balance_type_code
107243          );
107244 
107245    -------------------------------------------------------------------------------------------
107246    -- 4262811 - Generate the Accrual Reversal lines
107247    -------------------------------------------------------------------------------------------
107248    BEGIN
107249       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
107250                               (g_array_event(p_event_id).array_value_num('header_index'));
107251       IF l_acc_rev_flag IS NULL THEN
107252          l_acc_rev_flag := 'N';
107253       END IF;
107254    EXCEPTION
107255       WHEN OTHERS THEN
107256          l_acc_rev_flag := 'N';
107257    END;
107258    --
107259    IF (l_acc_rev_flag = 'Y') THEN
107260 
107261        -- 4645092  ------------------------------------------------------------------------------
107262        -- To allow MPA report to determine if it should generate report process
107263        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
107264        ------------------------------------------------------------------------------------------
107265 
107266        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
107267        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
107268    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
107269    -- call ADRs
107270    -- Bug 4922099
107271    --
107272    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
107273         (NVL(l_actual_upg_option, 'N') = 'O') OR
107274         (NVL(l_enc_upg_option, 'N') = 'O')
107275       )
107276    THEN
107277    NULL;
107278    --
107279    --
107280    
107281   l_ccid := AcctDerRule_33(
107282            p_application_id           => p_application_id
107283          , p_ae_header_id             => l_ae_header_id 
107284 , p_source_30 => p_source_30
107285          , x_transaction_coa_id       => l_adr_transaction_coa_id
107286          , x_accounting_coa_id        => l_adr_accounting_coa_id
107287          , x_value_type_code          => l_adr_value_type_code
107288          , p_side                     => 'NA'
107289    );
107290 
107291    xla_ae_lines_pkg.set_ccid(
107292     p_code_combination_id          => l_ccid
107293   , p_value_type_code              => l_adr_value_type_code
107294   , p_transaction_coa_id           => l_adr_transaction_coa_id
107295   , p_accounting_coa_id            => l_adr_accounting_coa_id
107296   , p_adr_code                     => 'AP_INVOICE_DIST'
107297   , p_adr_type_code                => 'S'
107298   , p_component_type               => l_component_type
107299   , p_component_code               => l_component_code
107300   , p_component_type_code          => l_component_type_code
107301   , p_component_appl_id            => l_component_appl_id
107302   , p_amb_context_code             => l_amb_context_code
107303   , p_side                         => 'NA'
107304   );
107305 
107306 
107307    --
107308    --
107309    END IF;
107310 
107311        --
107312        -- Update the line information that should be overwritten
107313        --
107314        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
107315                                          p_header_num   => 1);
107316        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
107317 
107318        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
107319 
107320        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
107321           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
107322        END IF;
107323 
107324       --
107325       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
107326       --
107327       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
107328           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
107329       ELSE
107330           ---------------------------------------------------------------------------------------------------
107331           -- 4262811a Switch Sign
107332           ---------------------------------------------------------------------------------------------------
107333           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
107334           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
107335                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107336           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
107337                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107338           -- 5132302
107339           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
107340                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
107341 
107342       END IF;
107343 
107344       -- 4955764
107348 
107345       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
107346       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
107347 
107349       XLA_AE_LINES_PKG.ValidateCurrentLine;
107350       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
107351 
107352       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
107353                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
107354                ,p_balance_type_code => l_balance_type_code);
107355 
107356    END IF;
107357 
107358    -----------------------------------------------------------------------------------------
107359    -- 4262811 Multiperiod Accounting
107360    -----------------------------------------------------------------------------------------
107361      -- No MPA option is assigned.
107362 
107363 
107364 END IF;
107365 END IF;
107366 --
107367 
107368 --
107369 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
107370    trace
107371       (p_msg      => 'END of AcctLineType_181'
107372       ,p_level    => C_LEVEL_PROCEDURE
107373       ,p_module   => l_log_module);
107374 END IF;
107375 --
107376 EXCEPTION
107377   WHEN xla_exceptions_pkg.application_exception THEN
107378       RAISE;
107379   WHEN OTHERS THEN
107380        xla_exceptions_pkg.raise_message
107381            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_181');
107382 END AcctLineType_181;
107383 --
107384 
107385 ---------------------------------------
107386 --
107387 -- PRIVATE FUNCTION
107388 --         AcctLineType_182
107389 --
107390 ---------------------------------------
107391 PROCEDURE AcctLineType_182 (
107392   p_application_id        IN NUMBER
107393  ,p_event_id              IN NUMBER
107394  ,p_calculate_acctd_flag  IN VARCHAR2
107395  ,p_calculate_g_l_flag    IN VARCHAR2
107396  ,p_actual_flag           IN OUT VARCHAR2
107397  ,p_balance_type_code     OUT VARCHAR2
107398  ,p_gain_or_loss_ref      OUT VARCHAR2
107399  
107400 --Invoice Distribution Description
107401  , p_source_1            IN VARCHAR2
107402 --Invoice Distribution Ledger Amount
107403  , p_source_21            IN NUMBER
107404 --Invoice Distribution Account
107405  , p_source_30            IN NUMBER
107406 --Invoice Distribution Type
107407  , p_source_33            IN VARCHAR2
107408  , p_source_33_meaning    IN VARCHAR2
107409 --Accounting Reversal Indicator
107410  , p_source_53            IN VARCHAR2
107411 --Distribution Link Type
107412  , p_source_55            IN VARCHAR2
107413 --Allocation to Main Distribution Identifier
107414  , p_source_57            IN NUMBER
107415 --Invoice Identifier
107416  , p_source_58            IN NUMBER
107417 --Invoice Distribution Identifier
107418  , p_source_64            IN NUMBER
107419 --Payables Encumbrance Upgrade Credit Account
107420  , p_source_65            IN NUMBER
107421 --Payables Encumbrance Upgrade Credit Amount
107422  , p_source_66            IN NUMBER
107423 --Invoice Currency Code
107424  , p_source_67            IN VARCHAR2
107425 --Payables Encumbrance Upgrade Credit Base Amount
107426  , p_source_68            IN NUMBER
107427 --Payables Encumbrance Upgrade Debit Account
107428  , p_source_69            IN NUMBER
107429 --Payables Encumbrance Upgrade Debit Amount
107430  , p_source_70            IN NUMBER
107431 --Payables Encumbrance Upgrade Debit Base Amount
107432  , p_source_71            IN NUMBER
107433 --Payables Encumbrance Upgrade Option
107434  , p_source_72            IN VARCHAR2
107435 --Invoice Distribution Amount
107436  , p_source_73            IN NUMBER
107437 --Purchase Order Exchange Rate Date
107438  , p_source_74            IN DATE
107439 --Purchase Order Exchange Rate
107440  , p_source_75            IN NUMBER
107441 --Purchase Order Exchange Rate Type
107442  , p_source_76            IN VARCHAR2
107443 --Deferred Accounting End Date
107444  , p_source_77            IN DATE
107445 --Deferred Accounting Option
107446  , p_source_78            IN VARCHAR2
107447 --Deferred Accounting Start Date
107448  , p_source_79            IN DATE
107449 --Override Accounted Amount Indicator
107450  , p_source_80            IN VARCHAR2
107451  , p_source_80_meaning    IN VARCHAR2
107452 --Invoice Supplier Identifier
107453  , p_source_81            IN NUMBER
107454 --Invoice Supplier Site Identifier
107455  , p_source_82            IN NUMBER
107456 --Third Party Type
107457  , p_source_83            IN VARCHAR2
107458 --Parent Reversal Identifier
107459  , p_source_84            IN NUMBER
107460 --Invoice Distribution Statistical Amount
107461  , p_source_85            IN NUMBER
107462 --Invoice Distribution Tax Line Identifier
107463  , p_source_86            IN NUMBER
107464 --Invoice Distribution Tax Distribution Identifier from Tax
107465  , p_source_87            IN NUMBER
107466 --Invoice Distribution Summary Tax Line Identifier
107467  , p_source_88            IN NUMBER
107468 --Payables Upgrade Credit Encumbrance Type Identifier
107469  , p_source_89            IN NUMBER
107470 --Payables Upgrade Debit Encumbrance Type Identifier
107471  , p_source_90            IN NUMBER
107472 --Business Flow Accounts Payable Application Identifier
107473  , p_source_91            IN NUMBER
107474 --Business Flow Invoice Distribution Type
107475  , p_source_92            IN VARCHAR2
107476 --Business Flow Invoice Entity Code
107477  , p_source_93            IN VARCHAR2
107478 --Business Flow Invoice Distribution Identifier
107482 --Accrue on Receipt Option
107479  , p_source_94            IN NUMBER
107480 --Business Flow Invoice Identifier
107481  , p_source_95            IN NUMBER
107483  , p_source_96            IN VARCHAR2
107484  , p_source_96_meaning    IN VARCHAR2
107485 --Self-Assessed Tax Flag
107486  , p_source_142            IN VARCHAR2
107487  , p_source_142_meaning    IN VARCHAR2
107488 )
107489 IS
107490 
107491 l_component_type              VARCHAR2(80);
107492 l_component_code              VARCHAR2(30);
107493 l_component_type_code         VARCHAR2(1);
107494 l_component_appl_id           INTEGER;
107495 l_amb_context_code            VARCHAR2(30);
107496 l_entity_code                 VARCHAR2(30);
107497 l_event_class_code            VARCHAR2(30);
107498 l_ae_header_id                NUMBER;
107499 l_event_type_code             VARCHAR2(30);
107500 l_line_definition_code        VARCHAR2(30);
107501 l_line_definition_owner_code  VARCHAR2(1);
107502 --
107503 -- adr variables
107504 l_segment                     VARCHAR2(30);
107505 l_ccid                        NUMBER;
107506 l_adr_transaction_coa_id      NUMBER;
107507 l_adr_accounting_coa_id       NUMBER;
107508 l_adr_flexfield_segment_code  VARCHAR2(30);
107509 l_adr_flex_value_set_id       NUMBER;
107510 l_adr_value_type_code         VARCHAR2(30);
107511 l_adr_value_combination_id    NUMBER;
107512 l_adr_value_segment_code      VARCHAR2(30);
107513 
107514 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
107515 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
107516 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
107517 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
107518 
107519 -- 4262811 Variables ------------------------------------------------------------------------------------------
107520 l_entered_amt_idx             NUMBER;
107521 l_accted_amt_idx              NUMBER;
107522 l_acc_rev_flag                VARCHAR2(1);
107523 l_accrual_line_num            NUMBER;
107524 l_tmp_amt                     NUMBER;
107525 l_acc_rev_natural_side_code   VARCHAR2(1);
107526 
107527 l_num_entries                 NUMBER;
107528 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
107529 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
107530 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
107531 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
107532 l_recog_line_1                NUMBER;
107533 l_recog_line_2                NUMBER;
107534 
107535 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
107536 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
107537 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
107538 
107539 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
107540 
107541 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
107542 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
107543 
107544 ---------------------------------------------------------------------------------------------------------------
107545 
107546 
107547 --
107548 -- bulk performance
107549 --
107550 l_balance_type_code           VARCHAR2(1);
107551 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
107552 l_log_module                  VARCHAR2(240);
107553 
107554 --
107555 -- Upgrade strategy
107556 --
107557 l_actual_upg_option           VARCHAR2(1);
107558 l_enc_upg_option           VARCHAR2(1);
107559 
107560 --
107561 BEGIN
107562 --
107563 IF g_log_enabled THEN
107564       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_182';
107565 END IF;
107566 --
107567 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
107568 
107569       trace
107570          (p_msg      => 'BEGIN of AcctLineType_182'
107571          ,p_level    => C_LEVEL_PROCEDURE
107572          ,p_module   => l_log_module);
107573 
107574 END IF;
107575 --
107576 l_component_type             := 'AMB_JLT';
107577 l_component_code             := 'AP_NRTAX_ACCRUAL_PREPAY';
107578 l_component_type_code        := 'S';
107579 l_component_appl_id          :=  200;
107580 l_amb_context_code           := 'DEFAULT';
107581 l_entity_code                := 'AP_INVOICES';
107582 l_event_class_code           := 'PREPAYMENTS';
107583 l_event_type_code            := 'PREPAYMENTS_ALL';
107584 l_line_definition_owner_code := 'S';
107585 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
107586 --
107587 l_balance_type_code          := 'A';
107588 l_segment                     := NULL;
107589 l_ccid                        := NULL;
107590 l_adr_transaction_coa_id      := NULL;
107591 l_adr_accounting_coa_id       := NULL;
107592 l_adr_flexfield_segment_code  := NULL;
107593 l_adr_flex_value_set_id       := NULL;
107594 l_adr_value_type_code         := NULL;
107595 l_adr_value_combination_id    := NULL;
107596 l_adr_value_segment_code      := NULL;
107597 
107598 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
107599 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
107600 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
107601 l_budgetary_control_flag     := 'N';
107602 
107603 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
107604 l_bflow_applied_to_amt       := NULL; -- 5132302
107605 l_entered_amt_idx            := NULL;          -- 4262811
107609 l_tmp_amt                    := NULL;          -- 4262811
107606 l_accted_amt_idx             := NULL;          -- 4262811
107607 l_acc_rev_flag               := NULL;          -- 4262811
107608 l_accrual_line_num           := NULL;          -- 4262811
107610 --
107611  
107612 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
107613     l_balance_type_code <> 'B' THEN
107614 IF NVL(p_source_33,'
107615 ') =  'NONREC_TAX' AND 
107616 NVL(p_source_96,'
107617 ') =  'Y' AND 
107618 NVL(p_source_142,'
107619 ') <>  'Y'
107620  THEN 
107621 
107622    --
107623    XLA_AE_LINES_PKG.SetNewLine;
107624 
107625    p_balance_type_code          := l_balance_type_code;
107626    -- set the flag so later we will know whether the gain loss line needs to be created
107627    
107628    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
107629      p_actual_flag :='A';
107630    END IF;
107631 
107632    --
107633    -- bulk performance
107634    --
107635    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
107636                                       p_header_num   => 0); -- 4262811
107637    --
107638    -- set accounting line options
107639    --
107640    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
107641            p_natural_side_code          => 'D'
107642          , p_gain_or_loss_flag          => 'N'
107643          , p_gl_transfer_mode_code      => 'S'
107644          , p_acct_entry_type_code       => 'A'
107645          , p_switch_side_flag           => 'Y'
107646          , p_merge_duplicate_code       => 'A'
107647          );
107648    --
107649    l_acc_rev_natural_side_code := 'C';  -- 4262811
107650    -- 
107651    --
107652    -- set accounting line type info
107653    --
107654    xla_ae_lines_pkg.SetAcctLineType
107655       (p_component_type             => l_component_type
107656       ,p_event_type_code            => l_event_type_code
107657       ,p_line_definition_owner_code => l_line_definition_owner_code
107658       ,p_line_definition_code       => l_line_definition_code
107659       ,p_accounting_line_code       => l_component_code
107660       ,p_accounting_line_type_code  => l_component_type_code
107661       ,p_accounting_line_appl_id    => l_component_appl_id
107662       ,p_amb_context_code           => l_amb_context_code
107663       ,p_entity_code                => l_entity_code
107664       ,p_event_class_code           => l_event_class_code);
107665    --
107666    -- set accounting class
107667    --
107668    xla_ae_lines_pkg.SetAcctClass(
107669            p_accounting_class_code  => 'NRTAX'
107670          , p_ae_header_id           => l_ae_header_id
107671          );
107672 
107673    --
107674    -- set rounding class
107675    --
107676    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
107677                       'NRTAX';
107678 
107679    --
107680    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
107681    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
107682    --
107683    -- bulk performance
107684    --
107685    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
107686 
107687    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
107688       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
107689 
107690    -- 4955764
107691    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
107692       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
107693 
107694    -- 4458381 Public Sector Enh
107695    
107696    --
107697    -- set accounting attributes for the line type
107698    --
107699    l_entered_amt_idx := 23;
107700    l_accted_amt_idx  := 28;
107701    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
107702    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
107703    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
107704    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
107705    l_rec_acct_attrs.array_num_value(2)  := 
107706 xla_ae_sources_pkg.GetSystemSourceNum(
107707    p_source_code           => 'XLA_EVENT_APPL_ID'
107708  , p_source_type_code      => 'Y'
107709  , p_source_application_id =>  602
107710 );
107711    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
107712    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
107713    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
107714    l_rec_acct_attrs.array_char_value(4)  := 
107715 xla_ae_sources_pkg.GetSystemSourceChar(
107716    p_source_code           => 'XLA_ENTITY_CODE'
107717  , p_source_type_code      => 'Y'
107718  , p_source_application_id =>  602
107719 );
107720    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
107721    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
107722    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
107723    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
107724    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
107725    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
107726    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
107727    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
107728    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
107729    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
107733    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
107730    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
107731    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
107732    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
107734    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
107735    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
107736    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
107737    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
107738    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
107739    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
107740    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
107741    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
107742    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
107743    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
107744    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
107745    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
107746    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
107747    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
107748    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
107749    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
107750    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
107751    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
107752    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
107753    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
107754    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
107755    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
107756    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
107757    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
107758    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
107759    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
107760    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
107761    l_rec_acct_attrs.array_date_value(25)  := p_source_74;
107762    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
107763    l_rec_acct_attrs.array_num_value(26)  := p_source_75;
107764    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
107765    l_rec_acct_attrs.array_char_value(27)  := p_source_76;
107766    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
107767    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
107768    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
107769    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
107770    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
107771    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
107772    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
107773    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
107774    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
107775    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
107776    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
107777    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
107778    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
107779    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
107780    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
107781    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
107782    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
107783    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
107784    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
107785    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
107786    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
107787    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
107788    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
107789    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
107790    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
107791    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
107792    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
107793    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
107794    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
107795    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
107796    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
107797    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
107798 
107799    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
107800    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
107801 
107802    ---------------------------------------------------------------------------------------------------------------
107803    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
107804    ---------------------------------------------------------------------------------------------------------------
107805    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
107806 
107807    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
107808    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
107809 
107810    IF xla_accounting_cache_pkg.GetValueChar
107811          (p_source_code         => 'LEDGER_CATEGORY_CODE'
107812          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
107816          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
107813    AND l_bflow_method_code = 'PRIOR_ENTRY'
107814 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
107815    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
107817        )
107818    THEN
107819          xla_ae_lines_pkg.BflowUpgEntry
107820            (p_business_method_code    => l_bflow_method_code
107821            ,p_business_class_code     => l_bflow_class_code
107822            ,p_balance_type            => l_balance_type_code);
107823    ELSE
107824       NULL;
107825 -- No business flow processing for business flow method of NONE.
107826    END IF;
107827 
107828    --
107829    -- call analytical criteria
107830    --
107831    
107832    --
107833    -- call description
107834    --
107835    
107836 xla_ae_lines_pkg.SetLineDescription(
107837    p_ae_header_id => l_ae_header_id
107838   ,p_description  => Description_1 (
107839      p_application_id         => p_application_id
107840    , p_ae_header_id           => l_ae_header_id 
107841 , p_source_1 => p_source_1
107842    )
107843 );
107844 
107845 
107846    --
107847    -- call ADRs
107848    -- Bug 4922099
107849    --
107850    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
107851         (NVL(l_actual_upg_option, 'N') = 'O') OR
107852         (NVL(l_enc_upg_option, 'N') = 'O')
107853       )
107854    THEN
107855    NULL;
107856    --
107857    --
107858    
107859   l_ccid := AcctDerRule_33(
107860            p_application_id           => p_application_id
107861          , p_ae_header_id             => l_ae_header_id 
107862 , p_source_30 => p_source_30
107863          , x_transaction_coa_id       => l_adr_transaction_coa_id
107864          , x_accounting_coa_id        => l_adr_accounting_coa_id
107865          , x_value_type_code          => l_adr_value_type_code
107866          , p_side                     => 'NA'
107867    );
107868 
107869    xla_ae_lines_pkg.set_ccid(
107870     p_code_combination_id          => l_ccid
107871   , p_value_type_code              => l_adr_value_type_code
107872   , p_transaction_coa_id           => l_adr_transaction_coa_id
107873   , p_accounting_coa_id            => l_adr_accounting_coa_id
107874   , p_adr_code                     => 'AP_INVOICE_DIST'
107875   , p_adr_type_code                => 'S'
107876   , p_component_type               => l_component_type
107877   , p_component_code               => l_component_code
107878   , p_component_type_code          => l_component_type_code
107879   , p_component_appl_id            => l_component_appl_id
107880   , p_amb_context_code             => l_amb_context_code
107881   , p_side                         => 'NA'
107882   );
107883 
107884 
107885    --
107886    --
107887    END IF;
107888    --
107889    -- Bug 4922099
107890    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
107891           (NVL(l_enc_upg_option, 'N') = 'O')
107892         ) AND
107893         (l_bflow_method_code = 'PRIOR_ENTRY')
107894       )
107895    THEN
107896       IF
107897       --
107898       1 = 2
107899       --
107900       THEN
107901       xla_accounting_err_pkg.build_message
107902                                     (p_appli_s_name            => 'XLA'
107903                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
107904                                     ,p_token_1                 => 'LINE_NUMBER'
107905                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
107906                                     ,p_token_2                 => 'LINE_TYPE_NAME'
107907                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
107908                                                                              l_component_type
107909                                                                             ,l_component_code
107910                                                                             ,l_component_type_code
107911                                                                             ,l_component_appl_id
107912                                                                             ,l_amb_context_code
107913                                                                             ,l_entity_code
107914                                                                             ,l_event_class_code
107915                                                                            )
107916                                     ,p_token_3                 => 'OWNER'
107917                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
107918                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
107919                                                                           ,p_lookup_code    => l_component_type_code
107920                                                                          )
107921                                     ,p_token_4                 => 'PRODUCT_NAME'
107922                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
107923                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
107924                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
107925                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
107926                                     ,p_ae_header_id            =>  NULL
107927                                        );
107931                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
107928 
107929         IF (C_LEVEL_ERROR>= g_log_level) THEN
107930                  trace
107932                       ,p_level    => C_LEVEL_ERROR
107933                       ,p_module   => l_log_module);
107934         END IF;
107935       END IF;
107936    END IF;
107937    --
107938    --
107939    ------------------------------------------------------------------------------------------------
107940    -- 4219869 Business Flow
107941    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
107942    -- Prior Entry.  Currently, the following code is always generated.
107943    ------------------------------------------------------------------------------------------------
107944    XLA_AE_LINES_PKG.ValidateCurrentLine;
107945 
107946    ------------------------------------------------------------------------------------
107947    -- 4219869 Business Flow
107948    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
107949    ------------------------------------------------------------------------------------
107950    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
107951 
107952    ----------------------------------------------------------------------------------
107953    -- 4219869 Business Flow
107954    -- Update journal entry status -- Need to generate this within IF <condition>
107955    ----------------------------------------------------------------------------------
107956    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
107957          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
107958          ,p_balance_type_code => l_balance_type_code
107959          );
107960 
107961    -------------------------------------------------------------------------------------------
107962    -- 4262811 - Generate the Accrual Reversal lines
107963    -------------------------------------------------------------------------------------------
107964    BEGIN
107965       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
107966                               (g_array_event(p_event_id).array_value_num('header_index'));
107967       IF l_acc_rev_flag IS NULL THEN
107968          l_acc_rev_flag := 'N';
107969       END IF;
107970    EXCEPTION
107971       WHEN OTHERS THEN
107972          l_acc_rev_flag := 'N';
107973    END;
107974    --
107975    IF (l_acc_rev_flag = 'Y') THEN
107976 
107977        -- 4645092  ------------------------------------------------------------------------------
107978        -- To allow MPA report to determine if it should generate report process
107979        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
107980        ------------------------------------------------------------------------------------------
107981 
107982        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
107983        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
107984    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
107985    -- call ADRs
107986    -- Bug 4922099
107987    --
107988    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
107989         (NVL(l_actual_upg_option, 'N') = 'O') OR
107990         (NVL(l_enc_upg_option, 'N') = 'O')
107991       )
107992    THEN
107993    NULL;
107994    --
107995    --
107996    
107997   l_ccid := AcctDerRule_33(
107998            p_application_id           => p_application_id
107999          , p_ae_header_id             => l_ae_header_id 
108000 , p_source_30 => p_source_30
108001          , x_transaction_coa_id       => l_adr_transaction_coa_id
108002          , x_accounting_coa_id        => l_adr_accounting_coa_id
108003          , x_value_type_code          => l_adr_value_type_code
108004          , p_side                     => 'NA'
108005    );
108006 
108007    xla_ae_lines_pkg.set_ccid(
108008     p_code_combination_id          => l_ccid
108009   , p_value_type_code              => l_adr_value_type_code
108010   , p_transaction_coa_id           => l_adr_transaction_coa_id
108011   , p_accounting_coa_id            => l_adr_accounting_coa_id
108012   , p_adr_code                     => 'AP_INVOICE_DIST'
108013   , p_adr_type_code                => 'S'
108014   , p_component_type               => l_component_type
108015   , p_component_code               => l_component_code
108016   , p_component_type_code          => l_component_type_code
108017   , p_component_appl_id            => l_component_appl_id
108018   , p_amb_context_code             => l_amb_context_code
108019   , p_side                         => 'NA'
108020   );
108021 
108022 
108023    --
108024    --
108025    END IF;
108026 
108027        --
108028        -- Update the line information that should be overwritten
108029        --
108030        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
108031                                          p_header_num   => 1);
108032        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
108033 
108034        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
108035 
108036        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
108037           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
108038        END IF;
108039 
108040       --
108041       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
108042       --
108043       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
108047           -- 4262811a Switch Sign
108044           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
108045       ELSE
108046           ---------------------------------------------------------------------------------------------------
108048           ---------------------------------------------------------------------------------------------------
108049           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
108050           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
108051                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
108052           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
108053                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
108054           -- 5132302
108055           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
108056                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
108057 
108058       END IF;
108059 
108060       -- 4955764
108061       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
108062       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
108063 
108064 
108065       XLA_AE_LINES_PKG.ValidateCurrentLine;
108066       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
108067 
108068       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
108069                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
108070                ,p_balance_type_code => l_balance_type_code);
108071 
108072    END IF;
108073 
108074    -----------------------------------------------------------------------------------------
108075    -- 4262811 Multiperiod Accounting
108076    -----------------------------------------------------------------------------------------
108077      -- No MPA option is assigned.
108078 
108079 
108080 END IF;
108081 END IF;
108082 --
108083 
108084 --
108085 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
108086    trace
108087       (p_msg      => 'END of AcctLineType_182'
108088       ,p_level    => C_LEVEL_PROCEDURE
108089       ,p_module   => l_log_module);
108090 END IF;
108091 --
108092 EXCEPTION
108093   WHEN xla_exceptions_pkg.application_exception THEN
108094       RAISE;
108095   WHEN OTHERS THEN
108096        xla_exceptions_pkg.raise_message
108097            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_182');
108098 END AcctLineType_182;
108099 --
108100 
108101 ---------------------------------------
108102 --
108103 -- PRIVATE FUNCTION
108104 --         AcctLineType_183
108105 --
108106 ---------------------------------------
108107 PROCEDURE AcctLineType_183 (
108108   p_application_id        IN NUMBER
108109  ,p_event_id              IN NUMBER
108110  ,p_calculate_acctd_flag  IN VARCHAR2
108111  ,p_calculate_g_l_flag    IN VARCHAR2
108112  ,p_actual_flag           IN OUT VARCHAR2
108113  ,p_balance_type_code     OUT VARCHAR2
108114  ,p_gain_or_loss_ref      OUT VARCHAR2
108115  
108116 --Payment Currency Code
108117  , p_source_13            IN VARCHAR2
108118 --Payment Card Accrued Account
108119  , p_source_48            IN NUMBER
108120 --Accounting Reversal Indicator
108121  , p_source_53            IN VARCHAR2
108122 --Distribution Link Type
108123  , p_source_55            IN VARCHAR2
108124 --Override Accounted Amount Indicator
108125  , p_source_80            IN VARCHAR2
108126  , p_source_80_meaning    IN VARCHAR2
108127 --Third Party Type
108128  , p_source_83            IN VARCHAR2
108129 --Invoice Distribution Tax Line Identifier
108130  , p_source_86            IN NUMBER
108131 --Invoice Distribution Tax Distribution Identifier from Tax
108132  , p_source_87            IN NUMBER
108133 --Invoice Distribution Summary Tax Line Identifier
108134  , p_source_88            IN NUMBER
108135 --Business Flow Accounts Payable Application Identifier
108136  , p_source_91            IN NUMBER
108137 --Business Flow Invoice Distribution Type
108138  , p_source_92            IN VARCHAR2
108139 --Business Flow Invoice Entity Code
108140  , p_source_93            IN VARCHAR2
108141 --Business Flow Invoice Distribution Identifier
108142  , p_source_94            IN NUMBER
108143 --Business Flow Invoice Identifier
108144  , p_source_95            IN NUMBER
108145 --Payment Distribution Amount
108146  , p_source_99            IN NUMBER
108147 --Payment Distribution Identifier
108148  , p_source_104            IN NUMBER
108149 --Payment Supplier Identifier
108150  , p_source_110            IN NUMBER
108151 --Payment Supplier Site Identifier
108152  , p_source_111            IN NUMBER
108153 --Payment Distribution Reversed Identifier
108154  , p_source_112            IN NUMBER
108155 --Payment Distribution (Payment Rate) Ledger Amount
108156  , p_source_115            IN NUMBER
108157 --Payment Exchange Date
108158  , p_source_117            IN DATE
108159 --Payment Exchange Rate
108160  , p_source_118            IN NUMBER
108161 --Payment Exchange Rate Type
108162  , p_source_119            IN VARCHAR2
108163 --Payment Processing Type
108164  , p_source_123            IN VARCHAR2
108165 --Invoice Distribution Amount of the Payment Distribution
108166  , p_source_124            IN NUMBER
108167 )
108168 IS
108169 
108173 l_component_appl_id           INTEGER;
108170 l_component_type              VARCHAR2(80);
108171 l_component_code              VARCHAR2(30);
108172 l_component_type_code         VARCHAR2(1);
108174 l_amb_context_code            VARCHAR2(30);
108175 l_entity_code                 VARCHAR2(30);
108176 l_event_class_code            VARCHAR2(30);
108177 l_ae_header_id                NUMBER;
108178 l_event_type_code             VARCHAR2(30);
108179 l_line_definition_code        VARCHAR2(30);
108180 l_line_definition_owner_code  VARCHAR2(1);
108181 --
108182 -- adr variables
108183 l_segment                     VARCHAR2(30);
108184 l_ccid                        NUMBER;
108185 l_adr_transaction_coa_id      NUMBER;
108186 l_adr_accounting_coa_id       NUMBER;
108187 l_adr_flexfield_segment_code  VARCHAR2(30);
108188 l_adr_flex_value_set_id       NUMBER;
108189 l_adr_value_type_code         VARCHAR2(30);
108190 l_adr_value_combination_id    NUMBER;
108191 l_adr_value_segment_code      VARCHAR2(30);
108192 
108193 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
108194 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
108195 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
108196 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
108197 
108198 -- 4262811 Variables ------------------------------------------------------------------------------------------
108199 l_entered_amt_idx             NUMBER;
108200 l_accted_amt_idx              NUMBER;
108201 l_acc_rev_flag                VARCHAR2(1);
108202 l_accrual_line_num            NUMBER;
108203 l_tmp_amt                     NUMBER;
108204 l_acc_rev_natural_side_code   VARCHAR2(1);
108205 
108206 l_num_entries                 NUMBER;
108207 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
108208 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
108209 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
108210 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
108211 l_recog_line_1                NUMBER;
108212 l_recog_line_2                NUMBER;
108213 
108214 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
108215 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
108216 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
108217 
108218 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
108219 
108220 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
108221 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
108222 
108223 ---------------------------------------------------------------------------------------------------------------
108224 
108225 
108226 --
108227 -- bulk performance
108228 --
108229 l_balance_type_code           VARCHAR2(1);
108230 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
108231 l_log_module                  VARCHAR2(240);
108232 
108233 --
108234 -- Upgrade strategy
108235 --
108236 l_actual_upg_option           VARCHAR2(1);
108237 l_enc_upg_option           VARCHAR2(1);
108238 
108239 --
108240 BEGIN
108241 --
108242 IF g_log_enabled THEN
108243       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_183';
108244 END IF;
108245 --
108246 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
108247 
108248       trace
108249          (p_msg      => 'BEGIN of AcctLineType_183'
108250          ,p_level    => C_LEVEL_PROCEDURE
108251          ,p_module   => l_log_module);
108252 
108253 END IF;
108254 --
108255 l_component_type             := 'AMB_JLT';
108256 l_component_code             := 'AP_PAYCARD_PMT';
108257 l_component_type_code        := 'S';
108258 l_component_appl_id          :=  200;
108259 l_amb_context_code           := 'DEFAULT';
108260 l_entity_code                := 'AP_PAYMENTS';
108261 l_event_class_code           := 'PAYMENTS';
108262 l_event_type_code            := 'PAYMENTS_ALL';
108263 l_line_definition_owner_code := 'S';
108264 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
108265 --
108266 l_balance_type_code          := 'A';
108267 l_segment                     := NULL;
108268 l_ccid                        := NULL;
108269 l_adr_transaction_coa_id      := NULL;
108270 l_adr_accounting_coa_id       := NULL;
108271 l_adr_flexfield_segment_code  := NULL;
108272 l_adr_flex_value_set_id       := NULL;
108273 l_adr_value_type_code         := NULL;
108274 l_adr_value_combination_id    := NULL;
108275 l_adr_value_segment_code      := NULL;
108276 
108277 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
108278 l_bflow_class_code           := '';    -- 4219869 Business Flow
108279 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
108280 l_budgetary_control_flag     := 'N';
108281 
108282 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
108283 l_bflow_applied_to_amt       := NULL; -- 5132302
108284 l_entered_amt_idx            := NULL;          -- 4262811
108285 l_accted_amt_idx             := NULL;          -- 4262811
108286 l_acc_rev_flag               := NULL;          -- 4262811
108287 l_accrual_line_num           := NULL;          -- 4262811
108288 l_tmp_amt                    := NULL;          -- 4262811
108289 --
108290  
108291 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
108292     l_balance_type_code <> 'B' THEN
108293 IF NVL(p_source_123,'
108297    --
108294 ') =  'PAYMENTCARD'
108295  THEN 
108296 
108298    XLA_AE_LINES_PKG.SetNewLine;
108299 
108300    p_balance_type_code          := l_balance_type_code;
108301    -- set the flag so later we will know whether the gain loss line needs to be created
108302    
108303    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
108304      p_actual_flag :='A';
108305    END IF;
108306 
108307    --
108308    -- bulk performance
108309    --
108310    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
108311                                       p_header_num   => 0); -- 4262811
108312    --
108313    -- set accounting line options
108314    --
108315    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
108316            p_natural_side_code          => 'C'
108317          , p_gain_or_loss_flag          => 'N'
108318          , p_gl_transfer_mode_code      => 'S'
108319          , p_acct_entry_type_code       => 'A'
108320          , p_switch_side_flag           => 'Y'
108321          , p_merge_duplicate_code       => 'A'
108322          );
108323    --
108324    l_acc_rev_natural_side_code := 'D';  -- 4262811
108325    -- 
108326    --
108327    -- set accounting line type info
108328    --
108329    xla_ae_lines_pkg.SetAcctLineType
108330       (p_component_type             => l_component_type
108331       ,p_event_type_code            => l_event_type_code
108332       ,p_line_definition_owner_code => l_line_definition_owner_code
108333       ,p_line_definition_code       => l_line_definition_code
108334       ,p_accounting_line_code       => l_component_code
108335       ,p_accounting_line_type_code  => l_component_type_code
108336       ,p_accounting_line_appl_id    => l_component_appl_id
108337       ,p_amb_context_code           => l_amb_context_code
108338       ,p_entity_code                => l_entity_code
108339       ,p_event_class_code           => l_event_class_code);
108340    --
108341    -- set accounting class
108342    --
108343    xla_ae_lines_pkg.SetAcctClass(
108344            p_accounting_class_code  => 'PAYMENTCARD'
108345          , p_ae_header_id           => l_ae_header_id
108346          );
108347 
108348    --
108349    -- set rounding class
108350    --
108351    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
108352                       'PAYMENTCARD';
108353 
108354    --
108355    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
108356    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
108357    --
108358    -- bulk performance
108359    --
108360    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
108361 
108362    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
108363       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
108364 
108365    -- 4955764
108366    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
108367       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
108368 
108369    -- 4458381 Public Sector Enh
108370    
108371    --
108372    -- set accounting attributes for the line type
108373    --
108374    l_entered_amt_idx := 10;
108375    l_accted_amt_idx  := 15;
108376    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
108377    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
108378    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
108379    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
108380    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
108381    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
108382    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
108383    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
108384    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
108385    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
108386    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
108387    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
108388    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
108389    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
108390    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
108391    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
108392    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
108393    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
108394    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
108395    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
108396    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
108397    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
108398    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
108399    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
108400    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
108401    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
108402    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
108403    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
108404    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
108405    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
108406    l_rec_acct_attrs.array_num_value(15)  := p_source_115;
108410    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
108407    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
108408    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
108409    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
108411    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
108412    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
108413    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
108414    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
108415    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
108416    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
108417    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
108418    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
108419    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
108420    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
108421    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
108422    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
108423    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
108424    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
108425 
108426    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
108427    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
108428 
108429    ---------------------------------------------------------------------------------------------------------------
108430    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
108431    ---------------------------------------------------------------------------------------------------------------
108432    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
108433 
108434    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
108435    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
108436 
108437    IF xla_accounting_cache_pkg.GetValueChar
108438          (p_source_code         => 'LEDGER_CATEGORY_CODE'
108439          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
108440    AND l_bflow_method_code = 'PRIOR_ENTRY'
108441 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
108442    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
108443          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
108444        )
108445    THEN
108446          xla_ae_lines_pkg.BflowUpgEntry
108447            (p_business_method_code    => l_bflow_method_code
108448            ,p_business_class_code     => l_bflow_class_code
108449            ,p_balance_type            => l_balance_type_code);
108450    ELSE
108451       NULL;
108452 -- No business flow processing for business flow method of NONE.
108453    END IF;
108454 
108455    --
108456    -- call analytical criteria
108457    --
108458    
108459    --
108460    -- call description
108461    --
108462    -- No description or it is inherited.
108463    --
108464    -- call ADRs
108465    -- Bug 4922099
108466    --
108467    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
108468         (NVL(l_actual_upg_option, 'N') = 'O') OR
108469         (NVL(l_enc_upg_option, 'N') = 'O')
108470       )
108471    THEN
108472    NULL;
108473    --
108474    --
108475    
108476   l_ccid := AcctDerRule_35(
108477            p_application_id           => p_application_id
108478          , p_ae_header_id             => l_ae_header_id 
108479 , p_source_48 => p_source_48
108480          , x_transaction_coa_id       => l_adr_transaction_coa_id
108481          , x_accounting_coa_id        => l_adr_accounting_coa_id
108482          , x_value_type_code          => l_adr_value_type_code
108483          , p_side                     => 'NA'
108484    );
108485 
108486    xla_ae_lines_pkg.set_ccid(
108487     p_code_combination_id          => l_ccid
108488   , p_value_type_code              => l_adr_value_type_code
108489   , p_transaction_coa_id           => l_adr_transaction_coa_id
108490   , p_accounting_coa_id            => l_adr_accounting_coa_id
108491   , p_adr_code                     => 'AP_PAYCARD_ACCRUED_ADR'
108492   , p_adr_type_code                => 'S'
108493   , p_component_type               => l_component_type
108494   , p_component_code               => l_component_code
108495   , p_component_type_code          => l_component_type_code
108496   , p_component_appl_id            => l_component_appl_id
108497   , p_amb_context_code             => l_amb_context_code
108498   , p_side                         => 'NA'
108499   );
108500 
108501 
108502    --
108503    --
108504    END IF;
108505    --
108506    -- Bug 4922099
108507    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
108508           (NVL(l_enc_upg_option, 'N') = 'O')
108509         ) AND
108510         (l_bflow_method_code = 'PRIOR_ENTRY')
108511       )
108512    THEN
108513       IF
108514       --
108515       1 = 2
108516       --
108517       THEN
108518       xla_accounting_err_pkg.build_message
108519                                     (p_appli_s_name            => 'XLA'
108520                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
108521                                     ,p_token_1                 => 'LINE_NUMBER'
108522                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
108523                                     ,p_token_2                 => 'LINE_TYPE_NAME'
108527                                                                             ,l_component_type_code
108524                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
108525                                                                              l_component_type
108526                                                                             ,l_component_code
108528                                                                             ,l_component_appl_id
108529                                                                             ,l_amb_context_code
108530                                                                             ,l_entity_code
108531                                                                             ,l_event_class_code
108532                                                                            )
108533                                     ,p_token_3                 => 'OWNER'
108534                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
108535                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
108536                                                                           ,p_lookup_code    => l_component_type_code
108537                                                                          )
108538                                     ,p_token_4                 => 'PRODUCT_NAME'
108539                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
108540                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
108541                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
108542                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
108543                                     ,p_ae_header_id            =>  NULL
108544                                        );
108545 
108546         IF (C_LEVEL_ERROR>= g_log_level) THEN
108547                  trace
108548                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
108549                       ,p_level    => C_LEVEL_ERROR
108550                       ,p_module   => l_log_module);
108551         END IF;
108552       END IF;
108553    END IF;
108554    --
108555    --
108556    ------------------------------------------------------------------------------------------------
108557    -- 4219869 Business Flow
108558    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
108559    -- Prior Entry.  Currently, the following code is always generated.
108560    ------------------------------------------------------------------------------------------------
108561    XLA_AE_LINES_PKG.ValidateCurrentLine;
108562 
108563    ------------------------------------------------------------------------------------
108564    -- 4219869 Business Flow
108565    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
108566    ------------------------------------------------------------------------------------
108567    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
108568 
108569    ----------------------------------------------------------------------------------
108570    -- 4219869 Business Flow
108571    -- Update journal entry status -- Need to generate this within IF <condition>
108572    ----------------------------------------------------------------------------------
108573    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
108574          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
108575          ,p_balance_type_code => l_balance_type_code
108576          );
108577 
108578    -------------------------------------------------------------------------------------------
108579    -- 4262811 - Generate the Accrual Reversal lines
108580    -------------------------------------------------------------------------------------------
108581    BEGIN
108582       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
108583                               (g_array_event(p_event_id).array_value_num('header_index'));
108584       IF l_acc_rev_flag IS NULL THEN
108585          l_acc_rev_flag := 'N';
108586       END IF;
108587    EXCEPTION
108588       WHEN OTHERS THEN
108589          l_acc_rev_flag := 'N';
108590    END;
108591    --
108592    IF (l_acc_rev_flag = 'Y') THEN
108593 
108594        -- 4645092  ------------------------------------------------------------------------------
108595        -- To allow MPA report to determine if it should generate report process
108596        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
108597        ------------------------------------------------------------------------------------------
108598 
108599        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
108600        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
108601    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
108602    -- call ADRs
108603    -- Bug 4922099
108604    --
108605    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
108606         (NVL(l_actual_upg_option, 'N') = 'O') OR
108607         (NVL(l_enc_upg_option, 'N') = 'O')
108608       )
108609    THEN
108610    NULL;
108611    --
108612    --
108613    
108614   l_ccid := AcctDerRule_35(
108615            p_application_id           => p_application_id
108616          , p_ae_header_id             => l_ae_header_id 
108617 , p_source_48 => p_source_48
108618          , x_transaction_coa_id       => l_adr_transaction_coa_id
108619          , x_accounting_coa_id        => l_adr_accounting_coa_id
108623 
108620          , x_value_type_code          => l_adr_value_type_code
108621          , p_side                     => 'NA'
108622    );
108624    xla_ae_lines_pkg.set_ccid(
108625     p_code_combination_id          => l_ccid
108626   , p_value_type_code              => l_adr_value_type_code
108627   , p_transaction_coa_id           => l_adr_transaction_coa_id
108628   , p_accounting_coa_id            => l_adr_accounting_coa_id
108629   , p_adr_code                     => 'AP_PAYCARD_ACCRUED_ADR'
108630   , p_adr_type_code                => 'S'
108631   , p_component_type               => l_component_type
108632   , p_component_code               => l_component_code
108633   , p_component_type_code          => l_component_type_code
108634   , p_component_appl_id            => l_component_appl_id
108635   , p_amb_context_code             => l_amb_context_code
108636   , p_side                         => 'NA'
108637   );
108638 
108639 
108640    --
108641    --
108642    END IF;
108643 
108644        --
108645        -- Update the line information that should be overwritten
108646        --
108647        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
108648                                          p_header_num   => 1);
108649        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
108650 
108651        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
108652 
108653        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
108654           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
108655        END IF;
108656 
108657       --
108658       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
108659       --
108660       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
108661           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
108662       ELSE
108663           ---------------------------------------------------------------------------------------------------
108664           -- 4262811a Switch Sign
108665           ---------------------------------------------------------------------------------------------------
108666           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
108667           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
108668                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
108669           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
108670                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
108671           -- 5132302
108672           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
108673                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
108674 
108675       END IF;
108676 
108677       -- 4955764
108678       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
108679       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
108680 
108681 
108682       XLA_AE_LINES_PKG.ValidateCurrentLine;
108683       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
108684 
108685       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
108686                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
108687                ,p_balance_type_code => l_balance_type_code);
108688 
108689    END IF;
108690 
108691    -----------------------------------------------------------------------------------------
108692    -- 4262811 Multiperiod Accounting
108693    -----------------------------------------------------------------------------------------
108694      -- No MPA option is assigned.
108695 
108696 
108697 END IF;
108698 END IF;
108699 --
108700 
108701 --
108702 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
108703    trace
108704       (p_msg      => 'END of AcctLineType_183'
108705       ,p_level    => C_LEVEL_PROCEDURE
108706       ,p_module   => l_log_module);
108707 END IF;
108708 --
108709 EXCEPTION
108710   WHEN xla_exceptions_pkg.application_exception THEN
108711       RAISE;
108712   WHEN OTHERS THEN
108713        xla_exceptions_pkg.raise_message
108714            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_183');
108715 END AcctLineType_183;
108716 --
108717 
108718 ---------------------------------------
108719 --
108720 -- PRIVATE FUNCTION
108721 --         AcctLineType_184
108722 --
108723 ---------------------------------------
108724 PROCEDURE AcctLineType_184 (
108725   p_application_id        IN NUMBER
108726  ,p_event_id              IN NUMBER
108727  ,p_calculate_acctd_flag  IN VARCHAR2
108728  ,p_calculate_g_l_flag    IN VARCHAR2
108729  ,p_actual_flag           IN OUT VARCHAR2
108730  ,p_balance_type_code     OUT VARCHAR2
108731  ,p_gain_or_loss_ref      OUT VARCHAR2
108732  
108733 --Payment Currency Code
108734  , p_source_13            IN VARCHAR2
108735 --Automatic Offsets Value
108736  , p_source_15            IN VARCHAR2
108737  , p_source_15_meaning    IN VARCHAR2
108738 --Invoice Distribution Account
108739  , p_source_30            IN NUMBER
108740 --Payables Options Rounding Account
108741  , p_source_49            IN NUMBER
108745  , p_source_55            IN VARCHAR2
108742 --Accounting Reversal Indicator
108743  , p_source_53            IN VARCHAR2
108744 --Distribution Link Type
108746 --Override Accounted Amount Indicator
108747  , p_source_80            IN VARCHAR2
108748  , p_source_80_meaning    IN VARCHAR2
108749 --Third Party Type
108750  , p_source_83            IN VARCHAR2
108751 --Invoice Distribution Tax Line Identifier
108752  , p_source_86            IN NUMBER
108753 --Invoice Distribution Summary Tax Line Identifier
108754  , p_source_88            IN NUMBER
108755 --Business Flow Accounts Payable Application Identifier
108756  , p_source_91            IN NUMBER
108757 --When to Account for Payment Option
108758  , p_source_97            IN VARCHAR2
108759 --Payment Distribution Type
108760  , p_source_98            IN VARCHAR2
108761  , p_source_98_meaning    IN VARCHAR2
108762 --Payment Distribution Amount
108763  , p_source_99            IN NUMBER
108764 --Business Flow Payment Distribution Type
108765  , p_source_100            IN VARCHAR2
108766 --Business Flow Payment Entity Code
108767  , p_source_101            IN VARCHAR2
108768 --Business Flow Payment Distribution Identifier
108769  , p_source_102            IN NUMBER
108770 --Business Flow Payment Identifier
108771  , p_source_103            IN NUMBER
108772 --Payment Distribution Identifier
108773  , p_source_104            IN NUMBER
108774 --Payment Supplier Identifier
108775  , p_source_110            IN NUMBER
108776 --Payment Supplier Site Identifier
108777  , p_source_111            IN NUMBER
108778 --Payment Distribution Reversed Identifier
108779  , p_source_112            IN NUMBER
108780 --Payment Maturity Date
108781  , p_source_114            IN DATE
108782 --Payment Distribution (Payment Rate) Ledger Amount
108783  , p_source_115            IN NUMBER
108784 --Payment Exchange Date
108785  , p_source_117            IN DATE
108786 --Payment Exchange Rate
108787  , p_source_118            IN NUMBER
108788 --Payment Exchange Rate Type
108789  , p_source_119            IN VARCHAR2
108790 )
108791 IS
108792 
108793 l_component_type              VARCHAR2(80);
108794 l_component_code              VARCHAR2(30);
108795 l_component_type_code         VARCHAR2(1);
108796 l_component_appl_id           INTEGER;
108797 l_amb_context_code            VARCHAR2(30);
108798 l_entity_code                 VARCHAR2(30);
108799 l_event_class_code            VARCHAR2(30);
108800 l_ae_header_id                NUMBER;
108801 l_event_type_code             VARCHAR2(30);
108802 l_line_definition_code        VARCHAR2(30);
108803 l_line_definition_owner_code  VARCHAR2(1);
108804 --
108805 -- adr variables
108806 l_segment                     VARCHAR2(30);
108807 l_ccid                        NUMBER;
108808 l_adr_transaction_coa_id      NUMBER;
108809 l_adr_accounting_coa_id       NUMBER;
108810 l_adr_flexfield_segment_code  VARCHAR2(30);
108811 l_adr_flex_value_set_id       NUMBER;
108812 l_adr_value_type_code         VARCHAR2(30);
108813 l_adr_value_combination_id    NUMBER;
108814 l_adr_value_segment_code      VARCHAR2(30);
108815 
108816 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
108817 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
108818 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
108819 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
108820 
108821 -- 4262811 Variables ------------------------------------------------------------------------------------------
108822 l_entered_amt_idx             NUMBER;
108823 l_accted_amt_idx              NUMBER;
108824 l_acc_rev_flag                VARCHAR2(1);
108825 l_accrual_line_num            NUMBER;
108826 l_tmp_amt                     NUMBER;
108827 l_acc_rev_natural_side_code   VARCHAR2(1);
108828 
108829 l_num_entries                 NUMBER;
108830 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
108831 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
108832 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
108833 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
108834 l_recog_line_1                NUMBER;
108835 l_recog_line_2                NUMBER;
108836 
108837 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
108838 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
108839 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
108840 
108841 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
108842 
108843 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
108844 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
108845 
108846 ---------------------------------------------------------------------------------------------------------------
108847 
108848 
108849 --
108850 -- bulk performance
108851 --
108852 l_balance_type_code           VARCHAR2(1);
108853 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
108854 l_log_module                  VARCHAR2(240);
108855 
108856 --
108857 -- Upgrade strategy
108858 --
108859 l_actual_upg_option           VARCHAR2(1);
108860 l_enc_upg_option           VARCHAR2(1);
108861 
108862 --
108863 BEGIN
108864 --
108865 IF g_log_enabled THEN
108866       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_184';
108867 END IF;
108868 --
108869 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
108870 
108871       trace
108875 
108872          (p_msg      => 'BEGIN of AcctLineType_184'
108873          ,p_level    => C_LEVEL_PROCEDURE
108874          ,p_module   => l_log_module);
108876 END IF;
108877 --
108878 l_component_type             := 'AMB_JLT';
108879 l_component_code             := 'AP_PMT_CLR_ROUNDING_CLEAR';
108880 l_component_type_code        := 'S';
108881 l_component_appl_id          :=  200;
108882 l_amb_context_code           := 'DEFAULT';
108883 l_entity_code                := 'AP_PAYMENTS';
108884 l_event_class_code           := 'RECONCILED PAYMENTS';
108885 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
108886 l_line_definition_owner_code := 'S';
108887 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
108888 --
108889 l_balance_type_code          := 'A';
108890 l_segment                     := NULL;
108891 l_ccid                        := NULL;
108892 l_adr_transaction_coa_id      := NULL;
108893 l_adr_accounting_coa_id       := NULL;
108894 l_adr_flexfield_segment_code  := NULL;
108895 l_adr_flex_value_set_id       := NULL;
108896 l_adr_value_type_code         := NULL;
108897 l_adr_value_combination_id    := NULL;
108898 l_adr_value_segment_code      := NULL;
108899 
108900 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
108901 l_bflow_class_code           := '';    -- 4219869 Business Flow
108902 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
108903 l_budgetary_control_flag     := 'N';
108904 
108905 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
108906 l_bflow_applied_to_amt       := NULL; -- 5132302
108907 l_entered_amt_idx            := NULL;          -- 4262811
108908 l_accted_amt_idx             := NULL;          -- 4262811
108909 l_acc_rev_flag               := NULL;          -- 4262811
108910 l_accrual_line_num           := NULL;          -- 4262811
108911 l_tmp_amt                    := NULL;          -- 4262811
108912 --
108913  
108914 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
108915     l_balance_type_code <> 'B' THEN
108916 IF (NVL(p_source_97,'
108917 ') =  'ALWAYS_ALWAYS' OR 
108918 NVL(p_source_97,'
108919 ') =  'ALWAYS_CLEAR') AND 
108920 NVL(p_source_98,'
108921 ') =  'PAYMENT TO CLEARING ROUNDING' AND 
108922 p_source_114 IS NULL 
108923  THEN 
108924 
108925    --
108926    XLA_AE_LINES_PKG.SetNewLine;
108927 
108928    p_balance_type_code          := l_balance_type_code;
108929    -- set the flag so later we will know whether the gain loss line needs to be created
108930    
108931    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
108932      p_actual_flag :='A';
108933    END IF;
108934 
108935    --
108936    -- bulk performance
108937    --
108938    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
108939                                       p_header_num   => 0); -- 4262811
108940    --
108941    -- set accounting line options
108942    --
108943    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
108944            p_natural_side_code          => 'D'
108945          , p_gain_or_loss_flag          => 'N'
108946          , p_gl_transfer_mode_code      => 'S'
108947          , p_acct_entry_type_code       => 'A'
108948          , p_switch_side_flag           => 'Y'
108949          , p_merge_duplicate_code       => 'A'
108950          );
108951    --
108952    l_acc_rev_natural_side_code := 'C';  -- 4262811
108953    -- 
108954    --
108955    -- set accounting line type info
108956    --
108957    xla_ae_lines_pkg.SetAcctLineType
108958       (p_component_type             => l_component_type
108959       ,p_event_type_code            => l_event_type_code
108960       ,p_line_definition_owner_code => l_line_definition_owner_code
108961       ,p_line_definition_code       => l_line_definition_code
108962       ,p_accounting_line_code       => l_component_code
108963       ,p_accounting_line_type_code  => l_component_type_code
108964       ,p_accounting_line_appl_id    => l_component_appl_id
108965       ,p_amb_context_code           => l_amb_context_code
108966       ,p_entity_code                => l_entity_code
108967       ,p_event_class_code           => l_event_class_code);
108968    --
108969    -- set accounting class
108970    --
108971    xla_ae_lines_pkg.SetAcctClass(
108972            p_accounting_class_code  => 'ROUNDING'
108973          , p_ae_header_id           => l_ae_header_id
108974          );
108975 
108976    --
108977    -- set rounding class
108978    --
108979    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
108980                       'ROUNDING';
108981 
108982    --
108983    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
108984    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
108985    --
108986    -- bulk performance
108987    --
108988    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
108989 
108990    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
108991       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
108992 
108993    -- 4955764
108994    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
108995       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
108996 
108997    -- 4458381 Public Sector Enh
108998    
108999    --
109003    l_accted_amt_idx  := 15;
109000    -- set accounting attributes for the line type
109001    --
109002    l_entered_amt_idx := 10;
109004    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
109005    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
109006    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
109007    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
109008    l_rec_acct_attrs.array_num_value(2)  := p_source_99;
109009    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
109010    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
109011    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
109012    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
109013    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
109014    l_rec_acct_attrs.array_char_value(5)  := p_source_101;
109015    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
109016    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
109017    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
109018    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
109019    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
109020    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
109021    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
109022    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
109023    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
109024    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
109025    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
109026    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
109027    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
109028    l_rec_acct_attrs.array_date_value(12)  := p_source_117;
109029    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
109030    l_rec_acct_attrs.array_num_value(13)  := p_source_118;
109031    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
109032    l_rec_acct_attrs.array_char_value(14)  := p_source_119;
109033    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
109034    l_rec_acct_attrs.array_num_value(15)  := p_source_115;
109035    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
109036    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
109037    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
109038    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
109039    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
109040    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
109041    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
109042    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
109043    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
109044    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
109045    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
109046    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
109047    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
109048    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
109049    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
109050    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
109051    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
109052    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
109053 
109054    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
109055    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
109056 
109057    ---------------------------------------------------------------------------------------------------------------
109058    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
109059    ---------------------------------------------------------------------------------------------------------------
109060    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
109061 
109062    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
109063    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
109064 
109065    IF xla_accounting_cache_pkg.GetValueChar
109066          (p_source_code         => 'LEDGER_CATEGORY_CODE'
109067          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
109068    AND l_bflow_method_code = 'PRIOR_ENTRY'
109069 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
109070    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
109071          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
109072        )
109073    THEN
109074          xla_ae_lines_pkg.BflowUpgEntry
109075            (p_business_method_code    => l_bflow_method_code
109076            ,p_business_class_code     => l_bflow_class_code
109077            ,p_balance_type            => l_balance_type_code);
109078    ELSE
109079       NULL;
109080 -- No business flow processing for business flow method of NONE.
109081    END IF;
109082 
109083    --
109084    -- call analytical criteria
109085    --
109086    
109087    --
109088    -- call description
109089    --
109090    -- No description or it is inherited.
109091    --
109092    -- call ADRs
109093    -- Bug 4922099
109094    --
109095    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
109099    THEN
109096         (NVL(l_actual_upg_option, 'N') = 'O') OR
109097         (NVL(l_enc_upg_option, 'N') = 'O')
109098       )
109100    NULL;
109101    --
109102    --
109103    
109104   l_ccid := AcctDerRule_41(
109105            p_application_id           => p_application_id
109106          , p_ae_header_id             => l_ae_header_id 
109107 , p_source_15 => p_source_15
109108 , p_source_15_meaning => p_source_15_meaning
109109 , p_source_30 => p_source_30
109110 , p_source_49 => p_source_49
109111          , x_transaction_coa_id       => l_adr_transaction_coa_id
109112          , x_accounting_coa_id        => l_adr_accounting_coa_id
109113          , x_value_type_code          => l_adr_value_type_code
109114          , p_side                     => 'NA'
109115    );
109116 
109117    xla_ae_lines_pkg.set_ccid(
109118     p_code_combination_id          => l_ccid
109119   , p_value_type_code              => l_adr_value_type_code
109120   , p_transaction_coa_id           => l_adr_transaction_coa_id
109121   , p_accounting_coa_id            => l_adr_accounting_coa_id
109122   , p_adr_code                     => 'AP_ROUNDING'
109123   , p_adr_type_code                => 'S'
109124   , p_component_type               => l_component_type
109125   , p_component_code               => l_component_code
109126   , p_component_type_code          => l_component_type_code
109127   , p_component_appl_id            => l_component_appl_id
109128   , p_amb_context_code             => l_amb_context_code
109129   , p_side                         => 'NA'
109130   );
109131 
109132 
109133    --
109134    --
109135    END IF;
109136    --
109137    -- Bug 4922099
109138    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
109139           (NVL(l_enc_upg_option, 'N') = 'O')
109140         ) AND
109141         (l_bflow_method_code = 'PRIOR_ENTRY')
109142       )
109143    THEN
109144       IF
109145       --
109146       1 = 2
109147       --
109148       THEN
109149       xla_accounting_err_pkg.build_message
109150                                     (p_appli_s_name            => 'XLA'
109151                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
109152                                     ,p_token_1                 => 'LINE_NUMBER'
109153                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
109154                                     ,p_token_2                 => 'LINE_TYPE_NAME'
109155                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
109156                                                                              l_component_type
109157                                                                             ,l_component_code
109158                                                                             ,l_component_type_code
109159                                                                             ,l_component_appl_id
109160                                                                             ,l_amb_context_code
109161                                                                             ,l_entity_code
109162                                                                             ,l_event_class_code
109163                                                                            )
109164                                     ,p_token_3                 => 'OWNER'
109165                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
109166                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
109167                                                                           ,p_lookup_code    => l_component_type_code
109168                                                                          )
109169                                     ,p_token_4                 => 'PRODUCT_NAME'
109170                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
109171                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
109172                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
109173                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
109174                                     ,p_ae_header_id            =>  NULL
109175                                        );
109176 
109177         IF (C_LEVEL_ERROR>= g_log_level) THEN
109178                  trace
109179                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
109180                       ,p_level    => C_LEVEL_ERROR
109181                       ,p_module   => l_log_module);
109182         END IF;
109183       END IF;
109184    END IF;
109185    --
109186    --
109187    ------------------------------------------------------------------------------------------------
109188    -- 4219869 Business Flow
109189    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
109190    -- Prior Entry.  Currently, the following code is always generated.
109191    ------------------------------------------------------------------------------------------------
109192    XLA_AE_LINES_PKG.ValidateCurrentLine;
109193 
109194    ------------------------------------------------------------------------------------
109195    -- 4219869 Business Flow
109196    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
109197    ------------------------------------------------------------------------------------
109198    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
109199 
109203    ----------------------------------------------------------------------------------
109200    ----------------------------------------------------------------------------------
109201    -- 4219869 Business Flow
109202    -- Update journal entry status -- Need to generate this within IF <condition>
109204    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
109205          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
109206          ,p_balance_type_code => l_balance_type_code
109207          );
109208 
109209    -------------------------------------------------------------------------------------------
109210    -- 4262811 - Generate the Accrual Reversal lines
109211    -------------------------------------------------------------------------------------------
109212    BEGIN
109213       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
109214                               (g_array_event(p_event_id).array_value_num('header_index'));
109215       IF l_acc_rev_flag IS NULL THEN
109216          l_acc_rev_flag := 'N';
109217       END IF;
109218    EXCEPTION
109219       WHEN OTHERS THEN
109220          l_acc_rev_flag := 'N';
109221    END;
109222    --
109223    IF (l_acc_rev_flag = 'Y') THEN
109224 
109225        -- 4645092  ------------------------------------------------------------------------------
109226        -- To allow MPA report to determine if it should generate report process
109227        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
109228        ------------------------------------------------------------------------------------------
109229 
109230        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
109231        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
109232    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
109233    -- call ADRs
109234    -- Bug 4922099
109235    --
109236    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
109237         (NVL(l_actual_upg_option, 'N') = 'O') OR
109238         (NVL(l_enc_upg_option, 'N') = 'O')
109239       )
109240    THEN
109241    NULL;
109242    --
109243    --
109244    
109245   l_ccid := AcctDerRule_41(
109246            p_application_id           => p_application_id
109247          , p_ae_header_id             => l_ae_header_id 
109248 , p_source_15 => p_source_15
109249 , p_source_15_meaning => p_source_15_meaning
109250 , p_source_30 => p_source_30
109251 , p_source_49 => p_source_49
109252          , x_transaction_coa_id       => l_adr_transaction_coa_id
109253          , x_accounting_coa_id        => l_adr_accounting_coa_id
109254          , x_value_type_code          => l_adr_value_type_code
109255          , p_side                     => 'NA'
109256    );
109257 
109258    xla_ae_lines_pkg.set_ccid(
109259     p_code_combination_id          => l_ccid
109260   , p_value_type_code              => l_adr_value_type_code
109261   , p_transaction_coa_id           => l_adr_transaction_coa_id
109262   , p_accounting_coa_id            => l_adr_accounting_coa_id
109263   , p_adr_code                     => 'AP_ROUNDING'
109264   , p_adr_type_code                => 'S'
109265   , p_component_type               => l_component_type
109266   , p_component_code               => l_component_code
109267   , p_component_type_code          => l_component_type_code
109268   , p_component_appl_id            => l_component_appl_id
109269   , p_amb_context_code             => l_amb_context_code
109270   , p_side                         => 'NA'
109271   );
109272 
109273 
109274    --
109275    --
109276    END IF;
109277 
109278        --
109279        -- Update the line information that should be overwritten
109280        --
109281        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
109282                                          p_header_num   => 1);
109283        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
109284 
109285        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
109286 
109287        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
109288           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
109289        END IF;
109290 
109291       --
109292       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
109293       --
109294       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
109295           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
109296       ELSE
109297           ---------------------------------------------------------------------------------------------------
109298           -- 4262811a Switch Sign
109299           ---------------------------------------------------------------------------------------------------
109300           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
109301           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
109302                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109303           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
109304                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109305           -- 5132302
109306           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
109310 
109307                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
109308 
109309       END IF;
109311       -- 4955764
109312       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
109313       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
109314 
109315 
109316       XLA_AE_LINES_PKG.ValidateCurrentLine;
109317       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
109318 
109319       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
109320                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
109321                ,p_balance_type_code => l_balance_type_code);
109322 
109323    END IF;
109324 
109325    -----------------------------------------------------------------------------------------
109326    -- 4262811 Multiperiod Accounting
109327    -----------------------------------------------------------------------------------------
109328      -- No MPA option is assigned.
109329 
109330 
109331 END IF;
109332 END IF;
109333 --
109334 
109335 --
109336 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
109337    trace
109338       (p_msg      => 'END of AcctLineType_184'
109339       ,p_level    => C_LEVEL_PROCEDURE
109340       ,p_module   => l_log_module);
109341 END IF;
109342 --
109343 EXCEPTION
109344   WHEN xla_exceptions_pkg.application_exception THEN
109345       RAISE;
109346   WHEN OTHERS THEN
109347        xla_exceptions_pkg.raise_message
109348            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_184');
109349 END AcctLineType_184;
109350 --
109351 
109352 ---------------------------------------
109353 --
109354 -- PRIVATE FUNCTION
109355 --         AcctLineType_185
109356 --
109357 ---------------------------------------
109358 PROCEDURE AcctLineType_185 (
109359   p_application_id        IN NUMBER
109360  ,p_event_id              IN NUMBER
109361  ,p_calculate_acctd_flag  IN VARCHAR2
109362  ,p_calculate_g_l_flag    IN VARCHAR2
109363  ,p_actual_flag           IN OUT VARCHAR2
109364  ,p_balance_type_code     OUT VARCHAR2
109365  ,p_gain_or_loss_ref      OUT VARCHAR2
109366  
109367 --Invoice Distribution Description
109368  , p_source_1            IN VARCHAR2
109369 --Invoice Distribution Ledger Amount
109370  , p_source_21            IN NUMBER
109371 --Invoice Distribution Account
109372  , p_source_30            IN NUMBER
109373 --Prepaid Expense Account Source Option
109374  , p_source_31            IN VARCHAR2
109375  , p_source_31_meaning    IN VARCHAR2
109376 --Purchase Order Number
109377  , p_source_32            IN VARCHAR2
109378 --Invoice Distribution Type
109379  , p_source_33            IN VARCHAR2
109380  , p_source_33_meaning    IN VARCHAR2
109381 --Purchase Order Charge Account
109382  , p_source_45            IN NUMBER
109383 --Accounting Reversal Indicator
109384  , p_source_53            IN VARCHAR2
109385 --Distribution Link Type
109386  , p_source_55            IN VARCHAR2
109387 --Allocation to Main Distribution Identifier
109388  , p_source_57            IN NUMBER
109389 --Invoice Identifier
109390  , p_source_58            IN NUMBER
109391 --Invoice Distribution Identifier
109392  , p_source_64            IN NUMBER
109393 --Payables Encumbrance Upgrade Credit Account
109394  , p_source_65            IN NUMBER
109395 --Payables Encumbrance Upgrade Credit Amount
109396  , p_source_66            IN NUMBER
109397 --Invoice Currency Code
109398  , p_source_67            IN VARCHAR2
109399 --Payables Encumbrance Upgrade Credit Base Amount
109400  , p_source_68            IN NUMBER
109401 --Payables Encumbrance Upgrade Debit Account
109402  , p_source_69            IN NUMBER
109403 --Payables Encumbrance Upgrade Debit Amount
109404  , p_source_70            IN NUMBER
109405 --Payables Encumbrance Upgrade Debit Base Amount
109406  , p_source_71            IN NUMBER
109407 --Payables Encumbrance Upgrade Option
109408  , p_source_72            IN VARCHAR2
109409 --Invoice Distribution Amount
109410  , p_source_73            IN NUMBER
109411 --Deferred Accounting End Date
109412  , p_source_77            IN DATE
109413 --Deferred Accounting Option
109414  , p_source_78            IN VARCHAR2
109415 --Deferred Accounting Start Date
109416  , p_source_79            IN DATE
109417 --Override Accounted Amount Indicator
109418  , p_source_80            IN VARCHAR2
109419  , p_source_80_meaning    IN VARCHAR2
109420 --Invoice Supplier Identifier
109421  , p_source_81            IN NUMBER
109422 --Invoice Supplier Site Identifier
109423  , p_source_82            IN NUMBER
109424 --Third Party Type
109425  , p_source_83            IN VARCHAR2
109426 --Parent Reversal Identifier
109427  , p_source_84            IN NUMBER
109428 --Invoice Distribution Statistical Amount
109429  , p_source_85            IN NUMBER
109430 --Invoice Distribution Tax Line Identifier
109431  , p_source_86            IN NUMBER
109432 --Invoice Distribution Tax Distribution Identifier from Tax
109433  , p_source_87            IN NUMBER
109434 --Invoice Distribution Summary Tax Line Identifier
109435  , p_source_88            IN NUMBER
109436 --Payables Upgrade Credit Encumbrance Type Identifier
109437  , p_source_89            IN NUMBER
109438 --Payables Upgrade Debit Encumbrance Type Identifier
109439  , p_source_90            IN NUMBER
109440 --Business Flow Accounts Payable Application Identifier
109441  , p_source_91            IN NUMBER
109442 --Business Flow Invoice Distribution Type
109446 --Business Flow Invoice Distribution Identifier
109443  , p_source_92            IN VARCHAR2
109444 --Business Flow Invoice Entity Code
109445  , p_source_93            IN VARCHAR2
109447  , p_source_94            IN NUMBER
109448 --Business Flow Invoice Identifier
109449  , p_source_95            IN NUMBER
109450 --Accrue on Receipt Option
109451  , p_source_96            IN VARCHAR2
109452  , p_source_96_meaning    IN VARCHAR2
109453 --Invoice Exchange Date
109454  , p_source_143            IN DATE
109455 --Invoice Exchange Rate
109456  , p_source_144            IN NUMBER
109457 --Invoice Exchange Rate Type
109458  , p_source_145            IN VARCHAR2
109459 )
109460 IS
109461 
109462 l_component_type              VARCHAR2(80);
109463 l_component_code              VARCHAR2(30);
109464 l_component_type_code         VARCHAR2(1);
109465 l_component_appl_id           INTEGER;
109466 l_amb_context_code            VARCHAR2(30);
109467 l_entity_code                 VARCHAR2(30);
109468 l_event_class_code            VARCHAR2(30);
109469 l_ae_header_id                NUMBER;
109470 l_event_type_code             VARCHAR2(30);
109471 l_line_definition_code        VARCHAR2(30);
109472 l_line_definition_owner_code  VARCHAR2(1);
109473 --
109474 -- adr variables
109475 l_segment                     VARCHAR2(30);
109476 l_ccid                        NUMBER;
109477 l_adr_transaction_coa_id      NUMBER;
109478 l_adr_accounting_coa_id       NUMBER;
109479 l_adr_flexfield_segment_code  VARCHAR2(30);
109480 l_adr_flex_value_set_id       NUMBER;
109481 l_adr_value_type_code         VARCHAR2(30);
109482 l_adr_value_combination_id    NUMBER;
109483 l_adr_value_segment_code      VARCHAR2(30);
109484 
109485 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
109486 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
109487 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
109488 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
109489 
109490 -- 4262811 Variables ------------------------------------------------------------------------------------------
109491 l_entered_amt_idx             NUMBER;
109492 l_accted_amt_idx              NUMBER;
109493 l_acc_rev_flag                VARCHAR2(1);
109494 l_accrual_line_num            NUMBER;
109495 l_tmp_amt                     NUMBER;
109496 l_acc_rev_natural_side_code   VARCHAR2(1);
109497 
109498 l_num_entries                 NUMBER;
109499 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
109500 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
109501 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
109502 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
109503 l_recog_line_1                NUMBER;
109504 l_recog_line_2                NUMBER;
109505 
109506 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
109507 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
109508 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
109509 
109510 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
109511 
109512 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
109513 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
109514 
109515 ---------------------------------------------------------------------------------------------------------------
109516 
109517 
109518 --
109519 -- bulk performance
109520 --
109521 l_balance_type_code           VARCHAR2(1);
109522 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
109523 l_log_module                  VARCHAR2(240);
109524 
109525 --
109526 -- Upgrade strategy
109527 --
109528 l_actual_upg_option           VARCHAR2(1);
109529 l_enc_upg_option           VARCHAR2(1);
109530 
109531 --
109532 BEGIN
109533 --
109534 IF g_log_enabled THEN
109535       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_185';
109536 END IF;
109537 --
109538 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
109539 
109540       trace
109541          (p_msg      => 'BEGIN of AcctLineType_185'
109542          ,p_level    => C_LEVEL_PROCEDURE
109543          ,p_module   => l_log_module);
109544 
109545 END IF;
109546 --
109547 l_component_type             := 'AMB_JLT';
109548 l_component_code             := 'AP_PREPAID_EXPENSE_PREPAY';
109549 l_component_type_code        := 'S';
109550 l_component_appl_id          :=  200;
109551 l_amb_context_code           := 'DEFAULT';
109552 l_entity_code                := 'AP_INVOICES';
109553 l_event_class_code           := 'PREPAYMENTS';
109554 l_event_type_code            := 'PREPAYMENTS_ALL';
109555 l_line_definition_owner_code := 'S';
109556 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
109557 --
109558 l_balance_type_code          := 'A';
109559 l_segment                     := NULL;
109560 l_ccid                        := NULL;
109561 l_adr_transaction_coa_id      := NULL;
109562 l_adr_accounting_coa_id       := NULL;
109563 l_adr_flexfield_segment_code  := NULL;
109564 l_adr_flex_value_set_id       := NULL;
109565 l_adr_value_type_code         := NULL;
109566 l_adr_value_combination_id    := NULL;
109567 l_adr_value_segment_code      := NULL;
109568 
109569 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
109570 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
109571 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
109575 l_bflow_applied_to_amt       := NULL; -- 5132302
109572 l_budgetary_control_flag     := 'N';
109573 
109574 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
109576 l_entered_amt_idx            := NULL;          -- 4262811
109577 l_accted_amt_idx             := NULL;          -- 4262811
109578 l_acc_rev_flag               := NULL;          -- 4262811
109579 l_accrual_line_num           := NULL;          -- 4262811
109580 l_tmp_amt                    := NULL;          -- 4262811
109581 --
109582  
109583 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
109584     l_balance_type_code <> 'B' THEN
109585 IF NVL(p_source_33,'
109586 ') =  'RETROEXPENSE' OR 
109587 NVL(p_source_33,'
109588 ') =  'ITEM' OR 
109589 (NVL(p_source_33,'
109590 ') =  'ERV' AND 
109591 NVL(p_source_96,'
109592 ') <>  'Y') OR 
109593 (NVL(p_source_33,'
109594 ') =  'IPV' AND 
109595 NVL(p_source_96,'
109596 ') <>  'Y')
109597  THEN 
109598 
109599    --
109600    XLA_AE_LINES_PKG.SetNewLine;
109601 
109602    p_balance_type_code          := l_balance_type_code;
109603    -- set the flag so later we will know whether the gain loss line needs to be created
109604    
109605    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
109606      p_actual_flag :='A';
109607    END IF;
109608 
109609    --
109610    -- bulk performance
109611    --
109612    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
109613                                       p_header_num   => 0); -- 4262811
109614    --
109615    -- set accounting line options
109616    --
109617    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
109618            p_natural_side_code          => 'D'
109619          , p_gain_or_loss_flag          => 'N'
109620          , p_gl_transfer_mode_code      => 'S'
109621          , p_acct_entry_type_code       => 'A'
109622          , p_switch_side_flag           => 'Y'
109623          , p_merge_duplicate_code       => 'A'
109624          );
109625    --
109626    l_acc_rev_natural_side_code := 'C';  -- 4262811
109627    -- 
109628    --
109629    -- set accounting line type info
109630    --
109631    xla_ae_lines_pkg.SetAcctLineType
109632       (p_component_type             => l_component_type
109633       ,p_event_type_code            => l_event_type_code
109634       ,p_line_definition_owner_code => l_line_definition_owner_code
109635       ,p_line_definition_code       => l_line_definition_code
109636       ,p_accounting_line_code       => l_component_code
109637       ,p_accounting_line_type_code  => l_component_type_code
109638       ,p_accounting_line_appl_id    => l_component_appl_id
109639       ,p_amb_context_code           => l_amb_context_code
109640       ,p_entity_code                => l_entity_code
109641       ,p_event_class_code           => l_event_class_code);
109642    --
109643    -- set accounting class
109644    --
109645    xla_ae_lines_pkg.SetAcctClass(
109646            p_accounting_class_code  => 'PREPAID_EXPENSE'
109647          , p_ae_header_id           => l_ae_header_id
109648          );
109649 
109650    --
109651    -- set rounding class
109652    --
109653    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
109654                       'PREPAID_EXPENSE';
109655 
109656    --
109657    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
109658    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
109659    --
109660    -- bulk performance
109661    --
109662    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
109663 
109664    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
109665       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
109666 
109667    -- 4955764
109668    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
109669       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
109670 
109671    -- 4458381 Public Sector Enh
109672    
109673    --
109674    -- set accounting attributes for the line type
109675    --
109676    l_entered_amt_idx := 23;
109677    l_accted_amt_idx  := 28;
109678    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
109679    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
109680    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
109681    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
109682    l_rec_acct_attrs.array_num_value(2)  := 
109683 xla_ae_sources_pkg.GetSystemSourceNum(
109684    p_source_code           => 'XLA_EVENT_APPL_ID'
109685  , p_source_type_code      => 'Y'
109686  , p_source_application_id =>  602
109687 );
109688    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
109689    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
109690    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
109691    l_rec_acct_attrs.array_char_value(4)  := 
109692 xla_ae_sources_pkg.GetSystemSourceChar(
109693    p_source_code           => 'XLA_ENTITY_CODE'
109694  , p_source_type_code      => 'Y'
109695  , p_source_application_id =>  602
109696 );
109697    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
109698    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
109702    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
109699    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
109700    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
109701    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
109703    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
109704    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
109705    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
109706    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
109707    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
109708    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
109709    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
109710    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
109711    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
109712    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
109713    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
109714    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
109715    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
109716    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
109717    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
109718    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
109719    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
109720    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
109721    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
109722    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
109723    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
109724    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
109725    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
109726    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
109727    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
109728    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
109729    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
109730    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
109731    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
109732    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
109733    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
109734    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
109735    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
109736    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
109737    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
109738    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
109739    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
109740    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
109741    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
109742    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
109743    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
109744    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
109745    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
109746    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
109747    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
109748    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
109749    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
109750    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
109751    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
109752    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
109753    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
109754    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
109755    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
109756    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
109757    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
109758    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
109759    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
109760    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
109761    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
109762    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
109763    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
109764    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
109765    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
109766    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
109767    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
109768    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
109769    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
109770    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
109771    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
109772    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
109773    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
109774    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
109775 
109776    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
109777    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
109778 
109779    ---------------------------------------------------------------------------------------------------------------
109780    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
109784    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
109781    ---------------------------------------------------------------------------------------------------------------
109782    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
109783 
109785    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
109786 
109787    IF xla_accounting_cache_pkg.GetValueChar
109788          (p_source_code         => 'LEDGER_CATEGORY_CODE'
109789          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
109790    AND l_bflow_method_code = 'PRIOR_ENTRY'
109791 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
109792    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
109793          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
109794        )
109795    THEN
109796          xla_ae_lines_pkg.BflowUpgEntry
109797            (p_business_method_code    => l_bflow_method_code
109798            ,p_business_class_code     => l_bflow_class_code
109799            ,p_balance_type            => l_balance_type_code);
109800    ELSE
109801       NULL;
109802 -- No business flow processing for business flow method of NONE.
109803    END IF;
109804 
109805    --
109806    -- call analytical criteria
109807    --
109808    
109809    --
109810    -- call description
109811    --
109812    
109813 xla_ae_lines_pkg.SetLineDescription(
109814    p_ae_header_id => l_ae_header_id
109815   ,p_description  => Description_1 (
109816      p_application_id         => p_application_id
109817    , p_ae_header_id           => l_ae_header_id 
109818 , p_source_1 => p_source_1
109819    )
109820 );
109821 
109822 
109823    --
109824    -- call ADRs
109825    -- Bug 4922099
109826    --
109827    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
109828         (NVL(l_actual_upg_option, 'N') = 'O') OR
109829         (NVL(l_enc_upg_option, 'N') = 'O')
109830       )
109831    THEN
109832    NULL;
109833    --
109834    --
109835    
109836   l_ccid := AcctDerRule_37(
109837            p_application_id           => p_application_id
109838          , p_ae_header_id             => l_ae_header_id 
109839 , p_source_30 => p_source_30
109840 , p_source_31 => p_source_31
109841 , p_source_31_meaning => p_source_31_meaning
109842 , p_source_32 => p_source_32
109843 , p_source_33 => p_source_33
109844 , p_source_33_meaning => p_source_33_meaning
109845 , p_source_45 => p_source_45
109846          , x_transaction_coa_id       => l_adr_transaction_coa_id
109847          , x_accounting_coa_id        => l_adr_accounting_coa_id
109848          , x_value_type_code          => l_adr_value_type_code
109849          , p_side                     => 'NA'
109850    );
109851 
109852    xla_ae_lines_pkg.set_ccid(
109853     p_code_combination_id          => l_ccid
109854   , p_value_type_code              => l_adr_value_type_code
109855   , p_transaction_coa_id           => l_adr_transaction_coa_id
109856   , p_accounting_coa_id            => l_adr_accounting_coa_id
109857   , p_adr_code                     => 'AP_PREPAY_INVOICE_DIST'
109858   , p_adr_type_code                => 'S'
109859   , p_component_type               => l_component_type
109860   , p_component_code               => l_component_code
109861   , p_component_type_code          => l_component_type_code
109862   , p_component_appl_id            => l_component_appl_id
109863   , p_amb_context_code             => l_amb_context_code
109864   , p_side                         => 'NA'
109865   );
109866 
109867 
109868    l_segment := AcctDerRule_13(
109869            p_application_id           => p_application_id
109870          , p_ae_header_id             => l_ae_header_id 
109871 , p_source_30 => p_source_30
109872 , p_source_31 => p_source_31
109873 , p_source_31_meaning => p_source_31_meaning
109874 , p_source_32 => p_source_32
109875 , p_source_33 => p_source_33
109876 , p_source_33_meaning => p_source_33_meaning
109877          , x_transaction_coa_id       => l_adr_transaction_coa_id
109878          , x_accounting_coa_id        => l_adr_accounting_coa_id
109879          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
109880          , x_flex_value_set_id        => l_adr_flex_value_set_id
109881          , x_value_type_code          => l_adr_value_type_code
109882          , x_value_combination_id     => l_adr_value_combination_id
109883          , x_value_segment_code       => l_adr_value_segment_code
109884          , p_side                     => 'NA'
109885          , p_override_seg_flag        => 'Y'
109886    );
109887 
109888    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
109889 
109890       xla_ae_lines_pkg.set_segment(
109891           p_to_segment_code         => 'GL_ACCOUNT'
109892         , p_segment_value           => l_segment
109893         , p_from_segment_code       => l_adr_value_segment_code
109894         , p_from_combination_id     => l_adr_value_combination_id
109895         , p_value_type_code         => l_adr_value_type_code
109896         , p_transaction_coa_id      => l_adr_transaction_coa_id
109897         , p_accounting_coa_id       => l_adr_accounting_coa_id
109898         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
109899         , p_flex_value_set_id       => l_adr_flex_value_set_id
109900         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_ITEM'
109901         , p_adr_type_code           => 'S'
109902         , p_component_type          => l_component_type
109903         , p_component_code          => l_component_code
109907         , p_entity_code             => 'AP_INVOICES'
109904         , p_component_type_code     => l_component_type_code
109905         , p_component_appl_id       => l_component_appl_id
109906         , p_amb_context_code        => l_amb_context_code
109908         , p_event_class_code        => 'PREPAYMENTS'
109909         , p_side                    => 'NA'
109910         );
109911 
109912   END IF;
109913 
109914    --
109915    --
109916    END IF;
109917    --
109918    -- Bug 4922099
109919    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
109920           (NVL(l_enc_upg_option, 'N') = 'O')
109921         ) AND
109922         (l_bflow_method_code = 'PRIOR_ENTRY')
109923       )
109924    THEN
109925       IF
109926       --
109927       1 = 2
109928       --
109929       THEN
109930       xla_accounting_err_pkg.build_message
109931                                     (p_appli_s_name            => 'XLA'
109932                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
109933                                     ,p_token_1                 => 'LINE_NUMBER'
109934                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
109935                                     ,p_token_2                 => 'LINE_TYPE_NAME'
109936                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
109937                                                                              l_component_type
109938                                                                             ,l_component_code
109939                                                                             ,l_component_type_code
109940                                                                             ,l_component_appl_id
109941                                                                             ,l_amb_context_code
109942                                                                             ,l_entity_code
109943                                                                             ,l_event_class_code
109944                                                                            )
109945                                     ,p_token_3                 => 'OWNER'
109946                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
109947                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
109948                                                                           ,p_lookup_code    => l_component_type_code
109949                                                                          )
109950                                     ,p_token_4                 => 'PRODUCT_NAME'
109951                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
109952                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
109953                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
109954                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
109955                                     ,p_ae_header_id            =>  NULL
109956                                        );
109957 
109958         IF (C_LEVEL_ERROR>= g_log_level) THEN
109959                  trace
109960                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
109961                       ,p_level    => C_LEVEL_ERROR
109962                       ,p_module   => l_log_module);
109963         END IF;
109964       END IF;
109965    END IF;
109966    --
109967    --
109968    ------------------------------------------------------------------------------------------------
109969    -- 4219869 Business Flow
109970    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
109971    -- Prior Entry.  Currently, the following code is always generated.
109972    ------------------------------------------------------------------------------------------------
109973    XLA_AE_LINES_PKG.ValidateCurrentLine;
109974 
109975    ------------------------------------------------------------------------------------
109976    -- 4219869 Business Flow
109977    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
109978    ------------------------------------------------------------------------------------
109979    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
109980 
109981    ----------------------------------------------------------------------------------
109982    -- 4219869 Business Flow
109983    -- Update journal entry status -- Need to generate this within IF <condition>
109984    ----------------------------------------------------------------------------------
109985    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
109986          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
109987          ,p_balance_type_code => l_balance_type_code
109988          );
109989 
109990    -------------------------------------------------------------------------------------------
109991    -- 4262811 - Generate the Accrual Reversal lines
109992    -------------------------------------------------------------------------------------------
109993    BEGIN
109994       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
109995                               (g_array_event(p_event_id).array_value_num('header_index'));
109996       IF l_acc_rev_flag IS NULL THEN
109997          l_acc_rev_flag := 'N';
109998       END IF;
109999    EXCEPTION
110000       WHEN OTHERS THEN
110001          l_acc_rev_flag := 'N';
110005 
110002    END;
110003    --
110004    IF (l_acc_rev_flag = 'Y') THEN
110006        -- 4645092  ------------------------------------------------------------------------------
110007        -- To allow MPA report to determine if it should generate report process
110008        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
110009        ------------------------------------------------------------------------------------------
110010 
110011        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
110012        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
110013    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
110014    -- call ADRs
110015    -- Bug 4922099
110016    --
110017    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
110018         (NVL(l_actual_upg_option, 'N') = 'O') OR
110019         (NVL(l_enc_upg_option, 'N') = 'O')
110020       )
110021    THEN
110022    NULL;
110023    --
110024    --
110025    
110026   l_ccid := AcctDerRule_37(
110027            p_application_id           => p_application_id
110028          , p_ae_header_id             => l_ae_header_id 
110029 , p_source_30 => p_source_30
110030 , p_source_31 => p_source_31
110031 , p_source_31_meaning => p_source_31_meaning
110032 , p_source_32 => p_source_32
110033 , p_source_33 => p_source_33
110034 , p_source_33_meaning => p_source_33_meaning
110035 , p_source_45 => p_source_45
110036          , x_transaction_coa_id       => l_adr_transaction_coa_id
110037          , x_accounting_coa_id        => l_adr_accounting_coa_id
110038          , x_value_type_code          => l_adr_value_type_code
110039          , p_side                     => 'NA'
110040    );
110041 
110042    xla_ae_lines_pkg.set_ccid(
110043     p_code_combination_id          => l_ccid
110044   , p_value_type_code              => l_adr_value_type_code
110045   , p_transaction_coa_id           => l_adr_transaction_coa_id
110046   , p_accounting_coa_id            => l_adr_accounting_coa_id
110047   , p_adr_code                     => 'AP_PREPAY_INVOICE_DIST'
110048   , p_adr_type_code                => 'S'
110049   , p_component_type               => l_component_type
110050   , p_component_code               => l_component_code
110051   , p_component_type_code          => l_component_type_code
110052   , p_component_appl_id            => l_component_appl_id
110053   , p_amb_context_code             => l_amb_context_code
110054   , p_side                         => 'NA'
110055   );
110056 
110057 
110058    l_segment := AcctDerRule_13(
110059            p_application_id           => p_application_id
110060          , p_ae_header_id             => l_ae_header_id 
110061 , p_source_30 => p_source_30
110062 , p_source_31 => p_source_31
110063 , p_source_31_meaning => p_source_31_meaning
110064 , p_source_32 => p_source_32
110065 , p_source_33 => p_source_33
110066 , p_source_33_meaning => p_source_33_meaning
110067          , x_transaction_coa_id       => l_adr_transaction_coa_id
110068          , x_accounting_coa_id        => l_adr_accounting_coa_id
110069          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
110070          , x_flex_value_set_id        => l_adr_flex_value_set_id
110071          , x_value_type_code          => l_adr_value_type_code
110072          , x_value_combination_id     => l_adr_value_combination_id
110073          , x_value_segment_code       => l_adr_value_segment_code
110074          , p_side                     => 'NA'
110075          , p_override_seg_flag        => 'Y'
110076    );
110077 
110078    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
110079 
110080       xla_ae_lines_pkg.set_segment(
110081           p_to_segment_code         => 'GL_ACCOUNT'
110082         , p_segment_value           => l_segment
110083         , p_from_segment_code       => l_adr_value_segment_code
110084         , p_from_combination_id     => l_adr_value_combination_id
110085         , p_value_type_code         => l_adr_value_type_code
110086         , p_transaction_coa_id      => l_adr_transaction_coa_id
110087         , p_accounting_coa_id       => l_adr_accounting_coa_id
110088         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
110089         , p_flex_value_set_id       => l_adr_flex_value_set_id
110090         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_ITEM'
110091         , p_adr_type_code           => 'S'
110092         , p_component_type          => l_component_type
110093         , p_component_code          => l_component_code
110094         , p_component_type_code     => l_component_type_code
110095         , p_component_appl_id       => l_component_appl_id
110096         , p_amb_context_code        => l_amb_context_code
110097         , p_entity_code             => 'AP_INVOICES'
110098         , p_event_class_code        => 'PREPAYMENTS'
110099         , p_side                    => 'NA'
110100         );
110101 
110102   END IF;
110103 
110104    --
110105    --
110106    END IF;
110107 
110108        --
110109        -- Update the line information that should be overwritten
110110        --
110111        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
110112                                          p_header_num   => 1);
110113        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
110114 
110115        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
110116 
110117        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
110121       --
110118           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
110119        END IF;
110120 
110122       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
110123       --
110124       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
110125           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
110126       ELSE
110127           ---------------------------------------------------------------------------------------------------
110128           -- 4262811a Switch Sign
110129           ---------------------------------------------------------------------------------------------------
110130           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
110131           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
110132                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
110133           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
110134                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
110135           -- 5132302
110136           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
110137                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
110138 
110139       END IF;
110140 
110141       -- 4955764
110142       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
110143       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
110144 
110145 
110146       XLA_AE_LINES_PKG.ValidateCurrentLine;
110147       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
110148 
110149       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
110150                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
110151                ,p_balance_type_code => l_balance_type_code);
110152 
110153    END IF;
110154 
110155    -----------------------------------------------------------------------------------------
110156    -- 4262811 Multiperiod Accounting
110157    -----------------------------------------------------------------------------------------
110158      -- No MPA option is assigned.
110159 
110160 
110161 END IF;
110162 END IF;
110163 --
110164 
110165 --
110166 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
110167    trace
110168       (p_msg      => 'END of AcctLineType_185'
110169       ,p_level    => C_LEVEL_PROCEDURE
110170       ,p_module   => l_log_module);
110171 END IF;
110172 --
110173 EXCEPTION
110174   WHEN xla_exceptions_pkg.application_exception THEN
110175       RAISE;
110176   WHEN OTHERS THEN
110177        xla_exceptions_pkg.raise_message
110178            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_185');
110179 END AcctLineType_185;
110180 --
110181 
110182 ---------------------------------------
110183 --
110184 -- PRIVATE FUNCTION
110185 --         AcctLineType_186
110186 --
110187 ---------------------------------------
110188 PROCEDURE AcctLineType_186 (
110189   p_application_id        IN NUMBER
110190  ,p_event_id              IN NUMBER
110191  ,p_calculate_acctd_flag  IN VARCHAR2
110192  ,p_calculate_g_l_flag    IN VARCHAR2
110193  ,p_actual_flag           IN OUT VARCHAR2
110194  ,p_balance_type_code     OUT VARCHAR2
110195  ,p_gain_or_loss_ref      OUT VARCHAR2
110196  
110197 --Accounting Reversal Indicator
110198  , p_source_53            IN VARCHAR2
110199 --Distribution Link Type
110200  , p_source_55            IN VARCHAR2
110201 --Invoice Identifier
110202  , p_source_58            IN NUMBER
110203 --Payables Encumbrance Upgrade Credit Account
110204  , p_source_65            IN NUMBER
110205 --Payables Encumbrance Upgrade Credit Amount
110206  , p_source_66            IN NUMBER
110207 --Invoice Currency Code
110208  , p_source_67            IN VARCHAR2
110209 --Payables Encumbrance Upgrade Credit Base Amount
110210  , p_source_68            IN NUMBER
110211 --Payables Encumbrance Upgrade Debit Account
110212  , p_source_69            IN NUMBER
110213 --Payables Encumbrance Upgrade Debit Amount
110214  , p_source_70            IN NUMBER
110215 --Payables Encumbrance Upgrade Debit Base Amount
110216  , p_source_71            IN NUMBER
110217 --Payables Encumbrance Upgrade Option
110218  , p_source_72            IN VARCHAR2
110219 --Deferred Accounting End Date
110220  , p_source_77            IN DATE
110221 --Deferred Accounting Option
110222  , p_source_78            IN VARCHAR2
110223 --Deferred Accounting Start Date
110224  , p_source_79            IN DATE
110225 --Override Accounted Amount Indicator
110226  , p_source_80            IN VARCHAR2
110227  , p_source_80_meaning    IN VARCHAR2
110228 --Third Party Type
110229  , p_source_83            IN VARCHAR2
110230 --Invoice Distribution Tax Line Identifier
110231  , p_source_86            IN NUMBER
110232 --Invoice Distribution Tax Distribution Identifier from Tax
110233  , p_source_87            IN NUMBER
110234 --Invoice Distribution Summary Tax Line Identifier
110235  , p_source_88            IN NUMBER
110236 --Payables Upgrade Credit Encumbrance Type Identifier
110237  , p_source_89            IN NUMBER
110238 --Payables Upgrade Debit Encumbrance Type Identifier
110239  , p_source_90            IN NUMBER
110240 --Business Flow Accounts Payable Application Identifier
110244 --Deferred Prepayment Settlement Option Code
110241  , p_source_91            IN NUMBER
110242 --Prepayment Distribution Type
110243  , p_source_125            IN VARCHAR2
110245  , p_source_126            IN VARCHAR2
110246  , p_source_126_meaning    IN VARCHAR2
110247 --Prepayment Application Distribution Identifier
110248  , p_source_127            IN NUMBER
110249 --Upgrade Encumbrance Credit Account Class
110250  , p_source_132            IN VARCHAR2
110251 --Upgrade Encumbrance Debit Account Class
110252  , p_source_133            IN VARCHAR2
110253 --Prepayment Distribution Amount
110254  , p_source_134            IN NUMBER
110255 --Prepayment Distribution (Prepayment Rate) Ledger Amount
110256  , p_source_135            IN NUMBER
110257 --Identifier of the Prepayment Application Reversed
110258  , p_source_136            IN NUMBER
110259 --Business Flow Prepayment Invoice Distribution Type
110260  , p_source_146            IN VARCHAR2
110261 --Business Flow Prepayment Invoice Entity Code
110262  , p_source_147            IN VARCHAR2
110263 --Business Flow Prepayment Invoice Distribution Identifier
110264  , p_source_148            IN NUMBER
110265 --Business Flow Prepayment Invoice Identifier
110266  , p_source_149            IN NUMBER
110267 )
110268 IS
110269 
110270 l_component_type              VARCHAR2(80);
110271 l_component_code              VARCHAR2(30);
110272 l_component_type_code         VARCHAR2(1);
110273 l_component_appl_id           INTEGER;
110274 l_amb_context_code            VARCHAR2(30);
110275 l_entity_code                 VARCHAR2(30);
110276 l_event_class_code            VARCHAR2(30);
110277 l_ae_header_id                NUMBER;
110278 l_event_type_code             VARCHAR2(30);
110279 l_line_definition_code        VARCHAR2(30);
110280 l_line_definition_owner_code  VARCHAR2(1);
110281 --
110282 -- adr variables
110283 l_segment                     VARCHAR2(30);
110284 l_ccid                        NUMBER;
110285 l_adr_transaction_coa_id      NUMBER;
110286 l_adr_accounting_coa_id       NUMBER;
110287 l_adr_flexfield_segment_code  VARCHAR2(30);
110288 l_adr_flex_value_set_id       NUMBER;
110289 l_adr_value_type_code         VARCHAR2(30);
110290 l_adr_value_combination_id    NUMBER;
110291 l_adr_value_segment_code      VARCHAR2(30);
110292 
110293 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
110294 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
110295 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
110296 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
110297 
110298 -- 4262811 Variables ------------------------------------------------------------------------------------------
110299 l_entered_amt_idx             NUMBER;
110300 l_accted_amt_idx              NUMBER;
110301 l_acc_rev_flag                VARCHAR2(1);
110302 l_accrual_line_num            NUMBER;
110303 l_tmp_amt                     NUMBER;
110304 l_acc_rev_natural_side_code   VARCHAR2(1);
110305 
110306 l_num_entries                 NUMBER;
110307 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
110308 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
110309 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
110310 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
110311 l_recog_line_1                NUMBER;
110312 l_recog_line_2                NUMBER;
110313 
110314 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
110315 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
110316 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
110317 
110318 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
110319 
110320 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
110321 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
110322 
110323 ---------------------------------------------------------------------------------------------------------------
110324 
110325 
110326 --
110327 -- bulk performance
110328 --
110329 l_balance_type_code           VARCHAR2(1);
110330 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
110331 l_log_module                  VARCHAR2(240);
110332 
110333 --
110334 -- Upgrade strategy
110335 --
110336 l_actual_upg_option           VARCHAR2(1);
110337 l_enc_upg_option           VARCHAR2(1);
110338 
110339 --
110340 BEGIN
110341 --
110342 IF g_log_enabled THEN
110343       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_186';
110344 END IF;
110345 --
110346 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
110347 
110348       trace
110349          (p_msg      => 'BEGIN of AcctLineType_186'
110350          ,p_level    => C_LEVEL_PROCEDURE
110351          ,p_module   => l_log_module);
110352 
110353 END IF;
110354 --
110355 l_component_type             := 'AMB_JLT';
110356 l_component_code             := 'AP_PREPAID_EXP_ACCR_PREPAY_APP';
110357 l_component_type_code        := 'S';
110358 l_component_appl_id          :=  200;
110359 l_amb_context_code           := 'DEFAULT';
110360 l_entity_code                := 'AP_INVOICES';
110361 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
110362 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
110363 l_line_definition_owner_code := 'S';
110364 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
110365 --
110369 l_adr_transaction_coa_id      := NULL;
110366 l_balance_type_code          := 'A';
110367 l_segment                     := NULL;
110368 l_ccid                        := NULL;
110370 l_adr_accounting_coa_id       := NULL;
110371 l_adr_flexfield_segment_code  := NULL;
110372 l_adr_flex_value_set_id       := NULL;
110373 l_adr_value_type_code         := NULL;
110374 l_adr_value_combination_id    := NULL;
110375 l_adr_value_segment_code      := NULL;
110376 
110377 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
110378 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
110379 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
110380 l_budgetary_control_flag     := 'N';
110381 
110382 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
110383 l_bflow_applied_to_amt       := NULL; -- 5132302
110384 l_entered_amt_idx            := NULL;          -- 4262811
110385 l_accted_amt_idx             := NULL;          -- 4262811
110386 l_acc_rev_flag               := NULL;          -- 4262811
110387 l_accrual_line_num           := NULL;          -- 4262811
110388 l_tmp_amt                    := NULL;          -- 4262811
110389 --
110390  
110391 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
110392     l_balance_type_code <> 'B' THEN
110393 IF NVL(p_source_125,'
110394 ') =  'PREPAY APPL' OR 
110395 NVL(p_source_125,'
110396 ') =  'TAX DIFF' OR 
110397 NVL(p_source_125,'
110398 ') =  'FINAL APPLICATION ROUNDING' OR 
110399 (NVL(p_source_125,'
110400 ') =  'PREPAY APPL REC TAX' AND 
110401 NVL(p_source_126,'
110402 ') <>  'DEFERRED') OR 
110403 NVL(p_source_125,'
110404 ') =  'PREPAY APPL NONREC TAX'
110405  THEN 
110406 
110407    --
110408    XLA_AE_LINES_PKG.SetNewLine;
110409 
110410    p_balance_type_code          := l_balance_type_code;
110411    -- set the flag so later we will know whether the gain loss line needs to be created
110412    
110413    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
110414      p_actual_flag :='A';
110415    END IF;
110416 
110417    --
110418    -- bulk performance
110419    --
110420    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
110421                                       p_header_num   => 0); -- 4262811
110422    --
110423    -- set accounting line options
110424    --
110425    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
110426            p_natural_side_code          => 'D'
110427          , p_gain_or_loss_flag          => 'N'
110428          , p_gl_transfer_mode_code      => 'S'
110429          , p_acct_entry_type_code       => 'A'
110430          , p_switch_side_flag           => 'Y'
110431          , p_merge_duplicate_code       => 'A'
110432          );
110433    --
110434    l_acc_rev_natural_side_code := 'C';  -- 4262811
110435    -- 
110436    --
110437    -- set accounting line type info
110438    --
110439    xla_ae_lines_pkg.SetAcctLineType
110440       (p_component_type             => l_component_type
110441       ,p_event_type_code            => l_event_type_code
110442       ,p_line_definition_owner_code => l_line_definition_owner_code
110443       ,p_line_definition_code       => l_line_definition_code
110444       ,p_accounting_line_code       => l_component_code
110445       ,p_accounting_line_type_code  => l_component_type_code
110446       ,p_accounting_line_appl_id    => l_component_appl_id
110447       ,p_amb_context_code           => l_amb_context_code
110448       ,p_entity_code                => l_entity_code
110449       ,p_event_class_code           => l_event_class_code);
110450    --
110451    -- set accounting class
110452    --
110453    xla_ae_lines_pkg.SetAcctClass(
110454            p_accounting_class_code  => 'PREPAID_EXPENSE'
110455          , p_ae_header_id           => l_ae_header_id
110456          );
110457 
110458    --
110459    -- set rounding class
110460    --
110461    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
110462                       'PREPAID_EXPENSE';
110463 
110464    --
110465    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
110466    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
110467    --
110468    -- bulk performance
110469    --
110470    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
110471 
110472    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
110473       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
110474 
110475    -- 4955764
110476    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
110477       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
110478 
110479    -- 4458381 Public Sector Enh
110480    
110481    --
110482    -- set accounting attributes for the line type
110483    --
110484    l_entered_amt_idx := 25;
110485    l_accted_amt_idx  := 27;
110486    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
110487    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
110488    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
110489    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
110490    l_rec_acct_attrs.array_num_value(2)  := 
110491 xla_ae_sources_pkg.GetSystemSourceNum(
110495 );
110492    p_source_code           => 'XLA_EVENT_APPL_ID'
110493  , p_source_type_code      => 'Y'
110494  , p_source_application_id =>  602
110496    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
110497    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
110498    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
110499    l_rec_acct_attrs.array_char_value(4)  := 
110500 xla_ae_sources_pkg.GetSystemSourceChar(
110501    p_source_code           => 'XLA_ENTITY_CODE'
110502  , p_source_type_code      => 'Y'
110503  , p_source_application_id =>  602
110504 );
110505    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
110506    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_127);
110507    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
110508    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
110509    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
110510    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
110511    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
110512    l_rec_acct_attrs.array_char_value(8)  := p_source_146;
110513    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
110514    l_rec_acct_attrs.array_char_value(9)  := p_source_147;
110515    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
110516    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_148);
110517    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
110518    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_149);
110519    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
110520    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_127);
110521    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
110522    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
110523    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
110524    l_rec_acct_attrs.array_char_value(14)  := p_source_132;
110525    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
110526    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
110527    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
110528    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
110529    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
110530    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
110531    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
110532    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
110533    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
110534    l_rec_acct_attrs.array_char_value(19)  := p_source_133;
110535    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
110536    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
110537    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
110538    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
110539    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
110540    l_rec_acct_attrs.array_char_value(22)  := p_source_67;
110541    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
110542    l_rec_acct_attrs.array_num_value(23)  := p_source_71;
110543    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
110544    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
110545    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
110546    l_rec_acct_attrs.array_num_value(25)  := p_source_134;
110547    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
110548    l_rec_acct_attrs.array_char_value(26)  := p_source_67;
110549    l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
110550    l_rec_acct_attrs.array_num_value(27)  := p_source_135;
110551    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_END_DATE';
110552    l_rec_acct_attrs.array_date_value(28)  := p_source_77;
110553    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_OPTION';
110554    l_rec_acct_attrs.array_char_value(29)  := p_source_78;
110555    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_START_DATE';
110556    l_rec_acct_attrs.array_date_value(30)  := p_source_79;
110557    l_rec_acct_attrs.array_acct_attr_code(31) := 'OVERRIDE_ACCTD_AMT_FLAG';
110558    l_rec_acct_attrs.array_char_value(31)  := p_source_80;
110559    l_rec_acct_attrs.array_acct_attr_code(32) := 'PARTY_TYPE';
110560    l_rec_acct_attrs.array_char_value(32)  := p_source_83;
110561    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_ID1';
110562    l_rec_acct_attrs.array_num_value(33)  :=  to_char(p_source_136);
110563    l_rec_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_TYPE';
110564    l_rec_acct_attrs.array_char_value(34)  := p_source_55;
110565    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
110566    l_rec_acct_attrs.array_num_value(35)  := p_source_86;
110567    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
110568    l_rec_acct_attrs.array_num_value(36)  := p_source_87;
110569    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
110570    l_rec_acct_attrs.array_num_value(37)  := p_source_88;
110571    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
110572    l_rec_acct_attrs.array_num_value(38)  := p_source_89;
110573    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
110574    l_rec_acct_attrs.array_num_value(39)  := p_source_90;
110575 
110576    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
110577    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
110578 
110582    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
110579    ---------------------------------------------------------------------------------------------------------------
110580    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
110581    ---------------------------------------------------------------------------------------------------------------
110583 
110584    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
110585    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
110586 
110587    IF xla_accounting_cache_pkg.GetValueChar
110588          (p_source_code         => 'LEDGER_CATEGORY_CODE'
110589          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
110590    AND l_bflow_method_code = 'PRIOR_ENTRY'
110591 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
110592    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
110593          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
110594        )
110595    THEN
110596          xla_ae_lines_pkg.BflowUpgEntry
110597            (p_business_method_code    => l_bflow_method_code
110598            ,p_business_class_code     => l_bflow_class_code
110599            ,p_balance_type            => l_balance_type_code);
110600    ELSE
110601       NULL;
110602 XLA_AE_LINES_PKG.business_flow_validation(
110603                                 p_business_method_code     => l_bflow_method_code
110604                                ,p_business_class_code      => l_bflow_class_code
110605                                ,p_inherit_description_flag => l_inherit_desc_flag);
110606    END IF;
110607 
110608    --
110609    -- call analytical criteria
110610    --
110611    -- Inherited Analytical Criteria for business flow method of Prior Entry.
110612    --
110613    -- call description
110614    --
110615    -- No description or it is inherited.
110616    --
110617    -- call ADRs
110618    -- Bug 4922099
110619    --
110620    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
110621         (NVL(l_actual_upg_option, 'N') = 'O') OR
110622         (NVL(l_enc_upg_option, 'N') = 'O')
110623       )
110624    THEN
110625    NULL;
110626    --
110627    --
110628    
110629    --
110630    --
110631    END IF;
110632    --
110633    -- Bug 4922099
110634    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
110635           (NVL(l_enc_upg_option, 'N') = 'O')
110636         ) AND
110637         (l_bflow_method_code = 'PRIOR_ENTRY')
110638       )
110639    THEN
110640       IF
110641       --
110642       1 = 1
110643       --
110644       THEN
110645       xla_accounting_err_pkg.build_message
110646                                     (p_appli_s_name            => 'XLA'
110647                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
110648                                     ,p_token_1                 => 'LINE_NUMBER'
110649                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
110650                                     ,p_token_2                 => 'LINE_TYPE_NAME'
110651                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
110652                                                                              l_component_type
110653                                                                             ,l_component_code
110654                                                                             ,l_component_type_code
110655                                                                             ,l_component_appl_id
110656                                                                             ,l_amb_context_code
110657                                                                             ,l_entity_code
110658                                                                             ,l_event_class_code
110659                                                                            )
110660                                     ,p_token_3                 => 'OWNER'
110661                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
110662                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
110663                                                                           ,p_lookup_code    => l_component_type_code
110664                                                                          )
110665                                     ,p_token_4                 => 'PRODUCT_NAME'
110666                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
110667                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
110668                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
110669                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
110670                                     ,p_ae_header_id            =>  NULL
110671                                        );
110672 
110673         IF (C_LEVEL_ERROR>= g_log_level) THEN
110674                  trace
110675                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
110676                       ,p_level    => C_LEVEL_ERROR
110677                       ,p_module   => l_log_module);
110678         END IF;
110679       END IF;
110680    END IF;
110681    --
110685    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
110682    --
110683    ------------------------------------------------------------------------------------------------
110684    -- 4219869 Business Flow
110686    -- Prior Entry.  Currently, the following code is always generated.
110687    ------------------------------------------------------------------------------------------------
110688    -- No ValidateCurrentLine for business flow method of Prior Entry
110689 
110690    ------------------------------------------------------------------------------------
110691    -- 4219869 Business Flow
110692    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
110693    ------------------------------------------------------------------------------------
110694    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
110695 
110696    ----------------------------------------------------------------------------------
110697    -- 4219869 Business Flow
110698    -- Update journal entry status -- Need to generate this within IF <condition>
110699    ----------------------------------------------------------------------------------
110700    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
110701          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
110702          ,p_balance_type_code => l_balance_type_code
110703          );
110704 
110705    -------------------------------------------------------------------------------------------
110706    -- 4262811 - Generate the Accrual Reversal lines
110707    -------------------------------------------------------------------------------------------
110708    BEGIN
110709       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
110710                               (g_array_event(p_event_id).array_value_num('header_index'));
110711       IF l_acc_rev_flag IS NULL THEN
110712          l_acc_rev_flag := 'N';
110713       END IF;
110714    EXCEPTION
110715       WHEN OTHERS THEN
110716          l_acc_rev_flag := 'N';
110717    END;
110718    --
110719    IF (l_acc_rev_flag = 'Y') THEN
110720 
110721        -- 4645092  ------------------------------------------------------------------------------
110722        -- To allow MPA report to determine if it should generate report process
110723        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
110724        ------------------------------------------------------------------------------------------
110725 
110726        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
110727        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
110728    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
110729    -- call ADRs
110730    -- Bug 4922099
110731    --
110732    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
110733         (NVL(l_actual_upg_option, 'N') = 'O') OR
110734         (NVL(l_enc_upg_option, 'N') = 'O')
110735       )
110736    THEN
110737    NULL;
110738    --
110739    --
110740    
110741    --
110742    --
110743    END IF;
110744 
110745        --
110746        -- Update the line information that should be overwritten
110747        --
110748        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
110749                                          p_header_num   => 1);
110750        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
110751 
110752        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
110753 
110754        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
110755           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
110756        END IF;
110757 
110758       --
110759       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
110760       --
110761       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
110762           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
110763       ELSE
110764           ---------------------------------------------------------------------------------------------------
110765           -- 4262811a Switch Sign
110766           ---------------------------------------------------------------------------------------------------
110767           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
110768           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
110769                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
110770           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
110771                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
110772           -- 5132302
110773           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
110774                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
110775 
110776       END IF;
110777 
110778       -- 4955764
110779       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
110780       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
110781 
110782 
110783       XLA_AE_LINES_PKG.ValidateCurrentLine;
110784       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
110785 
110786       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
110787                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
110791 
110788                ,p_balance_type_code => l_balance_type_code);
110789 
110790    END IF;
110792    -----------------------------------------------------------------------------------------
110793    -- 4262811 Multiperiod Accounting
110794    -----------------------------------------------------------------------------------------
110795      -- No MPA option is assigned.
110796 
110797 
110798 END IF;
110799 END IF;
110800 --
110801 
110802 --
110803 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
110804    trace
110805       (p_msg      => 'END of AcctLineType_186'
110806       ,p_level    => C_LEVEL_PROCEDURE
110807       ,p_module   => l_log_module);
110808 END IF;
110809 --
110810 EXCEPTION
110811   WHEN xla_exceptions_pkg.application_exception THEN
110812       RAISE;
110813   WHEN OTHERS THEN
110814        xla_exceptions_pkg.raise_message
110815            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_186');
110816 END AcctLineType_186;
110817 --
110818 
110819 ---------------------------------------
110820 --
110821 -- PRIVATE FUNCTION
110822 --         AcctLineType_187
110823 --
110824 ---------------------------------------
110825 PROCEDURE AcctLineType_187 (
110826   p_application_id        IN NUMBER
110827  ,p_event_id              IN NUMBER
110828  ,p_calculate_acctd_flag  IN VARCHAR2
110829  ,p_calculate_g_l_flag    IN VARCHAR2
110830  ,p_actual_flag           IN OUT VARCHAR2
110831  ,p_balance_type_code     OUT VARCHAR2
110832  ,p_gain_or_loss_ref      OUT VARCHAR2
110833  
110834 --Invoice Distribution Description
110835  , p_source_1            IN VARCHAR2
110836 --Invoice Distribution Ledger Amount
110837  , p_source_21            IN NUMBER
110838 --Invoice Distribution Account
110839  , p_source_30            IN NUMBER
110840 --Invoice Distribution Type
110841  , p_source_33            IN VARCHAR2
110842  , p_source_33_meaning    IN VARCHAR2
110843 --Accounting Reversal Indicator
110844  , p_source_53            IN VARCHAR2
110845 --Distribution Link Type
110846  , p_source_55            IN VARCHAR2
110847 --Allocation to Main Distribution Identifier
110848  , p_source_57            IN NUMBER
110849 --Invoice Identifier
110850  , p_source_58            IN NUMBER
110851 --Invoice Distribution Identifier
110852  , p_source_64            IN NUMBER
110853 --Payables Encumbrance Upgrade Credit Account
110854  , p_source_65            IN NUMBER
110855 --Payables Encumbrance Upgrade Credit Amount
110856  , p_source_66            IN NUMBER
110857 --Invoice Currency Code
110858  , p_source_67            IN VARCHAR2
110859 --Payables Encumbrance Upgrade Credit Base Amount
110860  , p_source_68            IN NUMBER
110861 --Payables Encumbrance Upgrade Debit Account
110862  , p_source_69            IN NUMBER
110863 --Payables Encumbrance Upgrade Debit Amount
110864  , p_source_70            IN NUMBER
110865 --Payables Encumbrance Upgrade Debit Base Amount
110866  , p_source_71            IN NUMBER
110867 --Payables Encumbrance Upgrade Option
110868  , p_source_72            IN VARCHAR2
110869 --Invoice Distribution Amount
110870  , p_source_73            IN NUMBER
110871 --Deferred Accounting End Date
110872  , p_source_77            IN DATE
110873 --Deferred Accounting Option
110874  , p_source_78            IN VARCHAR2
110875 --Deferred Accounting Start Date
110876  , p_source_79            IN DATE
110877 --Override Accounted Amount Indicator
110878  , p_source_80            IN VARCHAR2
110879  , p_source_80_meaning    IN VARCHAR2
110880 --Invoice Supplier Identifier
110881  , p_source_81            IN NUMBER
110882 --Invoice Supplier Site Identifier
110883  , p_source_82            IN NUMBER
110884 --Third Party Type
110885  , p_source_83            IN VARCHAR2
110886 --Parent Reversal Identifier
110887  , p_source_84            IN NUMBER
110888 --Invoice Distribution Statistical Amount
110889  , p_source_85            IN NUMBER
110890 --Invoice Distribution Tax Line Identifier
110891  , p_source_86            IN NUMBER
110892 --Invoice Distribution Tax Distribution Identifier from Tax
110893  , p_source_87            IN NUMBER
110894 --Invoice Distribution Summary Tax Line Identifier
110895  , p_source_88            IN NUMBER
110896 --Payables Upgrade Credit Encumbrance Type Identifier
110897  , p_source_89            IN NUMBER
110898 --Payables Upgrade Debit Encumbrance Type Identifier
110899  , p_source_90            IN NUMBER
110900 --Business Flow Accounts Payable Application Identifier
110901  , p_source_91            IN NUMBER
110902 --Business Flow Invoice Distribution Type
110903  , p_source_92            IN VARCHAR2
110904 --Business Flow Invoice Entity Code
110905  , p_source_93            IN VARCHAR2
110906 --Business Flow Invoice Distribution Identifier
110907  , p_source_94            IN NUMBER
110908 --Business Flow Invoice Identifier
110909  , p_source_95            IN NUMBER
110910 --Self-Assessed Tax Flag
110911  , p_source_142            IN VARCHAR2
110912  , p_source_142_meaning    IN VARCHAR2
110913 --Invoice Exchange Date
110914  , p_source_143            IN DATE
110915 --Invoice Exchange Rate
110916  , p_source_144            IN NUMBER
110917 --Invoice Exchange Rate Type
110918  , p_source_145            IN VARCHAR2
110919 )
110920 IS
110921 
110922 l_component_type              VARCHAR2(80);
110923 l_component_code              VARCHAR2(30);
110924 l_component_type_code         VARCHAR2(1);
110925 l_component_appl_id           INTEGER;
110926 l_amb_context_code            VARCHAR2(30);
110930 l_event_type_code             VARCHAR2(30);
110927 l_entity_code                 VARCHAR2(30);
110928 l_event_class_code            VARCHAR2(30);
110929 l_ae_header_id                NUMBER;
110931 l_line_definition_code        VARCHAR2(30);
110932 l_line_definition_owner_code  VARCHAR2(1);
110933 --
110934 -- adr variables
110935 l_segment                     VARCHAR2(30);
110936 l_ccid                        NUMBER;
110937 l_adr_transaction_coa_id      NUMBER;
110938 l_adr_accounting_coa_id       NUMBER;
110939 l_adr_flexfield_segment_code  VARCHAR2(30);
110940 l_adr_flex_value_set_id       NUMBER;
110941 l_adr_value_type_code         VARCHAR2(30);
110942 l_adr_value_combination_id    NUMBER;
110943 l_adr_value_segment_code      VARCHAR2(30);
110944 
110945 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
110946 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
110947 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
110948 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
110949 
110950 -- 4262811 Variables ------------------------------------------------------------------------------------------
110951 l_entered_amt_idx             NUMBER;
110952 l_accted_amt_idx              NUMBER;
110953 l_acc_rev_flag                VARCHAR2(1);
110954 l_accrual_line_num            NUMBER;
110955 l_tmp_amt                     NUMBER;
110956 l_acc_rev_natural_side_code   VARCHAR2(1);
110957 
110958 l_num_entries                 NUMBER;
110959 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
110960 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
110961 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
110962 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
110963 l_recog_line_1                NUMBER;
110964 l_recog_line_2                NUMBER;
110965 
110966 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
110967 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
110968 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
110969 
110970 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
110971 
110972 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
110973 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
110974 
110975 ---------------------------------------------------------------------------------------------------------------
110976 
110977 
110978 --
110979 -- bulk performance
110980 --
110981 l_balance_type_code           VARCHAR2(1);
110982 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
110983 l_log_module                  VARCHAR2(240);
110984 
110985 --
110986 -- Upgrade strategy
110987 --
110988 l_actual_upg_option           VARCHAR2(1);
110989 l_enc_upg_option           VARCHAR2(1);
110990 
110991 --
110992 BEGIN
110993 --
110994 IF g_log_enabled THEN
110995       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_187';
110996 END IF;
110997 --
110998 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
110999 
111000       trace
111001          (p_msg      => 'BEGIN of AcctLineType_187'
111002          ,p_level    => C_LEVEL_PROCEDURE
111003          ,p_module   => l_log_module);
111004 
111005 END IF;
111006 --
111007 l_component_type             := 'AMB_JLT';
111008 l_component_code             := 'AP_RECOV_TAX_CM';
111009 l_component_type_code        := 'S';
111010 l_component_appl_id          :=  200;
111011 l_amb_context_code           := 'DEFAULT';
111012 l_entity_code                := 'AP_INVOICES';
111013 l_event_class_code           := 'CREDIT MEMOS';
111014 l_event_type_code            := 'CREDIT MEMOS_ALL';
111015 l_line_definition_owner_code := 'S';
111016 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
111017 --
111018 l_balance_type_code          := 'A';
111019 l_segment                     := NULL;
111020 l_ccid                        := NULL;
111021 l_adr_transaction_coa_id      := NULL;
111022 l_adr_accounting_coa_id       := NULL;
111023 l_adr_flexfield_segment_code  := NULL;
111024 l_adr_flex_value_set_id       := NULL;
111025 l_adr_value_type_code         := NULL;
111026 l_adr_value_combination_id    := NULL;
111027 l_adr_value_segment_code      := NULL;
111028 
111029 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
111030 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
111031 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
111032 l_budgetary_control_flag     := 'N';
111033 
111034 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
111035 l_bflow_applied_to_amt       := NULL; -- 5132302
111036 l_entered_amt_idx            := NULL;          -- 4262811
111037 l_accted_amt_idx             := NULL;          -- 4262811
111038 l_acc_rev_flag               := NULL;          -- 4262811
111039 l_accrual_line_num           := NULL;          -- 4262811
111040 l_tmp_amt                    := NULL;          -- 4262811
111041 --
111042  
111043 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
111044     l_balance_type_code <> 'B' THEN
111045 IF NVL(p_source_33,'
111046 ') =  'REC_TAX' AND 
111047 NVL(p_source_142,'
111048 ') <>  'Y'
111049  THEN 
111050 
111051    --
111052    XLA_AE_LINES_PKG.SetNewLine;
111053 
111054    p_balance_type_code          := l_balance_type_code;
111058      p_actual_flag :='A';
111055    -- set the flag so later we will know whether the gain loss line needs to be created
111056    
111057    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
111059    END IF;
111060 
111061    --
111062    -- bulk performance
111063    --
111064    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
111065                                       p_header_num   => 0); -- 4262811
111066    --
111067    -- set accounting line options
111068    --
111069    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
111070            p_natural_side_code          => 'D'
111071          , p_gain_or_loss_flag          => 'N'
111072          , p_gl_transfer_mode_code      => 'S'
111073          , p_acct_entry_type_code       => 'A'
111074          , p_switch_side_flag           => 'Y'
111075          , p_merge_duplicate_code       => 'A'
111076          );
111077    --
111078    l_acc_rev_natural_side_code := 'C';  -- 4262811
111079    -- 
111080    --
111081    -- set accounting line type info
111082    --
111083    xla_ae_lines_pkg.SetAcctLineType
111084       (p_component_type             => l_component_type
111085       ,p_event_type_code            => l_event_type_code
111086       ,p_line_definition_owner_code => l_line_definition_owner_code
111087       ,p_line_definition_code       => l_line_definition_code
111088       ,p_accounting_line_code       => l_component_code
111089       ,p_accounting_line_type_code  => l_component_type_code
111090       ,p_accounting_line_appl_id    => l_component_appl_id
111091       ,p_amb_context_code           => l_amb_context_code
111092       ,p_entity_code                => l_entity_code
111093       ,p_event_class_code           => l_event_class_code);
111094    --
111095    -- set accounting class
111096    --
111097    xla_ae_lines_pkg.SetAcctClass(
111098            p_accounting_class_code  => 'RTAX'
111099          , p_ae_header_id           => l_ae_header_id
111100          );
111101 
111102    --
111103    -- set rounding class
111104    --
111105    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
111106                       'RTAX';
111107 
111108    --
111109    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
111110    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
111111    --
111112    -- bulk performance
111113    --
111114    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
111115 
111116    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
111117       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
111118 
111119    -- 4955764
111120    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
111121       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
111122 
111123    -- 4458381 Public Sector Enh
111124    
111125    --
111126    -- set accounting attributes for the line type
111127    --
111128    l_entered_amt_idx := 23;
111129    l_accted_amt_idx  := 28;
111130    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
111131    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
111132    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
111133    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
111134    l_rec_acct_attrs.array_num_value(2)  := 
111135 xla_ae_sources_pkg.GetSystemSourceNum(
111136    p_source_code           => 'XLA_EVENT_APPL_ID'
111137  , p_source_type_code      => 'Y'
111138  , p_source_application_id =>  602
111139 );
111140    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
111141    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
111142    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
111143    l_rec_acct_attrs.array_char_value(4)  := 
111144 xla_ae_sources_pkg.GetSystemSourceChar(
111145    p_source_code           => 'XLA_ENTITY_CODE'
111146  , p_source_type_code      => 'Y'
111147  , p_source_application_id =>  602
111148 );
111149    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
111150    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
111151    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
111152    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
111153    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
111154    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
111155    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
111156    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
111157    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
111158    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
111159    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
111160    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
111161    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
111162    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
111163    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
111164    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
111165    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
111166    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
111170    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
111167    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
111168    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
111169    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
111171    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
111172    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
111173    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
111174    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
111175    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
111176    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
111177    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
111178    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
111179    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
111180    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
111181    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
111182    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
111183    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
111184    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
111185    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
111186    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
111187    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
111188    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
111189    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
111190    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
111191    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
111192    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
111193    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
111194    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
111195    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
111196    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
111197    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
111198    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
111199    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
111200    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
111201    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
111202    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
111203    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
111204    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
111205    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
111206    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
111207    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
111208    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
111209    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
111210    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
111211    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
111212    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
111213    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
111214    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
111215    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
111216    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
111217    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
111218    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
111219    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
111220    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
111221    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
111222    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
111223    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
111224    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
111225    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
111226    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
111227 
111228    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
111229    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
111230 
111231    ---------------------------------------------------------------------------------------------------------------
111232    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
111233    ---------------------------------------------------------------------------------------------------------------
111234    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
111235 
111236    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
111237    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
111238 
111239    IF xla_accounting_cache_pkg.GetValueChar
111240          (p_source_code         => 'LEDGER_CATEGORY_CODE'
111241          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
111242    AND l_bflow_method_code = 'PRIOR_ENTRY'
111243 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
111244    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
111245          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
111246        )
111247    THEN
111248          xla_ae_lines_pkg.BflowUpgEntry
111249            (p_business_method_code    => l_bflow_method_code
111250            ,p_business_class_code     => l_bflow_class_code
111251            ,p_balance_type            => l_balance_type_code);
111252    ELSE
111253       NULL;
111257    --
111254 -- No business flow processing for business flow method of NONE.
111255    END IF;
111256 
111258    -- call analytical criteria
111259    --
111260    
111261    --
111262    -- call description
111263    --
111264    
111265 xla_ae_lines_pkg.SetLineDescription(
111266    p_ae_header_id => l_ae_header_id
111267   ,p_description  => Description_1 (
111268      p_application_id         => p_application_id
111269    , p_ae_header_id           => l_ae_header_id 
111270 , p_source_1 => p_source_1
111271    )
111272 );
111273 
111274 
111275    --
111276    -- call ADRs
111277    -- Bug 4922099
111278    --
111279    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
111280         (NVL(l_actual_upg_option, 'N') = 'O') OR
111281         (NVL(l_enc_upg_option, 'N') = 'O')
111282       )
111283    THEN
111284    NULL;
111285    --
111286    --
111287    
111288   l_ccid := AcctDerRule_33(
111289            p_application_id           => p_application_id
111290          , p_ae_header_id             => l_ae_header_id 
111291 , p_source_30 => p_source_30
111292          , x_transaction_coa_id       => l_adr_transaction_coa_id
111293          , x_accounting_coa_id        => l_adr_accounting_coa_id
111294          , x_value_type_code          => l_adr_value_type_code
111295          , p_side                     => 'NA'
111296    );
111297 
111298    xla_ae_lines_pkg.set_ccid(
111299     p_code_combination_id          => l_ccid
111300   , p_value_type_code              => l_adr_value_type_code
111301   , p_transaction_coa_id           => l_adr_transaction_coa_id
111302   , p_accounting_coa_id            => l_adr_accounting_coa_id
111303   , p_adr_code                     => 'AP_INVOICE_DIST'
111304   , p_adr_type_code                => 'S'
111305   , p_component_type               => l_component_type
111306   , p_component_code               => l_component_code
111307   , p_component_type_code          => l_component_type_code
111308   , p_component_appl_id            => l_component_appl_id
111309   , p_amb_context_code             => l_amb_context_code
111310   , p_side                         => 'NA'
111311   );
111312 
111313 
111314    --
111315    --
111316    END IF;
111317    --
111318    -- Bug 4922099
111319    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
111320           (NVL(l_enc_upg_option, 'N') = 'O')
111321         ) AND
111322         (l_bflow_method_code = 'PRIOR_ENTRY')
111323       )
111324    THEN
111325       IF
111326       --
111327       1 = 2
111328       --
111329       THEN
111330       xla_accounting_err_pkg.build_message
111331                                     (p_appli_s_name            => 'XLA'
111332                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
111333                                     ,p_token_1                 => 'LINE_NUMBER'
111334                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
111335                                     ,p_token_2                 => 'LINE_TYPE_NAME'
111336                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
111337                                                                              l_component_type
111338                                                                             ,l_component_code
111339                                                                             ,l_component_type_code
111340                                                                             ,l_component_appl_id
111341                                                                             ,l_amb_context_code
111342                                                                             ,l_entity_code
111343                                                                             ,l_event_class_code
111344                                                                            )
111345                                     ,p_token_3                 => 'OWNER'
111346                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
111347                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
111348                                                                           ,p_lookup_code    => l_component_type_code
111349                                                                          )
111350                                     ,p_token_4                 => 'PRODUCT_NAME'
111351                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
111352                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
111353                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
111354                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
111355                                     ,p_ae_header_id            =>  NULL
111356                                        );
111357 
111358         IF (C_LEVEL_ERROR>= g_log_level) THEN
111359                  trace
111360                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
111361                       ,p_level    => C_LEVEL_ERROR
111362                       ,p_module   => l_log_module);
111363         END IF;
111364       END IF;
111365    END IF;
111366    --
111367    --
111368    ------------------------------------------------------------------------------------------------
111369    -- 4219869 Business Flow
111373    XLA_AE_LINES_PKG.ValidateCurrentLine;
111370    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
111371    -- Prior Entry.  Currently, the following code is always generated.
111372    ------------------------------------------------------------------------------------------------
111374 
111375    ------------------------------------------------------------------------------------
111376    -- 4219869 Business Flow
111377    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
111378    ------------------------------------------------------------------------------------
111379    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
111380 
111381    ----------------------------------------------------------------------------------
111382    -- 4219869 Business Flow
111383    -- Update journal entry status -- Need to generate this within IF <condition>
111384    ----------------------------------------------------------------------------------
111385    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
111386          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
111387          ,p_balance_type_code => l_balance_type_code
111388          );
111389 
111390    -------------------------------------------------------------------------------------------
111391    -- 4262811 - Generate the Accrual Reversal lines
111392    -------------------------------------------------------------------------------------------
111393    BEGIN
111394       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
111395                               (g_array_event(p_event_id).array_value_num('header_index'));
111396       IF l_acc_rev_flag IS NULL THEN
111397          l_acc_rev_flag := 'N';
111398       END IF;
111399    EXCEPTION
111400       WHEN OTHERS THEN
111401          l_acc_rev_flag := 'N';
111402    END;
111403    --
111404    IF (l_acc_rev_flag = 'Y') THEN
111405 
111406        -- 4645092  ------------------------------------------------------------------------------
111407        -- To allow MPA report to determine if it should generate report process
111408        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
111409        ------------------------------------------------------------------------------------------
111410 
111411        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
111412        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
111413    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
111414    -- call ADRs
111415    -- Bug 4922099
111416    --
111417    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
111418         (NVL(l_actual_upg_option, 'N') = 'O') OR
111419         (NVL(l_enc_upg_option, 'N') = 'O')
111420       )
111421    THEN
111422    NULL;
111423    --
111424    --
111425    
111426   l_ccid := AcctDerRule_33(
111427            p_application_id           => p_application_id
111428          , p_ae_header_id             => l_ae_header_id 
111429 , p_source_30 => p_source_30
111430          , x_transaction_coa_id       => l_adr_transaction_coa_id
111431          , x_accounting_coa_id        => l_adr_accounting_coa_id
111432          , x_value_type_code          => l_adr_value_type_code
111433          , p_side                     => 'NA'
111434    );
111435 
111436    xla_ae_lines_pkg.set_ccid(
111437     p_code_combination_id          => l_ccid
111438   , p_value_type_code              => l_adr_value_type_code
111439   , p_transaction_coa_id           => l_adr_transaction_coa_id
111440   , p_accounting_coa_id            => l_adr_accounting_coa_id
111441   , p_adr_code                     => 'AP_INVOICE_DIST'
111442   , p_adr_type_code                => 'S'
111443   , p_component_type               => l_component_type
111444   , p_component_code               => l_component_code
111445   , p_component_type_code          => l_component_type_code
111446   , p_component_appl_id            => l_component_appl_id
111447   , p_amb_context_code             => l_amb_context_code
111448   , p_side                         => 'NA'
111449   );
111450 
111451 
111452    --
111453    --
111454    END IF;
111455 
111456        --
111457        -- Update the line information that should be overwritten
111458        --
111459        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
111460                                          p_header_num   => 1);
111461        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
111462 
111463        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
111464 
111465        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
111466           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
111467        END IF;
111468 
111469       --
111470       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
111471       --
111472       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
111473           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
111474       ELSE
111475           ---------------------------------------------------------------------------------------------------
111476           -- 4262811a Switch Sign
111477           ---------------------------------------------------------------------------------------------------
111478           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
111479           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
111483           -- 5132302
111480                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
111481           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
111482                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
111484           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
111485                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
111486 
111487       END IF;
111488 
111489       -- 4955764
111490       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
111491       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
111492 
111493 
111494       XLA_AE_LINES_PKG.ValidateCurrentLine;
111495       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
111496 
111497       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
111498                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
111499                ,p_balance_type_code => l_balance_type_code);
111500 
111501    END IF;
111502 
111503    -----------------------------------------------------------------------------------------
111504    -- 4262811 Multiperiod Accounting
111505    -----------------------------------------------------------------------------------------
111506      -- No MPA option is assigned.
111507 
111508 
111509 END IF;
111510 END IF;
111511 --
111512 
111513 --
111514 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
111515    trace
111516       (p_msg      => 'END of AcctLineType_187'
111517       ,p_level    => C_LEVEL_PROCEDURE
111518       ,p_module   => l_log_module);
111519 END IF;
111520 --
111521 EXCEPTION
111522   WHEN xla_exceptions_pkg.application_exception THEN
111523       RAISE;
111524   WHEN OTHERS THEN
111525        xla_exceptions_pkg.raise_message
111526            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_187');
111527 END AcctLineType_187;
111528 --
111529 
111530 ---------------------------------------
111531 --
111532 -- PRIVATE FUNCTION
111533 --         AcctLineType_188
111534 --
111535 ---------------------------------------
111536 PROCEDURE AcctLineType_188 (
111537   p_application_id        IN NUMBER
111538  ,p_event_id              IN NUMBER
111539  ,p_calculate_acctd_flag  IN VARCHAR2
111540  ,p_calculate_g_l_flag    IN VARCHAR2
111541  ,p_actual_flag           IN OUT VARCHAR2
111542  ,p_balance_type_code     OUT VARCHAR2
111543  ,p_gain_or_loss_ref      OUT VARCHAR2
111544  
111545 --Invoice Distribution Description
111546  , p_source_1            IN VARCHAR2
111547 --Invoice Distribution Ledger Amount
111548  , p_source_21            IN NUMBER
111549 --Invoice Distribution Account
111550  , p_source_30            IN NUMBER
111551 --Invoice Distribution Type
111552  , p_source_33            IN VARCHAR2
111553  , p_source_33_meaning    IN VARCHAR2
111554 --Accounting Reversal Indicator
111555  , p_source_53            IN VARCHAR2
111556 --Distribution Link Type
111557  , p_source_55            IN VARCHAR2
111558 --Allocation to Main Distribution Identifier
111559  , p_source_57            IN NUMBER
111560 --Invoice Identifier
111561  , p_source_58            IN NUMBER
111562 --Invoice Distribution Identifier
111563  , p_source_64            IN NUMBER
111564 --Payables Encumbrance Upgrade Credit Account
111565  , p_source_65            IN NUMBER
111566 --Payables Encumbrance Upgrade Credit Amount
111567  , p_source_66            IN NUMBER
111568 --Invoice Currency Code
111569  , p_source_67            IN VARCHAR2
111570 --Payables Encumbrance Upgrade Credit Base Amount
111571  , p_source_68            IN NUMBER
111572 --Payables Encumbrance Upgrade Debit Account
111573  , p_source_69            IN NUMBER
111574 --Payables Encumbrance Upgrade Debit Amount
111575  , p_source_70            IN NUMBER
111576 --Payables Encumbrance Upgrade Debit Base Amount
111577  , p_source_71            IN NUMBER
111578 --Payables Encumbrance Upgrade Option
111579  , p_source_72            IN VARCHAR2
111580 --Invoice Distribution Amount
111581  , p_source_73            IN NUMBER
111582 --Deferred Accounting End Date
111583  , p_source_77            IN DATE
111584 --Deferred Accounting Option
111585  , p_source_78            IN VARCHAR2
111586 --Deferred Accounting Start Date
111587  , p_source_79            IN DATE
111588 --Override Accounted Amount Indicator
111589  , p_source_80            IN VARCHAR2
111590  , p_source_80_meaning    IN VARCHAR2
111591 --Invoice Supplier Identifier
111592  , p_source_81            IN NUMBER
111593 --Invoice Supplier Site Identifier
111594  , p_source_82            IN NUMBER
111595 --Third Party Type
111596  , p_source_83            IN VARCHAR2
111597 --Parent Reversal Identifier
111598  , p_source_84            IN NUMBER
111599 --Invoice Distribution Tax Line Identifier
111600  , p_source_86            IN NUMBER
111601 --Invoice Distribution Tax Distribution Identifier from Tax
111602  , p_source_87            IN NUMBER
111603 --Invoice Distribution Summary Tax Line Identifier
111604  , p_source_88            IN NUMBER
111605 --Payables Upgrade Credit Encumbrance Type Identifier
111606  , p_source_89            IN NUMBER
111607 --Payables Upgrade Debit Encumbrance Type Identifier
111608  , p_source_90            IN NUMBER
111609 --Business Flow Accounts Payable Application Identifier
111613 --Business Flow Invoice Entity Code
111610  , p_source_91            IN NUMBER
111611 --Business Flow Invoice Distribution Type
111612  , p_source_92            IN VARCHAR2
111614  , p_source_93            IN VARCHAR2
111615 --Business Flow Invoice Distribution Identifier
111616  , p_source_94            IN NUMBER
111617 --Business Flow Invoice Identifier
111618  , p_source_95            IN NUMBER
111619 --Self-Assessed Tax Flag
111620  , p_source_142            IN VARCHAR2
111621  , p_source_142_meaning    IN VARCHAR2
111622 --Invoice Exchange Date
111623  , p_source_143            IN DATE
111624 --Invoice Exchange Rate
111625  , p_source_144            IN NUMBER
111626 --Invoice Exchange Rate Type
111627  , p_source_145            IN VARCHAR2
111628 )
111629 IS
111630 
111631 l_component_type              VARCHAR2(80);
111632 l_component_code              VARCHAR2(30);
111633 l_component_type_code         VARCHAR2(1);
111634 l_component_appl_id           INTEGER;
111635 l_amb_context_code            VARCHAR2(30);
111636 l_entity_code                 VARCHAR2(30);
111637 l_event_class_code            VARCHAR2(30);
111638 l_ae_header_id                NUMBER;
111639 l_event_type_code             VARCHAR2(30);
111640 l_line_definition_code        VARCHAR2(30);
111641 l_line_definition_owner_code  VARCHAR2(1);
111642 --
111643 -- adr variables
111644 l_segment                     VARCHAR2(30);
111645 l_ccid                        NUMBER;
111646 l_adr_transaction_coa_id      NUMBER;
111647 l_adr_accounting_coa_id       NUMBER;
111648 l_adr_flexfield_segment_code  VARCHAR2(30);
111649 l_adr_flex_value_set_id       NUMBER;
111650 l_adr_value_type_code         VARCHAR2(30);
111651 l_adr_value_combination_id    NUMBER;
111652 l_adr_value_segment_code      VARCHAR2(30);
111653 
111654 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
111655 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
111656 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
111657 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
111658 
111659 -- 4262811 Variables ------------------------------------------------------------------------------------------
111660 l_entered_amt_idx             NUMBER;
111661 l_accted_amt_idx              NUMBER;
111662 l_acc_rev_flag                VARCHAR2(1);
111663 l_accrual_line_num            NUMBER;
111664 l_tmp_amt                     NUMBER;
111665 l_acc_rev_natural_side_code   VARCHAR2(1);
111666 
111667 l_num_entries                 NUMBER;
111668 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
111669 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
111670 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
111671 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
111672 l_recog_line_1                NUMBER;
111673 l_recog_line_2                NUMBER;
111674 
111675 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
111676 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
111677 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
111678 
111679 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
111680 
111681 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
111682 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
111683 
111684 ---------------------------------------------------------------------------------------------------------------
111685 
111686 
111687 --
111688 -- bulk performance
111689 --
111690 l_balance_type_code           VARCHAR2(1);
111691 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
111692 l_log_module                  VARCHAR2(240);
111693 
111694 --
111695 -- Upgrade strategy
111696 --
111697 l_actual_upg_option           VARCHAR2(1);
111698 l_enc_upg_option           VARCHAR2(1);
111699 
111700 --
111701 BEGIN
111702 --
111703 IF g_log_enabled THEN
111704       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_188';
111705 END IF;
111706 --
111707 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
111708 
111709       trace
111710          (p_msg      => 'BEGIN of AcctLineType_188'
111711          ,p_level    => C_LEVEL_PROCEDURE
111712          ,p_module   => l_log_module);
111713 
111714 END IF;
111715 --
111716 l_component_type             := 'AMB_JLT';
111717 l_component_code             := 'AP_RECOV_TAX_DM';
111718 l_component_type_code        := 'S';
111719 l_component_appl_id          :=  200;
111720 l_amb_context_code           := 'DEFAULT';
111721 l_entity_code                := 'AP_INVOICES';
111722 l_event_class_code           := 'DEBIT MEMOS';
111723 l_event_type_code            := 'DEBIT MEMOS_ALL';
111724 l_line_definition_owner_code := 'S';
111725 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
111726 --
111727 l_balance_type_code          := 'A';
111728 l_segment                     := NULL;
111729 l_ccid                        := NULL;
111730 l_adr_transaction_coa_id      := NULL;
111731 l_adr_accounting_coa_id       := NULL;
111732 l_adr_flexfield_segment_code  := NULL;
111733 l_adr_flex_value_set_id       := NULL;
111734 l_adr_value_type_code         := NULL;
111735 l_adr_value_combination_id    := NULL;
111736 l_adr_value_segment_code      := NULL;
111737 
111738 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
111742 
111739 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
111740 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
111741 l_budgetary_control_flag     := 'N';
111743 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
111744 l_bflow_applied_to_amt       := NULL; -- 5132302
111745 l_entered_amt_idx            := NULL;          -- 4262811
111746 l_accted_amt_idx             := NULL;          -- 4262811
111747 l_acc_rev_flag               := NULL;          -- 4262811
111748 l_accrual_line_num           := NULL;          -- 4262811
111749 l_tmp_amt                    := NULL;          -- 4262811
111750 --
111751  
111752 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
111753     l_balance_type_code <> 'B' THEN
111754 IF NVL(p_source_33,'
111755 ') =  'REC_TAX' AND 
111756 NVL(p_source_142,'
111757 ') <>  'Y'
111758  THEN 
111759 
111760    --
111761    XLA_AE_LINES_PKG.SetNewLine;
111762 
111763    p_balance_type_code          := l_balance_type_code;
111764    -- set the flag so later we will know whether the gain loss line needs to be created
111765    
111766    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
111767      p_actual_flag :='A';
111768    END IF;
111769 
111770    --
111771    -- bulk performance
111772    --
111773    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
111774                                       p_header_num   => 0); -- 4262811
111775    --
111776    -- set accounting line options
111777    --
111778    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
111779            p_natural_side_code          => 'D'
111780          , p_gain_or_loss_flag          => 'N'
111781          , p_gl_transfer_mode_code      => 'S'
111782          , p_acct_entry_type_code       => 'A'
111783          , p_switch_side_flag           => 'Y'
111784          , p_merge_duplicate_code       => 'A'
111785          );
111786    --
111787    l_acc_rev_natural_side_code := 'C';  -- 4262811
111788    -- 
111789    --
111790    -- set accounting line type info
111791    --
111792    xla_ae_lines_pkg.SetAcctLineType
111793       (p_component_type             => l_component_type
111794       ,p_event_type_code            => l_event_type_code
111795       ,p_line_definition_owner_code => l_line_definition_owner_code
111796       ,p_line_definition_code       => l_line_definition_code
111797       ,p_accounting_line_code       => l_component_code
111798       ,p_accounting_line_type_code  => l_component_type_code
111799       ,p_accounting_line_appl_id    => l_component_appl_id
111800       ,p_amb_context_code           => l_amb_context_code
111801       ,p_entity_code                => l_entity_code
111802       ,p_event_class_code           => l_event_class_code);
111803    --
111804    -- set accounting class
111805    --
111806    xla_ae_lines_pkg.SetAcctClass(
111807            p_accounting_class_code  => 'RTAX'
111808          , p_ae_header_id           => l_ae_header_id
111809          );
111810 
111811    --
111812    -- set rounding class
111813    --
111814    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
111815                       'RTAX';
111816 
111817    --
111818    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
111819    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
111820    --
111821    -- bulk performance
111822    --
111823    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
111824 
111825    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
111826       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
111827 
111828    -- 4955764
111829    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
111830       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
111831 
111832    -- 4458381 Public Sector Enh
111833    
111834    --
111835    -- set accounting attributes for the line type
111836    --
111837    l_entered_amt_idx := 23;
111838    l_accted_amt_idx  := 28;
111839    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
111840    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
111841    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
111842    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
111843    l_rec_acct_attrs.array_num_value(2)  := 
111844 xla_ae_sources_pkg.GetSystemSourceNum(
111845    p_source_code           => 'XLA_EVENT_APPL_ID'
111846  , p_source_type_code      => 'Y'
111847  , p_source_application_id =>  602
111848 );
111849    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
111850    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
111851    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
111852    l_rec_acct_attrs.array_char_value(4)  := 
111853 xla_ae_sources_pkg.GetSystemSourceChar(
111854    p_source_code           => 'XLA_ENTITY_CODE'
111855  , p_source_type_code      => 'Y'
111856  , p_source_application_id =>  602
111857 );
111858    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
111859    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
111860    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
111861    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
111862    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
111866    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
111863    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
111864    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
111865    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
111867    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
111868    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
111869    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
111870    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
111871    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
111872    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
111873    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
111874    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
111875    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
111876    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
111877    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
111878    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
111879    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
111880    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
111881    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
111882    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
111883    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
111884    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
111885    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
111886    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
111887    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
111888    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
111889    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
111890    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
111891    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
111892    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
111893    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
111894    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
111895    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
111896    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
111897    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
111898    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
111899    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
111900    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
111901    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
111902    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
111903    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
111904    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
111905    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
111906    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
111907    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
111908    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
111909    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
111910    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
111911    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
111912    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
111913    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
111914    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
111915    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
111916    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
111917    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
111918    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
111919    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
111920    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
111921    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
111922    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
111923    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
111924    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
111925    l_rec_acct_attrs.array_num_value(38)  := p_source_86;
111926    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
111927    l_rec_acct_attrs.array_num_value(39)  := p_source_87;
111928    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
111929    l_rec_acct_attrs.array_num_value(40)  := p_source_88;
111930    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
111931    l_rec_acct_attrs.array_num_value(41)  := p_source_89;
111932    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
111933    l_rec_acct_attrs.array_num_value(42)  := p_source_90;
111934 
111935    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
111936    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
111937 
111938    ---------------------------------------------------------------------------------------------------------------
111939    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
111940    ---------------------------------------------------------------------------------------------------------------
111941    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
111942 
111943    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
111944    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
111948          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
111945 
111946    IF xla_accounting_cache_pkg.GetValueChar
111947          (p_source_code         => 'LEDGER_CATEGORY_CODE'
111949    AND l_bflow_method_code = 'PRIOR_ENTRY'
111950 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
111951    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
111952          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
111953        )
111954    THEN
111955          xla_ae_lines_pkg.BflowUpgEntry
111956            (p_business_method_code    => l_bflow_method_code
111957            ,p_business_class_code     => l_bflow_class_code
111958            ,p_balance_type            => l_balance_type_code);
111959    ELSE
111960       NULL;
111961 -- No business flow processing for business flow method of NONE.
111962    END IF;
111963 
111964    --
111965    -- call analytical criteria
111966    --
111967    
111968    --
111969    -- call description
111970    --
111971    
111972 xla_ae_lines_pkg.SetLineDescription(
111973    p_ae_header_id => l_ae_header_id
111974   ,p_description  => Description_1 (
111975      p_application_id         => p_application_id
111976    , p_ae_header_id           => l_ae_header_id 
111977 , p_source_1 => p_source_1
111978    )
111979 );
111980 
111981 
111982    --
111983    -- call ADRs
111984    -- Bug 4922099
111985    --
111986    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
111987         (NVL(l_actual_upg_option, 'N') = 'O') OR
111988         (NVL(l_enc_upg_option, 'N') = 'O')
111989       )
111990    THEN
111991    NULL;
111992    --
111993    --
111994    
111995   l_ccid := AcctDerRule_33(
111996            p_application_id           => p_application_id
111997          , p_ae_header_id             => l_ae_header_id 
111998 , p_source_30 => p_source_30
111999          , x_transaction_coa_id       => l_adr_transaction_coa_id
112000          , x_accounting_coa_id        => l_adr_accounting_coa_id
112001          , x_value_type_code          => l_adr_value_type_code
112002          , p_side                     => 'NA'
112003    );
112004 
112005    xla_ae_lines_pkg.set_ccid(
112006     p_code_combination_id          => l_ccid
112007   , p_value_type_code              => l_adr_value_type_code
112008   , p_transaction_coa_id           => l_adr_transaction_coa_id
112009   , p_accounting_coa_id            => l_adr_accounting_coa_id
112010   , p_adr_code                     => 'AP_INVOICE_DIST'
112011   , p_adr_type_code                => 'S'
112012   , p_component_type               => l_component_type
112013   , p_component_code               => l_component_code
112014   , p_component_type_code          => l_component_type_code
112015   , p_component_appl_id            => l_component_appl_id
112016   , p_amb_context_code             => l_amb_context_code
112017   , p_side                         => 'NA'
112018   );
112019 
112020 
112021    --
112022    --
112023    END IF;
112024    --
112025    -- Bug 4922099
112026    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
112027           (NVL(l_enc_upg_option, 'N') = 'O')
112028         ) AND
112029         (l_bflow_method_code = 'PRIOR_ENTRY')
112030       )
112031    THEN
112032       IF
112033       --
112034       1 = 2
112035       --
112036       THEN
112037       xla_accounting_err_pkg.build_message
112038                                     (p_appli_s_name            => 'XLA'
112039                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
112040                                     ,p_token_1                 => 'LINE_NUMBER'
112041                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
112042                                     ,p_token_2                 => 'LINE_TYPE_NAME'
112043                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
112044                                                                              l_component_type
112045                                                                             ,l_component_code
112046                                                                             ,l_component_type_code
112047                                                                             ,l_component_appl_id
112048                                                                             ,l_amb_context_code
112049                                                                             ,l_entity_code
112050                                                                             ,l_event_class_code
112051                                                                            )
112052                                     ,p_token_3                 => 'OWNER'
112053                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
112054                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
112055                                                                           ,p_lookup_code    => l_component_type_code
112056                                                                          )
112057                                     ,p_token_4                 => 'PRODUCT_NAME'
112058                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
112059                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
112060                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
112064 
112061                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
112062                                     ,p_ae_header_id            =>  NULL
112063                                        );
112065         IF (C_LEVEL_ERROR>= g_log_level) THEN
112066                  trace
112067                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
112068                       ,p_level    => C_LEVEL_ERROR
112069                       ,p_module   => l_log_module);
112070         END IF;
112071       END IF;
112072    END IF;
112073    --
112074    --
112075    ------------------------------------------------------------------------------------------------
112076    -- 4219869 Business Flow
112077    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
112078    -- Prior Entry.  Currently, the following code is always generated.
112079    ------------------------------------------------------------------------------------------------
112080    XLA_AE_LINES_PKG.ValidateCurrentLine;
112081 
112082    ------------------------------------------------------------------------------------
112083    -- 4219869 Business Flow
112084    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
112085    ------------------------------------------------------------------------------------
112086    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
112087 
112088    ----------------------------------------------------------------------------------
112089    -- 4219869 Business Flow
112090    -- Update journal entry status -- Need to generate this within IF <condition>
112091    ----------------------------------------------------------------------------------
112092    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
112093          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
112094          ,p_balance_type_code => l_balance_type_code
112095          );
112096 
112097    -------------------------------------------------------------------------------------------
112098    -- 4262811 - Generate the Accrual Reversal lines
112099    -------------------------------------------------------------------------------------------
112100    BEGIN
112101       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
112102                               (g_array_event(p_event_id).array_value_num('header_index'));
112103       IF l_acc_rev_flag IS NULL THEN
112104          l_acc_rev_flag := 'N';
112105       END IF;
112106    EXCEPTION
112107       WHEN OTHERS THEN
112108          l_acc_rev_flag := 'N';
112109    END;
112110    --
112111    IF (l_acc_rev_flag = 'Y') THEN
112112 
112113        -- 4645092  ------------------------------------------------------------------------------
112114        -- To allow MPA report to determine if it should generate report process
112115        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
112116        ------------------------------------------------------------------------------------------
112117 
112118        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
112119        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
112120    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
112121    -- call ADRs
112122    -- Bug 4922099
112123    --
112124    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
112125         (NVL(l_actual_upg_option, 'N') = 'O') OR
112126         (NVL(l_enc_upg_option, 'N') = 'O')
112127       )
112128    THEN
112129    NULL;
112130    --
112131    --
112132    
112133   l_ccid := AcctDerRule_33(
112134            p_application_id           => p_application_id
112135          , p_ae_header_id             => l_ae_header_id 
112136 , p_source_30 => p_source_30
112137          , x_transaction_coa_id       => l_adr_transaction_coa_id
112138          , x_accounting_coa_id        => l_adr_accounting_coa_id
112139          , x_value_type_code          => l_adr_value_type_code
112140          , p_side                     => 'NA'
112141    );
112142 
112143    xla_ae_lines_pkg.set_ccid(
112144     p_code_combination_id          => l_ccid
112145   , p_value_type_code              => l_adr_value_type_code
112146   , p_transaction_coa_id           => l_adr_transaction_coa_id
112147   , p_accounting_coa_id            => l_adr_accounting_coa_id
112148   , p_adr_code                     => 'AP_INVOICE_DIST'
112149   , p_adr_type_code                => 'S'
112150   , p_component_type               => l_component_type
112151   , p_component_code               => l_component_code
112152   , p_component_type_code          => l_component_type_code
112153   , p_component_appl_id            => l_component_appl_id
112154   , p_amb_context_code             => l_amb_context_code
112155   , p_side                         => 'NA'
112156   );
112157 
112158 
112159    --
112160    --
112161    END IF;
112162 
112163        --
112164        -- Update the line information that should be overwritten
112165        --
112166        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
112167                                          p_header_num   => 1);
112168        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
112169 
112170        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
112171 
112172        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
112176       --
112173           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
112174        END IF;
112175 
112177       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
112178       --
112179       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
112180           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
112181       ELSE
112182           ---------------------------------------------------------------------------------------------------
112183           -- 4262811a Switch Sign
112184           ---------------------------------------------------------------------------------------------------
112185           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
112186           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
112187                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
112188           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
112189                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
112190           -- 5132302
112191           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
112192                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
112193 
112194       END IF;
112195 
112196       -- 4955764
112197       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
112198       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
112199 
112200 
112201       XLA_AE_LINES_PKG.ValidateCurrentLine;
112202       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
112203 
112204       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
112205                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
112206                ,p_balance_type_code => l_balance_type_code);
112207 
112208    END IF;
112209 
112210    -----------------------------------------------------------------------------------------
112211    -- 4262811 Multiperiod Accounting
112212    -----------------------------------------------------------------------------------------
112213      -- No MPA option is assigned.
112214 
112215 
112216 END IF;
112217 END IF;
112218 --
112219 
112220 --
112221 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112222    trace
112223       (p_msg      => 'END of AcctLineType_188'
112224       ,p_level    => C_LEVEL_PROCEDURE
112225       ,p_module   => l_log_module);
112226 END IF;
112227 --
112228 EXCEPTION
112229   WHEN xla_exceptions_pkg.application_exception THEN
112230       RAISE;
112231   WHEN OTHERS THEN
112232        xla_exceptions_pkg.raise_message
112233            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_188');
112234 END AcctLineType_188;
112235 --
112236 
112237 ---------------------------------------
112238 --
112239 -- PRIVATE FUNCTION
112240 --         AcctLineType_189
112241 --
112242 ---------------------------------------
112243 PROCEDURE AcctLineType_189 (
112244   p_application_id        IN NUMBER
112245  ,p_event_id              IN NUMBER
112246  ,p_calculate_acctd_flag  IN VARCHAR2
112247  ,p_calculate_g_l_flag    IN VARCHAR2
112248  ,p_actual_flag           IN OUT VARCHAR2
112249  ,p_balance_type_code     OUT VARCHAR2
112250  ,p_gain_or_loss_ref      OUT VARCHAR2
112251  
112252 --Invoice Distribution Description
112253  , p_source_1            IN VARCHAR2
112254 --Invoice Distribution Ledger Amount
112255  , p_source_21            IN NUMBER
112256 --Invoice Distribution Account
112257  , p_source_30            IN NUMBER
112258 --Invoice Distribution Type
112259  , p_source_33            IN VARCHAR2
112260  , p_source_33_meaning    IN VARCHAR2
112261 --Accounting Reversal Indicator
112262  , p_source_53            IN VARCHAR2
112263 --Distribution Link Type
112264  , p_source_55            IN VARCHAR2
112265 --Allocation to Main Distribution Identifier
112266  , p_source_57            IN NUMBER
112267 --Invoice Identifier
112268  , p_source_58            IN NUMBER
112269 --Invoice Distribution Identifier
112270  , p_source_64            IN NUMBER
112271 --Payables Encumbrance Upgrade Credit Account
112272  , p_source_65            IN NUMBER
112273 --Payables Encumbrance Upgrade Credit Amount
112274  , p_source_66            IN NUMBER
112275 --Invoice Currency Code
112276  , p_source_67            IN VARCHAR2
112277 --Payables Encumbrance Upgrade Credit Base Amount
112278  , p_source_68            IN NUMBER
112279 --Payables Encumbrance Upgrade Debit Account
112280  , p_source_69            IN NUMBER
112281 --Payables Encumbrance Upgrade Debit Amount
112282  , p_source_70            IN NUMBER
112283 --Payables Encumbrance Upgrade Debit Base Amount
112284  , p_source_71            IN NUMBER
112285 --Payables Encumbrance Upgrade Option
112286  , p_source_72            IN VARCHAR2
112287 --Invoice Distribution Amount
112288  , p_source_73            IN NUMBER
112289 --Deferred Accounting End Date
112290  , p_source_77            IN DATE
112291 --Deferred Accounting Option
112292  , p_source_78            IN VARCHAR2
112293 --Deferred Accounting Start Date
112294  , p_source_79            IN DATE
112298 --Invoice Supplier Identifier
112295 --Override Accounted Amount Indicator
112296  , p_source_80            IN VARCHAR2
112297  , p_source_80_meaning    IN VARCHAR2
112299  , p_source_81            IN NUMBER
112300 --Invoice Supplier Site Identifier
112301  , p_source_82            IN NUMBER
112302 --Third Party Type
112303  , p_source_83            IN VARCHAR2
112304 --Parent Reversal Identifier
112305  , p_source_84            IN NUMBER
112306 --Invoice Distribution Statistical Amount
112307  , p_source_85            IN NUMBER
112308 --Invoice Distribution Tax Line Identifier
112309  , p_source_86            IN NUMBER
112310 --Invoice Distribution Tax Distribution Identifier from Tax
112311  , p_source_87            IN NUMBER
112312 --Invoice Distribution Summary Tax Line Identifier
112313  , p_source_88            IN NUMBER
112314 --Payables Upgrade Credit Encumbrance Type Identifier
112315  , p_source_89            IN NUMBER
112316 --Payables Upgrade Debit Encumbrance Type Identifier
112317  , p_source_90            IN NUMBER
112318 --Business Flow Accounts Payable Application Identifier
112319  , p_source_91            IN NUMBER
112320 --Business Flow Invoice Distribution Type
112321  , p_source_92            IN VARCHAR2
112322 --Business Flow Invoice Entity Code
112323  , p_source_93            IN VARCHAR2
112324 --Business Flow Invoice Distribution Identifier
112325  , p_source_94            IN NUMBER
112326 --Business Flow Invoice Identifier
112327  , p_source_95            IN NUMBER
112328 --Self-Assessed Tax Flag
112329  , p_source_142            IN VARCHAR2
112330  , p_source_142_meaning    IN VARCHAR2
112331 --Invoice Exchange Date
112332  , p_source_143            IN DATE
112333 --Invoice Exchange Rate
112334  , p_source_144            IN NUMBER
112335 --Invoice Exchange Rate Type
112336  , p_source_145            IN VARCHAR2
112337 )
112338 IS
112339 
112340 l_component_type              VARCHAR2(80);
112341 l_component_code              VARCHAR2(30);
112342 l_component_type_code         VARCHAR2(1);
112343 l_component_appl_id           INTEGER;
112344 l_amb_context_code            VARCHAR2(30);
112345 l_entity_code                 VARCHAR2(30);
112346 l_event_class_code            VARCHAR2(30);
112347 l_ae_header_id                NUMBER;
112348 l_event_type_code             VARCHAR2(30);
112349 l_line_definition_code        VARCHAR2(30);
112350 l_line_definition_owner_code  VARCHAR2(1);
112351 --
112352 -- adr variables
112353 l_segment                     VARCHAR2(30);
112354 l_ccid                        NUMBER;
112355 l_adr_transaction_coa_id      NUMBER;
112356 l_adr_accounting_coa_id       NUMBER;
112357 l_adr_flexfield_segment_code  VARCHAR2(30);
112358 l_adr_flex_value_set_id       NUMBER;
112359 l_adr_value_type_code         VARCHAR2(30);
112360 l_adr_value_combination_id    NUMBER;
112361 l_adr_value_segment_code      VARCHAR2(30);
112362 
112363 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
112364 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
112365 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
112366 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
112367 
112368 -- 4262811 Variables ------------------------------------------------------------------------------------------
112369 l_entered_amt_idx             NUMBER;
112370 l_accted_amt_idx              NUMBER;
112371 l_acc_rev_flag                VARCHAR2(1);
112372 l_accrual_line_num            NUMBER;
112373 l_tmp_amt                     NUMBER;
112374 l_acc_rev_natural_side_code   VARCHAR2(1);
112375 
112376 l_num_entries                 NUMBER;
112377 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
112378 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
112379 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
112380 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
112381 l_recog_line_1                NUMBER;
112382 l_recog_line_2                NUMBER;
112383 
112384 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
112385 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
112386 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
112387 
112388 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
112389 
112390 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
112391 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
112392 
112393 ---------------------------------------------------------------------------------------------------------------
112394 
112395 
112396 --
112397 -- bulk performance
112398 --
112399 l_balance_type_code           VARCHAR2(1);
112400 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
112401 l_log_module                  VARCHAR2(240);
112402 
112403 --
112404 -- Upgrade strategy
112405 --
112406 l_actual_upg_option           VARCHAR2(1);
112407 l_enc_upg_option           VARCHAR2(1);
112408 
112409 --
112410 BEGIN
112411 --
112412 IF g_log_enabled THEN
112413       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_189';
112414 END IF;
112415 --
112416 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112417 
112418       trace
112419          (p_msg      => 'BEGIN of AcctLineType_189'
112420          ,p_level    => C_LEVEL_PROCEDURE
112421          ,p_module   => l_log_module);
112422 
112423 END IF;
112424 --
112425 l_component_type             := 'AMB_JLT';
112429 l_amb_context_code           := 'DEFAULT';
112426 l_component_code             := 'AP_RECOV_TAX_INV';
112427 l_component_type_code        := 'S';
112428 l_component_appl_id          :=  200;
112430 l_entity_code                := 'AP_INVOICES';
112431 l_event_class_code           := 'INVOICES';
112432 l_event_type_code            := 'INVOICES_ALL';
112433 l_line_definition_owner_code := 'S';
112434 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
112435 --
112436 l_balance_type_code          := 'A';
112437 l_segment                     := NULL;
112438 l_ccid                        := NULL;
112439 l_adr_transaction_coa_id      := NULL;
112440 l_adr_accounting_coa_id       := NULL;
112441 l_adr_flexfield_segment_code  := NULL;
112442 l_adr_flex_value_set_id       := NULL;
112443 l_adr_value_type_code         := NULL;
112444 l_adr_value_combination_id    := NULL;
112445 l_adr_value_segment_code      := NULL;
112446 
112447 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
112448 l_bflow_class_code           := 'AP_DEF_REC_TAX';    -- 4219869 Business Flow
112449 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
112450 l_budgetary_control_flag     := 'N';
112451 
112452 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
112453 l_bflow_applied_to_amt       := NULL; -- 5132302
112454 l_entered_amt_idx            := NULL;          -- 4262811
112455 l_accted_amt_idx             := NULL;          -- 4262811
112456 l_acc_rev_flag               := NULL;          -- 4262811
112457 l_accrual_line_num           := NULL;          -- 4262811
112458 l_tmp_amt                    := NULL;          -- 4262811
112459 --
112460  
112461 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
112462     l_balance_type_code <> 'B' THEN
112463 IF NVL(p_source_33,'
112464 ') =  'REC_TAX' AND 
112465 NVL(p_source_142,'
112466 ') <>  'Y'
112467  THEN 
112468 
112469    --
112470    XLA_AE_LINES_PKG.SetNewLine;
112471 
112472    p_balance_type_code          := l_balance_type_code;
112473    -- set the flag so later we will know whether the gain loss line needs to be created
112474    
112475    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
112476      p_actual_flag :='A';
112477    END IF;
112478 
112479    --
112480    -- bulk performance
112481    --
112482    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
112483                                       p_header_num   => 0); -- 4262811
112484    --
112485    -- set accounting line options
112486    --
112487    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
112488            p_natural_side_code          => 'D'
112489          , p_gain_or_loss_flag          => 'N'
112490          , p_gl_transfer_mode_code      => 'S'
112491          , p_acct_entry_type_code       => 'A'
112492          , p_switch_side_flag           => 'Y'
112493          , p_merge_duplicate_code       => 'A'
112494          );
112495    --
112496    l_acc_rev_natural_side_code := 'C';  -- 4262811
112497    -- 
112498    --
112499    -- set accounting line type info
112500    --
112501    xla_ae_lines_pkg.SetAcctLineType
112502       (p_component_type             => l_component_type
112503       ,p_event_type_code            => l_event_type_code
112504       ,p_line_definition_owner_code => l_line_definition_owner_code
112505       ,p_line_definition_code       => l_line_definition_code
112506       ,p_accounting_line_code       => l_component_code
112507       ,p_accounting_line_type_code  => l_component_type_code
112508       ,p_accounting_line_appl_id    => l_component_appl_id
112509       ,p_amb_context_code           => l_amb_context_code
112510       ,p_entity_code                => l_entity_code
112511       ,p_event_class_code           => l_event_class_code);
112512    --
112513    -- set accounting class
112514    --
112515    xla_ae_lines_pkg.SetAcctClass(
112516            p_accounting_class_code  => 'RTAX'
112517          , p_ae_header_id           => l_ae_header_id
112518          );
112519 
112520    --
112521    -- set rounding class
112522    --
112523    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
112524                       'RTAX';
112525 
112526    --
112527    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
112528    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
112529    --
112530    -- bulk performance
112531    --
112532    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
112533 
112534    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
112535       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
112536 
112537    -- 4955764
112538    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
112539       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
112540 
112541    -- 4458381 Public Sector Enh
112542    
112543    --
112544    -- set accounting attributes for the line type
112545    --
112546    l_entered_amt_idx := 24;
112547    l_accted_amt_idx  := 29;
112548    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
112549    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
112550    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
112551    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
112555  , p_source_type_code      => 'Y'
112552    l_rec_acct_attrs.array_num_value(2)  := 
112553 xla_ae_sources_pkg.GetSystemSourceNum(
112554    p_source_code           => 'XLA_EVENT_APPL_ID'
112556  , p_source_application_id =>  602
112557 );
112558    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
112559    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
112560    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
112561    l_rec_acct_attrs.array_char_value(4)  := 
112562 xla_ae_sources_pkg.GetSystemSourceChar(
112563    p_source_code           => 'XLA_ENTITY_CODE'
112564  , p_source_type_code      => 'Y'
112565  , p_source_application_id =>  602
112566 );
112567    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
112568    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
112569    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
112570    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
112571    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
112572    l_rec_acct_attrs.array_num_value(7)  := p_source_73;
112573    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
112574    l_rec_acct_attrs.array_num_value(8)  := p_source_91;
112575    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
112576    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
112577    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
112578    l_rec_acct_attrs.array_char_value(10)  := p_source_93;
112579    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
112580    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
112581    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
112582    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_95);
112583    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
112584    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_64);
112585    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
112586    l_rec_acct_attrs.array_char_value(14)  := p_source_55;
112587    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
112588    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
112589    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
112590    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
112591    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
112592    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
112593    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
112594    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
112595    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
112596    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
112597    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
112598    l_rec_acct_attrs.array_num_value(20)  := p_source_70;
112599    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
112600    l_rec_acct_attrs.array_char_value(21)  := p_source_67;
112601    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
112602    l_rec_acct_attrs.array_num_value(22)  := p_source_71;
112603    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
112604    l_rec_acct_attrs.array_char_value(23)  := p_source_72;
112605    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
112606    l_rec_acct_attrs.array_num_value(24)  := p_source_73;
112607    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
112608    l_rec_acct_attrs.array_char_value(25)  := p_source_67;
112609    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
112610    l_rec_acct_attrs.array_date_value(26)  := p_source_143;
112611    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
112612    l_rec_acct_attrs.array_num_value(27)  := p_source_144;
112613    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
112614    l_rec_acct_attrs.array_char_value(28)  := p_source_145;
112615    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
112616    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
112617    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
112618    l_rec_acct_attrs.array_date_value(30)  := p_source_77;
112619    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
112620    l_rec_acct_attrs.array_char_value(31)  := p_source_78;
112621    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
112622    l_rec_acct_attrs.array_date_value(32)  := p_source_79;
112623    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
112624    l_rec_acct_attrs.array_char_value(33)  := p_source_80;
112625    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
112626    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
112627    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
112628    l_rec_acct_attrs.array_num_value(35)  := p_source_82;
112629    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
112630    l_rec_acct_attrs.array_char_value(36)  := p_source_83;
112631    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
112632    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_84);
112633    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
112634    l_rec_acct_attrs.array_char_value(38)  := p_source_55;
112635    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
112636    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
112637    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
112638    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
112639    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
112640    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
112644    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
112641    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
112642    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
112643    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
112645    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
112646    l_rec_acct_attrs.array_num_value(44)  := p_source_90;
112647 
112648    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
112649    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
112650 
112651    ---------------------------------------------------------------------------------------------------------------
112652    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
112653    ---------------------------------------------------------------------------------------------------------------
112654    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
112655 
112656    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
112657    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
112658 
112659    IF xla_accounting_cache_pkg.GetValueChar
112660          (p_source_code         => 'LEDGER_CATEGORY_CODE'
112661          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
112662    AND l_bflow_method_code = 'PRIOR_ENTRY'
112663 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
112664    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
112665          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
112666        )
112667    THEN
112668          xla_ae_lines_pkg.BflowUpgEntry
112669            (p_business_method_code    => l_bflow_method_code
112670            ,p_business_class_code     => l_bflow_class_code
112671            ,p_balance_type            => l_balance_type_code);
112672    ELSE
112673       NULL;
112674 -- No business flow processing for business flow method of NONE.
112675    END IF;
112676 
112677    --
112678    -- call analytical criteria
112679    --
112680    
112681    --
112682    -- call description
112683    --
112684    
112685 xla_ae_lines_pkg.SetLineDescription(
112686    p_ae_header_id => l_ae_header_id
112687   ,p_description  => Description_1 (
112688      p_application_id         => p_application_id
112689    , p_ae_header_id           => l_ae_header_id 
112690 , p_source_1 => p_source_1
112691    )
112692 );
112693 
112694 
112695    --
112696    -- call ADRs
112697    -- Bug 4922099
112698    --
112699    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
112700         (NVL(l_actual_upg_option, 'N') = 'O') OR
112701         (NVL(l_enc_upg_option, 'N') = 'O')
112702       )
112703    THEN
112704    NULL;
112705    --
112706    --
112707    
112708   l_ccid := AcctDerRule_33(
112709            p_application_id           => p_application_id
112710          , p_ae_header_id             => l_ae_header_id 
112711 , p_source_30 => p_source_30
112712          , x_transaction_coa_id       => l_adr_transaction_coa_id
112713          , x_accounting_coa_id        => l_adr_accounting_coa_id
112714          , x_value_type_code          => l_adr_value_type_code
112715          , p_side                     => 'NA'
112716    );
112717 
112718    xla_ae_lines_pkg.set_ccid(
112719     p_code_combination_id          => l_ccid
112720   , p_value_type_code              => l_adr_value_type_code
112721   , p_transaction_coa_id           => l_adr_transaction_coa_id
112722   , p_accounting_coa_id            => l_adr_accounting_coa_id
112723   , p_adr_code                     => 'AP_INVOICE_DIST'
112724   , p_adr_type_code                => 'S'
112725   , p_component_type               => l_component_type
112726   , p_component_code               => l_component_code
112727   , p_component_type_code          => l_component_type_code
112728   , p_component_appl_id            => l_component_appl_id
112729   , p_amb_context_code             => l_amb_context_code
112730   , p_side                         => 'NA'
112731   );
112732 
112733 
112734    --
112735    --
112736    END IF;
112737    --
112738    -- Bug 4922099
112739    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
112740           (NVL(l_enc_upg_option, 'N') = 'O')
112741         ) AND
112742         (l_bflow_method_code = 'PRIOR_ENTRY')
112743       )
112744    THEN
112745       IF
112746       --
112747       1 = 2
112748       --
112749       THEN
112750       xla_accounting_err_pkg.build_message
112751                                     (p_appli_s_name            => 'XLA'
112752                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
112753                                     ,p_token_1                 => 'LINE_NUMBER'
112754                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
112755                                     ,p_token_2                 => 'LINE_TYPE_NAME'
112756                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
112757                                                                              l_component_type
112758                                                                             ,l_component_code
112759                                                                             ,l_component_type_code
112763                                                                             ,l_event_class_code
112760                                                                             ,l_component_appl_id
112761                                                                             ,l_amb_context_code
112762                                                                             ,l_entity_code
112764                                                                            )
112765                                     ,p_token_3                 => 'OWNER'
112766                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
112767                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
112768                                                                           ,p_lookup_code    => l_component_type_code
112769                                                                          )
112770                                     ,p_token_4                 => 'PRODUCT_NAME'
112771                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
112772                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
112773                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
112774                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
112775                                     ,p_ae_header_id            =>  NULL
112776                                        );
112777 
112778         IF (C_LEVEL_ERROR>= g_log_level) THEN
112779                  trace
112780                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
112781                       ,p_level    => C_LEVEL_ERROR
112782                       ,p_module   => l_log_module);
112783         END IF;
112784       END IF;
112785    END IF;
112786    --
112787    --
112788    ------------------------------------------------------------------------------------------------
112789    -- 4219869 Business Flow
112790    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
112791    -- Prior Entry.  Currently, the following code is always generated.
112792    ------------------------------------------------------------------------------------------------
112793    XLA_AE_LINES_PKG.ValidateCurrentLine;
112794 
112795    ------------------------------------------------------------------------------------
112796    -- 4219869 Business Flow
112797    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
112798    ------------------------------------------------------------------------------------
112799    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
112800 
112801    ----------------------------------------------------------------------------------
112802    -- 4219869 Business Flow
112803    -- Update journal entry status -- Need to generate this within IF <condition>
112804    ----------------------------------------------------------------------------------
112805    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
112806          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
112807          ,p_balance_type_code => l_balance_type_code
112808          );
112809 
112810    -------------------------------------------------------------------------------------------
112811    -- 4262811 - Generate the Accrual Reversal lines
112812    -------------------------------------------------------------------------------------------
112813    BEGIN
112814       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
112815                               (g_array_event(p_event_id).array_value_num('header_index'));
112816       IF l_acc_rev_flag IS NULL THEN
112817          l_acc_rev_flag := 'N';
112818       END IF;
112819    EXCEPTION
112820       WHEN OTHERS THEN
112821          l_acc_rev_flag := 'N';
112822    END;
112823    --
112824    IF (l_acc_rev_flag = 'Y') THEN
112825 
112826        -- 4645092  ------------------------------------------------------------------------------
112827        -- To allow MPA report to determine if it should generate report process
112828        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
112829        ------------------------------------------------------------------------------------------
112830 
112831        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
112832        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
112833    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
112834    -- call ADRs
112835    -- Bug 4922099
112836    --
112837    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
112838         (NVL(l_actual_upg_option, 'N') = 'O') OR
112839         (NVL(l_enc_upg_option, 'N') = 'O')
112840       )
112841    THEN
112842    NULL;
112843    --
112844    --
112845    
112846   l_ccid := AcctDerRule_33(
112847            p_application_id           => p_application_id
112848          , p_ae_header_id             => l_ae_header_id 
112849 , p_source_30 => p_source_30
112850          , x_transaction_coa_id       => l_adr_transaction_coa_id
112851          , x_accounting_coa_id        => l_adr_accounting_coa_id
112852          , x_value_type_code          => l_adr_value_type_code
112853          , p_side                     => 'NA'
112854    );
112855 
112856    xla_ae_lines_pkg.set_ccid(
112857     p_code_combination_id          => l_ccid
112858   , p_value_type_code              => l_adr_value_type_code
112862   , p_adr_type_code                => 'S'
112859   , p_transaction_coa_id           => l_adr_transaction_coa_id
112860   , p_accounting_coa_id            => l_adr_accounting_coa_id
112861   , p_adr_code                     => 'AP_INVOICE_DIST'
112863   , p_component_type               => l_component_type
112864   , p_component_code               => l_component_code
112865   , p_component_type_code          => l_component_type_code
112866   , p_component_appl_id            => l_component_appl_id
112867   , p_amb_context_code             => l_amb_context_code
112868   , p_side                         => 'NA'
112869   );
112870 
112871 
112872    --
112873    --
112874    END IF;
112875 
112876        --
112877        -- Update the line information that should be overwritten
112878        --
112879        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
112880                                          p_header_num   => 1);
112881        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
112882 
112883        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
112884 
112885        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
112886           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
112887        END IF;
112888 
112889       --
112890       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
112891       --
112892       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
112893           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
112894       ELSE
112895           ---------------------------------------------------------------------------------------------------
112896           -- 4262811a Switch Sign
112897           ---------------------------------------------------------------------------------------------------
112898           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
112899           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
112900                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
112901           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
112902                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
112903           -- 5132302
112904           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
112905                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
112906 
112907       END IF;
112908 
112909       -- 4955764
112910       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
112911       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
112912 
112913 
112914       XLA_AE_LINES_PKG.ValidateCurrentLine;
112915       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
112916 
112917       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
112918                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
112919                ,p_balance_type_code => l_balance_type_code);
112920 
112921    END IF;
112922 
112923    -----------------------------------------------------------------------------------------
112924    -- 4262811 Multiperiod Accounting
112925    -----------------------------------------------------------------------------------------
112926      -- No MPA option is assigned.
112927 
112928 
112929 END IF;
112930 END IF;
112931 --
112932 
112933 --
112934 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
112935    trace
112936       (p_msg      => 'END of AcctLineType_189'
112937       ,p_level    => C_LEVEL_PROCEDURE
112938       ,p_module   => l_log_module);
112939 END IF;
112940 --
112941 EXCEPTION
112942   WHEN xla_exceptions_pkg.application_exception THEN
112943       RAISE;
112944   WHEN OTHERS THEN
112945        xla_exceptions_pkg.raise_message
112946            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_189');
112947 END AcctLineType_189;
112948 --
112949 
112950 ---------------------------------------
112951 --
112952 -- PRIVATE FUNCTION
112953 --         AcctLineType_190
112954 --
112955 ---------------------------------------
112956 PROCEDURE AcctLineType_190 (
112957   p_application_id        IN NUMBER
112958  ,p_event_id              IN NUMBER
112959  ,p_calculate_acctd_flag  IN VARCHAR2
112960  ,p_calculate_g_l_flag    IN VARCHAR2
112961  ,p_actual_flag           IN OUT VARCHAR2
112962  ,p_balance_type_code     OUT VARCHAR2
112963  ,p_gain_or_loss_ref      OUT VARCHAR2
112964  
112965 --Invoice Distribution Description
112966  , p_source_1            IN VARCHAR2
112967 --Invoice Distribution Ledger Amount
112968  , p_source_21            IN NUMBER
112969 --Invoice Distribution Account
112970  , p_source_30            IN NUMBER
112971 --Invoice Distribution Type
112972  , p_source_33            IN VARCHAR2
112973  , p_source_33_meaning    IN VARCHAR2
112974 --Accounting Reversal Indicator
112975  , p_source_53            IN VARCHAR2
112976 --Distribution Link Type
112977  , p_source_55            IN VARCHAR2
112978 --Allocation to Main Distribution Identifier
112982 --Invoice Distribution Identifier
112979  , p_source_57            IN NUMBER
112980 --Invoice Identifier
112981  , p_source_58            IN NUMBER
112983  , p_source_64            IN NUMBER
112984 --Payables Encumbrance Upgrade Credit Account
112985  , p_source_65            IN NUMBER
112986 --Payables Encumbrance Upgrade Credit Amount
112987  , p_source_66            IN NUMBER
112988 --Invoice Currency Code
112989  , p_source_67            IN VARCHAR2
112990 --Payables Encumbrance Upgrade Credit Base Amount
112991  , p_source_68            IN NUMBER
112992 --Payables Encumbrance Upgrade Debit Account
112993  , p_source_69            IN NUMBER
112994 --Payables Encumbrance Upgrade Debit Amount
112995  , p_source_70            IN NUMBER
112996 --Payables Encumbrance Upgrade Debit Base Amount
112997  , p_source_71            IN NUMBER
112998 --Payables Encumbrance Upgrade Option
112999  , p_source_72            IN VARCHAR2
113000 --Invoice Distribution Amount
113001  , p_source_73            IN NUMBER
113002 --Deferred Accounting End Date
113003  , p_source_77            IN DATE
113004 --Deferred Accounting Option
113005  , p_source_78            IN VARCHAR2
113006 --Deferred Accounting Start Date
113007  , p_source_79            IN DATE
113008 --Override Accounted Amount Indicator
113009  , p_source_80            IN VARCHAR2
113010  , p_source_80_meaning    IN VARCHAR2
113011 --Invoice Supplier Identifier
113012  , p_source_81            IN NUMBER
113013 --Invoice Supplier Site Identifier
113014  , p_source_82            IN NUMBER
113015 --Third Party Type
113016  , p_source_83            IN VARCHAR2
113017 --Parent Reversal Identifier
113018  , p_source_84            IN NUMBER
113019 --Invoice Distribution Statistical Amount
113020  , p_source_85            IN NUMBER
113021 --Invoice Distribution Tax Line Identifier
113022  , p_source_86            IN NUMBER
113023 --Invoice Distribution Tax Distribution Identifier from Tax
113024  , p_source_87            IN NUMBER
113025 --Invoice Distribution Summary Tax Line Identifier
113026  , p_source_88            IN NUMBER
113027 --Payables Upgrade Credit Encumbrance Type Identifier
113028  , p_source_89            IN NUMBER
113029 --Payables Upgrade Debit Encumbrance Type Identifier
113030  , p_source_90            IN NUMBER
113031 --Business Flow Accounts Payable Application Identifier
113032  , p_source_91            IN NUMBER
113033 --Business Flow Invoice Distribution Type
113034  , p_source_92            IN VARCHAR2
113035 --Business Flow Invoice Entity Code
113036  , p_source_93            IN VARCHAR2
113037 --Business Flow Invoice Distribution Identifier
113038  , p_source_94            IN NUMBER
113039 --Business Flow Invoice Identifier
113040  , p_source_95            IN NUMBER
113041 --Deferred Recoverable Tax Option
113042  , p_source_137            IN VARCHAR2
113043  , p_source_137_meaning    IN VARCHAR2
113044 --Self-Assessed Tax Flag
113045  , p_source_142            IN VARCHAR2
113046  , p_source_142_meaning    IN VARCHAR2
113047 --Invoice Exchange Date
113048  , p_source_143            IN DATE
113049 --Invoice Exchange Rate
113050  , p_source_144            IN NUMBER
113051 --Invoice Exchange Rate Type
113052  , p_source_145            IN VARCHAR2
113053 )
113054 IS
113055 
113056 l_component_type              VARCHAR2(80);
113057 l_component_code              VARCHAR2(30);
113058 l_component_type_code         VARCHAR2(1);
113059 l_component_appl_id           INTEGER;
113060 l_amb_context_code            VARCHAR2(30);
113061 l_entity_code                 VARCHAR2(30);
113062 l_event_class_code            VARCHAR2(30);
113063 l_ae_header_id                NUMBER;
113064 l_event_type_code             VARCHAR2(30);
113065 l_line_definition_code        VARCHAR2(30);
113066 l_line_definition_owner_code  VARCHAR2(1);
113067 --
113068 -- adr variables
113069 l_segment                     VARCHAR2(30);
113070 l_ccid                        NUMBER;
113071 l_adr_transaction_coa_id      NUMBER;
113072 l_adr_accounting_coa_id       NUMBER;
113073 l_adr_flexfield_segment_code  VARCHAR2(30);
113074 l_adr_flex_value_set_id       NUMBER;
113075 l_adr_value_type_code         VARCHAR2(30);
113076 l_adr_value_combination_id    NUMBER;
113077 l_adr_value_segment_code      VARCHAR2(30);
113078 
113079 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
113080 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
113081 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
113082 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
113083 
113084 -- 4262811 Variables ------------------------------------------------------------------------------------------
113085 l_entered_amt_idx             NUMBER;
113086 l_accted_amt_idx              NUMBER;
113087 l_acc_rev_flag                VARCHAR2(1);
113088 l_accrual_line_num            NUMBER;
113089 l_tmp_amt                     NUMBER;
113090 l_acc_rev_natural_side_code   VARCHAR2(1);
113091 
113092 l_num_entries                 NUMBER;
113093 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
113094 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
113095 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
113096 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
113097 l_recog_line_1                NUMBER;
113098 l_recog_line_2                NUMBER;
113099 
113100 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
113101 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
113102 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
113103 
113107 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
113104 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
113105 
113106 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
113108 
113109 ---------------------------------------------------------------------------------------------------------------
113110 
113111 
113112 --
113113 -- bulk performance
113114 --
113115 l_balance_type_code           VARCHAR2(1);
113116 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
113117 l_log_module                  VARCHAR2(240);
113118 
113119 --
113120 -- Upgrade strategy
113121 --
113122 l_actual_upg_option           VARCHAR2(1);
113123 l_enc_upg_option           VARCHAR2(1);
113124 
113125 --
113126 BEGIN
113127 --
113128 IF g_log_enabled THEN
113129       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_190';
113130 END IF;
113131 --
113132 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
113133 
113134       trace
113135          (p_msg      => 'BEGIN of AcctLineType_190'
113136          ,p_level    => C_LEVEL_PROCEDURE
113137          ,p_module   => l_log_module);
113138 
113139 END IF;
113140 --
113141 l_component_type             := 'AMB_JLT';
113142 l_component_code             := 'AP_RECOV_TAX_PREPAY';
113143 l_component_type_code        := 'S';
113144 l_component_appl_id          :=  200;
113145 l_amb_context_code           := 'DEFAULT';
113146 l_entity_code                := 'AP_INVOICES';
113147 l_event_class_code           := 'PREPAYMENTS';
113148 l_event_type_code            := 'PREPAYMENTS_ALL';
113149 l_line_definition_owner_code := 'S';
113150 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
113151 --
113152 l_balance_type_code          := 'A';
113153 l_segment                     := NULL;
113154 l_ccid                        := NULL;
113155 l_adr_transaction_coa_id      := NULL;
113156 l_adr_accounting_coa_id       := NULL;
113157 l_adr_flexfield_segment_code  := NULL;
113158 l_adr_flex_value_set_id       := NULL;
113159 l_adr_value_type_code         := NULL;
113160 l_adr_value_combination_id    := NULL;
113161 l_adr_value_segment_code      := NULL;
113162 
113163 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
113164 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
113165 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
113166 l_budgetary_control_flag     := 'N';
113167 
113168 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
113169 l_bflow_applied_to_amt       := NULL; -- 5132302
113170 l_entered_amt_idx            := NULL;          -- 4262811
113171 l_accted_amt_idx             := NULL;          -- 4262811
113172 l_acc_rev_flag               := NULL;          -- 4262811
113173 l_accrual_line_num           := NULL;          -- 4262811
113174 l_tmp_amt                    := NULL;          -- 4262811
113175 --
113176  
113177 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
113178     l_balance_type_code <> 'B' THEN
113179 IF NVL(p_source_33,'
113180 ') =  'REC_TAX' AND 
113181 NVL(p_source_137,'
113182 ') =  'IMMEDIATE' AND 
113183 NVL(p_source_142,'
113184 ') <>  'Y'
113185  THEN 
113186 
113187    --
113188    XLA_AE_LINES_PKG.SetNewLine;
113189 
113190    p_balance_type_code          := l_balance_type_code;
113191    -- set the flag so later we will know whether the gain loss line needs to be created
113192    
113193    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
113194      p_actual_flag :='A';
113195    END IF;
113196 
113197    --
113198    -- bulk performance
113199    --
113200    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
113201                                       p_header_num   => 0); -- 4262811
113202    --
113203    -- set accounting line options
113204    --
113205    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
113206            p_natural_side_code          => 'D'
113207          , p_gain_or_loss_flag          => 'N'
113208          , p_gl_transfer_mode_code      => 'S'
113209          , p_acct_entry_type_code       => 'A'
113210          , p_switch_side_flag           => 'Y'
113211          , p_merge_duplicate_code       => 'A'
113212          );
113213    --
113214    l_acc_rev_natural_side_code := 'C';  -- 4262811
113215    -- 
113216    --
113217    -- set accounting line type info
113218    --
113219    xla_ae_lines_pkg.SetAcctLineType
113220       (p_component_type             => l_component_type
113221       ,p_event_type_code            => l_event_type_code
113222       ,p_line_definition_owner_code => l_line_definition_owner_code
113223       ,p_line_definition_code       => l_line_definition_code
113224       ,p_accounting_line_code       => l_component_code
113225       ,p_accounting_line_type_code  => l_component_type_code
113226       ,p_accounting_line_appl_id    => l_component_appl_id
113227       ,p_amb_context_code           => l_amb_context_code
113228       ,p_entity_code                => l_entity_code
113229       ,p_event_class_code           => l_event_class_code);
113230    --
113231    -- set accounting class
113232    --
113233    xla_ae_lines_pkg.SetAcctClass(
113234            p_accounting_class_code  => 'RTAX'
113235          , p_ae_header_id           => l_ae_header_id
113236          );
113237 
113238    --
113239    -- set rounding class
113240    --
113241    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
113245    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
113242                       'RTAX';
113243 
113244    --
113246    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
113247    --
113248    -- bulk performance
113249    --
113250    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
113251 
113252    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
113253       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
113254 
113255    -- 4955764
113256    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
113257       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
113258 
113259    -- 4458381 Public Sector Enh
113260    
113261    --
113262    -- set accounting attributes for the line type
113263    --
113264    l_entered_amt_idx := 23;
113265    l_accted_amt_idx  := 28;
113266    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
113267    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
113268    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
113269    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
113270    l_rec_acct_attrs.array_num_value(2)  := 
113271 xla_ae_sources_pkg.GetSystemSourceNum(
113272    p_source_code           => 'XLA_EVENT_APPL_ID'
113273  , p_source_type_code      => 'Y'
113274  , p_source_application_id =>  602
113275 );
113276    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
113277    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
113278    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
113279    l_rec_acct_attrs.array_char_value(4)  := 
113280 xla_ae_sources_pkg.GetSystemSourceChar(
113281    p_source_code           => 'XLA_ENTITY_CODE'
113282  , p_source_type_code      => 'Y'
113283  , p_source_application_id =>  602
113284 );
113285    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
113286    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
113287    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
113288    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
113289    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
113290    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
113291    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
113292    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
113293    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
113294    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
113295    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
113296    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
113297    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
113298    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
113299    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
113300    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
113301    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
113302    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
113303    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
113304    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
113305    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
113306    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
113307    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
113308    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
113309    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
113310    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
113311    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
113312    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
113313    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
113314    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
113315    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
113316    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
113317    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
113318    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
113319    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
113320    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
113321    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
113322    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
113323    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
113324    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
113325    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
113326    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
113327    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
113328    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
113329    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
113330    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
113331    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
113332    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
113333    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
113334    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
113335    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
113336    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
113337    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
113341    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
113338    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
113339    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
113340    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
113342    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
113343    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
113344    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
113345    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
113346    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
113347    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
113348    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
113349    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
113350    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
113351    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
113352    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
113353    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
113354    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
113355    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
113356    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
113357    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
113358    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
113359    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
113360    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
113361    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
113362    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
113363 
113364    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
113365    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
113366 
113367    ---------------------------------------------------------------------------------------------------------------
113368    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
113369    ---------------------------------------------------------------------------------------------------------------
113370    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
113371 
113372    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
113373    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
113374 
113375    IF xla_accounting_cache_pkg.GetValueChar
113376          (p_source_code         => 'LEDGER_CATEGORY_CODE'
113377          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
113378    AND l_bflow_method_code = 'PRIOR_ENTRY'
113379 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
113380    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
113381          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
113382        )
113383    THEN
113384          xla_ae_lines_pkg.BflowUpgEntry
113385            (p_business_method_code    => l_bflow_method_code
113386            ,p_business_class_code     => l_bflow_class_code
113387            ,p_balance_type            => l_balance_type_code);
113388    ELSE
113389       NULL;
113390 -- No business flow processing for business flow method of NONE.
113391    END IF;
113392 
113393    --
113394    -- call analytical criteria
113395    --
113396    
113397    --
113398    -- call description
113399    --
113400    
113401 xla_ae_lines_pkg.SetLineDescription(
113402    p_ae_header_id => l_ae_header_id
113403   ,p_description  => Description_1 (
113404      p_application_id         => p_application_id
113405    , p_ae_header_id           => l_ae_header_id 
113406 , p_source_1 => p_source_1
113407    )
113408 );
113409 
113410 
113411    --
113412    -- call ADRs
113413    -- Bug 4922099
113414    --
113415    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
113416         (NVL(l_actual_upg_option, 'N') = 'O') OR
113417         (NVL(l_enc_upg_option, 'N') = 'O')
113418       )
113419    THEN
113420    NULL;
113421    --
113422    --
113423    
113424   l_ccid := AcctDerRule_33(
113425            p_application_id           => p_application_id
113426          , p_ae_header_id             => l_ae_header_id 
113427 , p_source_30 => p_source_30
113428          , x_transaction_coa_id       => l_adr_transaction_coa_id
113429          , x_accounting_coa_id        => l_adr_accounting_coa_id
113430          , x_value_type_code          => l_adr_value_type_code
113431          , p_side                     => 'NA'
113432    );
113433 
113434    xla_ae_lines_pkg.set_ccid(
113435     p_code_combination_id          => l_ccid
113436   , p_value_type_code              => l_adr_value_type_code
113437   , p_transaction_coa_id           => l_adr_transaction_coa_id
113438   , p_accounting_coa_id            => l_adr_accounting_coa_id
113439   , p_adr_code                     => 'AP_INVOICE_DIST'
113440   , p_adr_type_code                => 'S'
113441   , p_component_type               => l_component_type
113442   , p_component_code               => l_component_code
113443   , p_component_type_code          => l_component_type_code
113444   , p_component_appl_id            => l_component_appl_id
113445   , p_amb_context_code             => l_amb_context_code
113446   , p_side                         => 'NA'
113447   );
113448 
113449 
113450    --
113451    --
113455    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
113452    END IF;
113453    --
113454    -- Bug 4922099
113456           (NVL(l_enc_upg_option, 'N') = 'O')
113457         ) AND
113458         (l_bflow_method_code = 'PRIOR_ENTRY')
113459       )
113460    THEN
113461       IF
113462       --
113463       1 = 2
113464       --
113465       THEN
113466       xla_accounting_err_pkg.build_message
113467                                     (p_appli_s_name            => 'XLA'
113468                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
113469                                     ,p_token_1                 => 'LINE_NUMBER'
113470                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
113471                                     ,p_token_2                 => 'LINE_TYPE_NAME'
113472                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
113473                                                                              l_component_type
113474                                                                             ,l_component_code
113475                                                                             ,l_component_type_code
113476                                                                             ,l_component_appl_id
113477                                                                             ,l_amb_context_code
113478                                                                             ,l_entity_code
113479                                                                             ,l_event_class_code
113480                                                                            )
113481                                     ,p_token_3                 => 'OWNER'
113482                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
113483                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
113484                                                                           ,p_lookup_code    => l_component_type_code
113485                                                                          )
113486                                     ,p_token_4                 => 'PRODUCT_NAME'
113487                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
113488                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
113489                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
113490                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
113491                                     ,p_ae_header_id            =>  NULL
113492                                        );
113493 
113494         IF (C_LEVEL_ERROR>= g_log_level) THEN
113495                  trace
113496                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
113497                       ,p_level    => C_LEVEL_ERROR
113498                       ,p_module   => l_log_module);
113499         END IF;
113500       END IF;
113501    END IF;
113502    --
113503    --
113504    ------------------------------------------------------------------------------------------------
113505    -- 4219869 Business Flow
113506    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
113507    -- Prior Entry.  Currently, the following code is always generated.
113508    ------------------------------------------------------------------------------------------------
113509    XLA_AE_LINES_PKG.ValidateCurrentLine;
113510 
113511    ------------------------------------------------------------------------------------
113512    -- 4219869 Business Flow
113513    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
113514    ------------------------------------------------------------------------------------
113515    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
113516 
113517    ----------------------------------------------------------------------------------
113518    -- 4219869 Business Flow
113519    -- Update journal entry status -- Need to generate this within IF <condition>
113520    ----------------------------------------------------------------------------------
113521    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
113522          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
113523          ,p_balance_type_code => l_balance_type_code
113524          );
113525 
113526    -------------------------------------------------------------------------------------------
113527    -- 4262811 - Generate the Accrual Reversal lines
113528    -------------------------------------------------------------------------------------------
113529    BEGIN
113530       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
113531                               (g_array_event(p_event_id).array_value_num('header_index'));
113532       IF l_acc_rev_flag IS NULL THEN
113533          l_acc_rev_flag := 'N';
113534       END IF;
113535    EXCEPTION
113536       WHEN OTHERS THEN
113537          l_acc_rev_flag := 'N';
113538    END;
113539    --
113540    IF (l_acc_rev_flag = 'Y') THEN
113541 
113542        -- 4645092  ------------------------------------------------------------------------------
113543        -- To allow MPA report to determine if it should generate report process
113544        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
113548        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
113545        ------------------------------------------------------------------------------------------
113546 
113547        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
113549    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
113550    -- call ADRs
113551    -- Bug 4922099
113552    --
113553    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
113554         (NVL(l_actual_upg_option, 'N') = 'O') OR
113555         (NVL(l_enc_upg_option, 'N') = 'O')
113556       )
113557    THEN
113558    NULL;
113559    --
113560    --
113561    
113562   l_ccid := AcctDerRule_33(
113563            p_application_id           => p_application_id
113564          , p_ae_header_id             => l_ae_header_id 
113565 , p_source_30 => p_source_30
113566          , x_transaction_coa_id       => l_adr_transaction_coa_id
113567          , x_accounting_coa_id        => l_adr_accounting_coa_id
113568          , x_value_type_code          => l_adr_value_type_code
113569          , p_side                     => 'NA'
113570    );
113571 
113572    xla_ae_lines_pkg.set_ccid(
113573     p_code_combination_id          => l_ccid
113574   , p_value_type_code              => l_adr_value_type_code
113575   , p_transaction_coa_id           => l_adr_transaction_coa_id
113576   , p_accounting_coa_id            => l_adr_accounting_coa_id
113577   , p_adr_code                     => 'AP_INVOICE_DIST'
113578   , p_adr_type_code                => 'S'
113579   , p_component_type               => l_component_type
113580   , p_component_code               => l_component_code
113581   , p_component_type_code          => l_component_type_code
113582   , p_component_appl_id            => l_component_appl_id
113583   , p_amb_context_code             => l_amb_context_code
113584   , p_side                         => 'NA'
113585   );
113586 
113587 
113588    --
113589    --
113590    END IF;
113591 
113592        --
113593        -- Update the line information that should be overwritten
113594        --
113595        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
113596                                          p_header_num   => 1);
113597        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
113598 
113599        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
113600 
113601        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
113602           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
113603        END IF;
113604 
113605       --
113606       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
113607       --
113608       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
113609           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
113610       ELSE
113611           ---------------------------------------------------------------------------------------------------
113612           -- 4262811a Switch Sign
113613           ---------------------------------------------------------------------------------------------------
113614           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
113615           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
113616                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
113617           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
113618                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
113619           -- 5132302
113620           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
113621                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
113622 
113623       END IF;
113624 
113625       -- 4955764
113626       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
113627       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
113628 
113629 
113630       XLA_AE_LINES_PKG.ValidateCurrentLine;
113631       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
113632 
113633       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
113634                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
113635                ,p_balance_type_code => l_balance_type_code);
113636 
113637    END IF;
113638 
113639    -----------------------------------------------------------------------------------------
113640    -- 4262811 Multiperiod Accounting
113641    -----------------------------------------------------------------------------------------
113642      -- No MPA option is assigned.
113643 
113644 
113645 END IF;
113646 END IF;
113647 --
113648 
113649 --
113650 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
113651    trace
113652       (p_msg      => 'END of AcctLineType_190'
113653       ,p_level    => C_LEVEL_PROCEDURE
113654       ,p_module   => l_log_module);
113655 END IF;
113656 --
113657 EXCEPTION
113658   WHEN xla_exceptions_pkg.application_exception THEN
113659       RAISE;
113660   WHEN OTHERS THEN
113661        xla_exceptions_pkg.raise_message
113662            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_190');
113666 ---------------------------------------
113663 END AcctLineType_190;
113664 --
113665 
113667 --
113668 -- PRIVATE FUNCTION
113669 --         AcctLineType_191
113670 --
113671 ---------------------------------------
113672 PROCEDURE AcctLineType_191 (
113673   p_application_id        IN NUMBER
113674  ,p_event_id              IN NUMBER
113675  ,p_calculate_acctd_flag  IN VARCHAR2
113676  ,p_calculate_g_l_flag    IN VARCHAR2
113677  ,p_actual_flag           IN OUT VARCHAR2
113678  ,p_balance_type_code     OUT VARCHAR2
113679  ,p_gain_or_loss_ref      OUT VARCHAR2
113680  
113681 --Invoice Distribution Description
113682  , p_source_1            IN VARCHAR2
113683 --Automatic Offsets Value
113684  , p_source_15            IN VARCHAR2
113685  , p_source_15_meaning    IN VARCHAR2
113686 --Invoice Distribution Ledger Amount
113687  , p_source_21            IN NUMBER
113688 --Invoice Distribution Account
113689  , p_source_30            IN NUMBER
113690 --Invoice Distribution Type
113691  , p_source_33            IN VARCHAR2
113692  , p_source_33_meaning    IN VARCHAR2
113693 --Retainage Account
113694  , p_source_40            IN NUMBER
113695 --Retainage Related Item Distribution Account
113696  , p_source_42            IN NUMBER
113697 --Accounting Reversal Indicator
113698  , p_source_53            IN VARCHAR2
113699 --Distribution Link Type
113700  , p_source_55            IN VARCHAR2
113701 --Allocation to Main Distribution Identifier
113702  , p_source_57            IN NUMBER
113703 --Invoice Identifier
113704  , p_source_58            IN NUMBER
113705 --Invoice Distribution Identifier
113706  , p_source_64            IN NUMBER
113707 --Payables Encumbrance Upgrade Credit Account
113708  , p_source_65            IN NUMBER
113709 --Payables Encumbrance Upgrade Credit Amount
113710  , p_source_66            IN NUMBER
113711 --Invoice Currency Code
113712  , p_source_67            IN VARCHAR2
113713 --Payables Encumbrance Upgrade Credit Base Amount
113714  , p_source_68            IN NUMBER
113715 --Payables Encumbrance Upgrade Debit Account
113716  , p_source_69            IN NUMBER
113717 --Payables Encumbrance Upgrade Debit Amount
113718  , p_source_70            IN NUMBER
113719 --Payables Encumbrance Upgrade Debit Base Amount
113720  , p_source_71            IN NUMBER
113721 --Payables Encumbrance Upgrade Option
113722  , p_source_72            IN VARCHAR2
113723 --Invoice Distribution Amount
113724  , p_source_73            IN NUMBER
113725 --Deferred Accounting End Date
113726  , p_source_77            IN DATE
113727 --Deferred Accounting Option
113728  , p_source_78            IN VARCHAR2
113729 --Deferred Accounting Start Date
113730  , p_source_79            IN DATE
113731 --Override Accounted Amount Indicator
113732  , p_source_80            IN VARCHAR2
113733  , p_source_80_meaning    IN VARCHAR2
113734 --Invoice Supplier Identifier
113735  , p_source_81            IN NUMBER
113736 --Invoice Supplier Site Identifier
113737  , p_source_82            IN NUMBER
113738 --Third Party Type
113739  , p_source_83            IN VARCHAR2
113740 --Parent Reversal Identifier
113741  , p_source_84            IN NUMBER
113742 --Invoice Distribution Statistical Amount
113743  , p_source_85            IN NUMBER
113744 --Invoice Distribution Tax Line Identifier
113745  , p_source_86            IN NUMBER
113746 --Invoice Distribution Tax Distribution Identifier from Tax
113747  , p_source_87            IN NUMBER
113748 --Invoice Distribution Summary Tax Line Identifier
113749  , p_source_88            IN NUMBER
113750 --Payables Upgrade Credit Encumbrance Type Identifier
113751  , p_source_89            IN NUMBER
113752 --Payables Upgrade Debit Encumbrance Type Identifier
113753  , p_source_90            IN NUMBER
113754 --Business Flow Accounts Payable Application Identifier
113755  , p_source_91            IN NUMBER
113756 --Business Flow Invoice Distribution Type
113757  , p_source_92            IN VARCHAR2
113758 --Business Flow Invoice Entity Code
113759  , p_source_93            IN VARCHAR2
113760 --Business Flow Invoice Distribution Identifier
113761  , p_source_94            IN NUMBER
113762 --Business Flow Invoice Identifier
113763  , p_source_95            IN NUMBER
113764 --Invoice Exchange Date
113765  , p_source_143            IN DATE
113766 --Invoice Exchange Rate
113767  , p_source_144            IN NUMBER
113768 --Invoice Exchange Rate Type
113769  , p_source_145            IN VARCHAR2
113770 --Invoice Type
113771  , p_source_165            IN VARCHAR2
113772  , p_source_165_meaning    IN VARCHAR2
113773 )
113774 IS
113775 
113776 l_component_type              VARCHAR2(80);
113777 l_component_code              VARCHAR2(30);
113778 l_component_type_code         VARCHAR2(1);
113779 l_component_appl_id           INTEGER;
113780 l_amb_context_code            VARCHAR2(30);
113781 l_entity_code                 VARCHAR2(30);
113782 l_event_class_code            VARCHAR2(30);
113783 l_ae_header_id                NUMBER;
113784 l_event_type_code             VARCHAR2(30);
113785 l_line_definition_code        VARCHAR2(30);
113786 l_line_definition_owner_code  VARCHAR2(1);
113787 --
113788 -- adr variables
113789 l_segment                     VARCHAR2(30);
113790 l_ccid                        NUMBER;
113791 l_adr_transaction_coa_id      NUMBER;
113792 l_adr_accounting_coa_id       NUMBER;
113793 l_adr_flexfield_segment_code  VARCHAR2(30);
113794 l_adr_flex_value_set_id       NUMBER;
113795 l_adr_value_type_code         VARCHAR2(30);
113796 l_adr_value_combination_id    NUMBER;
113797 l_adr_value_segment_code      VARCHAR2(30);
113798 
113802 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
113799 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
113800 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
113801 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
113803 
113804 -- 4262811 Variables ------------------------------------------------------------------------------------------
113805 l_entered_amt_idx             NUMBER;
113806 l_accted_amt_idx              NUMBER;
113807 l_acc_rev_flag                VARCHAR2(1);
113808 l_accrual_line_num            NUMBER;
113809 l_tmp_amt                     NUMBER;
113810 l_acc_rev_natural_side_code   VARCHAR2(1);
113811 
113812 l_num_entries                 NUMBER;
113813 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
113814 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
113815 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
113816 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
113817 l_recog_line_1                NUMBER;
113818 l_recog_line_2                NUMBER;
113819 
113820 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
113821 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
113822 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
113823 
113824 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
113825 
113826 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
113827 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
113828 
113829 ---------------------------------------------------------------------------------------------------------------
113830 
113831 
113832 --
113833 -- bulk performance
113834 --
113835 l_balance_type_code           VARCHAR2(1);
113836 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
113837 l_log_module                  VARCHAR2(240);
113838 
113839 --
113840 -- Upgrade strategy
113841 --
113842 l_actual_upg_option           VARCHAR2(1);
113843 l_enc_upg_option           VARCHAR2(1);
113844 
113845 --
113846 BEGIN
113847 --
113848 IF g_log_enabled THEN
113849       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_191';
113850 END IF;
113851 --
113852 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
113853 
113854       trace
113855          (p_msg      => 'BEGIN of AcctLineType_191'
113856          ,p_level    => C_LEVEL_PROCEDURE
113857          ,p_module   => l_log_module);
113858 
113859 END IF;
113860 --
113861 l_component_type             := 'AMB_JLT';
113862 l_component_code             := 'AP_RETAINAGE_ACC';
113863 l_component_type_code        := 'S';
113864 l_component_appl_id          :=  200;
113865 l_amb_context_code           := 'DEFAULT';
113866 l_entity_code                := 'AP_INVOICES';
113867 l_event_class_code           := 'INVOICES';
113868 l_event_type_code            := 'INVOICES_ALL';
113869 l_line_definition_owner_code := 'S';
113870 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
113871 --
113872 l_balance_type_code          := 'A';
113873 l_segment                     := NULL;
113874 l_ccid                        := NULL;
113875 l_adr_transaction_coa_id      := NULL;
113876 l_adr_accounting_coa_id       := NULL;
113877 l_adr_flexfield_segment_code  := NULL;
113878 l_adr_flex_value_set_id       := NULL;
113879 l_adr_value_type_code         := NULL;
113880 l_adr_value_combination_id    := NULL;
113881 l_adr_value_segment_code      := NULL;
113882 
113883 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
113884 l_bflow_class_code           := 'AP_RETAINAGE';    -- 4219869 Business Flow
113885 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
113886 l_budgetary_control_flag     := 'N';
113887 
113888 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
113889 l_bflow_applied_to_amt       := NULL; -- 5132302
113890 l_entered_amt_idx            := NULL;          -- 4262811
113891 l_accted_amt_idx             := NULL;          -- 4262811
113892 l_acc_rev_flag               := NULL;          -- 4262811
113893 l_accrual_line_num           := NULL;          -- 4262811
113894 l_tmp_amt                    := NULL;          -- 4262811
113895 --
113896  
113897 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
113898     l_balance_type_code <> 'B' THEN
113899 IF NVL(p_source_165,'
113900 ') =  'STANDARD' AND 
113901 NVL(p_source_33,'
113902 ') =  'RETAINAGE'
113903  THEN 
113904 
113905    --
113906    XLA_AE_LINES_PKG.SetNewLine;
113907 
113908    p_balance_type_code          := l_balance_type_code;
113909    -- set the flag so later we will know whether the gain loss line needs to be created
113910    
113911    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
113912      p_actual_flag :='A';
113913    END IF;
113914 
113915    --
113916    -- bulk performance
113917    --
113918    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
113919                                       p_header_num   => 0); -- 4262811
113920    --
113921    -- set accounting line options
113922    --
113923    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
113924            p_natural_side_code          => 'D'
113925          , p_gain_or_loss_flag          => 'N'
113926          , p_gl_transfer_mode_code      => 'S'
113927          , p_acct_entry_type_code       => 'A'
113928          , p_switch_side_flag           => 'Y'
113932    l_acc_rev_natural_side_code := 'C';  -- 4262811
113929          , p_merge_duplicate_code       => 'A'
113930          );
113931    --
113933    -- 
113934    --
113935    -- set accounting line type info
113936    --
113937    xla_ae_lines_pkg.SetAcctLineType
113938       (p_component_type             => l_component_type
113939       ,p_event_type_code            => l_event_type_code
113940       ,p_line_definition_owner_code => l_line_definition_owner_code
113941       ,p_line_definition_code       => l_line_definition_code
113942       ,p_accounting_line_code       => l_component_code
113943       ,p_accounting_line_type_code  => l_component_type_code
113944       ,p_accounting_line_appl_id    => l_component_appl_id
113945       ,p_amb_context_code           => l_amb_context_code
113946       ,p_entity_code                => l_entity_code
113947       ,p_event_class_code           => l_event_class_code);
113948    --
113949    -- set accounting class
113950    --
113951    xla_ae_lines_pkg.SetAcctClass(
113952            p_accounting_class_code  => 'RETAINAGE'
113953          , p_ae_header_id           => l_ae_header_id
113954          );
113955 
113956    --
113957    -- set rounding class
113958    --
113959    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
113960                       'RETAINAGE';
113961 
113962    --
113963    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
113964    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
113965    --
113966    -- bulk performance
113967    --
113968    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
113969 
113970    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
113971       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
113972 
113973    -- 4955764
113974    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
113975       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
113976 
113977    -- 4458381 Public Sector Enh
113978    
113979    --
113980    -- set accounting attributes for the line type
113981    --
113982    l_entered_amt_idx := 24;
113983    l_accted_amt_idx  := 29;
113984    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
113985    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
113986    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
113987    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
113988    l_rec_acct_attrs.array_num_value(2)  := 
113989 xla_ae_sources_pkg.GetSystemSourceNum(
113990    p_source_code           => 'XLA_EVENT_APPL_ID'
113991  , p_source_type_code      => 'Y'
113992  , p_source_application_id =>  602
113993 );
113994    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
113995    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
113996    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
113997    l_rec_acct_attrs.array_char_value(4)  := 
113998 xla_ae_sources_pkg.GetSystemSourceChar(
113999    p_source_code           => 'XLA_ENTITY_CODE'
114000  , p_source_type_code      => 'Y'
114001  , p_source_application_id =>  602
114002 );
114003    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
114004    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
114005    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
114006    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
114007    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
114008    l_rec_acct_attrs.array_num_value(7)  := p_source_73;
114009    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
114010    l_rec_acct_attrs.array_num_value(8)  := p_source_91;
114011    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
114012    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
114013    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
114014    l_rec_acct_attrs.array_char_value(10)  := p_source_93;
114015    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
114016    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
114017    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
114018    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_95);
114019    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
114020    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_64);
114021    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
114022    l_rec_acct_attrs.array_char_value(14)  := p_source_55;
114023    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
114024    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
114025    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
114026    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
114027    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
114028    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
114029    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
114030    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
114031    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
114032    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
114033    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
114037    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
114034    l_rec_acct_attrs.array_num_value(20)  := p_source_70;
114035    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
114036    l_rec_acct_attrs.array_char_value(21)  := p_source_67;
114038    l_rec_acct_attrs.array_num_value(22)  := p_source_71;
114039    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
114040    l_rec_acct_attrs.array_char_value(23)  := p_source_72;
114041    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
114042    l_rec_acct_attrs.array_num_value(24)  := p_source_73;
114043    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
114044    l_rec_acct_attrs.array_char_value(25)  := p_source_67;
114045    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
114046    l_rec_acct_attrs.array_date_value(26)  := p_source_143;
114047    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
114048    l_rec_acct_attrs.array_num_value(27)  := p_source_144;
114049    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
114050    l_rec_acct_attrs.array_char_value(28)  := p_source_145;
114051    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
114052    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
114053    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
114054    l_rec_acct_attrs.array_date_value(30)  := p_source_77;
114055    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
114056    l_rec_acct_attrs.array_char_value(31)  := p_source_78;
114057    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
114058    l_rec_acct_attrs.array_date_value(32)  := p_source_79;
114059    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
114060    l_rec_acct_attrs.array_char_value(33)  := p_source_80;
114061    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
114062    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
114063    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
114064    l_rec_acct_attrs.array_num_value(35)  := p_source_82;
114065    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
114066    l_rec_acct_attrs.array_char_value(36)  := p_source_83;
114067    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
114068    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_84);
114069    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
114070    l_rec_acct_attrs.array_char_value(38)  := p_source_55;
114071    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
114072    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
114073    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
114074    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
114075    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
114076    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
114077    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
114078    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
114079    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
114080    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
114081    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
114082    l_rec_acct_attrs.array_num_value(44)  := p_source_90;
114083 
114084    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
114085    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
114086 
114087    ---------------------------------------------------------------------------------------------------------------
114088    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
114089    ---------------------------------------------------------------------------------------------------------------
114090    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
114091 
114092    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
114093    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
114094 
114095    IF xla_accounting_cache_pkg.GetValueChar
114096          (p_source_code         => 'LEDGER_CATEGORY_CODE'
114097          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
114098    AND l_bflow_method_code = 'PRIOR_ENTRY'
114099 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
114100    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
114101          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
114102        )
114103    THEN
114104          xla_ae_lines_pkg.BflowUpgEntry
114105            (p_business_method_code    => l_bflow_method_code
114106            ,p_business_class_code     => l_bflow_class_code
114107            ,p_balance_type            => l_balance_type_code);
114108    ELSE
114109       NULL;
114110 -- No business flow processing for business flow method of NONE.
114111    END IF;
114112 
114113    --
114114    -- call analytical criteria
114115    --
114116    
114117    --
114118    -- call description
114119    --
114120    
114121 xla_ae_lines_pkg.SetLineDescription(
114122    p_ae_header_id => l_ae_header_id
114123   ,p_description  => Description_1 (
114124      p_application_id         => p_application_id
114125    , p_ae_header_id           => l_ae_header_id 
114126 , p_source_1 => p_source_1
114127    )
114128 );
114129 
114130 
114131    --
114132    -- call ADRs
114136         (NVL(l_actual_upg_option, 'N') = 'O') OR
114133    -- Bug 4922099
114134    --
114135    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
114137         (NVL(l_enc_upg_option, 'N') = 'O')
114138       )
114139    THEN
114140    NULL;
114141    --
114142    --
114143    
114144   l_ccid := AcctDerRule_40(
114145            p_application_id           => p_application_id
114146          , p_ae_header_id             => l_ae_header_id 
114147 , p_source_15 => p_source_15
114148 , p_source_15_meaning => p_source_15_meaning
114149 , p_source_30 => p_source_30
114150 , p_source_42 => p_source_42
114151          , x_transaction_coa_id       => l_adr_transaction_coa_id
114152          , x_accounting_coa_id        => l_adr_accounting_coa_id
114153          , x_value_type_code          => l_adr_value_type_code
114154          , p_side                     => 'NA'
114155    );
114156 
114157    xla_ae_lines_pkg.set_ccid(
114158     p_code_combination_id          => l_ccid
114159   , p_value_type_code              => l_adr_value_type_code
114160   , p_transaction_coa_id           => l_adr_transaction_coa_id
114161   , p_accounting_coa_id            => l_adr_accounting_coa_id
114162   , p_adr_code                     => 'AP_RETAINAGE'
114163   , p_adr_type_code                => 'S'
114164   , p_component_type               => l_component_type
114165   , p_component_code               => l_component_code
114166   , p_component_type_code          => l_component_type_code
114167   , p_component_appl_id            => l_component_appl_id
114168   , p_amb_context_code             => l_amb_context_code
114169   , p_side                         => 'NA'
114170   );
114171 
114172 
114173    l_segment := AcctDerRule_19(
114174            p_application_id           => p_application_id
114175          , p_ae_header_id             => l_ae_header_id 
114176 , p_source_40 => p_source_40
114177          , x_transaction_coa_id       => l_adr_transaction_coa_id
114178          , x_accounting_coa_id        => l_adr_accounting_coa_id
114179          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
114180          , x_flex_value_set_id        => l_adr_flex_value_set_id
114181          , x_value_type_code          => l_adr_value_type_code
114182          , x_value_combination_id     => l_adr_value_combination_id
114183          , x_value_segment_code       => l_adr_value_segment_code
114184          , p_side                     => 'NA'
114185          , p_override_seg_flag        => 'Y'
114186    );
114187 
114188    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
114189 
114190       xla_ae_lines_pkg.set_segment(
114191           p_to_segment_code         => 'GL_ACCOUNT'
114192         , p_segment_value           => l_segment
114193         , p_from_segment_code       => l_adr_value_segment_code
114194         , p_from_combination_id     => l_adr_value_combination_id
114195         , p_value_type_code         => l_adr_value_type_code
114196         , p_transaction_coa_id      => l_adr_transaction_coa_id
114197         , p_accounting_coa_id       => l_adr_accounting_coa_id
114198         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
114199         , p_flex_value_set_id       => l_adr_flex_value_set_id
114200         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
114201         , p_adr_type_code           => 'S'
114202         , p_component_type          => l_component_type
114203         , p_component_code          => l_component_code
114204         , p_component_type_code     => l_component_type_code
114205         , p_component_appl_id       => l_component_appl_id
114206         , p_amb_context_code        => l_amb_context_code
114207         , p_entity_code             => 'AP_INVOICES'
114208         , p_event_class_code        => 'INVOICES'
114209         , p_side                    => 'NA'
114210         );
114211 
114212   END IF;
114213 
114214    l_segment := AcctDerRule_24(
114215            p_application_id           => p_application_id
114216          , p_ae_header_id             => l_ae_header_id 
114217 , p_source_15 => p_source_15
114218 , p_source_15_meaning => p_source_15_meaning
114219 , p_source_42 => p_source_42
114220          , x_transaction_coa_id       => l_adr_transaction_coa_id
114221          , x_accounting_coa_id        => l_adr_accounting_coa_id
114222          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
114223          , x_flex_value_set_id        => l_adr_flex_value_set_id
114224          , x_value_type_code          => l_adr_value_type_code
114225          , x_value_combination_id     => l_adr_value_combination_id
114226          , x_value_segment_code       => l_adr_value_segment_code
114227          , p_side                     => 'NA'
114228          , p_override_seg_flag        => 'Y'
114229    );
114230 
114231    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
114232 
114233       xla_ae_lines_pkg.set_segment(
114234           p_to_segment_code         => 'GL_BALANCING'
114235         , p_segment_value           => l_segment
114236         , p_from_segment_code       => l_adr_value_segment_code
114237         , p_from_combination_id     => l_adr_value_combination_id
114238         , p_value_type_code         => l_adr_value_type_code
114239         , p_transaction_coa_id      => l_adr_transaction_coa_id
114240         , p_accounting_coa_id       => l_adr_accounting_coa_id
114241         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
114242         , p_flex_value_set_id       => l_adr_flex_value_set_id
114243         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
114244         , p_adr_type_code           => 'S'
114245         , p_component_type          => l_component_type
114249         , p_amb_context_code        => l_amb_context_code
114246         , p_component_code          => l_component_code
114247         , p_component_type_code     => l_component_type_code
114248         , p_component_appl_id       => l_component_appl_id
114250         , p_entity_code             => 'AP_INVOICES'
114251         , p_event_class_code        => 'INVOICES'
114252         , p_side                    => 'NA'
114253         );
114254 
114255   END IF;
114256 
114257    --
114258    --
114259    END IF;
114260    --
114261    -- Bug 4922099
114262    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
114263           (NVL(l_enc_upg_option, 'N') = 'O')
114264         ) AND
114265         (l_bflow_method_code = 'PRIOR_ENTRY')
114266       )
114267    THEN
114268       IF
114269       --
114270       1 = 2
114271       --
114272       THEN
114273       xla_accounting_err_pkg.build_message
114274                                     (p_appli_s_name            => 'XLA'
114275                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
114276                                     ,p_token_1                 => 'LINE_NUMBER'
114277                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
114278                                     ,p_token_2                 => 'LINE_TYPE_NAME'
114279                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
114280                                                                              l_component_type
114281                                                                             ,l_component_code
114282                                                                             ,l_component_type_code
114283                                                                             ,l_component_appl_id
114284                                                                             ,l_amb_context_code
114285                                                                             ,l_entity_code
114286                                                                             ,l_event_class_code
114287                                                                            )
114288                                     ,p_token_3                 => 'OWNER'
114289                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
114290                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
114291                                                                           ,p_lookup_code    => l_component_type_code
114292                                                                          )
114293                                     ,p_token_4                 => 'PRODUCT_NAME'
114294                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
114295                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
114296                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
114297                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
114298                                     ,p_ae_header_id            =>  NULL
114299                                        );
114300 
114301         IF (C_LEVEL_ERROR>= g_log_level) THEN
114302                  trace
114303                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
114304                       ,p_level    => C_LEVEL_ERROR
114305                       ,p_module   => l_log_module);
114306         END IF;
114307       END IF;
114308    END IF;
114309    --
114310    --
114311    ------------------------------------------------------------------------------------------------
114312    -- 4219869 Business Flow
114313    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
114314    -- Prior Entry.  Currently, the following code is always generated.
114315    ------------------------------------------------------------------------------------------------
114316    XLA_AE_LINES_PKG.ValidateCurrentLine;
114317 
114318    ------------------------------------------------------------------------------------
114319    -- 4219869 Business Flow
114320    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
114321    ------------------------------------------------------------------------------------
114322    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
114323 
114324    ----------------------------------------------------------------------------------
114325    -- 4219869 Business Flow
114326    -- Update journal entry status -- Need to generate this within IF <condition>
114327    ----------------------------------------------------------------------------------
114328    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
114329          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
114330          ,p_balance_type_code => l_balance_type_code
114331          );
114332 
114333    -------------------------------------------------------------------------------------------
114334    -- 4262811 - Generate the Accrual Reversal lines
114335    -------------------------------------------------------------------------------------------
114336    BEGIN
114337       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
114338                               (g_array_event(p_event_id).array_value_num('header_index'));
114339       IF l_acc_rev_flag IS NULL THEN
114340          l_acc_rev_flag := 'N';
114341       END IF;
114342    EXCEPTION
114346    --
114343       WHEN OTHERS THEN
114344          l_acc_rev_flag := 'N';
114345    END;
114347    IF (l_acc_rev_flag = 'Y') THEN
114348 
114349        -- 4645092  ------------------------------------------------------------------------------
114350        -- To allow MPA report to determine if it should generate report process
114351        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
114352        ------------------------------------------------------------------------------------------
114353 
114354        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
114355        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
114356    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
114357    -- call ADRs
114358    -- Bug 4922099
114359    --
114360    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
114361         (NVL(l_actual_upg_option, 'N') = 'O') OR
114362         (NVL(l_enc_upg_option, 'N') = 'O')
114363       )
114364    THEN
114365    NULL;
114366    --
114367    --
114368    
114369   l_ccid := AcctDerRule_40(
114370            p_application_id           => p_application_id
114371          , p_ae_header_id             => l_ae_header_id 
114372 , p_source_15 => p_source_15
114373 , p_source_15_meaning => p_source_15_meaning
114374 , p_source_30 => p_source_30
114375 , p_source_42 => p_source_42
114376          , x_transaction_coa_id       => l_adr_transaction_coa_id
114377          , x_accounting_coa_id        => l_adr_accounting_coa_id
114378          , x_value_type_code          => l_adr_value_type_code
114379          , p_side                     => 'NA'
114380    );
114381 
114382    xla_ae_lines_pkg.set_ccid(
114383     p_code_combination_id          => l_ccid
114384   , p_value_type_code              => l_adr_value_type_code
114385   , p_transaction_coa_id           => l_adr_transaction_coa_id
114386   , p_accounting_coa_id            => l_adr_accounting_coa_id
114387   , p_adr_code                     => 'AP_RETAINAGE'
114388   , p_adr_type_code                => 'S'
114389   , p_component_type               => l_component_type
114390   , p_component_code               => l_component_code
114391   , p_component_type_code          => l_component_type_code
114392   , p_component_appl_id            => l_component_appl_id
114393   , p_amb_context_code             => l_amb_context_code
114394   , p_side                         => 'NA'
114395   );
114396 
114397 
114398    l_segment := AcctDerRule_19(
114399            p_application_id           => p_application_id
114400          , p_ae_header_id             => l_ae_header_id 
114401 , p_source_40 => p_source_40
114402          , x_transaction_coa_id       => l_adr_transaction_coa_id
114403          , x_accounting_coa_id        => l_adr_accounting_coa_id
114404          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
114405          , x_flex_value_set_id        => l_adr_flex_value_set_id
114406          , x_value_type_code          => l_adr_value_type_code
114407          , x_value_combination_id     => l_adr_value_combination_id
114408          , x_value_segment_code       => l_adr_value_segment_code
114409          , p_side                     => 'NA'
114410          , p_override_seg_flag        => 'Y'
114411    );
114412 
114413    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
114414 
114415       xla_ae_lines_pkg.set_segment(
114416           p_to_segment_code         => 'GL_ACCOUNT'
114417         , p_segment_value           => l_segment
114418         , p_from_segment_code       => l_adr_value_segment_code
114419         , p_from_combination_id     => l_adr_value_combination_id
114420         , p_value_type_code         => l_adr_value_type_code
114421         , p_transaction_coa_id      => l_adr_transaction_coa_id
114422         , p_accounting_coa_id       => l_adr_accounting_coa_id
114423         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
114424         , p_flex_value_set_id       => l_adr_flex_value_set_id
114425         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
114426         , p_adr_type_code           => 'S'
114427         , p_component_type          => l_component_type
114428         , p_component_code          => l_component_code
114429         , p_component_type_code     => l_component_type_code
114430         , p_component_appl_id       => l_component_appl_id
114431         , p_amb_context_code        => l_amb_context_code
114432         , p_entity_code             => 'AP_INVOICES'
114433         , p_event_class_code        => 'INVOICES'
114434         , p_side                    => 'NA'
114435         );
114436 
114437   END IF;
114438 
114439    l_segment := AcctDerRule_24(
114440            p_application_id           => p_application_id
114441          , p_ae_header_id             => l_ae_header_id 
114442 , p_source_15 => p_source_15
114443 , p_source_15_meaning => p_source_15_meaning
114444 , p_source_42 => p_source_42
114445          , x_transaction_coa_id       => l_adr_transaction_coa_id
114446          , x_accounting_coa_id        => l_adr_accounting_coa_id
114447          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
114448          , x_flex_value_set_id        => l_adr_flex_value_set_id
114449          , x_value_type_code          => l_adr_value_type_code
114450          , x_value_combination_id     => l_adr_value_combination_id
114451          , x_value_segment_code       => l_adr_value_segment_code
114452          , p_side                     => 'NA'
114453          , p_override_seg_flag        => 'Y'
114454    );
114455 
114456    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
114457 
114458       xla_ae_lines_pkg.set_segment(
114462         , p_from_combination_id     => l_adr_value_combination_id
114459           p_to_segment_code         => 'GL_BALANCING'
114460         , p_segment_value           => l_segment
114461         , p_from_segment_code       => l_adr_value_segment_code
114463         , p_value_type_code         => l_adr_value_type_code
114464         , p_transaction_coa_id      => l_adr_transaction_coa_id
114465         , p_accounting_coa_id       => l_adr_accounting_coa_id
114466         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
114467         , p_flex_value_set_id       => l_adr_flex_value_set_id
114468         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
114469         , p_adr_type_code           => 'S'
114470         , p_component_type          => l_component_type
114471         , p_component_code          => l_component_code
114472         , p_component_type_code     => l_component_type_code
114473         , p_component_appl_id       => l_component_appl_id
114474         , p_amb_context_code        => l_amb_context_code
114475         , p_entity_code             => 'AP_INVOICES'
114476         , p_event_class_code        => 'INVOICES'
114477         , p_side                    => 'NA'
114478         );
114479 
114480   END IF;
114481 
114482    --
114483    --
114484    END IF;
114485 
114486        --
114487        -- Update the line information that should be overwritten
114488        --
114489        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
114490                                          p_header_num   => 1);
114491        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
114492 
114493        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
114494 
114495        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
114496           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
114497        END IF;
114498 
114499       --
114500       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
114501       --
114502       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
114503           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
114504       ELSE
114505           ---------------------------------------------------------------------------------------------------
114506           -- 4262811a Switch Sign
114507           ---------------------------------------------------------------------------------------------------
114508           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
114509           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
114510                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
114511           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
114512                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
114513           -- 5132302
114514           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
114515                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
114516 
114517       END IF;
114518 
114519       -- 4955764
114520       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
114521       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
114522 
114523 
114524       XLA_AE_LINES_PKG.ValidateCurrentLine;
114525       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
114526 
114527       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
114528                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
114529                ,p_balance_type_code => l_balance_type_code);
114530 
114531    END IF;
114532 
114533    -----------------------------------------------------------------------------------------
114534    -- 4262811 Multiperiod Accounting
114535    -----------------------------------------------------------------------------------------
114536      -- No MPA option is assigned.
114537 
114538 
114539 END IF;
114540 END IF;
114541 --
114542 
114543 --
114544 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
114545    trace
114546       (p_msg      => 'END of AcctLineType_191'
114547       ,p_level    => C_LEVEL_PROCEDURE
114548       ,p_module   => l_log_module);
114549 END IF;
114550 --
114551 EXCEPTION
114552   WHEN xla_exceptions_pkg.application_exception THEN
114553       RAISE;
114554   WHEN OTHERS THEN
114555        xla_exceptions_pkg.raise_message
114556            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_191');
114557 END AcctLineType_191;
114558 --
114559 
114560 ---------------------------------------
114561 --
114562 -- PRIVATE FUNCTION
114563 --         AcctLineType_192
114564 --
114565 ---------------------------------------
114566 PROCEDURE AcctLineType_192 (
114567   p_application_id        IN NUMBER
114568  ,p_event_id              IN NUMBER
114569  ,p_calculate_acctd_flag  IN VARCHAR2
114570  ,p_calculate_g_l_flag    IN VARCHAR2
114571  ,p_actual_flag           IN OUT VARCHAR2
114572  ,p_balance_type_code     OUT VARCHAR2
114573  ,p_gain_or_loss_ref      OUT VARCHAR2
114574  
114575 --Invoice Distribution Description
114579  , p_source_15_meaning    IN VARCHAR2
114576  , p_source_1            IN VARCHAR2
114577 --Automatic Offsets Value
114578  , p_source_15            IN VARCHAR2
114580 --Invoice Distribution Ledger Amount
114581  , p_source_21            IN NUMBER
114582 --Invoice Distribution Account
114583  , p_source_30            IN NUMBER
114584 --Invoice Distribution Type
114585  , p_source_33            IN VARCHAR2
114586  , p_source_33_meaning    IN VARCHAR2
114587 --Retainage Account
114588  , p_source_40            IN NUMBER
114589 --Retainage Related Item Distribution Account
114590  , p_source_42            IN NUMBER
114591 --Accounting Reversal Indicator
114592  , p_source_53            IN VARCHAR2
114593 --Distribution Link Type
114594  , p_source_55            IN VARCHAR2
114595 --Allocation to Main Distribution Identifier
114596  , p_source_57            IN NUMBER
114597 --Invoice Identifier
114598  , p_source_58            IN NUMBER
114599 --Invoice Distribution Identifier
114600  , p_source_64            IN NUMBER
114601 --Payables Encumbrance Upgrade Credit Account
114602  , p_source_65            IN NUMBER
114603 --Payables Encumbrance Upgrade Credit Amount
114604  , p_source_66            IN NUMBER
114605 --Invoice Currency Code
114606  , p_source_67            IN VARCHAR2
114607 --Payables Encumbrance Upgrade Credit Base Amount
114608  , p_source_68            IN NUMBER
114609 --Payables Encumbrance Upgrade Debit Account
114610  , p_source_69            IN NUMBER
114611 --Payables Encumbrance Upgrade Debit Amount
114612  , p_source_70            IN NUMBER
114613 --Payables Encumbrance Upgrade Debit Base Amount
114614  , p_source_71            IN NUMBER
114615 --Payables Encumbrance Upgrade Option
114616  , p_source_72            IN VARCHAR2
114617 --Invoice Distribution Amount
114618  , p_source_73            IN NUMBER
114619 --Deferred Accounting End Date
114620  , p_source_77            IN DATE
114621 --Deferred Accounting Option
114622  , p_source_78            IN VARCHAR2
114623 --Deferred Accounting Start Date
114624  , p_source_79            IN DATE
114625 --Override Accounted Amount Indicator
114626  , p_source_80            IN VARCHAR2
114627  , p_source_80_meaning    IN VARCHAR2
114628 --Invoice Supplier Identifier
114629  , p_source_81            IN NUMBER
114630 --Invoice Supplier Site Identifier
114631  , p_source_82            IN NUMBER
114632 --Third Party Type
114633  , p_source_83            IN VARCHAR2
114634 --Parent Reversal Identifier
114635  , p_source_84            IN NUMBER
114636 --Invoice Distribution Statistical Amount
114637  , p_source_85            IN NUMBER
114638 --Invoice Distribution Tax Line Identifier
114639  , p_source_86            IN NUMBER
114640 --Invoice Distribution Tax Distribution Identifier from Tax
114641  , p_source_87            IN NUMBER
114642 --Invoice Distribution Summary Tax Line Identifier
114643  , p_source_88            IN NUMBER
114644 --Payables Upgrade Credit Encumbrance Type Identifier
114645  , p_source_89            IN NUMBER
114646 --Payables Upgrade Debit Encumbrance Type Identifier
114647  , p_source_90            IN NUMBER
114648 --Business Flow Accounts Payable Application Identifier
114649  , p_source_91            IN NUMBER
114650 --Business Flow Invoice Distribution Type
114651  , p_source_92            IN VARCHAR2
114652 --Business Flow Invoice Entity Code
114653  , p_source_93            IN VARCHAR2
114654 --Business Flow Invoice Distribution Identifier
114655  , p_source_94            IN NUMBER
114656 --Business Flow Invoice Identifier
114657  , p_source_95            IN NUMBER
114658 --Invoice Exchange Date
114659  , p_source_143            IN DATE
114660 --Invoice Exchange Rate
114661  , p_source_144            IN NUMBER
114662 --Invoice Exchange Rate Type
114663  , p_source_145            IN VARCHAR2
114664 --Invoice Type
114665  , p_source_165            IN VARCHAR2
114666  , p_source_165_meaning    IN VARCHAR2
114667 )
114668 IS
114669 
114670 l_component_type              VARCHAR2(80);
114671 l_component_code              VARCHAR2(30);
114672 l_component_type_code         VARCHAR2(1);
114673 l_component_appl_id           INTEGER;
114674 l_amb_context_code            VARCHAR2(30);
114675 l_entity_code                 VARCHAR2(30);
114676 l_event_class_code            VARCHAR2(30);
114677 l_ae_header_id                NUMBER;
114678 l_event_type_code             VARCHAR2(30);
114679 l_line_definition_code        VARCHAR2(30);
114680 l_line_definition_owner_code  VARCHAR2(1);
114681 --
114682 -- adr variables
114683 l_segment                     VARCHAR2(30);
114684 l_ccid                        NUMBER;
114685 l_adr_transaction_coa_id      NUMBER;
114686 l_adr_accounting_coa_id       NUMBER;
114687 l_adr_flexfield_segment_code  VARCHAR2(30);
114688 l_adr_flex_value_set_id       NUMBER;
114689 l_adr_value_type_code         VARCHAR2(30);
114690 l_adr_value_combination_id    NUMBER;
114691 l_adr_value_segment_code      VARCHAR2(30);
114692 
114693 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
114694 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
114695 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
114696 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
114697 
114698 -- 4262811 Variables ------------------------------------------------------------------------------------------
114699 l_entered_amt_idx             NUMBER;
114700 l_accted_amt_idx              NUMBER;
114701 l_acc_rev_flag                VARCHAR2(1);
114705 
114702 l_accrual_line_num            NUMBER;
114703 l_tmp_amt                     NUMBER;
114704 l_acc_rev_natural_side_code   VARCHAR2(1);
114706 l_num_entries                 NUMBER;
114707 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
114708 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
114709 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
114710 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
114711 l_recog_line_1                NUMBER;
114712 l_recog_line_2                NUMBER;
114713 
114714 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
114715 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
114716 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
114717 
114718 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
114719 
114720 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
114721 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
114722 
114723 ---------------------------------------------------------------------------------------------------------------
114724 
114725 
114726 --
114727 -- bulk performance
114728 --
114729 l_balance_type_code           VARCHAR2(1);
114730 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
114731 l_log_module                  VARCHAR2(240);
114732 
114733 --
114734 -- Upgrade strategy
114735 --
114736 l_actual_upg_option           VARCHAR2(1);
114737 l_enc_upg_option           VARCHAR2(1);
114738 
114739 --
114740 BEGIN
114741 --
114742 IF g_log_enabled THEN
114743       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_192';
114744 END IF;
114745 --
114746 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
114747 
114748       trace
114749          (p_msg      => 'BEGIN of AcctLineType_192'
114750          ,p_level    => C_LEVEL_PROCEDURE
114751          ,p_module   => l_log_module);
114752 
114753 END IF;
114754 --
114755 l_component_type             := 'AMB_JLT';
114756 l_component_code             := 'AP_RETAINAGE_ACC_CM';
114757 l_component_type_code        := 'S';
114758 l_component_appl_id          :=  200;
114759 l_amb_context_code           := 'DEFAULT';
114760 l_entity_code                := 'AP_INVOICES';
114761 l_event_class_code           := 'CREDIT MEMOS';
114762 l_event_type_code            := 'CREDIT MEMOS_ALL';
114763 l_line_definition_owner_code := 'S';
114764 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
114765 --
114766 l_balance_type_code          := 'A';
114767 l_segment                     := NULL;
114768 l_ccid                        := NULL;
114769 l_adr_transaction_coa_id      := NULL;
114770 l_adr_accounting_coa_id       := NULL;
114771 l_adr_flexfield_segment_code  := NULL;
114772 l_adr_flex_value_set_id       := NULL;
114773 l_adr_value_type_code         := NULL;
114774 l_adr_value_combination_id    := NULL;
114775 l_adr_value_segment_code      := NULL;
114776 
114777 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
114778 l_bflow_class_code           := 'AP_RETAINAGE';    -- 4219869 Business Flow
114779 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
114780 l_budgetary_control_flag     := 'N';
114781 
114782 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
114783 l_bflow_applied_to_amt       := NULL; -- 5132302
114784 l_entered_amt_idx            := NULL;          -- 4262811
114785 l_accted_amt_idx             := NULL;          -- 4262811
114786 l_acc_rev_flag               := NULL;          -- 4262811
114787 l_accrual_line_num           := NULL;          -- 4262811
114788 l_tmp_amt                    := NULL;          -- 4262811
114789 --
114790  
114791 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
114792     l_balance_type_code <> 'B' THEN
114793 IF NVL(p_source_33,'
114794 ') =  'RETAINAGE' AND 
114795 NVL(p_source_165,'
114796 ') <>  'RETAINAGE RELEASE'
114797  THEN 
114798 
114799    --
114800    XLA_AE_LINES_PKG.SetNewLine;
114801 
114802    p_balance_type_code          := l_balance_type_code;
114803    -- set the flag so later we will know whether the gain loss line needs to be created
114804    
114805    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
114806      p_actual_flag :='A';
114807    END IF;
114808 
114809    --
114810    -- bulk performance
114811    --
114812    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
114813                                       p_header_num   => 0); -- 4262811
114814    --
114815    -- set accounting line options
114816    --
114817    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
114818            p_natural_side_code          => 'D'
114819          , p_gain_or_loss_flag          => 'N'
114820          , p_gl_transfer_mode_code      => 'S'
114821          , p_acct_entry_type_code       => 'A'
114822          , p_switch_side_flag           => 'Y'
114823          , p_merge_duplicate_code       => 'A'
114824          );
114825    --
114826    l_acc_rev_natural_side_code := 'C';  -- 4262811
114827    -- 
114828    --
114829    -- set accounting line type info
114830    --
114831    xla_ae_lines_pkg.SetAcctLineType
114832       (p_component_type             => l_component_type
114833       ,p_event_type_code            => l_event_type_code
114834       ,p_line_definition_owner_code => l_line_definition_owner_code
114835       ,p_line_definition_code       => l_line_definition_code
114839       ,p_amb_context_code           => l_amb_context_code
114836       ,p_accounting_line_code       => l_component_code
114837       ,p_accounting_line_type_code  => l_component_type_code
114838       ,p_accounting_line_appl_id    => l_component_appl_id
114840       ,p_entity_code                => l_entity_code
114841       ,p_event_class_code           => l_event_class_code);
114842    --
114843    -- set accounting class
114844    --
114845    xla_ae_lines_pkg.SetAcctClass(
114846            p_accounting_class_code  => 'RETAINAGE'
114847          , p_ae_header_id           => l_ae_header_id
114848          );
114849 
114850    --
114851    -- set rounding class
114852    --
114853    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
114854                       'RETAINAGE';
114855 
114856    --
114857    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
114858    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
114859    --
114860    -- bulk performance
114861    --
114862    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
114863 
114864    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
114865       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
114866 
114867    -- 4955764
114868    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
114869       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
114870 
114871    -- 4458381 Public Sector Enh
114872    
114873    --
114874    -- set accounting attributes for the line type
114875    --
114876    l_entered_amt_idx := 23;
114877    l_accted_amt_idx  := 28;
114878    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
114879    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
114880    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
114881    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
114882    l_rec_acct_attrs.array_num_value(2)  := 
114883 xla_ae_sources_pkg.GetSystemSourceNum(
114884    p_source_code           => 'XLA_EVENT_APPL_ID'
114885  , p_source_type_code      => 'Y'
114886  , p_source_application_id =>  602
114887 );
114888    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
114889    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
114890    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
114891    l_rec_acct_attrs.array_char_value(4)  := 
114892 xla_ae_sources_pkg.GetSystemSourceChar(
114893    p_source_code           => 'XLA_ENTITY_CODE'
114894  , p_source_type_code      => 'Y'
114895  , p_source_application_id =>  602
114896 );
114897    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
114898    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
114899    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
114900    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
114901    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
114902    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
114903    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
114904    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
114905    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
114906    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
114907    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
114908    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
114909    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
114910    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
114911    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
114912    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
114913    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
114914    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
114915    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
114916    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
114917    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
114918    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
114919    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
114920    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
114921    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
114922    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
114923    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
114924    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
114925    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
114926    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
114927    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
114928    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
114929    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
114930    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
114931    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
114932    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
114933    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
114934    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
114935    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
114936    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
114940    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
114937    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
114938    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
114939    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
114941    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
114942    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
114943    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
114944    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
114945    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
114946    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
114947    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
114948    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
114949    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
114950    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
114951    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
114952    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
114953    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
114954    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
114955    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
114956    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
114957    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
114958    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
114959    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
114960    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
114961    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
114962    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
114963    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
114964    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
114965    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
114966    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
114967    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
114968    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
114969    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
114970    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
114971    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
114972    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
114973    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
114974    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
114975 
114976    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
114977    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
114978 
114979    ---------------------------------------------------------------------------------------------------------------
114980    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
114981    ---------------------------------------------------------------------------------------------------------------
114982    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
114983 
114984    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
114985    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
114986 
114987    IF xla_accounting_cache_pkg.GetValueChar
114988          (p_source_code         => 'LEDGER_CATEGORY_CODE'
114989          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
114990    AND l_bflow_method_code = 'PRIOR_ENTRY'
114991 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
114992    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
114993          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
114994        )
114995    THEN
114996          xla_ae_lines_pkg.BflowUpgEntry
114997            (p_business_method_code    => l_bflow_method_code
114998            ,p_business_class_code     => l_bflow_class_code
114999            ,p_balance_type            => l_balance_type_code);
115000    ELSE
115001       NULL;
115002 -- No business flow processing for business flow method of NONE.
115003    END IF;
115004 
115005    --
115006    -- call analytical criteria
115007    --
115008    
115009    --
115010    -- call description
115011    --
115012    
115013 xla_ae_lines_pkg.SetLineDescription(
115014    p_ae_header_id => l_ae_header_id
115015   ,p_description  => Description_1 (
115016      p_application_id         => p_application_id
115017    , p_ae_header_id           => l_ae_header_id 
115018 , p_source_1 => p_source_1
115019    )
115020 );
115021 
115022 
115023    --
115024    -- call ADRs
115025    -- Bug 4922099
115026    --
115027    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
115028         (NVL(l_actual_upg_option, 'N') = 'O') OR
115029         (NVL(l_enc_upg_option, 'N') = 'O')
115030       )
115031    THEN
115032    NULL;
115033    --
115034    --
115035    
115036   l_ccid := AcctDerRule_40(
115037            p_application_id           => p_application_id
115038          , p_ae_header_id             => l_ae_header_id 
115039 , p_source_15 => p_source_15
115040 , p_source_15_meaning => p_source_15_meaning
115041 , p_source_30 => p_source_30
115042 , p_source_42 => p_source_42
115043          , x_transaction_coa_id       => l_adr_transaction_coa_id
115044          , x_accounting_coa_id        => l_adr_accounting_coa_id
115048 
115045          , x_value_type_code          => l_adr_value_type_code
115046          , p_side                     => 'NA'
115047    );
115049    xla_ae_lines_pkg.set_ccid(
115050     p_code_combination_id          => l_ccid
115051   , p_value_type_code              => l_adr_value_type_code
115052   , p_transaction_coa_id           => l_adr_transaction_coa_id
115053   , p_accounting_coa_id            => l_adr_accounting_coa_id
115054   , p_adr_code                     => 'AP_RETAINAGE'
115055   , p_adr_type_code                => 'S'
115056   , p_component_type               => l_component_type
115057   , p_component_code               => l_component_code
115058   , p_component_type_code          => l_component_type_code
115059   , p_component_appl_id            => l_component_appl_id
115060   , p_amb_context_code             => l_amb_context_code
115061   , p_side                         => 'NA'
115062   );
115063 
115064 
115065    l_segment := AcctDerRule_19(
115066            p_application_id           => p_application_id
115067          , p_ae_header_id             => l_ae_header_id 
115068 , p_source_40 => p_source_40
115069          , x_transaction_coa_id       => l_adr_transaction_coa_id
115070          , x_accounting_coa_id        => l_adr_accounting_coa_id
115071          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
115072          , x_flex_value_set_id        => l_adr_flex_value_set_id
115073          , x_value_type_code          => l_adr_value_type_code
115074          , x_value_combination_id     => l_adr_value_combination_id
115075          , x_value_segment_code       => l_adr_value_segment_code
115076          , p_side                     => 'NA'
115077          , p_override_seg_flag        => 'Y'
115078    );
115079 
115080    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
115081 
115082       xla_ae_lines_pkg.set_segment(
115083           p_to_segment_code         => 'GL_ACCOUNT'
115084         , p_segment_value           => l_segment
115085         , p_from_segment_code       => l_adr_value_segment_code
115086         , p_from_combination_id     => l_adr_value_combination_id
115087         , p_value_type_code         => l_adr_value_type_code
115088         , p_transaction_coa_id      => l_adr_transaction_coa_id
115089         , p_accounting_coa_id       => l_adr_accounting_coa_id
115090         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
115091         , p_flex_value_set_id       => l_adr_flex_value_set_id
115092         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
115093         , p_adr_type_code           => 'S'
115094         , p_component_type          => l_component_type
115095         , p_component_code          => l_component_code
115096         , p_component_type_code     => l_component_type_code
115097         , p_component_appl_id       => l_component_appl_id
115098         , p_amb_context_code        => l_amb_context_code
115099         , p_entity_code             => 'AP_INVOICES'
115100         , p_event_class_code        => 'CREDIT MEMOS'
115101         , p_side                    => 'NA'
115102         );
115103 
115104   END IF;
115105 
115106    l_segment := AcctDerRule_24(
115107            p_application_id           => p_application_id
115108          , p_ae_header_id             => l_ae_header_id 
115109 , p_source_15 => p_source_15
115110 , p_source_15_meaning => p_source_15_meaning
115111 , p_source_42 => p_source_42
115112          , x_transaction_coa_id       => l_adr_transaction_coa_id
115113          , x_accounting_coa_id        => l_adr_accounting_coa_id
115114          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
115115          , x_flex_value_set_id        => l_adr_flex_value_set_id
115116          , x_value_type_code          => l_adr_value_type_code
115117          , x_value_combination_id     => l_adr_value_combination_id
115118          , x_value_segment_code       => l_adr_value_segment_code
115119          , p_side                     => 'NA'
115120          , p_override_seg_flag        => 'Y'
115121    );
115122 
115123    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
115124 
115125       xla_ae_lines_pkg.set_segment(
115126           p_to_segment_code         => 'GL_BALANCING'
115127         , p_segment_value           => l_segment
115128         , p_from_segment_code       => l_adr_value_segment_code
115129         , p_from_combination_id     => l_adr_value_combination_id
115130         , p_value_type_code         => l_adr_value_type_code
115131         , p_transaction_coa_id      => l_adr_transaction_coa_id
115132         , p_accounting_coa_id       => l_adr_accounting_coa_id
115133         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
115134         , p_flex_value_set_id       => l_adr_flex_value_set_id
115135         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
115136         , p_adr_type_code           => 'S'
115137         , p_component_type          => l_component_type
115138         , p_component_code          => l_component_code
115139         , p_component_type_code     => l_component_type_code
115140         , p_component_appl_id       => l_component_appl_id
115141         , p_amb_context_code        => l_amb_context_code
115142         , p_entity_code             => 'AP_INVOICES'
115143         , p_event_class_code        => 'CREDIT MEMOS'
115144         , p_side                    => 'NA'
115145         );
115146 
115147   END IF;
115148 
115149    --
115150    --
115151    END IF;
115152    --
115153    -- Bug 4922099
115154    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
115155           (NVL(l_enc_upg_option, 'N') = 'O')
115159    THEN
115156         ) AND
115157         (l_bflow_method_code = 'PRIOR_ENTRY')
115158       )
115160       IF
115161       --
115162       1 = 2
115163       --
115164       THEN
115165       xla_accounting_err_pkg.build_message
115166                                     (p_appli_s_name            => 'XLA'
115167                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
115168                                     ,p_token_1                 => 'LINE_NUMBER'
115169                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
115170                                     ,p_token_2                 => 'LINE_TYPE_NAME'
115171                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
115172                                                                              l_component_type
115173                                                                             ,l_component_code
115174                                                                             ,l_component_type_code
115175                                                                             ,l_component_appl_id
115176                                                                             ,l_amb_context_code
115177                                                                             ,l_entity_code
115178                                                                             ,l_event_class_code
115179                                                                            )
115180                                     ,p_token_3                 => 'OWNER'
115181                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
115182                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
115183                                                                           ,p_lookup_code    => l_component_type_code
115184                                                                          )
115185                                     ,p_token_4                 => 'PRODUCT_NAME'
115186                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
115187                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
115188                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
115189                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
115190                                     ,p_ae_header_id            =>  NULL
115191                                        );
115192 
115193         IF (C_LEVEL_ERROR>= g_log_level) THEN
115194                  trace
115195                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
115196                       ,p_level    => C_LEVEL_ERROR
115197                       ,p_module   => l_log_module);
115198         END IF;
115199       END IF;
115200    END IF;
115201    --
115202    --
115203    ------------------------------------------------------------------------------------------------
115204    -- 4219869 Business Flow
115205    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
115206    -- Prior Entry.  Currently, the following code is always generated.
115207    ------------------------------------------------------------------------------------------------
115208    XLA_AE_LINES_PKG.ValidateCurrentLine;
115209 
115210    ------------------------------------------------------------------------------------
115211    -- 4219869 Business Flow
115212    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
115213    ------------------------------------------------------------------------------------
115214    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
115215 
115216    ----------------------------------------------------------------------------------
115217    -- 4219869 Business Flow
115218    -- Update journal entry status -- Need to generate this within IF <condition>
115219    ----------------------------------------------------------------------------------
115220    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
115221          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
115222          ,p_balance_type_code => l_balance_type_code
115223          );
115224 
115225    -------------------------------------------------------------------------------------------
115226    -- 4262811 - Generate the Accrual Reversal lines
115227    -------------------------------------------------------------------------------------------
115228    BEGIN
115229       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
115230                               (g_array_event(p_event_id).array_value_num('header_index'));
115231       IF l_acc_rev_flag IS NULL THEN
115232          l_acc_rev_flag := 'N';
115233       END IF;
115234    EXCEPTION
115235       WHEN OTHERS THEN
115236          l_acc_rev_flag := 'N';
115237    END;
115238    --
115239    IF (l_acc_rev_flag = 'Y') THEN
115240 
115241        -- 4645092  ------------------------------------------------------------------------------
115242        -- To allow MPA report to determine if it should generate report process
115243        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
115244        ------------------------------------------------------------------------------------------
115245 
115246        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
115247        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
115251    --
115248    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
115249    -- call ADRs
115250    -- Bug 4922099
115252    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
115253         (NVL(l_actual_upg_option, 'N') = 'O') OR
115254         (NVL(l_enc_upg_option, 'N') = 'O')
115255       )
115256    THEN
115257    NULL;
115258    --
115259    --
115260    
115261   l_ccid := AcctDerRule_40(
115262            p_application_id           => p_application_id
115263          , p_ae_header_id             => l_ae_header_id 
115264 , p_source_15 => p_source_15
115265 , p_source_15_meaning => p_source_15_meaning
115266 , p_source_30 => p_source_30
115267 , p_source_42 => p_source_42
115268          , x_transaction_coa_id       => l_adr_transaction_coa_id
115269          , x_accounting_coa_id        => l_adr_accounting_coa_id
115270          , x_value_type_code          => l_adr_value_type_code
115271          , p_side                     => 'NA'
115272    );
115273 
115274    xla_ae_lines_pkg.set_ccid(
115275     p_code_combination_id          => l_ccid
115276   , p_value_type_code              => l_adr_value_type_code
115277   , p_transaction_coa_id           => l_adr_transaction_coa_id
115278   , p_accounting_coa_id            => l_adr_accounting_coa_id
115279   , p_adr_code                     => 'AP_RETAINAGE'
115280   , p_adr_type_code                => 'S'
115281   , p_component_type               => l_component_type
115282   , p_component_code               => l_component_code
115283   , p_component_type_code          => l_component_type_code
115284   , p_component_appl_id            => l_component_appl_id
115285   , p_amb_context_code             => l_amb_context_code
115286   , p_side                         => 'NA'
115287   );
115288 
115289 
115290    l_segment := AcctDerRule_19(
115291            p_application_id           => p_application_id
115292          , p_ae_header_id             => l_ae_header_id 
115293 , p_source_40 => p_source_40
115294          , x_transaction_coa_id       => l_adr_transaction_coa_id
115295          , x_accounting_coa_id        => l_adr_accounting_coa_id
115296          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
115297          , x_flex_value_set_id        => l_adr_flex_value_set_id
115298          , x_value_type_code          => l_adr_value_type_code
115299          , x_value_combination_id     => l_adr_value_combination_id
115300          , x_value_segment_code       => l_adr_value_segment_code
115301          , p_side                     => 'NA'
115302          , p_override_seg_flag        => 'Y'
115303    );
115304 
115305    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
115306 
115307       xla_ae_lines_pkg.set_segment(
115308           p_to_segment_code         => 'GL_ACCOUNT'
115309         , p_segment_value           => l_segment
115310         , p_from_segment_code       => l_adr_value_segment_code
115311         , p_from_combination_id     => l_adr_value_combination_id
115312         , p_value_type_code         => l_adr_value_type_code
115313         , p_transaction_coa_id      => l_adr_transaction_coa_id
115314         , p_accounting_coa_id       => l_adr_accounting_coa_id
115315         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
115316         , p_flex_value_set_id       => l_adr_flex_value_set_id
115317         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
115318         , p_adr_type_code           => 'S'
115319         , p_component_type          => l_component_type
115320         , p_component_code          => l_component_code
115321         , p_component_type_code     => l_component_type_code
115322         , p_component_appl_id       => l_component_appl_id
115323         , p_amb_context_code        => l_amb_context_code
115324         , p_entity_code             => 'AP_INVOICES'
115325         , p_event_class_code        => 'CREDIT MEMOS'
115326         , p_side                    => 'NA'
115327         );
115328 
115329   END IF;
115330 
115331    l_segment := AcctDerRule_24(
115332            p_application_id           => p_application_id
115333          , p_ae_header_id             => l_ae_header_id 
115334 , p_source_15 => p_source_15
115335 , p_source_15_meaning => p_source_15_meaning
115336 , p_source_42 => p_source_42
115337          , x_transaction_coa_id       => l_adr_transaction_coa_id
115338          , x_accounting_coa_id        => l_adr_accounting_coa_id
115339          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
115340          , x_flex_value_set_id        => l_adr_flex_value_set_id
115341          , x_value_type_code          => l_adr_value_type_code
115342          , x_value_combination_id     => l_adr_value_combination_id
115343          , x_value_segment_code       => l_adr_value_segment_code
115344          , p_side                     => 'NA'
115345          , p_override_seg_flag        => 'Y'
115346    );
115347 
115348    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
115349 
115350       xla_ae_lines_pkg.set_segment(
115351           p_to_segment_code         => 'GL_BALANCING'
115352         , p_segment_value           => l_segment
115353         , p_from_segment_code       => l_adr_value_segment_code
115354         , p_from_combination_id     => l_adr_value_combination_id
115355         , p_value_type_code         => l_adr_value_type_code
115356         , p_transaction_coa_id      => l_adr_transaction_coa_id
115357         , p_accounting_coa_id       => l_adr_accounting_coa_id
115358         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
115359         , p_flex_value_set_id       => l_adr_flex_value_set_id
115360         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
115364         , p_component_type_code     => l_component_type_code
115361         , p_adr_type_code           => 'S'
115362         , p_component_type          => l_component_type
115363         , p_component_code          => l_component_code
115365         , p_component_appl_id       => l_component_appl_id
115366         , p_amb_context_code        => l_amb_context_code
115367         , p_entity_code             => 'AP_INVOICES'
115368         , p_event_class_code        => 'CREDIT MEMOS'
115369         , p_side                    => 'NA'
115370         );
115371 
115372   END IF;
115373 
115374    --
115375    --
115376    END IF;
115377 
115378        --
115379        -- Update the line information that should be overwritten
115380        --
115381        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
115382                                          p_header_num   => 1);
115383        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
115384 
115385        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
115386 
115387        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
115388           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
115389        END IF;
115390 
115391       --
115392       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
115393       --
115394       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
115395           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
115396       ELSE
115397           ---------------------------------------------------------------------------------------------------
115398           -- 4262811a Switch Sign
115399           ---------------------------------------------------------------------------------------------------
115400           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
115401           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
115402                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
115403           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
115404                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
115405           -- 5132302
115406           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
115407                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
115408 
115409       END IF;
115410 
115411       -- 4955764
115412       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
115413       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
115414 
115415 
115416       XLA_AE_LINES_PKG.ValidateCurrentLine;
115417       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
115418 
115419       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
115420                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
115421                ,p_balance_type_code => l_balance_type_code);
115422 
115423    END IF;
115424 
115425    -----------------------------------------------------------------------------------------
115426    -- 4262811 Multiperiod Accounting
115427    -----------------------------------------------------------------------------------------
115428      -- No MPA option is assigned.
115429 
115430 
115431 END IF;
115432 END IF;
115433 --
115434 
115435 --
115436 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
115437    trace
115438       (p_msg      => 'END of AcctLineType_192'
115439       ,p_level    => C_LEVEL_PROCEDURE
115440       ,p_module   => l_log_module);
115441 END IF;
115442 --
115443 EXCEPTION
115444   WHEN xla_exceptions_pkg.application_exception THEN
115445       RAISE;
115446   WHEN OTHERS THEN
115447        xla_exceptions_pkg.raise_message
115448            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_192');
115449 END AcctLineType_192;
115450 --
115451 
115452 ---------------------------------------
115453 --
115454 -- PRIVATE FUNCTION
115455 --         AcctLineType_193
115456 --
115457 ---------------------------------------
115458 PROCEDURE AcctLineType_193 (
115459   p_application_id        IN NUMBER
115460  ,p_event_id              IN NUMBER
115461  ,p_calculate_acctd_flag  IN VARCHAR2
115462  ,p_calculate_g_l_flag    IN VARCHAR2
115463  ,p_actual_flag           IN OUT VARCHAR2
115464  ,p_balance_type_code     OUT VARCHAR2
115465  ,p_gain_or_loss_ref      OUT VARCHAR2
115466  
115467 --Invoice Distribution Description
115468  , p_source_1            IN VARCHAR2
115469 --Automatic Offsets Value
115470  , p_source_15            IN VARCHAR2
115471  , p_source_15_meaning    IN VARCHAR2
115472 --Invoice Distribution Ledger Amount
115473  , p_source_21            IN NUMBER
115474 --Invoice Distribution Account
115475  , p_source_30            IN NUMBER
115476 --Invoice Distribution Type
115477  , p_source_33            IN VARCHAR2
115478  , p_source_33_meaning    IN VARCHAR2
115479 --Retainage Account
115480  , p_source_40            IN NUMBER
115481 --Retainage Related Item Distribution Account
115482  , p_source_42            IN NUMBER
115483 --Accounting Reversal Indicator
115484  , p_source_53            IN VARCHAR2
115488  , p_source_57            IN NUMBER
115485 --Distribution Link Type
115486  , p_source_55            IN VARCHAR2
115487 --Allocation to Main Distribution Identifier
115489 --Invoice Identifier
115490  , p_source_58            IN NUMBER
115491 --Invoice Distribution Identifier
115492  , p_source_64            IN NUMBER
115493 --Payables Encumbrance Upgrade Credit Account
115494  , p_source_65            IN NUMBER
115495 --Payables Encumbrance Upgrade Credit Amount
115496  , p_source_66            IN NUMBER
115497 --Invoice Currency Code
115498  , p_source_67            IN VARCHAR2
115499 --Payables Encumbrance Upgrade Credit Base Amount
115500  , p_source_68            IN NUMBER
115501 --Payables Encumbrance Upgrade Debit Account
115502  , p_source_69            IN NUMBER
115503 --Payables Encumbrance Upgrade Debit Amount
115504  , p_source_70            IN NUMBER
115505 --Payables Encumbrance Upgrade Debit Base Amount
115506  , p_source_71            IN NUMBER
115507 --Payables Encumbrance Upgrade Option
115508  , p_source_72            IN VARCHAR2
115509 --Invoice Distribution Amount
115510  , p_source_73            IN NUMBER
115511 --Deferred Accounting End Date
115512  , p_source_77            IN DATE
115513 --Deferred Accounting Option
115514  , p_source_78            IN VARCHAR2
115515 --Deferred Accounting Start Date
115516  , p_source_79            IN DATE
115517 --Override Accounted Amount Indicator
115518  , p_source_80            IN VARCHAR2
115519  , p_source_80_meaning    IN VARCHAR2
115520 --Invoice Supplier Identifier
115521  , p_source_81            IN NUMBER
115522 --Invoice Supplier Site Identifier
115523  , p_source_82            IN NUMBER
115524 --Third Party Type
115525  , p_source_83            IN VARCHAR2
115526 --Parent Reversal Identifier
115527  , p_source_84            IN NUMBER
115528 --Invoice Distribution Tax Line Identifier
115529  , p_source_86            IN NUMBER
115530 --Invoice Distribution Tax Distribution Identifier from Tax
115531  , p_source_87            IN NUMBER
115532 --Invoice Distribution Summary Tax Line Identifier
115533  , p_source_88            IN NUMBER
115534 --Payables Upgrade Credit Encumbrance Type Identifier
115535  , p_source_89            IN NUMBER
115536 --Payables Upgrade Debit Encumbrance Type Identifier
115537  , p_source_90            IN NUMBER
115538 --Business Flow Accounts Payable Application Identifier
115539  , p_source_91            IN NUMBER
115540 --Business Flow Invoice Distribution Type
115541  , p_source_92            IN VARCHAR2
115542 --Business Flow Invoice Entity Code
115543  , p_source_93            IN VARCHAR2
115544 --Business Flow Invoice Distribution Identifier
115545  , p_source_94            IN NUMBER
115546 --Business Flow Invoice Identifier
115547  , p_source_95            IN NUMBER
115548 --Invoice Exchange Date
115549  , p_source_143            IN DATE
115550 --Invoice Exchange Rate
115551  , p_source_144            IN NUMBER
115552 --Invoice Exchange Rate Type
115553  , p_source_145            IN VARCHAR2
115554 )
115555 IS
115556 
115557 l_component_type              VARCHAR2(80);
115558 l_component_code              VARCHAR2(30);
115559 l_component_type_code         VARCHAR2(1);
115560 l_component_appl_id           INTEGER;
115561 l_amb_context_code            VARCHAR2(30);
115562 l_entity_code                 VARCHAR2(30);
115563 l_event_class_code            VARCHAR2(30);
115564 l_ae_header_id                NUMBER;
115565 l_event_type_code             VARCHAR2(30);
115566 l_line_definition_code        VARCHAR2(30);
115567 l_line_definition_owner_code  VARCHAR2(1);
115568 --
115569 -- adr variables
115570 l_segment                     VARCHAR2(30);
115571 l_ccid                        NUMBER;
115572 l_adr_transaction_coa_id      NUMBER;
115573 l_adr_accounting_coa_id       NUMBER;
115574 l_adr_flexfield_segment_code  VARCHAR2(30);
115575 l_adr_flex_value_set_id       NUMBER;
115576 l_adr_value_type_code         VARCHAR2(30);
115577 l_adr_value_combination_id    NUMBER;
115578 l_adr_value_segment_code      VARCHAR2(30);
115579 
115580 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
115581 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
115582 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
115583 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
115584 
115585 -- 4262811 Variables ------------------------------------------------------------------------------------------
115586 l_entered_amt_idx             NUMBER;
115587 l_accted_amt_idx              NUMBER;
115588 l_acc_rev_flag                VARCHAR2(1);
115589 l_accrual_line_num            NUMBER;
115590 l_tmp_amt                     NUMBER;
115591 l_acc_rev_natural_side_code   VARCHAR2(1);
115592 
115593 l_num_entries                 NUMBER;
115594 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
115595 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
115596 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
115597 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
115598 l_recog_line_1                NUMBER;
115599 l_recog_line_2                NUMBER;
115600 
115601 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
115602 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
115603 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
115604 
115605 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
115606 
115610 ---------------------------------------------------------------------------------------------------------------
115607 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
115608 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
115609 
115611 
115612 
115613 --
115614 -- bulk performance
115615 --
115616 l_balance_type_code           VARCHAR2(1);
115617 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
115618 l_log_module                  VARCHAR2(240);
115619 
115620 --
115621 -- Upgrade strategy
115622 --
115623 l_actual_upg_option           VARCHAR2(1);
115624 l_enc_upg_option           VARCHAR2(1);
115625 
115626 --
115627 BEGIN
115628 --
115629 IF g_log_enabled THEN
115630       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_193';
115631 END IF;
115632 --
115633 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
115634 
115635       trace
115636          (p_msg      => 'BEGIN of AcctLineType_193'
115637          ,p_level    => C_LEVEL_PROCEDURE
115638          ,p_module   => l_log_module);
115639 
115640 END IF;
115641 --
115642 l_component_type             := 'AMB_JLT';
115643 l_component_code             := 'AP_RETAINAGE_ACC_DM';
115644 l_component_type_code        := 'S';
115645 l_component_appl_id          :=  200;
115646 l_amb_context_code           := 'DEFAULT';
115647 l_entity_code                := 'AP_INVOICES';
115648 l_event_class_code           := 'DEBIT MEMOS';
115649 l_event_type_code            := 'DEBIT MEMOS_ALL';
115650 l_line_definition_owner_code := 'S';
115651 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
115652 --
115653 l_balance_type_code          := 'A';
115654 l_segment                     := NULL;
115655 l_ccid                        := NULL;
115656 l_adr_transaction_coa_id      := NULL;
115657 l_adr_accounting_coa_id       := NULL;
115658 l_adr_flexfield_segment_code  := NULL;
115659 l_adr_flex_value_set_id       := NULL;
115660 l_adr_value_type_code         := NULL;
115661 l_adr_value_combination_id    := NULL;
115662 l_adr_value_segment_code      := NULL;
115663 
115664 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
115665 l_bflow_class_code           := 'AP_RETAINAGE';    -- 4219869 Business Flow
115666 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
115667 l_budgetary_control_flag     := 'N';
115668 
115669 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
115670 l_bflow_applied_to_amt       := NULL; -- 5132302
115671 l_entered_amt_idx            := NULL;          -- 4262811
115672 l_accted_amt_idx             := NULL;          -- 4262811
115673 l_acc_rev_flag               := NULL;          -- 4262811
115674 l_accrual_line_num           := NULL;          -- 4262811
115675 l_tmp_amt                    := NULL;          -- 4262811
115676 --
115677  
115678 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
115679     l_balance_type_code <> 'B' THEN
115680 IF NVL(p_source_33,'
115681 ') =  'RETAINAGE'
115682  THEN 
115683 
115684    --
115685    XLA_AE_LINES_PKG.SetNewLine;
115686 
115687    p_balance_type_code          := l_balance_type_code;
115688    -- set the flag so later we will know whether the gain loss line needs to be created
115689    
115690    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
115691      p_actual_flag :='A';
115692    END IF;
115693 
115694    --
115695    -- bulk performance
115696    --
115697    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
115698                                       p_header_num   => 0); -- 4262811
115699    --
115700    -- set accounting line options
115701    --
115702    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
115703            p_natural_side_code          => 'D'
115704          , p_gain_or_loss_flag          => 'N'
115705          , p_gl_transfer_mode_code      => 'S'
115706          , p_acct_entry_type_code       => 'A'
115707          , p_switch_side_flag           => 'Y'
115708          , p_merge_duplicate_code       => 'A'
115709          );
115710    --
115711    l_acc_rev_natural_side_code := 'C';  -- 4262811
115712    -- 
115713    --
115714    -- set accounting line type info
115715    --
115716    xla_ae_lines_pkg.SetAcctLineType
115717       (p_component_type             => l_component_type
115718       ,p_event_type_code            => l_event_type_code
115719       ,p_line_definition_owner_code => l_line_definition_owner_code
115720       ,p_line_definition_code       => l_line_definition_code
115721       ,p_accounting_line_code       => l_component_code
115722       ,p_accounting_line_type_code  => l_component_type_code
115723       ,p_accounting_line_appl_id    => l_component_appl_id
115724       ,p_amb_context_code           => l_amb_context_code
115725       ,p_entity_code                => l_entity_code
115726       ,p_event_class_code           => l_event_class_code);
115727    --
115728    -- set accounting class
115729    --
115730    xla_ae_lines_pkg.SetAcctClass(
115731            p_accounting_class_code  => 'RETAINAGE'
115732          , p_ae_header_id           => l_ae_header_id
115733          );
115734 
115735    --
115736    -- set rounding class
115737    --
115738    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
115739                       'RETAINAGE';
115740 
115741    --
115745    -- bulk performance
115742    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
115743    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
115744    --
115746    --
115747    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
115748 
115749    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
115750       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
115751 
115752    -- 4955764
115753    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
115754       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
115755 
115756    -- 4458381 Public Sector Enh
115757    
115758    --
115759    -- set accounting attributes for the line type
115760    --
115761    l_entered_amt_idx := 23;
115762    l_accted_amt_idx  := 28;
115763    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
115764    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
115765    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
115766    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
115767    l_rec_acct_attrs.array_num_value(2)  := 
115768 xla_ae_sources_pkg.GetSystemSourceNum(
115769    p_source_code           => 'XLA_EVENT_APPL_ID'
115770  , p_source_type_code      => 'Y'
115771  , p_source_application_id =>  602
115772 );
115773    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
115774    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
115775    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
115776    l_rec_acct_attrs.array_char_value(4)  := 
115777 xla_ae_sources_pkg.GetSystemSourceChar(
115778    p_source_code           => 'XLA_ENTITY_CODE'
115779  , p_source_type_code      => 'Y'
115780  , p_source_application_id =>  602
115781 );
115782    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
115783    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
115784    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
115785    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
115786    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
115787    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
115788    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
115789    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
115790    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
115791    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
115792    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
115793    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
115794    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
115795    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
115796    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
115797    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
115798    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
115799    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
115800    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
115801    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
115802    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
115803    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
115804    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
115805    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
115806    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
115807    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
115808    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
115809    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
115810    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
115811    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
115812    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
115813    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
115814    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
115815    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
115816    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
115817    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
115818    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
115819    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
115820    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
115821    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
115822    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
115823    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
115824    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
115825    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
115826    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
115827    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
115828    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
115829    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
115830    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
115831    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
115832    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
115833    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
115834    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
115838    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
115835    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
115836    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
115837    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
115839    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
115840    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
115841    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
115842    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
115843    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
115844    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
115845    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
115846    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
115847    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
115848    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
115849    l_rec_acct_attrs.array_num_value(38)  := p_source_86;
115850    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
115851    l_rec_acct_attrs.array_num_value(39)  := p_source_87;
115852    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
115853    l_rec_acct_attrs.array_num_value(40)  := p_source_88;
115854    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
115855    l_rec_acct_attrs.array_num_value(41)  := p_source_89;
115856    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
115857    l_rec_acct_attrs.array_num_value(42)  := p_source_90;
115858 
115859    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
115860    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
115861 
115862    ---------------------------------------------------------------------------------------------------------------
115863    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
115864    ---------------------------------------------------------------------------------------------------------------
115865    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
115866 
115867    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
115868    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
115869 
115870    IF xla_accounting_cache_pkg.GetValueChar
115871          (p_source_code         => 'LEDGER_CATEGORY_CODE'
115872          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
115873    AND l_bflow_method_code = 'PRIOR_ENTRY'
115874 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
115875    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
115876          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
115877        )
115878    THEN
115879          xla_ae_lines_pkg.BflowUpgEntry
115880            (p_business_method_code    => l_bflow_method_code
115881            ,p_business_class_code     => l_bflow_class_code
115882            ,p_balance_type            => l_balance_type_code);
115883    ELSE
115884       NULL;
115885 -- No business flow processing for business flow method of NONE.
115886    END IF;
115887 
115888    --
115889    -- call analytical criteria
115890    --
115891    
115892    --
115893    -- call description
115894    --
115895    
115896 xla_ae_lines_pkg.SetLineDescription(
115897    p_ae_header_id => l_ae_header_id
115898   ,p_description  => Description_1 (
115899      p_application_id         => p_application_id
115900    , p_ae_header_id           => l_ae_header_id 
115901 , p_source_1 => p_source_1
115902    )
115903 );
115904 
115905 
115906    --
115907    -- call ADRs
115908    -- Bug 4922099
115909    --
115910    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
115911         (NVL(l_actual_upg_option, 'N') = 'O') OR
115912         (NVL(l_enc_upg_option, 'N') = 'O')
115913       )
115914    THEN
115915    NULL;
115916    --
115917    --
115918    
115919   l_ccid := AcctDerRule_40(
115920            p_application_id           => p_application_id
115921          , p_ae_header_id             => l_ae_header_id 
115922 , p_source_15 => p_source_15
115923 , p_source_15_meaning => p_source_15_meaning
115924 , p_source_30 => p_source_30
115925 , p_source_42 => p_source_42
115926          , x_transaction_coa_id       => l_adr_transaction_coa_id
115927          , x_accounting_coa_id        => l_adr_accounting_coa_id
115928          , x_value_type_code          => l_adr_value_type_code
115929          , p_side                     => 'NA'
115930    );
115931 
115932    xla_ae_lines_pkg.set_ccid(
115933     p_code_combination_id          => l_ccid
115934   , p_value_type_code              => l_adr_value_type_code
115935   , p_transaction_coa_id           => l_adr_transaction_coa_id
115936   , p_accounting_coa_id            => l_adr_accounting_coa_id
115937   , p_adr_code                     => 'AP_RETAINAGE'
115938   , p_adr_type_code                => 'S'
115939   , p_component_type               => l_component_type
115940   , p_component_code               => l_component_code
115941   , p_component_type_code          => l_component_type_code
115942   , p_component_appl_id            => l_component_appl_id
115943   , p_amb_context_code             => l_amb_context_code
115944   , p_side                         => 'NA'
115945   );
115946 
115947 
115948    l_segment := AcctDerRule_19(
115949            p_application_id           => p_application_id
115950          , p_ae_header_id             => l_ae_header_id 
115954          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
115951 , p_source_40 => p_source_40
115952          , x_transaction_coa_id       => l_adr_transaction_coa_id
115953          , x_accounting_coa_id        => l_adr_accounting_coa_id
115955          , x_flex_value_set_id        => l_adr_flex_value_set_id
115956          , x_value_type_code          => l_adr_value_type_code
115957          , x_value_combination_id     => l_adr_value_combination_id
115958          , x_value_segment_code       => l_adr_value_segment_code
115959          , p_side                     => 'NA'
115960          , p_override_seg_flag        => 'Y'
115961    );
115962 
115963    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
115964 
115965       xla_ae_lines_pkg.set_segment(
115966           p_to_segment_code         => 'GL_ACCOUNT'
115967         , p_segment_value           => l_segment
115968         , p_from_segment_code       => l_adr_value_segment_code
115969         , p_from_combination_id     => l_adr_value_combination_id
115970         , p_value_type_code         => l_adr_value_type_code
115971         , p_transaction_coa_id      => l_adr_transaction_coa_id
115972         , p_accounting_coa_id       => l_adr_accounting_coa_id
115973         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
115974         , p_flex_value_set_id       => l_adr_flex_value_set_id
115975         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
115976         , p_adr_type_code           => 'S'
115977         , p_component_type          => l_component_type
115978         , p_component_code          => l_component_code
115979         , p_component_type_code     => l_component_type_code
115980         , p_component_appl_id       => l_component_appl_id
115981         , p_amb_context_code        => l_amb_context_code
115982         , p_entity_code             => 'AP_INVOICES'
115983         , p_event_class_code        => 'DEBIT MEMOS'
115984         , p_side                    => 'NA'
115985         );
115986 
115987   END IF;
115988 
115989    l_segment := AcctDerRule_24(
115990            p_application_id           => p_application_id
115991          , p_ae_header_id             => l_ae_header_id 
115992 , p_source_15 => p_source_15
115993 , p_source_15_meaning => p_source_15_meaning
115994 , p_source_42 => p_source_42
115995          , x_transaction_coa_id       => l_adr_transaction_coa_id
115996          , x_accounting_coa_id        => l_adr_accounting_coa_id
115997          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
115998          , x_flex_value_set_id        => l_adr_flex_value_set_id
115999          , x_value_type_code          => l_adr_value_type_code
116000          , x_value_combination_id     => l_adr_value_combination_id
116001          , x_value_segment_code       => l_adr_value_segment_code
116002          , p_side                     => 'NA'
116003          , p_override_seg_flag        => 'Y'
116004    );
116005 
116006    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
116007 
116008       xla_ae_lines_pkg.set_segment(
116009           p_to_segment_code         => 'GL_BALANCING'
116010         , p_segment_value           => l_segment
116011         , p_from_segment_code       => l_adr_value_segment_code
116012         , p_from_combination_id     => l_adr_value_combination_id
116013         , p_value_type_code         => l_adr_value_type_code
116014         , p_transaction_coa_id      => l_adr_transaction_coa_id
116015         , p_accounting_coa_id       => l_adr_accounting_coa_id
116016         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
116017         , p_flex_value_set_id       => l_adr_flex_value_set_id
116018         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
116019         , p_adr_type_code           => 'S'
116020         , p_component_type          => l_component_type
116021         , p_component_code          => l_component_code
116022         , p_component_type_code     => l_component_type_code
116023         , p_component_appl_id       => l_component_appl_id
116024         , p_amb_context_code        => l_amb_context_code
116025         , p_entity_code             => 'AP_INVOICES'
116026         , p_event_class_code        => 'DEBIT MEMOS'
116027         , p_side                    => 'NA'
116028         );
116029 
116030   END IF;
116031 
116032    --
116033    --
116034    END IF;
116035    --
116036    -- Bug 4922099
116037    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
116038           (NVL(l_enc_upg_option, 'N') = 'O')
116039         ) AND
116040         (l_bflow_method_code = 'PRIOR_ENTRY')
116041       )
116042    THEN
116043       IF
116044       --
116045       1 = 2
116046       --
116047       THEN
116048       xla_accounting_err_pkg.build_message
116049                                     (p_appli_s_name            => 'XLA'
116050                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
116051                                     ,p_token_1                 => 'LINE_NUMBER'
116052                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
116053                                     ,p_token_2                 => 'LINE_TYPE_NAME'
116054                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
116055                                                                              l_component_type
116056                                                                             ,l_component_code
116057                                                                             ,l_component_type_code
116061                                                                             ,l_event_class_code
116058                                                                             ,l_component_appl_id
116059                                                                             ,l_amb_context_code
116060                                                                             ,l_entity_code
116062                                                                            )
116063                                     ,p_token_3                 => 'OWNER'
116064                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
116065                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
116066                                                                           ,p_lookup_code    => l_component_type_code
116067                                                                          )
116068                                     ,p_token_4                 => 'PRODUCT_NAME'
116069                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
116070                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
116071                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
116072                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
116073                                     ,p_ae_header_id            =>  NULL
116074                                        );
116075 
116076         IF (C_LEVEL_ERROR>= g_log_level) THEN
116077                  trace
116078                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
116079                       ,p_level    => C_LEVEL_ERROR
116080                       ,p_module   => l_log_module);
116081         END IF;
116082       END IF;
116083    END IF;
116084    --
116085    --
116086    ------------------------------------------------------------------------------------------------
116087    -- 4219869 Business Flow
116088    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
116089    -- Prior Entry.  Currently, the following code is always generated.
116090    ------------------------------------------------------------------------------------------------
116091    XLA_AE_LINES_PKG.ValidateCurrentLine;
116092 
116093    ------------------------------------------------------------------------------------
116094    -- 4219869 Business Flow
116095    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
116096    ------------------------------------------------------------------------------------
116097    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
116098 
116099    ----------------------------------------------------------------------------------
116100    -- 4219869 Business Flow
116101    -- Update journal entry status -- Need to generate this within IF <condition>
116102    ----------------------------------------------------------------------------------
116103    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
116104          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
116105          ,p_balance_type_code => l_balance_type_code
116106          );
116107 
116108    -------------------------------------------------------------------------------------------
116109    -- 4262811 - Generate the Accrual Reversal lines
116110    -------------------------------------------------------------------------------------------
116111    BEGIN
116112       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
116113                               (g_array_event(p_event_id).array_value_num('header_index'));
116114       IF l_acc_rev_flag IS NULL THEN
116115          l_acc_rev_flag := 'N';
116116       END IF;
116117    EXCEPTION
116118       WHEN OTHERS THEN
116119          l_acc_rev_flag := 'N';
116120    END;
116121    --
116122    IF (l_acc_rev_flag = 'Y') THEN
116123 
116124        -- 4645092  ------------------------------------------------------------------------------
116125        -- To allow MPA report to determine if it should generate report process
116126        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
116127        ------------------------------------------------------------------------------------------
116128 
116129        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
116130        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
116131    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
116132    -- call ADRs
116133    -- Bug 4922099
116134    --
116135    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
116136         (NVL(l_actual_upg_option, 'N') = 'O') OR
116137         (NVL(l_enc_upg_option, 'N') = 'O')
116138       )
116139    THEN
116140    NULL;
116141    --
116142    --
116143    
116144   l_ccid := AcctDerRule_40(
116145            p_application_id           => p_application_id
116146          , p_ae_header_id             => l_ae_header_id 
116147 , p_source_15 => p_source_15
116148 , p_source_15_meaning => p_source_15_meaning
116149 , p_source_30 => p_source_30
116150 , p_source_42 => p_source_42
116151          , x_transaction_coa_id       => l_adr_transaction_coa_id
116152          , x_accounting_coa_id        => l_adr_accounting_coa_id
116153          , x_value_type_code          => l_adr_value_type_code
116154          , p_side                     => 'NA'
116155    );
116156 
116157    xla_ae_lines_pkg.set_ccid(
116158     p_code_combination_id          => l_ccid
116162   , p_adr_code                     => 'AP_RETAINAGE'
116159   , p_value_type_code              => l_adr_value_type_code
116160   , p_transaction_coa_id           => l_adr_transaction_coa_id
116161   , p_accounting_coa_id            => l_adr_accounting_coa_id
116163   , p_adr_type_code                => 'S'
116164   , p_component_type               => l_component_type
116165   , p_component_code               => l_component_code
116166   , p_component_type_code          => l_component_type_code
116167   , p_component_appl_id            => l_component_appl_id
116168   , p_amb_context_code             => l_amb_context_code
116169   , p_side                         => 'NA'
116170   );
116171 
116172 
116173    l_segment := AcctDerRule_19(
116174            p_application_id           => p_application_id
116175          , p_ae_header_id             => l_ae_header_id 
116176 , p_source_40 => p_source_40
116177          , x_transaction_coa_id       => l_adr_transaction_coa_id
116178          , x_accounting_coa_id        => l_adr_accounting_coa_id
116179          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
116180          , x_flex_value_set_id        => l_adr_flex_value_set_id
116181          , x_value_type_code          => l_adr_value_type_code
116182          , x_value_combination_id     => l_adr_value_combination_id
116183          , x_value_segment_code       => l_adr_value_segment_code
116184          , p_side                     => 'NA'
116185          , p_override_seg_flag        => 'Y'
116186    );
116187 
116188    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
116189 
116190       xla_ae_lines_pkg.set_segment(
116191           p_to_segment_code         => 'GL_ACCOUNT'
116192         , p_segment_value           => l_segment
116193         , p_from_segment_code       => l_adr_value_segment_code
116194         , p_from_combination_id     => l_adr_value_combination_id
116195         , p_value_type_code         => l_adr_value_type_code
116196         , p_transaction_coa_id      => l_adr_transaction_coa_id
116197         , p_accounting_coa_id       => l_adr_accounting_coa_id
116198         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
116199         , p_flex_value_set_id       => l_adr_flex_value_set_id
116200         , p_adr_code                => 'AP_RETAIN_NAT_ACCT_SEG'
116201         , p_adr_type_code           => 'S'
116202         , p_component_type          => l_component_type
116203         , p_component_code          => l_component_code
116204         , p_component_type_code     => l_component_type_code
116205         , p_component_appl_id       => l_component_appl_id
116206         , p_amb_context_code        => l_amb_context_code
116207         , p_entity_code             => 'AP_INVOICES'
116208         , p_event_class_code        => 'DEBIT MEMOS'
116209         , p_side                    => 'NA'
116210         );
116211 
116212   END IF;
116213 
116214    l_segment := AcctDerRule_24(
116215            p_application_id           => p_application_id
116216          , p_ae_header_id             => l_ae_header_id 
116217 , p_source_15 => p_source_15
116218 , p_source_15_meaning => p_source_15_meaning
116219 , p_source_42 => p_source_42
116220          , x_transaction_coa_id       => l_adr_transaction_coa_id
116221          , x_accounting_coa_id        => l_adr_accounting_coa_id
116222          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
116223          , x_flex_value_set_id        => l_adr_flex_value_set_id
116224          , x_value_type_code          => l_adr_value_type_code
116225          , x_value_combination_id     => l_adr_value_combination_id
116226          , x_value_segment_code       => l_adr_value_segment_code
116227          , p_side                     => 'NA'
116228          , p_override_seg_flag        => 'Y'
116229    );
116230 
116231    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
116232 
116233       xla_ae_lines_pkg.set_segment(
116234           p_to_segment_code         => 'GL_BALANCING'
116235         , p_segment_value           => l_segment
116236         , p_from_segment_code       => l_adr_value_segment_code
116237         , p_from_combination_id     => l_adr_value_combination_id
116238         , p_value_type_code         => l_adr_value_type_code
116239         , p_transaction_coa_id      => l_adr_transaction_coa_id
116240         , p_accounting_coa_id       => l_adr_accounting_coa_id
116241         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
116242         , p_flex_value_set_id       => l_adr_flex_value_set_id
116243         , p_adr_code                => 'AP_RETAIN_RELATED_BAL_SEG'
116244         , p_adr_type_code           => 'S'
116245         , p_component_type          => l_component_type
116246         , p_component_code          => l_component_code
116247         , p_component_type_code     => l_component_type_code
116248         , p_component_appl_id       => l_component_appl_id
116249         , p_amb_context_code        => l_amb_context_code
116250         , p_entity_code             => 'AP_INVOICES'
116251         , p_event_class_code        => 'DEBIT MEMOS'
116252         , p_side                    => 'NA'
116253         );
116254 
116255   END IF;
116256 
116257    --
116258    --
116259    END IF;
116260 
116261        --
116262        -- Update the line information that should be overwritten
116263        --
116264        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
116265                                          p_header_num   => 1);
116266        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
116267 
116271           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
116268        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
116269 
116270        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
116272        END IF;
116273 
116274       --
116275       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
116276       --
116277       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
116278           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
116279       ELSE
116280           ---------------------------------------------------------------------------------------------------
116281           -- 4262811a Switch Sign
116282           ---------------------------------------------------------------------------------------------------
116283           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
116284           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
116285                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116286           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
116287                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116288           -- 5132302
116289           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
116290                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116291 
116292       END IF;
116293 
116294       -- 4955764
116295       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
116296       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
116297 
116298 
116299       XLA_AE_LINES_PKG.ValidateCurrentLine;
116300       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
116301 
116302       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
116303                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
116304                ,p_balance_type_code => l_balance_type_code);
116305 
116306    END IF;
116307 
116308    -----------------------------------------------------------------------------------------
116309    -- 4262811 Multiperiod Accounting
116310    -----------------------------------------------------------------------------------------
116311      -- No MPA option is assigned.
116312 
116313 
116314 END IF;
116315 END IF;
116316 --
116317 
116318 --
116319 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
116320    trace
116321       (p_msg      => 'END of AcctLineType_193'
116322       ,p_level    => C_LEVEL_PROCEDURE
116323       ,p_module   => l_log_module);
116324 END IF;
116325 --
116326 EXCEPTION
116327   WHEN xla_exceptions_pkg.application_exception THEN
116328       RAISE;
116329   WHEN OTHERS THEN
116330        xla_exceptions_pkg.raise_message
116331            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_193');
116332 END AcctLineType_193;
116333 --
116334 
116335 ---------------------------------------
116336 --
116337 -- PRIVATE FUNCTION
116338 --         AcctLineType_194
116339 --
116340 ---------------------------------------
116341 PROCEDURE AcctLineType_194 (
116342   p_application_id        IN NUMBER
116343  ,p_event_id              IN NUMBER
116344  ,p_calculate_acctd_flag  IN VARCHAR2
116345  ,p_calculate_g_l_flag    IN VARCHAR2
116346  ,p_actual_flag           IN OUT VARCHAR2
116347  ,p_balance_type_code     OUT VARCHAR2
116348  ,p_gain_or_loss_ref      OUT VARCHAR2
116349  
116350 --Invoice Distribution Description
116351  , p_source_1            IN VARCHAR2
116352 --Invoice Distribution Ledger Amount
116353  , p_source_21            IN NUMBER
116354 --Invoice Distribution Type
116355  , p_source_33            IN VARCHAR2
116356  , p_source_33_meaning    IN VARCHAR2
116357 --Accounting Reversal Indicator
116358  , p_source_53            IN VARCHAR2
116359 --Distribution Link Type
116360  , p_source_55            IN VARCHAR2
116361 --Allocation to Main Distribution Identifier
116362  , p_source_57            IN NUMBER
116363 --Invoice Identifier
116364  , p_source_58            IN NUMBER
116365 --Invoice Distribution Identifier
116366  , p_source_64            IN NUMBER
116367 --Payables Encumbrance Upgrade Credit Account
116368  , p_source_65            IN NUMBER
116369 --Payables Encumbrance Upgrade Credit Amount
116370  , p_source_66            IN NUMBER
116371 --Invoice Currency Code
116372  , p_source_67            IN VARCHAR2
116373 --Payables Encumbrance Upgrade Credit Base Amount
116374  , p_source_68            IN NUMBER
116375 --Payables Encumbrance Upgrade Debit Account
116376  , p_source_69            IN NUMBER
116377 --Payables Encumbrance Upgrade Debit Amount
116378  , p_source_70            IN NUMBER
116379 --Payables Encumbrance Upgrade Debit Base Amount
116380  , p_source_71            IN NUMBER
116381 --Payables Encumbrance Upgrade Option
116382  , p_source_72            IN VARCHAR2
116383 --Invoice Distribution Amount
116384  , p_source_73            IN NUMBER
116385 --Deferred Accounting End Date
116386  , p_source_77            IN DATE
116387 --Deferred Accounting Option
116388  , p_source_78            IN VARCHAR2
116392  , p_source_80            IN VARCHAR2
116389 --Deferred Accounting Start Date
116390  , p_source_79            IN DATE
116391 --Override Accounted Amount Indicator
116393  , p_source_80_meaning    IN VARCHAR2
116394 --Third Party Type
116395  , p_source_83            IN VARCHAR2
116396 --Parent Reversal Identifier
116397  , p_source_84            IN NUMBER
116398 --Invoice Distribution Statistical Amount
116399  , p_source_85            IN NUMBER
116400 --Invoice Distribution Tax Line Identifier
116401  , p_source_86            IN NUMBER
116402 --Invoice Distribution Tax Distribution Identifier from Tax
116403  , p_source_87            IN NUMBER
116404 --Invoice Distribution Summary Tax Line Identifier
116405  , p_source_88            IN NUMBER
116406 --Payables Upgrade Credit Encumbrance Type Identifier
116407  , p_source_89            IN NUMBER
116408 --Payables Upgrade Debit Encumbrance Type Identifier
116409  , p_source_90            IN NUMBER
116410 --Business Flow Accounts Payable Application Identifier
116411  , p_source_91            IN NUMBER
116412 --Business Flow Invoice Distribution Type
116413  , p_source_92            IN VARCHAR2
116414 --Business Flow Invoice Entity Code
116415  , p_source_93            IN VARCHAR2
116416 --Invoice Type
116417  , p_source_165            IN VARCHAR2
116418  , p_source_165_meaning    IN VARCHAR2
116419 --Business Flow Retained Invoice Distribution
116420  , p_source_166            IN NUMBER
116421 --Business Flow Retained Invoice
116422  , p_source_167            IN NUMBER
116423 )
116424 IS
116425 
116426 l_component_type              VARCHAR2(80);
116427 l_component_code              VARCHAR2(30);
116428 l_component_type_code         VARCHAR2(1);
116429 l_component_appl_id           INTEGER;
116430 l_amb_context_code            VARCHAR2(30);
116431 l_entity_code                 VARCHAR2(30);
116432 l_event_class_code            VARCHAR2(30);
116433 l_ae_header_id                NUMBER;
116434 l_event_type_code             VARCHAR2(30);
116435 l_line_definition_code        VARCHAR2(30);
116436 l_line_definition_owner_code  VARCHAR2(1);
116437 --
116438 -- adr variables
116439 l_segment                     VARCHAR2(30);
116440 l_ccid                        NUMBER;
116441 l_adr_transaction_coa_id      NUMBER;
116442 l_adr_accounting_coa_id       NUMBER;
116443 l_adr_flexfield_segment_code  VARCHAR2(30);
116444 l_adr_flex_value_set_id       NUMBER;
116445 l_adr_value_type_code         VARCHAR2(30);
116446 l_adr_value_combination_id    NUMBER;
116447 l_adr_value_segment_code      VARCHAR2(30);
116448 
116449 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
116450 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
116451 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
116452 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
116453 
116454 -- 4262811 Variables ------------------------------------------------------------------------------------------
116455 l_entered_amt_idx             NUMBER;
116456 l_accted_amt_idx              NUMBER;
116457 l_acc_rev_flag                VARCHAR2(1);
116458 l_accrual_line_num            NUMBER;
116459 l_tmp_amt                     NUMBER;
116460 l_acc_rev_natural_side_code   VARCHAR2(1);
116461 
116462 l_num_entries                 NUMBER;
116463 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
116464 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
116465 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
116466 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
116467 l_recog_line_1                NUMBER;
116468 l_recog_line_2                NUMBER;
116469 
116470 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
116471 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
116472 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
116473 
116474 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
116475 
116476 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
116477 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
116478 
116479 ---------------------------------------------------------------------------------------------------------------
116480 
116481 
116482 --
116483 -- bulk performance
116484 --
116485 l_balance_type_code           VARCHAR2(1);
116486 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
116487 l_log_module                  VARCHAR2(240);
116488 
116489 --
116490 -- Upgrade strategy
116491 --
116492 l_actual_upg_option           VARCHAR2(1);
116493 l_enc_upg_option           VARCHAR2(1);
116494 
116495 --
116496 BEGIN
116497 --
116498 IF g_log_enabled THEN
116499       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_194';
116500 END IF;
116501 --
116502 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
116503 
116504       trace
116505          (p_msg      => 'BEGIN of AcctLineType_194'
116506          ,p_level    => C_LEVEL_PROCEDURE
116507          ,p_module   => l_log_module);
116508 
116509 END IF;
116510 --
116511 l_component_type             := 'AMB_JLT';
116512 l_component_code             := 'AP_RETAINAGE_RELEASE_ACCR';
116513 l_component_type_code        := 'S';
116514 l_component_appl_id          :=  200;
116515 l_amb_context_code           := 'DEFAULT';
116516 l_entity_code                := 'AP_INVOICES';
116517 l_event_class_code           := 'INVOICES';
116518 l_event_type_code            := 'INVOICES_ALL';
116522 l_balance_type_code          := 'A';
116519 l_line_definition_owner_code := 'S';
116520 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
116521 --
116523 l_segment                     := NULL;
116524 l_ccid                        := NULL;
116525 l_adr_transaction_coa_id      := NULL;
116526 l_adr_accounting_coa_id       := NULL;
116527 l_adr_flexfield_segment_code  := NULL;
116528 l_adr_flex_value_set_id       := NULL;
116529 l_adr_value_type_code         := NULL;
116530 l_adr_value_combination_id    := NULL;
116531 l_adr_value_segment_code      := NULL;
116532 
116533 l_bflow_method_code          := 'PRIOR_ENTRY';   -- 4219869 Business Flow
116534 l_bflow_class_code           := 'AP_RETAINAGE';    -- 4219869 Business Flow
116535 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
116536 l_budgetary_control_flag     := 'N';
116537 
116538 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
116539 l_bflow_applied_to_amt       := NULL; -- 5132302
116540 l_entered_amt_idx            := NULL;          -- 4262811
116541 l_accted_amt_idx             := NULL;          -- 4262811
116542 l_acc_rev_flag               := NULL;          -- 4262811
116543 l_accrual_line_num           := NULL;          -- 4262811
116544 l_tmp_amt                    := NULL;          -- 4262811
116545 --
116546  
116547 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
116548     l_balance_type_code <> 'B' THEN
116549 IF NVL(p_source_165,'
116550 ') =  'RETAINAGE RELEASE' AND 
116551 NVL(p_source_33,'
116552 ') =  'RETAINAGE'
116553  THEN 
116554 
116555    --
116556    XLA_AE_LINES_PKG.SetNewLine;
116557 
116558    p_balance_type_code          := l_balance_type_code;
116559    -- set the flag so later we will know whether the gain loss line needs to be created
116560    
116561    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
116562      p_actual_flag :='A';
116563    END IF;
116564 
116565    --
116566    -- bulk performance
116567    --
116568    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
116569                                       p_header_num   => 0); -- 4262811
116570    --
116571    -- set accounting line options
116572    --
116573    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
116574            p_natural_side_code          => 'D'
116575          , p_gain_or_loss_flag          => 'N'
116576          , p_gl_transfer_mode_code      => 'S'
116577          , p_acct_entry_type_code       => 'A'
116578          , p_switch_side_flag           => 'Y'
116579          , p_merge_duplicate_code       => 'A'
116580          );
116581    --
116582    l_acc_rev_natural_side_code := 'C';  -- 4262811
116583    -- 
116584    --
116585    -- set accounting line type info
116586    --
116587    xla_ae_lines_pkg.SetAcctLineType
116588       (p_component_type             => l_component_type
116589       ,p_event_type_code            => l_event_type_code
116590       ,p_line_definition_owner_code => l_line_definition_owner_code
116591       ,p_line_definition_code       => l_line_definition_code
116592       ,p_accounting_line_code       => l_component_code
116593       ,p_accounting_line_type_code  => l_component_type_code
116594       ,p_accounting_line_appl_id    => l_component_appl_id
116595       ,p_amb_context_code           => l_amb_context_code
116596       ,p_entity_code                => l_entity_code
116597       ,p_event_class_code           => l_event_class_code);
116598    --
116599    -- set accounting class
116600    --
116601    xla_ae_lines_pkg.SetAcctClass(
116602            p_accounting_class_code  => 'RETAINAGE'
116603          , p_ae_header_id           => l_ae_header_id
116604          );
116605 
116606    --
116607    -- set rounding class
116608    --
116609    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
116610                       'RETAINAGE';
116611 
116612    --
116613    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
116614    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
116615    --
116616    -- bulk performance
116617    --
116618    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
116619 
116620    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
116621       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
116622 
116623    -- 4955764
116624    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
116625       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
116626 
116627    -- 4458381 Public Sector Enh
116628    
116629    --
116630    -- set accounting attributes for the line type
116631    --
116632    l_entered_amt_idx := 24;
116633    l_accted_amt_idx  := 26;
116634    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
116635    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
116636    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
116637    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
116638    l_rec_acct_attrs.array_num_value(2)  := 
116639 xla_ae_sources_pkg.GetSystemSourceNum(
116640    p_source_code           => 'XLA_EVENT_APPL_ID'
116641  , p_source_type_code      => 'Y'
116642  , p_source_application_id =>  602
116643 );
116644    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
116645    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
116649    p_source_code           => 'XLA_ENTITY_CODE'
116646    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
116647    l_rec_acct_attrs.array_char_value(4)  := 
116648 xla_ae_sources_pkg.GetSystemSourceChar(
116650  , p_source_type_code      => 'Y'
116651  , p_source_application_id =>  602
116652 );
116653    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
116654    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
116655    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
116656    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
116657    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
116658    l_rec_acct_attrs.array_num_value(7)  := p_source_73;
116659    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
116660    l_rec_acct_attrs.array_num_value(8)  := p_source_91;
116661    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
116662    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
116663    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
116664    l_rec_acct_attrs.array_char_value(10)  := p_source_93;
116665    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
116666    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_166);
116667    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
116668    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_167);
116669    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
116670    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_64);
116671    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
116672    l_rec_acct_attrs.array_char_value(14)  := p_source_55;
116673    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
116674    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
116675    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
116676    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
116677    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
116678    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
116679    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
116680    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
116681    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
116682    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
116683    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
116684    l_rec_acct_attrs.array_num_value(20)  := p_source_70;
116685    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
116686    l_rec_acct_attrs.array_char_value(21)  := p_source_67;
116687    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
116688    l_rec_acct_attrs.array_num_value(22)  := p_source_71;
116689    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
116690    l_rec_acct_attrs.array_char_value(23)  := p_source_72;
116691    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
116692    l_rec_acct_attrs.array_num_value(24)  := p_source_73;
116693    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
116694    l_rec_acct_attrs.array_char_value(25)  := p_source_67;
116695    l_rec_acct_attrs.array_acct_attr_code(26) := 'LEDGER_AMOUNT';
116696    l_rec_acct_attrs.array_num_value(26)  := p_source_21;
116697    l_rec_acct_attrs.array_acct_attr_code(27) := 'MULTIPERIOD_END_DATE';
116698    l_rec_acct_attrs.array_date_value(27)  := p_source_77;
116699    l_rec_acct_attrs.array_acct_attr_code(28) := 'MULTIPERIOD_OPTION';
116700    l_rec_acct_attrs.array_char_value(28)  := p_source_78;
116701    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_START_DATE';
116702    l_rec_acct_attrs.array_date_value(29)  := p_source_79;
116703    l_rec_acct_attrs.array_acct_attr_code(30) := 'OVERRIDE_ACCTD_AMT_FLAG';
116704    l_rec_acct_attrs.array_char_value(30)  := p_source_80;
116705    l_rec_acct_attrs.array_acct_attr_code(31) := 'PARTY_TYPE';
116706    l_rec_acct_attrs.array_char_value(31)  := p_source_83;
116707    l_rec_acct_attrs.array_acct_attr_code(32) := 'REVERSED_DISTRIBUTION_ID1';
116708    l_rec_acct_attrs.array_num_value(32)  :=  to_char(p_source_84);
116709    l_rec_acct_attrs.array_acct_attr_code(33) := 'REVERSED_DISTRIBUTION_TYPE';
116710    l_rec_acct_attrs.array_char_value(33)  := p_source_55;
116711    l_rec_acct_attrs.array_acct_attr_code(34) := 'STATISTICAL_AMOUNT';
116712    l_rec_acct_attrs.array_num_value(34)  := p_source_85;
116713    l_rec_acct_attrs.array_acct_attr_code(35) := 'TAX_LINE_REF_ID';
116714    l_rec_acct_attrs.array_num_value(35)  := p_source_86;
116715    l_rec_acct_attrs.array_acct_attr_code(36) := 'TAX_REC_NREC_DIST_REF_ID';
116716    l_rec_acct_attrs.array_num_value(36)  := p_source_87;
116717    l_rec_acct_attrs.array_acct_attr_code(37) := 'TAX_SUMMARY_LINE_REF_ID';
116718    l_rec_acct_attrs.array_num_value(37)  := p_source_88;
116719    l_rec_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
116720    l_rec_acct_attrs.array_num_value(38)  := p_source_89;
116721    l_rec_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
116722    l_rec_acct_attrs.array_num_value(39)  := p_source_90;
116723 
116724    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
116725    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
116726 
116727    ---------------------------------------------------------------------------------------------------------------
116728    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
116729    ---------------------------------------------------------------------------------------------------------------
116733    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
116730    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
116731 
116732    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
116734 
116735    IF xla_accounting_cache_pkg.GetValueChar
116736          (p_source_code         => 'LEDGER_CATEGORY_CODE'
116737          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
116738    AND l_bflow_method_code = 'PRIOR_ENTRY'
116739 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
116740    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
116741          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
116742        )
116743    THEN
116744          xla_ae_lines_pkg.BflowUpgEntry
116745            (p_business_method_code    => l_bflow_method_code
116746            ,p_business_class_code     => l_bflow_class_code
116747            ,p_balance_type            => l_balance_type_code);
116748    ELSE
116749       NULL;
116750 XLA_AE_LINES_PKG.business_flow_validation(
116751                                 p_business_method_code     => l_bflow_method_code
116752                                ,p_business_class_code      => l_bflow_class_code
116753                                ,p_inherit_description_flag => l_inherit_desc_flag);
116754    END IF;
116755 
116756    --
116757    -- call analytical criteria
116758    --
116759    -- Inherited Analytical Criteria for business flow method of Prior Entry.
116760    --
116761    -- call description
116762    --
116763    
116764 xla_ae_lines_pkg.SetLineDescription(
116765    p_ae_header_id => l_ae_header_id
116766   ,p_description  => Description_1 (
116767      p_application_id         => p_application_id
116768    , p_ae_header_id           => l_ae_header_id 
116769 , p_source_1 => p_source_1
116770    )
116771 );
116772 
116773 
116774    --
116775    -- call ADRs
116776    -- Bug 4922099
116777    --
116778    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
116779         (NVL(l_actual_upg_option, 'N') = 'O') OR
116780         (NVL(l_enc_upg_option, 'N') = 'O')
116781       )
116782    THEN
116783    NULL;
116784    --
116785    --
116786    
116787    --
116788    --
116789    END IF;
116790    --
116791    -- Bug 4922099
116792    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
116793           (NVL(l_enc_upg_option, 'N') = 'O')
116794         ) AND
116795         (l_bflow_method_code = 'PRIOR_ENTRY')
116796       )
116797    THEN
116798       IF
116799       --
116800       1 = 1
116801       --
116802       THEN
116803       xla_accounting_err_pkg.build_message
116804                                     (p_appli_s_name            => 'XLA'
116805                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
116806                                     ,p_token_1                 => 'LINE_NUMBER'
116807                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
116808                                     ,p_token_2                 => 'LINE_TYPE_NAME'
116809                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
116810                                                                              l_component_type
116811                                                                             ,l_component_code
116812                                                                             ,l_component_type_code
116813                                                                             ,l_component_appl_id
116814                                                                             ,l_amb_context_code
116815                                                                             ,l_entity_code
116816                                                                             ,l_event_class_code
116817                                                                            )
116818                                     ,p_token_3                 => 'OWNER'
116819                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
116820                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
116821                                                                           ,p_lookup_code    => l_component_type_code
116822                                                                          )
116823                                     ,p_token_4                 => 'PRODUCT_NAME'
116824                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
116825                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
116826                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
116827                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
116828                                     ,p_ae_header_id            =>  NULL
116829                                        );
116830 
116831         IF (C_LEVEL_ERROR>= g_log_level) THEN
116832                  trace
116833                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
116834                       ,p_level    => C_LEVEL_ERROR
116835                       ,p_module   => l_log_module);
116836         END IF;
116837       END IF;
116838    END IF;
116839    --
116840    --
116844    -- Prior Entry.  Currently, the following code is always generated.
116841    ------------------------------------------------------------------------------------------------
116842    -- 4219869 Business Flow
116843    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
116845    ------------------------------------------------------------------------------------------------
116846    -- No ValidateCurrentLine for business flow method of Prior Entry
116847 
116848    ------------------------------------------------------------------------------------
116849    -- 4219869 Business Flow
116850    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
116851    ------------------------------------------------------------------------------------
116852    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
116853 
116854    ----------------------------------------------------------------------------------
116855    -- 4219869 Business Flow
116856    -- Update journal entry status -- Need to generate this within IF <condition>
116857    ----------------------------------------------------------------------------------
116858    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
116859          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
116860          ,p_balance_type_code => l_balance_type_code
116861          );
116862 
116863    -------------------------------------------------------------------------------------------
116864    -- 4262811 - Generate the Accrual Reversal lines
116865    -------------------------------------------------------------------------------------------
116866    BEGIN
116867       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
116868                               (g_array_event(p_event_id).array_value_num('header_index'));
116869       IF l_acc_rev_flag IS NULL THEN
116870          l_acc_rev_flag := 'N';
116871       END IF;
116872    EXCEPTION
116873       WHEN OTHERS THEN
116874          l_acc_rev_flag := 'N';
116875    END;
116876    --
116877    IF (l_acc_rev_flag = 'Y') THEN
116878 
116879        -- 4645092  ------------------------------------------------------------------------------
116880        -- To allow MPA report to determine if it should generate report process
116881        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
116882        ------------------------------------------------------------------------------------------
116883 
116884        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
116885        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
116886    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
116887    -- call ADRs
116888    -- Bug 4922099
116889    --
116890    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
116891         (NVL(l_actual_upg_option, 'N') = 'O') OR
116892         (NVL(l_enc_upg_option, 'N') = 'O')
116893       )
116894    THEN
116895    NULL;
116896    --
116897    --
116898    
116899    --
116900    --
116901    END IF;
116902 
116903        --
116904        -- Update the line information that should be overwritten
116905        --
116906        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
116907                                          p_header_num   => 1);
116908        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
116909 
116910        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
116911 
116912        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
116913           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
116914        END IF;
116915 
116916       --
116917       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
116918       --
116919       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
116920           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
116921       ELSE
116922           ---------------------------------------------------------------------------------------------------
116923           -- 4262811a Switch Sign
116924           ---------------------------------------------------------------------------------------------------
116925           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
116926           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
116927                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116928           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
116929                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116930           -- 5132302
116931           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
116932                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
116933 
116934       END IF;
116935 
116936       -- 4955764
116937       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
116938       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
116939 
116940 
116941       XLA_AE_LINES_PKG.ValidateCurrentLine;
116942       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
116943 
116947 
116944       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
116945                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
116946                ,p_balance_type_code => l_balance_type_code);
116948    END IF;
116949 
116950    -----------------------------------------------------------------------------------------
116951    -- 4262811 Multiperiod Accounting
116952    -----------------------------------------------------------------------------------------
116953      -- No MPA option is assigned.
116954 
116955 
116956 END IF;
116957 END IF;
116958 --
116959 
116960 --
116961 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
116962    trace
116963       (p_msg      => 'END of AcctLineType_194'
116964       ,p_level    => C_LEVEL_PROCEDURE
116965       ,p_module   => l_log_module);
116966 END IF;
116967 --
116968 EXCEPTION
116969   WHEN xla_exceptions_pkg.application_exception THEN
116970       RAISE;
116971   WHEN OTHERS THEN
116972        xla_exceptions_pkg.raise_message
116973            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_194');
116974 END AcctLineType_194;
116975 --
116976 
116977 ---------------------------------------
116978 --
116979 -- PRIVATE FUNCTION
116980 --         AcctLineType_195
116981 --
116982 ---------------------------------------
116983 PROCEDURE AcctLineType_195 (
116984   p_application_id        IN NUMBER
116985  ,p_event_id              IN NUMBER
116986  ,p_calculate_acctd_flag  IN VARCHAR2
116987  ,p_calculate_g_l_flag    IN VARCHAR2
116988  ,p_actual_flag           IN OUT VARCHAR2
116989  ,p_balance_type_code     OUT VARCHAR2
116990  ,p_gain_or_loss_ref      OUT VARCHAR2
116991  
116992 --Invoice Distribution Description
116993  , p_source_1            IN VARCHAR2
116994 --Invoice Distribution Ledger Amount
116995  , p_source_21            IN NUMBER
116996 --Invoice Distribution Type
116997  , p_source_33            IN VARCHAR2
116998  , p_source_33_meaning    IN VARCHAR2
116999 --Self-Assessed Tax Account
117000  , p_source_50            IN NUMBER
117001 --Accounting Reversal Indicator
117002  , p_source_53            IN VARCHAR2
117003 --Distribution Link Type
117004  , p_source_55            IN VARCHAR2
117005 --Allocation to Main Distribution Identifier
117006  , p_source_57            IN NUMBER
117007 --Invoice Identifier
117008  , p_source_58            IN NUMBER
117009 --Invoice Distribution Identifier
117010  , p_source_64            IN NUMBER
117011 --Payables Encumbrance Upgrade Credit Account
117012  , p_source_65            IN NUMBER
117013 --Payables Encumbrance Upgrade Credit Amount
117014  , p_source_66            IN NUMBER
117015 --Invoice Currency Code
117016  , p_source_67            IN VARCHAR2
117017 --Payables Encumbrance Upgrade Credit Base Amount
117018  , p_source_68            IN NUMBER
117019 --Payables Encumbrance Upgrade Debit Account
117020  , p_source_69            IN NUMBER
117021 --Payables Encumbrance Upgrade Debit Amount
117022  , p_source_70            IN NUMBER
117023 --Payables Encumbrance Upgrade Debit Base Amount
117024  , p_source_71            IN NUMBER
117025 --Payables Encumbrance Upgrade Option
117026  , p_source_72            IN VARCHAR2
117027 --Invoice Distribution Amount
117028  , p_source_73            IN NUMBER
117029 --Deferred Accounting End Date
117030  , p_source_77            IN DATE
117031 --Deferred Accounting Option
117032  , p_source_78            IN VARCHAR2
117033 --Deferred Accounting Start Date
117034  , p_source_79            IN DATE
117035 --Override Accounted Amount Indicator
117036  , p_source_80            IN VARCHAR2
117037  , p_source_80_meaning    IN VARCHAR2
117038 --Invoice Supplier Identifier
117039  , p_source_81            IN NUMBER
117040 --Invoice Supplier Site Identifier
117041  , p_source_82            IN NUMBER
117042 --Third Party Type
117043  , p_source_83            IN VARCHAR2
117044 --Parent Reversal Identifier
117045  , p_source_84            IN NUMBER
117046 --Invoice Distribution Statistical Amount
117047  , p_source_85            IN NUMBER
117048 --Invoice Distribution Tax Line Identifier
117049  , p_source_86            IN NUMBER
117050 --Invoice Distribution Tax Distribution Identifier from Tax
117051  , p_source_87            IN NUMBER
117052 --Invoice Distribution Summary Tax Line Identifier
117053  , p_source_88            IN NUMBER
117054 --Payables Upgrade Credit Encumbrance Type Identifier
117055  , p_source_89            IN NUMBER
117056 --Payables Upgrade Debit Encumbrance Type Identifier
117057  , p_source_90            IN NUMBER
117058 --Business Flow Accounts Payable Application Identifier
117059  , p_source_91            IN NUMBER
117060 --Business Flow Invoice Distribution Type
117061  , p_source_92            IN VARCHAR2
117062 --Business Flow Invoice Entity Code
117063  , p_source_93            IN VARCHAR2
117064 --Business Flow Invoice Distribution Identifier
117065  , p_source_94            IN NUMBER
117066 --Business Flow Invoice Identifier
117067  , p_source_95            IN NUMBER
117068 --Accrue on Receipt Option
117069  , p_source_96            IN VARCHAR2
117070  , p_source_96_meaning    IN VARCHAR2
117071 --Self-Assessed Tax Flag
117072  , p_source_142            IN VARCHAR2
117073  , p_source_142_meaning    IN VARCHAR2
117074 --Invoice Exchange Date
117075  , p_source_143            IN DATE
117076 --Invoice Exchange Rate
117077  , p_source_144            IN NUMBER
117081 IS
117078 --Invoice Exchange Rate Type
117079  , p_source_145            IN VARCHAR2
117080 )
117082 
117083 l_component_type              VARCHAR2(80);
117084 l_component_code              VARCHAR2(30);
117085 l_component_type_code         VARCHAR2(1);
117086 l_component_appl_id           INTEGER;
117087 l_amb_context_code            VARCHAR2(30);
117088 l_entity_code                 VARCHAR2(30);
117089 l_event_class_code            VARCHAR2(30);
117090 l_ae_header_id                NUMBER;
117091 l_event_type_code             VARCHAR2(30);
117092 l_line_definition_code        VARCHAR2(30);
117093 l_line_definition_owner_code  VARCHAR2(1);
117094 --
117095 -- adr variables
117096 l_segment                     VARCHAR2(30);
117097 l_ccid                        NUMBER;
117098 l_adr_transaction_coa_id      NUMBER;
117099 l_adr_accounting_coa_id       NUMBER;
117100 l_adr_flexfield_segment_code  VARCHAR2(30);
117101 l_adr_flex_value_set_id       NUMBER;
117102 l_adr_value_type_code         VARCHAR2(30);
117103 l_adr_value_combination_id    NUMBER;
117104 l_adr_value_segment_code      VARCHAR2(30);
117105 
117106 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
117107 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
117108 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
117109 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
117110 
117111 -- 4262811 Variables ------------------------------------------------------------------------------------------
117112 l_entered_amt_idx             NUMBER;
117113 l_accted_amt_idx              NUMBER;
117114 l_acc_rev_flag                VARCHAR2(1);
117115 l_accrual_line_num            NUMBER;
117116 l_tmp_amt                     NUMBER;
117117 l_acc_rev_natural_side_code   VARCHAR2(1);
117118 
117119 l_num_entries                 NUMBER;
117120 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
117121 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
117122 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
117123 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
117124 l_recog_line_1                NUMBER;
117125 l_recog_line_2                NUMBER;
117126 
117127 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
117128 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
117129 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
117130 
117131 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
117132 
117133 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
117134 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
117135 
117136 ---------------------------------------------------------------------------------------------------------------
117137 
117138 
117139 --
117140 -- bulk performance
117141 --
117142 l_balance_type_code           VARCHAR2(1);
117143 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
117144 l_log_module                  VARCHAR2(240);
117145 
117146 --
117147 -- Upgrade strategy
117148 --
117149 l_actual_upg_option           VARCHAR2(1);
117150 l_enc_upg_option           VARCHAR2(1);
117151 
117152 --
117153 BEGIN
117154 --
117155 IF g_log_enabled THEN
117156       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_195';
117157 END IF;
117158 --
117159 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
117160 
117161       trace
117162          (p_msg      => 'BEGIN of AcctLineType_195'
117163          ,p_level    => C_LEVEL_PROCEDURE
117164          ,p_module   => l_log_module);
117165 
117166 END IF;
117167 --
117168 l_component_type             := 'AMB_JLT';
117169 l_component_code             := 'AP_SELF_ASSESSED_NONREC_PREPAY';
117170 l_component_type_code        := 'S';
117171 l_component_appl_id          :=  200;
117172 l_amb_context_code           := 'DEFAULT';
117173 l_entity_code                := 'AP_INVOICES';
117174 l_event_class_code           := 'PREPAYMENTS';
117175 l_event_type_code            := 'PREPAYMENTS_ALL';
117176 l_line_definition_owner_code := 'S';
117177 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
117178 --
117179 l_balance_type_code          := 'A';
117180 l_segment                     := NULL;
117181 l_ccid                        := NULL;
117182 l_adr_transaction_coa_id      := NULL;
117183 l_adr_accounting_coa_id       := NULL;
117184 l_adr_flexfield_segment_code  := NULL;
117185 l_adr_flex_value_set_id       := NULL;
117186 l_adr_value_type_code         := NULL;
117187 l_adr_value_combination_id    := NULL;
117188 l_adr_value_segment_code      := NULL;
117189 
117190 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
117191 l_bflow_class_code           := '';    -- 4219869 Business Flow
117192 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
117193 l_budgetary_control_flag     := 'N';
117194 
117195 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
117196 l_bflow_applied_to_amt       := NULL; -- 5132302
117197 l_entered_amt_idx            := NULL;          -- 4262811
117198 l_accted_amt_idx             := NULL;          -- 4262811
117199 l_acc_rev_flag               := NULL;          -- 4262811
117200 l_accrual_line_num           := NULL;          -- 4262811
117201 l_tmp_amt                    := NULL;          -- 4262811
117202 --
117203  
117204 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
117205     l_balance_type_code <> 'B' THEN
117209 ') =  'TERV' OR 
117206 IF (NVL(p_source_33,'
117207 ') =  'NONREC_TAX' OR 
117208 NVL(p_source_33,'
117210 NVL(p_source_33,'
117211 ') =  'TIPV' OR 
117212 NVL(p_source_33,'
117213 ') =  'TRV') AND 
117214 NVL(p_source_96,'
117215 ') <>  'Y' AND 
117216 NVL(p_source_142,'
117217 ') =  'Y'
117218  THEN 
117219 
117220    --
117221    XLA_AE_LINES_PKG.SetNewLine;
117222 
117223    p_balance_type_code          := l_balance_type_code;
117224    -- set the flag so later we will know whether the gain loss line needs to be created
117225    
117226    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
117227      p_actual_flag :='A';
117228    END IF;
117229 
117230    --
117231    -- bulk performance
117232    --
117233    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
117234                                       p_header_num   => 0); -- 4262811
117235    --
117236    -- set accounting line options
117237    --
117238    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
117239            p_natural_side_code          => 'D'
117240          , p_gain_or_loss_flag          => 'N'
117241          , p_gl_transfer_mode_code      => 'S'
117242          , p_acct_entry_type_code       => 'A'
117243          , p_switch_side_flag           => 'Y'
117244          , p_merge_duplicate_code       => 'A'
117245          );
117246    --
117247    l_acc_rev_natural_side_code := 'C';  -- 4262811
117248    -- 
117249    --
117250    -- set accounting line type info
117251    --
117252    xla_ae_lines_pkg.SetAcctLineType
117253       (p_component_type             => l_component_type
117254       ,p_event_type_code            => l_event_type_code
117255       ,p_line_definition_owner_code => l_line_definition_owner_code
117256       ,p_line_definition_code       => l_line_definition_code
117257       ,p_accounting_line_code       => l_component_code
117258       ,p_accounting_line_type_code  => l_component_type_code
117259       ,p_accounting_line_appl_id    => l_component_appl_id
117260       ,p_amb_context_code           => l_amb_context_code
117261       ,p_entity_code                => l_entity_code
117262       ,p_event_class_code           => l_event_class_code);
117263    --
117264    -- set accounting class
117265    --
117266    xla_ae_lines_pkg.SetAcctClass(
117267            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
117268          , p_ae_header_id           => l_ae_header_id
117269          );
117270 
117271    --
117272    -- set rounding class
117273    --
117274    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
117275                       'SELF_ASSESSED_TAX';
117276 
117277    --
117278    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
117279    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
117280    --
117281    -- bulk performance
117282    --
117283    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
117284 
117285    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
117286       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
117287 
117288    -- 4955764
117289    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
117290       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
117291 
117292    -- 4458381 Public Sector Enh
117293    
117294    --
117295    -- set accounting attributes for the line type
117296    --
117297    l_entered_amt_idx := 23;
117298    l_accted_amt_idx  := 28;
117299    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
117300    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
117301    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
117302    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
117303    l_rec_acct_attrs.array_num_value(2)  := 
117304 xla_ae_sources_pkg.GetSystemSourceNum(
117305    p_source_code           => 'XLA_EVENT_APPL_ID'
117306  , p_source_type_code      => 'Y'
117307  , p_source_application_id =>  602
117308 );
117309    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
117310    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
117311    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
117312    l_rec_acct_attrs.array_char_value(4)  := 
117313 xla_ae_sources_pkg.GetSystemSourceChar(
117314    p_source_code           => 'XLA_ENTITY_CODE'
117315  , p_source_type_code      => 'Y'
117316  , p_source_application_id =>  602
117317 );
117318    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
117319    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
117320    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
117321    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
117322    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
117323    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
117324    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
117325    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
117326    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
117327    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
117328    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
117329    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
117333    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
117330    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
117331    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
117332    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
117334    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
117335    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
117336    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
117337    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
117338    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
117339    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
117340    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
117341    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
117342    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
117343    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
117344    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
117345    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
117346    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
117347    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
117348    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
117349    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
117350    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
117351    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
117352    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
117353    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
117354    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
117355    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
117356    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
117357    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
117358    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
117359    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
117360    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
117361    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
117362    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
117363    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
117364    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
117365    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
117366    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
117367    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
117368    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
117369    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
117370    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
117371    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
117372    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
117373    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
117374    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
117375    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
117376    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
117377    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
117378    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
117379    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
117380    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
117381    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
117382    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
117383    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
117384    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
117385    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
117386    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
117387    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
117388    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
117389    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
117390    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
117391    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
117392    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
117393    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
117394    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
117395    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
117396 
117397    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
117398    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
117399 
117400    ---------------------------------------------------------------------------------------------------------------
117401    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
117402    ---------------------------------------------------------------------------------------------------------------
117403    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
117404 
117405    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
117406    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
117407 
117408    IF xla_accounting_cache_pkg.GetValueChar
117409          (p_source_code         => 'LEDGER_CATEGORY_CODE'
117410          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
117411    AND l_bflow_method_code = 'PRIOR_ENTRY'
117412 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
117416    THEN
117413    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
117414          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
117415        )
117417          xla_ae_lines_pkg.BflowUpgEntry
117418            (p_business_method_code    => l_bflow_method_code
117419            ,p_business_class_code     => l_bflow_class_code
117420            ,p_balance_type            => l_balance_type_code);
117421    ELSE
117422       NULL;
117423 -- No business flow processing for business flow method of NONE.
117424    END IF;
117425 
117426    --
117427    -- call analytical criteria
117428    --
117429    
117430    --
117431    -- call description
117432    --
117433    
117434 xla_ae_lines_pkg.SetLineDescription(
117435    p_ae_header_id => l_ae_header_id
117436   ,p_description  => Description_1 (
117437      p_application_id         => p_application_id
117438    , p_ae_header_id           => l_ae_header_id 
117439 , p_source_1 => p_source_1
117440    )
117441 );
117442 
117443 
117444    --
117445    -- call ADRs
117446    -- Bug 4922099
117447    --
117448    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
117449         (NVL(l_actual_upg_option, 'N') = 'O') OR
117450         (NVL(l_enc_upg_option, 'N') = 'O')
117451       )
117452    THEN
117453    NULL;
117454    --
117455    --
117456    
117457   l_ccid := AcctDerRule_42(
117458            p_application_id           => p_application_id
117459          , p_ae_header_id             => l_ae_header_id 
117460 , p_source_50 => p_source_50
117461          , x_transaction_coa_id       => l_adr_transaction_coa_id
117462          , x_accounting_coa_id        => l_adr_accounting_coa_id
117463          , x_value_type_code          => l_adr_value_type_code
117464          , p_side                     => 'NA'
117465    );
117466 
117467    xla_ae_lines_pkg.set_ccid(
117468     p_code_combination_id          => l_ccid
117469   , p_value_type_code              => l_adr_value_type_code
117470   , p_transaction_coa_id           => l_adr_transaction_coa_id
117471   , p_accounting_coa_id            => l_adr_accounting_coa_id
117472   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
117473   , p_adr_type_code                => 'S'
117474   , p_component_type               => l_component_type
117475   , p_component_code               => l_component_code
117476   , p_component_type_code          => l_component_type_code
117477   , p_component_appl_id            => l_component_appl_id
117478   , p_amb_context_code             => l_amb_context_code
117479   , p_side                         => 'NA'
117480   );
117481 
117482 
117483    --
117484    --
117485    END IF;
117486    --
117487    -- Bug 4922099
117488    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
117489           (NVL(l_enc_upg_option, 'N') = 'O')
117490         ) AND
117491         (l_bflow_method_code = 'PRIOR_ENTRY')
117492       )
117493    THEN
117494       IF
117495       --
117496       1 = 2
117497       --
117498       THEN
117499       xla_accounting_err_pkg.build_message
117500                                     (p_appli_s_name            => 'XLA'
117501                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
117502                                     ,p_token_1                 => 'LINE_NUMBER'
117503                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
117504                                     ,p_token_2                 => 'LINE_TYPE_NAME'
117505                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
117506                                                                              l_component_type
117507                                                                             ,l_component_code
117508                                                                             ,l_component_type_code
117509                                                                             ,l_component_appl_id
117510                                                                             ,l_amb_context_code
117511                                                                             ,l_entity_code
117512                                                                             ,l_event_class_code
117513                                                                            )
117514                                     ,p_token_3                 => 'OWNER'
117515                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
117516                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
117517                                                                           ,p_lookup_code    => l_component_type_code
117518                                                                          )
117519                                     ,p_token_4                 => 'PRODUCT_NAME'
117520                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
117521                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
117522                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
117523                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
117524                                     ,p_ae_header_id            =>  NULL
117525                                        );
117526 
117530                       ,p_level    => C_LEVEL_ERROR
117527         IF (C_LEVEL_ERROR>= g_log_level) THEN
117528                  trace
117529                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
117531                       ,p_module   => l_log_module);
117532         END IF;
117533       END IF;
117534    END IF;
117535    --
117536    --
117537    ------------------------------------------------------------------------------------------------
117538    -- 4219869 Business Flow
117539    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
117540    -- Prior Entry.  Currently, the following code is always generated.
117541    ------------------------------------------------------------------------------------------------
117542    XLA_AE_LINES_PKG.ValidateCurrentLine;
117543 
117544    ------------------------------------------------------------------------------------
117545    -- 4219869 Business Flow
117546    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
117547    ------------------------------------------------------------------------------------
117548    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
117549 
117550    ----------------------------------------------------------------------------------
117551    -- 4219869 Business Flow
117552    -- Update journal entry status -- Need to generate this within IF <condition>
117553    ----------------------------------------------------------------------------------
117554    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
117555          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
117556          ,p_balance_type_code => l_balance_type_code
117557          );
117558 
117559    -------------------------------------------------------------------------------------------
117560    -- 4262811 - Generate the Accrual Reversal lines
117561    -------------------------------------------------------------------------------------------
117562    BEGIN
117563       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
117564                               (g_array_event(p_event_id).array_value_num('header_index'));
117565       IF l_acc_rev_flag IS NULL THEN
117566          l_acc_rev_flag := 'N';
117567       END IF;
117568    EXCEPTION
117569       WHEN OTHERS THEN
117570          l_acc_rev_flag := 'N';
117571    END;
117572    --
117573    IF (l_acc_rev_flag = 'Y') THEN
117574 
117575        -- 4645092  ------------------------------------------------------------------------------
117576        -- To allow MPA report to determine if it should generate report process
117577        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
117578        ------------------------------------------------------------------------------------------
117579 
117580        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
117581        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
117582    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
117583    -- call ADRs
117584    -- Bug 4922099
117585    --
117586    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
117587         (NVL(l_actual_upg_option, 'N') = 'O') OR
117588         (NVL(l_enc_upg_option, 'N') = 'O')
117589       )
117590    THEN
117591    NULL;
117592    --
117593    --
117594    
117595   l_ccid := AcctDerRule_42(
117596            p_application_id           => p_application_id
117597          , p_ae_header_id             => l_ae_header_id 
117598 , p_source_50 => p_source_50
117599          , x_transaction_coa_id       => l_adr_transaction_coa_id
117600          , x_accounting_coa_id        => l_adr_accounting_coa_id
117601          , x_value_type_code          => l_adr_value_type_code
117602          , p_side                     => 'NA'
117603    );
117604 
117605    xla_ae_lines_pkg.set_ccid(
117606     p_code_combination_id          => l_ccid
117607   , p_value_type_code              => l_adr_value_type_code
117608   , p_transaction_coa_id           => l_adr_transaction_coa_id
117609   , p_accounting_coa_id            => l_adr_accounting_coa_id
117610   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
117611   , p_adr_type_code                => 'S'
117612   , p_component_type               => l_component_type
117613   , p_component_code               => l_component_code
117614   , p_component_type_code          => l_component_type_code
117615   , p_component_appl_id            => l_component_appl_id
117616   , p_amb_context_code             => l_amb_context_code
117617   , p_side                         => 'NA'
117618   );
117619 
117620 
117621    --
117622    --
117623    END IF;
117624 
117625        --
117626        -- Update the line information that should be overwritten
117627        --
117628        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
117629                                          p_header_num   => 1);
117630        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
117631 
117632        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
117633 
117634        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
117635           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
117636        END IF;
117637 
117638       --
117639       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
117640       --
117644           ---------------------------------------------------------------------------------------------------
117641       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
117642           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
117643       ELSE
117645           -- 4262811a Switch Sign
117646           ---------------------------------------------------------------------------------------------------
117647           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
117648           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
117649                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
117650           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
117651                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
117652           -- 5132302
117653           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
117654                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
117655 
117656       END IF;
117657 
117658       -- 4955764
117659       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
117660       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
117661 
117662 
117663       XLA_AE_LINES_PKG.ValidateCurrentLine;
117664       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
117665 
117666       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
117667                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
117668                ,p_balance_type_code => l_balance_type_code);
117669 
117670    END IF;
117671 
117672    -----------------------------------------------------------------------------------------
117673    -- 4262811 Multiperiod Accounting
117674    -----------------------------------------------------------------------------------------
117675      -- No MPA option is assigned.
117676 
117677 
117678 END IF;
117679 END IF;
117680 --
117681 
117682 --
117683 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
117684    trace
117685       (p_msg      => 'END of AcctLineType_195'
117686       ,p_level    => C_LEVEL_PROCEDURE
117687       ,p_module   => l_log_module);
117688 END IF;
117689 --
117690 EXCEPTION
117691   WHEN xla_exceptions_pkg.application_exception THEN
117692       RAISE;
117693   WHEN OTHERS THEN
117694        xla_exceptions_pkg.raise_message
117695            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_195');
117696 END AcctLineType_195;
117697 --
117698 
117699 ---------------------------------------
117700 --
117701 -- PRIVATE FUNCTION
117702 --         AcctLineType_196
117703 --
117704 ---------------------------------------
117705 PROCEDURE AcctLineType_196 (
117706   p_application_id        IN NUMBER
117707  ,p_event_id              IN NUMBER
117708  ,p_calculate_acctd_flag  IN VARCHAR2
117709  ,p_calculate_g_l_flag    IN VARCHAR2
117710  ,p_actual_flag           IN OUT VARCHAR2
117711  ,p_balance_type_code     OUT VARCHAR2
117712  ,p_gain_or_loss_ref      OUT VARCHAR2
117713  
117714 --Invoice Distribution Description
117715  , p_source_1            IN VARCHAR2
117716 --Invoice Distribution Ledger Amount
117717  , p_source_21            IN NUMBER
117718 --Invoice Distribution Type
117719  , p_source_33            IN VARCHAR2
117720  , p_source_33_meaning    IN VARCHAR2
117721 --Self-Assessed Tax Account
117722  , p_source_50            IN NUMBER
117723 --Accounting Reversal Indicator
117724  , p_source_53            IN VARCHAR2
117725 --Distribution Link Type
117726  , p_source_55            IN VARCHAR2
117727 --Allocation to Main Distribution Identifier
117728  , p_source_57            IN NUMBER
117729 --Invoice Identifier
117730  , p_source_58            IN NUMBER
117731 --Invoice Distribution Identifier
117732  , p_source_64            IN NUMBER
117733 --Payables Encumbrance Upgrade Credit Account
117734  , p_source_65            IN NUMBER
117735 --Payables Encumbrance Upgrade Credit Amount
117736  , p_source_66            IN NUMBER
117737 --Invoice Currency Code
117738  , p_source_67            IN VARCHAR2
117739 --Payables Encumbrance Upgrade Credit Base Amount
117740  , p_source_68            IN NUMBER
117741 --Payables Encumbrance Upgrade Debit Account
117742  , p_source_69            IN NUMBER
117743 --Payables Encumbrance Upgrade Debit Amount
117744  , p_source_70            IN NUMBER
117745 --Payables Encumbrance Upgrade Debit Base Amount
117746  , p_source_71            IN NUMBER
117747 --Payables Encumbrance Upgrade Option
117748  , p_source_72            IN VARCHAR2
117749 --Invoice Distribution Amount
117750  , p_source_73            IN NUMBER
117751 --Deferred Accounting End Date
117752  , p_source_77            IN DATE
117753 --Deferred Accounting Option
117754  , p_source_78            IN VARCHAR2
117755 --Deferred Accounting Start Date
117756  , p_source_79            IN DATE
117757 --Override Accounted Amount Indicator
117758  , p_source_80            IN VARCHAR2
117759  , p_source_80_meaning    IN VARCHAR2
117760 --Invoice Supplier Identifier
117761  , p_source_81            IN NUMBER
117762 --Invoice Supplier Site Identifier
117763  , p_source_82            IN NUMBER
117764 --Third Party Type
117765  , p_source_83            IN VARCHAR2
117766 --Parent Reversal Identifier
117770 --Invoice Distribution Tax Line Identifier
117767  , p_source_84            IN NUMBER
117768 --Invoice Distribution Statistical Amount
117769  , p_source_85            IN NUMBER
117771  , p_source_86            IN NUMBER
117772 --Invoice Distribution Tax Distribution Identifier from Tax
117773  , p_source_87            IN NUMBER
117774 --Invoice Distribution Summary Tax Line Identifier
117775  , p_source_88            IN NUMBER
117776 --Payables Upgrade Credit Encumbrance Type Identifier
117777  , p_source_89            IN NUMBER
117778 --Payables Upgrade Debit Encumbrance Type Identifier
117779  , p_source_90            IN NUMBER
117780 --Business Flow Accounts Payable Application Identifier
117781  , p_source_91            IN NUMBER
117782 --Business Flow Invoice Distribution Type
117783  , p_source_92            IN VARCHAR2
117784 --Business Flow Invoice Entity Code
117785  , p_source_93            IN VARCHAR2
117786 --Business Flow Invoice Distribution Identifier
117787  , p_source_94            IN NUMBER
117788 --Business Flow Invoice Identifier
117789  , p_source_95            IN NUMBER
117790 --Accrue on Receipt Option
117791  , p_source_96            IN VARCHAR2
117792  , p_source_96_meaning    IN VARCHAR2
117793 --Self-Assessed Tax Flag
117794  , p_source_142            IN VARCHAR2
117795  , p_source_142_meaning    IN VARCHAR2
117796 --Invoice Exchange Date
117797  , p_source_143            IN DATE
117798 --Invoice Exchange Rate
117799  , p_source_144            IN NUMBER
117800 --Invoice Exchange Rate Type
117801  , p_source_145            IN VARCHAR2
117802 )
117803 IS
117804 
117805 l_component_type              VARCHAR2(80);
117806 l_component_code              VARCHAR2(30);
117807 l_component_type_code         VARCHAR2(1);
117808 l_component_appl_id           INTEGER;
117809 l_amb_context_code            VARCHAR2(30);
117810 l_entity_code                 VARCHAR2(30);
117811 l_event_class_code            VARCHAR2(30);
117812 l_ae_header_id                NUMBER;
117813 l_event_type_code             VARCHAR2(30);
117814 l_line_definition_code        VARCHAR2(30);
117815 l_line_definition_owner_code  VARCHAR2(1);
117816 --
117817 -- adr variables
117818 l_segment                     VARCHAR2(30);
117819 l_ccid                        NUMBER;
117820 l_adr_transaction_coa_id      NUMBER;
117821 l_adr_accounting_coa_id       NUMBER;
117822 l_adr_flexfield_segment_code  VARCHAR2(30);
117823 l_adr_flex_value_set_id       NUMBER;
117824 l_adr_value_type_code         VARCHAR2(30);
117825 l_adr_value_combination_id    NUMBER;
117826 l_adr_value_segment_code      VARCHAR2(30);
117827 
117828 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
117829 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
117830 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
117831 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
117832 
117833 -- 4262811 Variables ------------------------------------------------------------------------------------------
117834 l_entered_amt_idx             NUMBER;
117835 l_accted_amt_idx              NUMBER;
117836 l_acc_rev_flag                VARCHAR2(1);
117837 l_accrual_line_num            NUMBER;
117838 l_tmp_amt                     NUMBER;
117839 l_acc_rev_natural_side_code   VARCHAR2(1);
117840 
117841 l_num_entries                 NUMBER;
117842 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
117843 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
117844 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
117845 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
117846 l_recog_line_1                NUMBER;
117847 l_recog_line_2                NUMBER;
117848 
117849 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
117850 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
117851 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
117852 
117853 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
117854 
117855 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
117856 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
117857 
117858 ---------------------------------------------------------------------------------------------------------------
117859 
117860 
117861 --
117862 -- bulk performance
117863 --
117864 l_balance_type_code           VARCHAR2(1);
117865 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
117866 l_log_module                  VARCHAR2(240);
117867 
117868 --
117869 -- Upgrade strategy
117870 --
117871 l_actual_upg_option           VARCHAR2(1);
117872 l_enc_upg_option           VARCHAR2(1);
117873 
117874 --
117875 BEGIN
117876 --
117877 IF g_log_enabled THEN
117878       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_196';
117879 END IF;
117880 --
117881 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
117882 
117883       trace
117884          (p_msg      => 'BEGIN of AcctLineType_196'
117885          ,p_level    => C_LEVEL_PROCEDURE
117886          ,p_module   => l_log_module);
117887 
117888 END IF;
117889 --
117890 l_component_type             := 'AMB_JLT';
117891 l_component_code             := 'AP_SELF_ASSESSED_NON_REC_CM';
117892 l_component_type_code        := 'S';
117893 l_component_appl_id          :=  200;
117894 l_amb_context_code           := 'DEFAULT';
117895 l_entity_code                := 'AP_INVOICES';
117896 l_event_class_code           := 'CREDIT MEMOS';
117900 --
117897 l_event_type_code            := 'CREDIT MEMOS_ALL';
117898 l_line_definition_owner_code := 'S';
117899 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
117901 l_balance_type_code          := 'A';
117902 l_segment                     := NULL;
117903 l_ccid                        := NULL;
117904 l_adr_transaction_coa_id      := NULL;
117905 l_adr_accounting_coa_id       := NULL;
117906 l_adr_flexfield_segment_code  := NULL;
117907 l_adr_flex_value_set_id       := NULL;
117908 l_adr_value_type_code         := NULL;
117909 l_adr_value_combination_id    := NULL;
117910 l_adr_value_segment_code      := NULL;
117911 
117912 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
117913 l_bflow_class_code           := '';    -- 4219869 Business Flow
117914 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
117915 l_budgetary_control_flag     := 'N';
117916 
117917 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
117918 l_bflow_applied_to_amt       := NULL; -- 5132302
117919 l_entered_amt_idx            := NULL;          -- 4262811
117920 l_accted_amt_idx             := NULL;          -- 4262811
117921 l_acc_rev_flag               := NULL;          -- 4262811
117922 l_accrual_line_num           := NULL;          -- 4262811
117923 l_tmp_amt                    := NULL;          -- 4262811
117924 --
117925  
117926 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
117927     l_balance_type_code <> 'B' THEN
117928 IF (NVL(p_source_33,'
117929 ') =  'NONREC_TAX' OR 
117930 NVL(p_source_33,'
117931 ') =  'TERV' OR 
117932 NVL(p_source_33,'
117933 ') =  'TIPV' OR 
117934 NVL(p_source_33,'
117935 ') =  'TRV') AND 
117936 NVL(p_source_96,'
117937 ') <>  'Y' AND 
117938 NVL(p_source_142,'
117939 ') =  'Y'
117940  THEN 
117941 
117942    --
117943    XLA_AE_LINES_PKG.SetNewLine;
117944 
117945    p_balance_type_code          := l_balance_type_code;
117946    -- set the flag so later we will know whether the gain loss line needs to be created
117947    
117948    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
117949      p_actual_flag :='A';
117950    END IF;
117951 
117952    --
117953    -- bulk performance
117954    --
117955    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
117956                                       p_header_num   => 0); -- 4262811
117957    --
117958    -- set accounting line options
117959    --
117960    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
117961            p_natural_side_code          => 'D'
117962          , p_gain_or_loss_flag          => 'N'
117963          , p_gl_transfer_mode_code      => 'S'
117964          , p_acct_entry_type_code       => 'A'
117965          , p_switch_side_flag           => 'Y'
117966          , p_merge_duplicate_code       => 'A'
117967          );
117968    --
117969    l_acc_rev_natural_side_code := 'C';  -- 4262811
117970    -- 
117971    --
117972    -- set accounting line type info
117973    --
117974    xla_ae_lines_pkg.SetAcctLineType
117975       (p_component_type             => l_component_type
117976       ,p_event_type_code            => l_event_type_code
117977       ,p_line_definition_owner_code => l_line_definition_owner_code
117978       ,p_line_definition_code       => l_line_definition_code
117979       ,p_accounting_line_code       => l_component_code
117980       ,p_accounting_line_type_code  => l_component_type_code
117981       ,p_accounting_line_appl_id    => l_component_appl_id
117982       ,p_amb_context_code           => l_amb_context_code
117983       ,p_entity_code                => l_entity_code
117984       ,p_event_class_code           => l_event_class_code);
117985    --
117986    -- set accounting class
117987    --
117988    xla_ae_lines_pkg.SetAcctClass(
117989            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
117990          , p_ae_header_id           => l_ae_header_id
117991          );
117992 
117993    --
117994    -- set rounding class
117995    --
117996    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
117997                       'SELF_ASSESSED_TAX';
117998 
117999    --
118000    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
118001    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
118002    --
118003    -- bulk performance
118004    --
118005    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
118006 
118007    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
118008       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
118009 
118010    -- 4955764
118011    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
118012       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
118013 
118014    -- 4458381 Public Sector Enh
118015    
118016    --
118017    -- set accounting attributes for the line type
118018    --
118019    l_entered_amt_idx := 23;
118020    l_accted_amt_idx  := 28;
118021    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
118022    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
118023    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
118024    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
118025    l_rec_acct_attrs.array_num_value(2)  := 
118026 xla_ae_sources_pkg.GetSystemSourceNum(
118030 );
118027    p_source_code           => 'XLA_EVENT_APPL_ID'
118028  , p_source_type_code      => 'Y'
118029  , p_source_application_id =>  602
118031    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
118032    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
118033    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
118034    l_rec_acct_attrs.array_char_value(4)  := 
118035 xla_ae_sources_pkg.GetSystemSourceChar(
118036    p_source_code           => 'XLA_ENTITY_CODE'
118037  , p_source_type_code      => 'Y'
118038  , p_source_application_id =>  602
118039 );
118040    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
118041    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
118042    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
118043    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
118044    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
118045    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
118046    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
118047    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
118048    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
118049    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
118050    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
118051    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
118052    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
118053    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
118054    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
118055    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
118056    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
118057    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
118058    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
118059    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
118060    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
118061    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
118062    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
118063    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
118064    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
118065    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
118066    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
118067    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
118068    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
118069    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
118070    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
118071    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
118072    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
118073    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
118074    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
118075    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
118076    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
118077    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
118078    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
118079    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
118080    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
118081    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
118082    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
118083    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
118084    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
118085    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
118086    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
118087    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
118088    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
118089    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
118090    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
118091    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
118092    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
118093    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
118094    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
118095    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
118096    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
118097    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
118098    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
118099    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
118100    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
118101    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
118102    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
118103    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
118104    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
118105    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
118106    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
118107    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
118108    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
118109    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
118110    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
118111    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
118115    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
118112    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
118113    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
118114    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
118116    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
118117    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
118118 
118119    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
118120    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
118121 
118122    ---------------------------------------------------------------------------------------------------------------
118123    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
118124    ---------------------------------------------------------------------------------------------------------------
118125    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
118126 
118127    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
118128    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
118129 
118130    IF xla_accounting_cache_pkg.GetValueChar
118131          (p_source_code         => 'LEDGER_CATEGORY_CODE'
118132          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
118133    AND l_bflow_method_code = 'PRIOR_ENTRY'
118134 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
118135    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
118136          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
118137        )
118138    THEN
118139          xla_ae_lines_pkg.BflowUpgEntry
118140            (p_business_method_code    => l_bflow_method_code
118141            ,p_business_class_code     => l_bflow_class_code
118142            ,p_balance_type            => l_balance_type_code);
118143    ELSE
118144       NULL;
118145 -- No business flow processing for business flow method of NONE.
118146    END IF;
118147 
118148    --
118149    -- call analytical criteria
118150    --
118151    
118152    --
118153    -- call description
118154    --
118155    
118156 xla_ae_lines_pkg.SetLineDescription(
118157    p_ae_header_id => l_ae_header_id
118158   ,p_description  => Description_1 (
118159      p_application_id         => p_application_id
118160    , p_ae_header_id           => l_ae_header_id 
118161 , p_source_1 => p_source_1
118162    )
118163 );
118164 
118165 
118166    --
118167    -- call ADRs
118168    -- Bug 4922099
118169    --
118170    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
118171         (NVL(l_actual_upg_option, 'N') = 'O') OR
118172         (NVL(l_enc_upg_option, 'N') = 'O')
118173       )
118174    THEN
118175    NULL;
118176    --
118177    --
118178    
118179   l_ccid := AcctDerRule_42(
118180            p_application_id           => p_application_id
118181          , p_ae_header_id             => l_ae_header_id 
118182 , p_source_50 => p_source_50
118183          , x_transaction_coa_id       => l_adr_transaction_coa_id
118184          , x_accounting_coa_id        => l_adr_accounting_coa_id
118185          , x_value_type_code          => l_adr_value_type_code
118186          , p_side                     => 'NA'
118187    );
118188 
118189    xla_ae_lines_pkg.set_ccid(
118190     p_code_combination_id          => l_ccid
118191   , p_value_type_code              => l_adr_value_type_code
118192   , p_transaction_coa_id           => l_adr_transaction_coa_id
118193   , p_accounting_coa_id            => l_adr_accounting_coa_id
118194   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
118195   , p_adr_type_code                => 'S'
118196   , p_component_type               => l_component_type
118197   , p_component_code               => l_component_code
118198   , p_component_type_code          => l_component_type_code
118199   , p_component_appl_id            => l_component_appl_id
118200   , p_amb_context_code             => l_amb_context_code
118201   , p_side                         => 'NA'
118202   );
118203 
118204 
118205    --
118206    --
118207    END IF;
118208    --
118209    -- Bug 4922099
118210    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
118211           (NVL(l_enc_upg_option, 'N') = 'O')
118212         ) AND
118213         (l_bflow_method_code = 'PRIOR_ENTRY')
118214       )
118215    THEN
118216       IF
118217       --
118218       1 = 2
118219       --
118220       THEN
118221       xla_accounting_err_pkg.build_message
118222                                     (p_appli_s_name            => 'XLA'
118223                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
118224                                     ,p_token_1                 => 'LINE_NUMBER'
118225                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
118226                                     ,p_token_2                 => 'LINE_TYPE_NAME'
118227                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
118228                                                                              l_component_type
118229                                                                             ,l_component_code
118230                                                                             ,l_component_type_code
118234                                                                             ,l_event_class_code
118231                                                                             ,l_component_appl_id
118232                                                                             ,l_amb_context_code
118233                                                                             ,l_entity_code
118235                                                                            )
118236                                     ,p_token_3                 => 'OWNER'
118237                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
118238                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
118239                                                                           ,p_lookup_code    => l_component_type_code
118240                                                                          )
118241                                     ,p_token_4                 => 'PRODUCT_NAME'
118242                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
118243                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
118244                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
118245                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
118246                                     ,p_ae_header_id            =>  NULL
118247                                        );
118248 
118249         IF (C_LEVEL_ERROR>= g_log_level) THEN
118250                  trace
118251                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
118252                       ,p_level    => C_LEVEL_ERROR
118253                       ,p_module   => l_log_module);
118254         END IF;
118255       END IF;
118256    END IF;
118257    --
118258    --
118259    ------------------------------------------------------------------------------------------------
118260    -- 4219869 Business Flow
118261    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
118262    -- Prior Entry.  Currently, the following code is always generated.
118263    ------------------------------------------------------------------------------------------------
118264    XLA_AE_LINES_PKG.ValidateCurrentLine;
118265 
118266    ------------------------------------------------------------------------------------
118267    -- 4219869 Business Flow
118268    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
118269    ------------------------------------------------------------------------------------
118270    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
118271 
118272    ----------------------------------------------------------------------------------
118273    -- 4219869 Business Flow
118274    -- Update journal entry status -- Need to generate this within IF <condition>
118275    ----------------------------------------------------------------------------------
118276    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
118277          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
118278          ,p_balance_type_code => l_balance_type_code
118279          );
118280 
118281    -------------------------------------------------------------------------------------------
118282    -- 4262811 - Generate the Accrual Reversal lines
118283    -------------------------------------------------------------------------------------------
118284    BEGIN
118285       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
118286                               (g_array_event(p_event_id).array_value_num('header_index'));
118287       IF l_acc_rev_flag IS NULL THEN
118288          l_acc_rev_flag := 'N';
118289       END IF;
118290    EXCEPTION
118291       WHEN OTHERS THEN
118292          l_acc_rev_flag := 'N';
118293    END;
118294    --
118295    IF (l_acc_rev_flag = 'Y') THEN
118296 
118297        -- 4645092  ------------------------------------------------------------------------------
118298        -- To allow MPA report to determine if it should generate report process
118299        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
118300        ------------------------------------------------------------------------------------------
118301 
118302        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
118303        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
118304    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
118305    -- call ADRs
118306    -- Bug 4922099
118307    --
118308    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
118309         (NVL(l_actual_upg_option, 'N') = 'O') OR
118310         (NVL(l_enc_upg_option, 'N') = 'O')
118311       )
118312    THEN
118313    NULL;
118314    --
118315    --
118316    
118317   l_ccid := AcctDerRule_42(
118318            p_application_id           => p_application_id
118319          , p_ae_header_id             => l_ae_header_id 
118320 , p_source_50 => p_source_50
118321          , x_transaction_coa_id       => l_adr_transaction_coa_id
118322          , x_accounting_coa_id        => l_adr_accounting_coa_id
118323          , x_value_type_code          => l_adr_value_type_code
118324          , p_side                     => 'NA'
118325    );
118326 
118327    xla_ae_lines_pkg.set_ccid(
118328     p_code_combination_id          => l_ccid
118329   , p_value_type_code              => l_adr_value_type_code
118330   , p_transaction_coa_id           => l_adr_transaction_coa_id
118334   , p_component_type               => l_component_type
118331   , p_accounting_coa_id            => l_adr_accounting_coa_id
118332   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
118333   , p_adr_type_code                => 'S'
118335   , p_component_code               => l_component_code
118336   , p_component_type_code          => l_component_type_code
118337   , p_component_appl_id            => l_component_appl_id
118338   , p_amb_context_code             => l_amb_context_code
118339   , p_side                         => 'NA'
118340   );
118341 
118342 
118343    --
118344    --
118345    END IF;
118346 
118347        --
118348        -- Update the line information that should be overwritten
118349        --
118350        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
118351                                          p_header_num   => 1);
118352        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
118353 
118354        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
118355 
118356        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
118357           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
118358        END IF;
118359 
118360       --
118361       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
118362       --
118363       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
118364           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
118365       ELSE
118366           ---------------------------------------------------------------------------------------------------
118367           -- 4262811a Switch Sign
118368           ---------------------------------------------------------------------------------------------------
118369           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
118370           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
118371                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
118372           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
118373                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
118374           -- 5132302
118375           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
118376                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
118377 
118378       END IF;
118379 
118380       -- 4955764
118381       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
118382       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
118383 
118384 
118385       XLA_AE_LINES_PKG.ValidateCurrentLine;
118386       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
118387 
118388       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
118389                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
118390                ,p_balance_type_code => l_balance_type_code);
118391 
118392    END IF;
118393 
118394    -----------------------------------------------------------------------------------------
118395    -- 4262811 Multiperiod Accounting
118396    -----------------------------------------------------------------------------------------
118397      -- No MPA option is assigned.
118398 
118399 
118400 END IF;
118401 END IF;
118402 --
118403 
118404 --
118405 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
118406    trace
118407       (p_msg      => 'END of AcctLineType_196'
118408       ,p_level    => C_LEVEL_PROCEDURE
118409       ,p_module   => l_log_module);
118410 END IF;
118411 --
118412 EXCEPTION
118413   WHEN xla_exceptions_pkg.application_exception THEN
118414       RAISE;
118415   WHEN OTHERS THEN
118416        xla_exceptions_pkg.raise_message
118417            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_196');
118418 END AcctLineType_196;
118419 --
118420 
118421 ---------------------------------------
118422 --
118423 -- PRIVATE FUNCTION
118424 --         AcctLineType_197
118425 --
118426 ---------------------------------------
118427 PROCEDURE AcctLineType_197 (
118428   p_application_id        IN NUMBER
118429  ,p_event_id              IN NUMBER
118430  ,p_calculate_acctd_flag  IN VARCHAR2
118431  ,p_calculate_g_l_flag    IN VARCHAR2
118432  ,p_actual_flag           IN OUT VARCHAR2
118433  ,p_balance_type_code     OUT VARCHAR2
118434  ,p_gain_or_loss_ref      OUT VARCHAR2
118435  
118436 --Invoice Distribution Description
118437  , p_source_1            IN VARCHAR2
118438 --Invoice Distribution Ledger Amount
118439  , p_source_21            IN NUMBER
118440 --Invoice Distribution Type
118441  , p_source_33            IN VARCHAR2
118442  , p_source_33_meaning    IN VARCHAR2
118443 --Self-Assessed Tax Account
118444  , p_source_50            IN NUMBER
118445 --Accounting Reversal Indicator
118446  , p_source_53            IN VARCHAR2
118447 --Distribution Link Type
118448  , p_source_55            IN VARCHAR2
118449 --Allocation to Main Distribution Identifier
118450  , p_source_57            IN NUMBER
118451 --Invoice Identifier
118452  , p_source_58            IN NUMBER
118453 --Invoice Distribution Identifier
118454  , p_source_64            IN NUMBER
118458  , p_source_66            IN NUMBER
118455 --Payables Encumbrance Upgrade Credit Account
118456  , p_source_65            IN NUMBER
118457 --Payables Encumbrance Upgrade Credit Amount
118459 --Invoice Currency Code
118460  , p_source_67            IN VARCHAR2
118461 --Payables Encumbrance Upgrade Credit Base Amount
118462  , p_source_68            IN NUMBER
118463 --Payables Encumbrance Upgrade Debit Account
118464  , p_source_69            IN NUMBER
118465 --Payables Encumbrance Upgrade Debit Amount
118466  , p_source_70            IN NUMBER
118467 --Payables Encumbrance Upgrade Debit Base Amount
118468  , p_source_71            IN NUMBER
118469 --Payables Encumbrance Upgrade Option
118470  , p_source_72            IN VARCHAR2
118471 --Invoice Distribution Amount
118472  , p_source_73            IN NUMBER
118473 --Deferred Accounting End Date
118474  , p_source_77            IN DATE
118475 --Deferred Accounting Option
118476  , p_source_78            IN VARCHAR2
118477 --Deferred Accounting Start Date
118478  , p_source_79            IN DATE
118479 --Override Accounted Amount Indicator
118480  , p_source_80            IN VARCHAR2
118481  , p_source_80_meaning    IN VARCHAR2
118482 --Invoice Supplier Identifier
118483  , p_source_81            IN NUMBER
118484 --Invoice Supplier Site Identifier
118485  , p_source_82            IN NUMBER
118486 --Third Party Type
118487  , p_source_83            IN VARCHAR2
118488 --Parent Reversal Identifier
118489  , p_source_84            IN NUMBER
118490 --Invoice Distribution Tax Line Identifier
118491  , p_source_86            IN NUMBER
118492 --Invoice Distribution Tax Distribution Identifier from Tax
118493  , p_source_87            IN NUMBER
118494 --Invoice Distribution Summary Tax Line Identifier
118495  , p_source_88            IN NUMBER
118496 --Payables Upgrade Credit Encumbrance Type Identifier
118497  , p_source_89            IN NUMBER
118498 --Payables Upgrade Debit Encumbrance Type Identifier
118499  , p_source_90            IN NUMBER
118500 --Business Flow Accounts Payable Application Identifier
118501  , p_source_91            IN NUMBER
118502 --Business Flow Invoice Distribution Type
118503  , p_source_92            IN VARCHAR2
118504 --Business Flow Invoice Entity Code
118505  , p_source_93            IN VARCHAR2
118506 --Business Flow Invoice Distribution Identifier
118507  , p_source_94            IN NUMBER
118508 --Business Flow Invoice Identifier
118509  , p_source_95            IN NUMBER
118510 --Accrue on Receipt Option
118511  , p_source_96            IN VARCHAR2
118512  , p_source_96_meaning    IN VARCHAR2
118513 --Self-Assessed Tax Flag
118514  , p_source_142            IN VARCHAR2
118515  , p_source_142_meaning    IN VARCHAR2
118516 --Invoice Exchange Date
118517  , p_source_143            IN DATE
118518 --Invoice Exchange Rate
118519  , p_source_144            IN NUMBER
118520 --Invoice Exchange Rate Type
118521  , p_source_145            IN VARCHAR2
118522 )
118523 IS
118524 
118525 l_component_type              VARCHAR2(80);
118526 l_component_code              VARCHAR2(30);
118527 l_component_type_code         VARCHAR2(1);
118528 l_component_appl_id           INTEGER;
118529 l_amb_context_code            VARCHAR2(30);
118530 l_entity_code                 VARCHAR2(30);
118531 l_event_class_code            VARCHAR2(30);
118532 l_ae_header_id                NUMBER;
118533 l_event_type_code             VARCHAR2(30);
118534 l_line_definition_code        VARCHAR2(30);
118535 l_line_definition_owner_code  VARCHAR2(1);
118536 --
118537 -- adr variables
118538 l_segment                     VARCHAR2(30);
118539 l_ccid                        NUMBER;
118540 l_adr_transaction_coa_id      NUMBER;
118541 l_adr_accounting_coa_id       NUMBER;
118542 l_adr_flexfield_segment_code  VARCHAR2(30);
118543 l_adr_flex_value_set_id       NUMBER;
118544 l_adr_value_type_code         VARCHAR2(30);
118545 l_adr_value_combination_id    NUMBER;
118546 l_adr_value_segment_code      VARCHAR2(30);
118547 
118548 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
118549 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
118550 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
118551 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
118552 
118553 -- 4262811 Variables ------------------------------------------------------------------------------------------
118554 l_entered_amt_idx             NUMBER;
118555 l_accted_amt_idx              NUMBER;
118556 l_acc_rev_flag                VARCHAR2(1);
118557 l_accrual_line_num            NUMBER;
118558 l_tmp_amt                     NUMBER;
118559 l_acc_rev_natural_side_code   VARCHAR2(1);
118560 
118561 l_num_entries                 NUMBER;
118562 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
118563 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
118564 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
118565 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
118566 l_recog_line_1                NUMBER;
118567 l_recog_line_2                NUMBER;
118568 
118569 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
118570 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
118571 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
118572 
118573 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
118574 
118575 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
118576 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
118580 
118577 
118578 ---------------------------------------------------------------------------------------------------------------
118579 
118581 --
118582 -- bulk performance
118583 --
118584 l_balance_type_code           VARCHAR2(1);
118585 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
118586 l_log_module                  VARCHAR2(240);
118587 
118588 --
118589 -- Upgrade strategy
118590 --
118591 l_actual_upg_option           VARCHAR2(1);
118592 l_enc_upg_option           VARCHAR2(1);
118593 
118594 --
118595 BEGIN
118596 --
118597 IF g_log_enabled THEN
118598       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_197';
118599 END IF;
118600 --
118601 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
118602 
118603       trace
118604          (p_msg      => 'BEGIN of AcctLineType_197'
118605          ,p_level    => C_LEVEL_PROCEDURE
118606          ,p_module   => l_log_module);
118607 
118608 END IF;
118609 --
118610 l_component_type             := 'AMB_JLT';
118611 l_component_code             := 'AP_SELF_ASSESSED_NON_REC_DM';
118612 l_component_type_code        := 'S';
118613 l_component_appl_id          :=  200;
118614 l_amb_context_code           := 'DEFAULT';
118615 l_entity_code                := 'AP_INVOICES';
118616 l_event_class_code           := 'DEBIT MEMOS';
118617 l_event_type_code            := 'DEBIT MEMOS_ALL';
118618 l_line_definition_owner_code := 'S';
118619 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
118620 --
118621 l_balance_type_code          := 'A';
118622 l_segment                     := NULL;
118623 l_ccid                        := NULL;
118624 l_adr_transaction_coa_id      := NULL;
118625 l_adr_accounting_coa_id       := NULL;
118626 l_adr_flexfield_segment_code  := NULL;
118627 l_adr_flex_value_set_id       := NULL;
118628 l_adr_value_type_code         := NULL;
118629 l_adr_value_combination_id    := NULL;
118630 l_adr_value_segment_code      := NULL;
118631 
118632 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
118633 l_bflow_class_code           := '';    -- 4219869 Business Flow
118634 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
118635 l_budgetary_control_flag     := 'N';
118636 
118637 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
118638 l_bflow_applied_to_amt       := NULL; -- 5132302
118639 l_entered_amt_idx            := NULL;          -- 4262811
118640 l_accted_amt_idx             := NULL;          -- 4262811
118641 l_acc_rev_flag               := NULL;          -- 4262811
118642 l_accrual_line_num           := NULL;          -- 4262811
118643 l_tmp_amt                    := NULL;          -- 4262811
118644 --
118645  
118646 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
118647     l_balance_type_code <> 'B' THEN
118648 IF (NVL(p_source_33,'
118649 ') =  'NONREC_TAX' OR 
118650 NVL(p_source_33,'
118651 ') =  'TERV' OR 
118652 NVL(p_source_33,'
118653 ') =  'TIPV' OR 
118654 NVL(p_source_33,'
118655 ') =  'TRV') AND 
118656 NVL(p_source_96,'
118657 ') <>  'Y' AND 
118658 NVL(p_source_142,'
118659 ') =  'Y'
118660  THEN 
118661 
118662    --
118663    XLA_AE_LINES_PKG.SetNewLine;
118664 
118665    p_balance_type_code          := l_balance_type_code;
118666    -- set the flag so later we will know whether the gain loss line needs to be created
118667    
118668    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
118669      p_actual_flag :='A';
118670    END IF;
118671 
118672    --
118673    -- bulk performance
118674    --
118675    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
118676                                       p_header_num   => 0); -- 4262811
118677    --
118678    -- set accounting line options
118679    --
118680    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
118681            p_natural_side_code          => 'D'
118682          , p_gain_or_loss_flag          => 'N'
118683          , p_gl_transfer_mode_code      => 'S'
118684          , p_acct_entry_type_code       => 'A'
118685          , p_switch_side_flag           => 'Y'
118686          , p_merge_duplicate_code       => 'A'
118687          );
118688    --
118689    l_acc_rev_natural_side_code := 'C';  -- 4262811
118690    -- 
118691    --
118692    -- set accounting line type info
118693    --
118694    xla_ae_lines_pkg.SetAcctLineType
118695       (p_component_type             => l_component_type
118696       ,p_event_type_code            => l_event_type_code
118697       ,p_line_definition_owner_code => l_line_definition_owner_code
118698       ,p_line_definition_code       => l_line_definition_code
118699       ,p_accounting_line_code       => l_component_code
118700       ,p_accounting_line_type_code  => l_component_type_code
118701       ,p_accounting_line_appl_id    => l_component_appl_id
118702       ,p_amb_context_code           => l_amb_context_code
118703       ,p_entity_code                => l_entity_code
118704       ,p_event_class_code           => l_event_class_code);
118705    --
118706    -- set accounting class
118707    --
118708    xla_ae_lines_pkg.SetAcctClass(
118709            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
118710          , p_ae_header_id           => l_ae_header_id
118711          );
118712 
118713    --
118714    -- set rounding class
118715    --
118716    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
118717                       'SELF_ASSESSED_TAX';
118718 
118719    --
118723    -- bulk performance
118720    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
118721    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
118722    --
118724    --
118725    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
118726 
118727    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
118728       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
118729 
118730    -- 4955764
118731    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
118732       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
118733 
118734    -- 4458381 Public Sector Enh
118735    
118736    --
118737    -- set accounting attributes for the line type
118738    --
118739    l_entered_amt_idx := 23;
118740    l_accted_amt_idx  := 28;
118741    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
118742    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
118743    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
118744    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
118745    l_rec_acct_attrs.array_num_value(2)  := 
118746 xla_ae_sources_pkg.GetSystemSourceNum(
118747    p_source_code           => 'XLA_EVENT_APPL_ID'
118748  , p_source_type_code      => 'Y'
118749  , p_source_application_id =>  602
118750 );
118751    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
118752    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
118753    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
118754    l_rec_acct_attrs.array_char_value(4)  := 
118755 xla_ae_sources_pkg.GetSystemSourceChar(
118756    p_source_code           => 'XLA_ENTITY_CODE'
118757  , p_source_type_code      => 'Y'
118758  , p_source_application_id =>  602
118759 );
118760    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
118761    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
118762    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
118763    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
118764    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
118765    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
118766    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
118767    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
118768    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
118769    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
118770    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
118771    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
118772    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
118773    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
118774    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
118775    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
118776    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
118777    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
118778    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
118779    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
118780    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
118781    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
118782    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
118783    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
118784    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
118785    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
118786    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
118787    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
118788    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
118789    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
118790    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
118791    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
118792    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
118793    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
118794    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
118795    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
118796    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
118797    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
118798    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
118799    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
118800    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
118801    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
118802    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
118803    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
118804    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
118805    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
118806    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
118807    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
118808    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
118809    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
118810    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
118811    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
118815    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
118812    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
118813    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
118814    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
118816    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
118817    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
118818    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
118819    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
118820    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
118821    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
118822    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
118823    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
118824    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
118825    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
118826    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
118827    l_rec_acct_attrs.array_num_value(38)  := p_source_86;
118828    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
118829    l_rec_acct_attrs.array_num_value(39)  := p_source_87;
118830    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
118831    l_rec_acct_attrs.array_num_value(40)  := p_source_88;
118832    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
118833    l_rec_acct_attrs.array_num_value(41)  := p_source_89;
118834    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
118835    l_rec_acct_attrs.array_num_value(42)  := p_source_90;
118836 
118837    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
118838    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
118839 
118840    ---------------------------------------------------------------------------------------------------------------
118841    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
118842    ---------------------------------------------------------------------------------------------------------------
118843    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
118844 
118845    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
118846    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
118847 
118848    IF xla_accounting_cache_pkg.GetValueChar
118849          (p_source_code         => 'LEDGER_CATEGORY_CODE'
118850          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
118851    AND l_bflow_method_code = 'PRIOR_ENTRY'
118852 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
118853    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
118854          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
118855        )
118856    THEN
118857          xla_ae_lines_pkg.BflowUpgEntry
118858            (p_business_method_code    => l_bflow_method_code
118859            ,p_business_class_code     => l_bflow_class_code
118860            ,p_balance_type            => l_balance_type_code);
118861    ELSE
118862       NULL;
118863 -- No business flow processing for business flow method of NONE.
118864    END IF;
118865 
118866    --
118867    -- call analytical criteria
118868    --
118869    
118870    --
118871    -- call description
118872    --
118873    
118874 xla_ae_lines_pkg.SetLineDescription(
118875    p_ae_header_id => l_ae_header_id
118876   ,p_description  => Description_1 (
118877      p_application_id         => p_application_id
118878    , p_ae_header_id           => l_ae_header_id 
118879 , p_source_1 => p_source_1
118880    )
118881 );
118882 
118883 
118884    --
118885    -- call ADRs
118886    -- Bug 4922099
118887    --
118888    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
118889         (NVL(l_actual_upg_option, 'N') = 'O') OR
118890         (NVL(l_enc_upg_option, 'N') = 'O')
118891       )
118892    THEN
118893    NULL;
118894    --
118895    --
118896    
118897   l_ccid := AcctDerRule_42(
118898            p_application_id           => p_application_id
118899          , p_ae_header_id             => l_ae_header_id 
118900 , p_source_50 => p_source_50
118901          , x_transaction_coa_id       => l_adr_transaction_coa_id
118902          , x_accounting_coa_id        => l_adr_accounting_coa_id
118903          , x_value_type_code          => l_adr_value_type_code
118904          , p_side                     => 'NA'
118905    );
118906 
118907    xla_ae_lines_pkg.set_ccid(
118908     p_code_combination_id          => l_ccid
118909   , p_value_type_code              => l_adr_value_type_code
118910   , p_transaction_coa_id           => l_adr_transaction_coa_id
118911   , p_accounting_coa_id            => l_adr_accounting_coa_id
118912   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
118913   , p_adr_type_code                => 'S'
118914   , p_component_type               => l_component_type
118915   , p_component_code               => l_component_code
118916   , p_component_type_code          => l_component_type_code
118917   , p_component_appl_id            => l_component_appl_id
118918   , p_amb_context_code             => l_amb_context_code
118919   , p_side                         => 'NA'
118920   );
118921 
118922 
118923    --
118924    --
118925    END IF;
118926    --
118927    -- Bug 4922099
118931         (l_bflow_method_code = 'PRIOR_ENTRY')
118928    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
118929           (NVL(l_enc_upg_option, 'N') = 'O')
118930         ) AND
118932       )
118933    THEN
118934       IF
118935       --
118936       1 = 2
118937       --
118938       THEN
118939       xla_accounting_err_pkg.build_message
118940                                     (p_appli_s_name            => 'XLA'
118941                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
118942                                     ,p_token_1                 => 'LINE_NUMBER'
118943                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
118944                                     ,p_token_2                 => 'LINE_TYPE_NAME'
118945                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
118946                                                                              l_component_type
118947                                                                             ,l_component_code
118948                                                                             ,l_component_type_code
118949                                                                             ,l_component_appl_id
118950                                                                             ,l_amb_context_code
118951                                                                             ,l_entity_code
118952                                                                             ,l_event_class_code
118953                                                                            )
118954                                     ,p_token_3                 => 'OWNER'
118955                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
118956                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
118957                                                                           ,p_lookup_code    => l_component_type_code
118958                                                                          )
118959                                     ,p_token_4                 => 'PRODUCT_NAME'
118960                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
118961                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
118962                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
118963                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
118964                                     ,p_ae_header_id            =>  NULL
118965                                        );
118966 
118967         IF (C_LEVEL_ERROR>= g_log_level) THEN
118968                  trace
118969                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
118970                       ,p_level    => C_LEVEL_ERROR
118971                       ,p_module   => l_log_module);
118972         END IF;
118973       END IF;
118974    END IF;
118975    --
118976    --
118977    ------------------------------------------------------------------------------------------------
118978    -- 4219869 Business Flow
118979    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
118980    -- Prior Entry.  Currently, the following code is always generated.
118981    ------------------------------------------------------------------------------------------------
118982    XLA_AE_LINES_PKG.ValidateCurrentLine;
118983 
118984    ------------------------------------------------------------------------------------
118985    -- 4219869 Business Flow
118986    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
118987    ------------------------------------------------------------------------------------
118988    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
118989 
118990    ----------------------------------------------------------------------------------
118991    -- 4219869 Business Flow
118992    -- Update journal entry status -- Need to generate this within IF <condition>
118993    ----------------------------------------------------------------------------------
118994    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
118995          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
118996          ,p_balance_type_code => l_balance_type_code
118997          );
118998 
118999    -------------------------------------------------------------------------------------------
119000    -- 4262811 - Generate the Accrual Reversal lines
119001    -------------------------------------------------------------------------------------------
119002    BEGIN
119003       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
119004                               (g_array_event(p_event_id).array_value_num('header_index'));
119005       IF l_acc_rev_flag IS NULL THEN
119006          l_acc_rev_flag := 'N';
119007       END IF;
119008    EXCEPTION
119009       WHEN OTHERS THEN
119010          l_acc_rev_flag := 'N';
119011    END;
119012    --
119013    IF (l_acc_rev_flag = 'Y') THEN
119014 
119015        -- 4645092  ------------------------------------------------------------------------------
119016        -- To allow MPA report to determine if it should generate report process
119017        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
119018        ------------------------------------------------------------------------------------------
119019 
119020        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
119021        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
119025    --
119022    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
119023    -- call ADRs
119024    -- Bug 4922099
119026    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
119027         (NVL(l_actual_upg_option, 'N') = 'O') OR
119028         (NVL(l_enc_upg_option, 'N') = 'O')
119029       )
119030    THEN
119031    NULL;
119032    --
119033    --
119034    
119035   l_ccid := AcctDerRule_42(
119036            p_application_id           => p_application_id
119037          , p_ae_header_id             => l_ae_header_id 
119038 , p_source_50 => p_source_50
119039          , x_transaction_coa_id       => l_adr_transaction_coa_id
119040          , x_accounting_coa_id        => l_adr_accounting_coa_id
119041          , x_value_type_code          => l_adr_value_type_code
119042          , p_side                     => 'NA'
119043    );
119044 
119045    xla_ae_lines_pkg.set_ccid(
119046     p_code_combination_id          => l_ccid
119047   , p_value_type_code              => l_adr_value_type_code
119048   , p_transaction_coa_id           => l_adr_transaction_coa_id
119049   , p_accounting_coa_id            => l_adr_accounting_coa_id
119050   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
119051   , p_adr_type_code                => 'S'
119052   , p_component_type               => l_component_type
119053   , p_component_code               => l_component_code
119054   , p_component_type_code          => l_component_type_code
119055   , p_component_appl_id            => l_component_appl_id
119056   , p_amb_context_code             => l_amb_context_code
119057   , p_side                         => 'NA'
119058   );
119059 
119060 
119061    --
119062    --
119063    END IF;
119064 
119065        --
119066        -- Update the line information that should be overwritten
119067        --
119068        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
119069                                          p_header_num   => 1);
119070        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
119071 
119072        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
119073 
119074        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
119075           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
119076        END IF;
119077 
119078       --
119079       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
119080       --
119081       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
119082           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
119083       ELSE
119084           ---------------------------------------------------------------------------------------------------
119085           -- 4262811a Switch Sign
119086           ---------------------------------------------------------------------------------------------------
119087           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
119088           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
119089                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
119090           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
119091                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
119092           -- 5132302
119093           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
119094                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
119095 
119096       END IF;
119097 
119098       -- 4955764
119099       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
119100       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
119101 
119102 
119103       XLA_AE_LINES_PKG.ValidateCurrentLine;
119104       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
119105 
119106       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
119107                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
119108                ,p_balance_type_code => l_balance_type_code);
119109 
119110    END IF;
119111 
119112    -----------------------------------------------------------------------------------------
119113    -- 4262811 Multiperiod Accounting
119114    -----------------------------------------------------------------------------------------
119115      -- No MPA option is assigned.
119116 
119117 
119118 END IF;
119119 END IF;
119120 --
119121 
119122 --
119123 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
119124    trace
119125       (p_msg      => 'END of AcctLineType_197'
119126       ,p_level    => C_LEVEL_PROCEDURE
119127       ,p_module   => l_log_module);
119128 END IF;
119129 --
119130 EXCEPTION
119131   WHEN xla_exceptions_pkg.application_exception THEN
119132       RAISE;
119133   WHEN OTHERS THEN
119134        xla_exceptions_pkg.raise_message
119135            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_197');
119136 END AcctLineType_197;
119137 --
119138 
119139 ---------------------------------------
119140 --
119141 -- PRIVATE FUNCTION
119142 --         AcctLineType_198
119143 --
119144 ---------------------------------------
119148  ,p_calculate_acctd_flag  IN VARCHAR2
119145 PROCEDURE AcctLineType_198 (
119146   p_application_id        IN NUMBER
119147  ,p_event_id              IN NUMBER
119149  ,p_calculate_g_l_flag    IN VARCHAR2
119150  ,p_actual_flag           IN OUT VARCHAR2
119151  ,p_balance_type_code     OUT VARCHAR2
119152  ,p_gain_or_loss_ref      OUT VARCHAR2
119153  
119154 --Invoice Distribution Description
119155  , p_source_1            IN VARCHAR2
119156 --Invoice Distribution Ledger Amount
119157  , p_source_21            IN NUMBER
119158 --Invoice Distribution Type
119159  , p_source_33            IN VARCHAR2
119160  , p_source_33_meaning    IN VARCHAR2
119161 --Self-Assessed Tax Account
119162  , p_source_50            IN NUMBER
119163 --Accounting Reversal Indicator
119164  , p_source_53            IN VARCHAR2
119165 --Distribution Link Type
119166  , p_source_55            IN VARCHAR2
119167 --Allocation to Main Distribution Identifier
119168  , p_source_57            IN NUMBER
119169 --Invoice Identifier
119170  , p_source_58            IN NUMBER
119171 --Invoice Distribution Identifier
119172  , p_source_64            IN NUMBER
119173 --Payables Encumbrance Upgrade Credit Account
119174  , p_source_65            IN NUMBER
119175 --Payables Encumbrance Upgrade Credit Amount
119176  , p_source_66            IN NUMBER
119177 --Invoice Currency Code
119178  , p_source_67            IN VARCHAR2
119179 --Payables Encumbrance Upgrade Credit Base Amount
119180  , p_source_68            IN NUMBER
119181 --Payables Encumbrance Upgrade Debit Account
119182  , p_source_69            IN NUMBER
119183 --Payables Encumbrance Upgrade Debit Amount
119184  , p_source_70            IN NUMBER
119185 --Payables Encumbrance Upgrade Debit Base Amount
119186  , p_source_71            IN NUMBER
119187 --Payables Encumbrance Upgrade Option
119188  , p_source_72            IN VARCHAR2
119189 --Invoice Distribution Amount
119190  , p_source_73            IN NUMBER
119191 --Deferred Accounting End Date
119192  , p_source_77            IN DATE
119193 --Deferred Accounting Option
119194  , p_source_78            IN VARCHAR2
119195 --Deferred Accounting Start Date
119196  , p_source_79            IN DATE
119197 --Override Accounted Amount Indicator
119198  , p_source_80            IN VARCHAR2
119199  , p_source_80_meaning    IN VARCHAR2
119200 --Invoice Supplier Identifier
119201  , p_source_81            IN NUMBER
119202 --Invoice Supplier Site Identifier
119203  , p_source_82            IN NUMBER
119204 --Third Party Type
119205  , p_source_83            IN VARCHAR2
119206 --Parent Reversal Identifier
119207  , p_source_84            IN NUMBER
119208 --Invoice Distribution Statistical Amount
119209  , p_source_85            IN NUMBER
119210 --Invoice Distribution Tax Line Identifier
119211  , p_source_86            IN NUMBER
119212 --Invoice Distribution Tax Distribution Identifier from Tax
119213  , p_source_87            IN NUMBER
119214 --Invoice Distribution Summary Tax Line Identifier
119215  , p_source_88            IN NUMBER
119216 --Payables Upgrade Credit Encumbrance Type Identifier
119217  , p_source_89            IN NUMBER
119218 --Payables Upgrade Debit Encumbrance Type Identifier
119219  , p_source_90            IN NUMBER
119220 --Business Flow Accounts Payable Application Identifier
119221  , p_source_91            IN NUMBER
119222 --Business Flow Invoice Distribution Type
119223  , p_source_92            IN VARCHAR2
119224 --Business Flow Invoice Entity Code
119225  , p_source_93            IN VARCHAR2
119226 --Business Flow Invoice Distribution Identifier
119227  , p_source_94            IN NUMBER
119228 --Business Flow Invoice Identifier
119229  , p_source_95            IN NUMBER
119230 --Accrue on Receipt Option
119231  , p_source_96            IN VARCHAR2
119232  , p_source_96_meaning    IN VARCHAR2
119233 --Self-Assessed Tax Flag
119234  , p_source_142            IN VARCHAR2
119235  , p_source_142_meaning    IN VARCHAR2
119236 --Invoice Exchange Date
119237  , p_source_143            IN DATE
119238 --Invoice Exchange Rate
119239  , p_source_144            IN NUMBER
119240 --Invoice Exchange Rate Type
119241  , p_source_145            IN VARCHAR2
119242 )
119243 IS
119244 
119245 l_component_type              VARCHAR2(80);
119246 l_component_code              VARCHAR2(30);
119247 l_component_type_code         VARCHAR2(1);
119248 l_component_appl_id           INTEGER;
119249 l_amb_context_code            VARCHAR2(30);
119250 l_entity_code                 VARCHAR2(30);
119251 l_event_class_code            VARCHAR2(30);
119252 l_ae_header_id                NUMBER;
119253 l_event_type_code             VARCHAR2(30);
119254 l_line_definition_code        VARCHAR2(30);
119255 l_line_definition_owner_code  VARCHAR2(1);
119256 --
119257 -- adr variables
119258 l_segment                     VARCHAR2(30);
119259 l_ccid                        NUMBER;
119260 l_adr_transaction_coa_id      NUMBER;
119261 l_adr_accounting_coa_id       NUMBER;
119262 l_adr_flexfield_segment_code  VARCHAR2(30);
119263 l_adr_flex_value_set_id       NUMBER;
119264 l_adr_value_type_code         VARCHAR2(30);
119265 l_adr_value_combination_id    NUMBER;
119266 l_adr_value_segment_code      VARCHAR2(30);
119267 
119268 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
119269 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
119270 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
119271 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
119272 
119273 -- 4262811 Variables ------------------------------------------------------------------------------------------
119277 l_accrual_line_num            NUMBER;
119274 l_entered_amt_idx             NUMBER;
119275 l_accted_amt_idx              NUMBER;
119276 l_acc_rev_flag                VARCHAR2(1);
119278 l_tmp_amt                     NUMBER;
119279 l_acc_rev_natural_side_code   VARCHAR2(1);
119280 
119281 l_num_entries                 NUMBER;
119282 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
119283 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
119284 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
119285 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
119286 l_recog_line_1                NUMBER;
119287 l_recog_line_2                NUMBER;
119288 
119289 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
119290 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
119291 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
119292 
119293 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
119294 
119295 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
119296 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
119297 
119298 ---------------------------------------------------------------------------------------------------------------
119299 
119300 
119301 --
119302 -- bulk performance
119303 --
119304 l_balance_type_code           VARCHAR2(1);
119305 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
119306 l_log_module                  VARCHAR2(240);
119307 
119308 --
119309 -- Upgrade strategy
119310 --
119311 l_actual_upg_option           VARCHAR2(1);
119312 l_enc_upg_option           VARCHAR2(1);
119313 
119314 --
119315 BEGIN
119316 --
119317 IF g_log_enabled THEN
119318       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_198';
119319 END IF;
119320 --
119321 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
119322 
119323       trace
119324          (p_msg      => 'BEGIN of AcctLineType_198'
119325          ,p_level    => C_LEVEL_PROCEDURE
119326          ,p_module   => l_log_module);
119327 
119328 END IF;
119329 --
119330 l_component_type             := 'AMB_JLT';
119331 l_component_code             := 'AP_SELF_ASSESSED_NON_REC_INV';
119332 l_component_type_code        := 'S';
119333 l_component_appl_id          :=  200;
119334 l_amb_context_code           := 'DEFAULT';
119335 l_entity_code                := 'AP_INVOICES';
119336 l_event_class_code           := 'INVOICES';
119337 l_event_type_code            := 'INVOICES_ALL';
119338 l_line_definition_owner_code := 'S';
119339 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
119340 --
119341 l_balance_type_code          := 'A';
119342 l_segment                     := NULL;
119343 l_ccid                        := NULL;
119344 l_adr_transaction_coa_id      := NULL;
119345 l_adr_accounting_coa_id       := NULL;
119346 l_adr_flexfield_segment_code  := NULL;
119347 l_adr_flex_value_set_id       := NULL;
119348 l_adr_value_type_code         := NULL;
119349 l_adr_value_combination_id    := NULL;
119350 l_adr_value_segment_code      := NULL;
119351 
119352 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
119353 l_bflow_class_code           := '';    -- 4219869 Business Flow
119354 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
119355 l_budgetary_control_flag     := 'N';
119356 
119357 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
119358 l_bflow_applied_to_amt       := NULL; -- 5132302
119359 l_entered_amt_idx            := NULL;          -- 4262811
119360 l_accted_amt_idx             := NULL;          -- 4262811
119361 l_acc_rev_flag               := NULL;          -- 4262811
119362 l_accrual_line_num           := NULL;          -- 4262811
119363 l_tmp_amt                    := NULL;          -- 4262811
119364 --
119365  
119366 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
119367     l_balance_type_code <> 'B' THEN
119368 IF (NVL(p_source_33,'
119369 ') =  'NONREC_TAX' OR 
119370 NVL(p_source_33,'
119371 ') =  'TERV' OR 
119372 NVL(p_source_33,'
119373 ') =  'TIPV' OR 
119374 NVL(p_source_33,'
119375 ') =  'TRV') AND 
119376 NVL(p_source_96,'
119377 ') <>  'Y' AND 
119378 NVL(p_source_142,'
119379 ') =  'Y'
119380  THEN 
119381 
119382    --
119383    XLA_AE_LINES_PKG.SetNewLine;
119384 
119385    p_balance_type_code          := l_balance_type_code;
119386    -- set the flag so later we will know whether the gain loss line needs to be created
119387    
119388    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
119389      p_actual_flag :='A';
119390    END IF;
119391 
119392    --
119393    -- bulk performance
119394    --
119395    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
119396                                       p_header_num   => 0); -- 4262811
119397    --
119398    -- set accounting line options
119399    --
119400    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
119401            p_natural_side_code          => 'D'
119402          , p_gain_or_loss_flag          => 'N'
119403          , p_gl_transfer_mode_code      => 'S'
119404          , p_acct_entry_type_code       => 'A'
119405          , p_switch_side_flag           => 'Y'
119406          , p_merge_duplicate_code       => 'A'
119407          );
119408    --
119412    -- set accounting line type info
119409    l_acc_rev_natural_side_code := 'C';  -- 4262811
119410    -- 
119411    --
119413    --
119414    xla_ae_lines_pkg.SetAcctLineType
119415       (p_component_type             => l_component_type
119416       ,p_event_type_code            => l_event_type_code
119417       ,p_line_definition_owner_code => l_line_definition_owner_code
119418       ,p_line_definition_code       => l_line_definition_code
119419       ,p_accounting_line_code       => l_component_code
119420       ,p_accounting_line_type_code  => l_component_type_code
119421       ,p_accounting_line_appl_id    => l_component_appl_id
119422       ,p_amb_context_code           => l_amb_context_code
119423       ,p_entity_code                => l_entity_code
119424       ,p_event_class_code           => l_event_class_code);
119425    --
119426    -- set accounting class
119427    --
119428    xla_ae_lines_pkg.SetAcctClass(
119429            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
119430          , p_ae_header_id           => l_ae_header_id
119431          );
119432 
119433    --
119434    -- set rounding class
119435    --
119436    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
119437                       'SELF_ASSESSED_TAX';
119438 
119439    --
119440    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
119441    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
119442    --
119443    -- bulk performance
119444    --
119445    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
119446 
119447    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
119448       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
119449 
119450    -- 4955764
119451    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
119452       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
119453 
119454    -- 4458381 Public Sector Enh
119455    
119456    --
119457    -- set accounting attributes for the line type
119458    --
119459    l_entered_amt_idx := 24;
119460    l_accted_amt_idx  := 29;
119461    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
119462    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
119463    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
119464    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
119465    l_rec_acct_attrs.array_num_value(2)  := 
119466 xla_ae_sources_pkg.GetSystemSourceNum(
119467    p_source_code           => 'XLA_EVENT_APPL_ID'
119468  , p_source_type_code      => 'Y'
119469  , p_source_application_id =>  602
119470 );
119471    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
119472    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
119473    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
119474    l_rec_acct_attrs.array_char_value(4)  := 
119475 xla_ae_sources_pkg.GetSystemSourceChar(
119476    p_source_code           => 'XLA_ENTITY_CODE'
119477  , p_source_type_code      => 'Y'
119478  , p_source_application_id =>  602
119479 );
119480    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
119481    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
119482    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
119483    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
119484    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
119485    l_rec_acct_attrs.array_num_value(7)  := p_source_73;
119486    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
119487    l_rec_acct_attrs.array_num_value(8)  := p_source_91;
119488    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
119489    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
119490    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
119491    l_rec_acct_attrs.array_char_value(10)  := p_source_93;
119492    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
119493    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
119494    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
119495    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_95);
119496    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
119497    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_64);
119498    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
119499    l_rec_acct_attrs.array_char_value(14)  := p_source_55;
119500    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
119501    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
119502    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
119503    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
119504    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
119505    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
119506    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
119507    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
119508    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
119509    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
119510    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
119511    l_rec_acct_attrs.array_num_value(20)  := p_source_70;
119515    l_rec_acct_attrs.array_num_value(22)  := p_source_71;
119512    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
119513    l_rec_acct_attrs.array_char_value(21)  := p_source_67;
119514    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
119516    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
119517    l_rec_acct_attrs.array_char_value(23)  := p_source_72;
119518    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
119519    l_rec_acct_attrs.array_num_value(24)  := p_source_73;
119520    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
119521    l_rec_acct_attrs.array_char_value(25)  := p_source_67;
119522    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
119523    l_rec_acct_attrs.array_date_value(26)  := p_source_143;
119524    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
119525    l_rec_acct_attrs.array_num_value(27)  := p_source_144;
119526    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
119527    l_rec_acct_attrs.array_char_value(28)  := p_source_145;
119528    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
119529    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
119530    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
119531    l_rec_acct_attrs.array_date_value(30)  := p_source_77;
119532    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
119533    l_rec_acct_attrs.array_char_value(31)  := p_source_78;
119534    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
119535    l_rec_acct_attrs.array_date_value(32)  := p_source_79;
119536    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
119537    l_rec_acct_attrs.array_char_value(33)  := p_source_80;
119538    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
119539    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
119540    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
119541    l_rec_acct_attrs.array_num_value(35)  := p_source_82;
119542    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
119543    l_rec_acct_attrs.array_char_value(36)  := p_source_83;
119544    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
119545    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_84);
119546    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
119547    l_rec_acct_attrs.array_char_value(38)  := p_source_55;
119548    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
119549    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
119550    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
119551    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
119552    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
119553    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
119554    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
119555    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
119556    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
119557    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
119558    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
119559    l_rec_acct_attrs.array_num_value(44)  := p_source_90;
119560 
119561    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
119562    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
119563 
119564    ---------------------------------------------------------------------------------------------------------------
119565    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
119566    ---------------------------------------------------------------------------------------------------------------
119567    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
119568 
119569    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
119570    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
119571 
119572    IF xla_accounting_cache_pkg.GetValueChar
119573          (p_source_code         => 'LEDGER_CATEGORY_CODE'
119574          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
119575    AND l_bflow_method_code = 'PRIOR_ENTRY'
119576 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
119577    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
119578          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
119579        )
119580    THEN
119581          xla_ae_lines_pkg.BflowUpgEntry
119582            (p_business_method_code    => l_bflow_method_code
119583            ,p_business_class_code     => l_bflow_class_code
119584            ,p_balance_type            => l_balance_type_code);
119585    ELSE
119586       NULL;
119587 -- No business flow processing for business flow method of NONE.
119588    END IF;
119589 
119590    --
119591    -- call analytical criteria
119592    --
119593    
119594    --
119595    -- call description
119596    --
119597    
119598 xla_ae_lines_pkg.SetLineDescription(
119599    p_ae_header_id => l_ae_header_id
119600   ,p_description  => Description_1 (
119601      p_application_id         => p_application_id
119602    , p_ae_header_id           => l_ae_header_id 
119603 , p_source_1 => p_source_1
119604    )
119605 );
119606 
119607 
119608    --
119609    -- call ADRs
119610    -- Bug 4922099
119611    --
119612    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
119613         (NVL(l_actual_upg_option, 'N') = 'O') OR
119617    NULL;
119614         (NVL(l_enc_upg_option, 'N') = 'O')
119615       )
119616    THEN
119618    --
119619    --
119620    
119621   l_ccid := AcctDerRule_42(
119622            p_application_id           => p_application_id
119623          , p_ae_header_id             => l_ae_header_id 
119624 , p_source_50 => p_source_50
119625          , x_transaction_coa_id       => l_adr_transaction_coa_id
119626          , x_accounting_coa_id        => l_adr_accounting_coa_id
119627          , x_value_type_code          => l_adr_value_type_code
119628          , p_side                     => 'NA'
119629    );
119630 
119631    xla_ae_lines_pkg.set_ccid(
119632     p_code_combination_id          => l_ccid
119633   , p_value_type_code              => l_adr_value_type_code
119634   , p_transaction_coa_id           => l_adr_transaction_coa_id
119635   , p_accounting_coa_id            => l_adr_accounting_coa_id
119636   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
119637   , p_adr_type_code                => 'S'
119638   , p_component_type               => l_component_type
119639   , p_component_code               => l_component_code
119640   , p_component_type_code          => l_component_type_code
119641   , p_component_appl_id            => l_component_appl_id
119642   , p_amb_context_code             => l_amb_context_code
119643   , p_side                         => 'NA'
119644   );
119645 
119646 
119647    --
119648    --
119649    END IF;
119650    --
119651    -- Bug 4922099
119652    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
119653           (NVL(l_enc_upg_option, 'N') = 'O')
119654         ) AND
119655         (l_bflow_method_code = 'PRIOR_ENTRY')
119656       )
119657    THEN
119658       IF
119659       --
119660       1 = 2
119661       --
119662       THEN
119663       xla_accounting_err_pkg.build_message
119664                                     (p_appli_s_name            => 'XLA'
119665                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
119666                                     ,p_token_1                 => 'LINE_NUMBER'
119667                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
119668                                     ,p_token_2                 => 'LINE_TYPE_NAME'
119669                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
119670                                                                              l_component_type
119671                                                                             ,l_component_code
119672                                                                             ,l_component_type_code
119673                                                                             ,l_component_appl_id
119674                                                                             ,l_amb_context_code
119675                                                                             ,l_entity_code
119676                                                                             ,l_event_class_code
119677                                                                            )
119678                                     ,p_token_3                 => 'OWNER'
119679                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
119680                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
119681                                                                           ,p_lookup_code    => l_component_type_code
119682                                                                          )
119683                                     ,p_token_4                 => 'PRODUCT_NAME'
119684                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
119685                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
119686                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
119687                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
119688                                     ,p_ae_header_id            =>  NULL
119689                                        );
119690 
119691         IF (C_LEVEL_ERROR>= g_log_level) THEN
119692                  trace
119693                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
119694                       ,p_level    => C_LEVEL_ERROR
119695                       ,p_module   => l_log_module);
119696         END IF;
119697       END IF;
119698    END IF;
119699    --
119700    --
119701    ------------------------------------------------------------------------------------------------
119702    -- 4219869 Business Flow
119703    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
119704    -- Prior Entry.  Currently, the following code is always generated.
119705    ------------------------------------------------------------------------------------------------
119706    XLA_AE_LINES_PKG.ValidateCurrentLine;
119707 
119708    ------------------------------------------------------------------------------------
119709    -- 4219869 Business Flow
119710    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
119711    ------------------------------------------------------------------------------------
119712    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
119713 
119714    ----------------------------------------------------------------------------------
119715    -- 4219869 Business Flow
119716    -- Update journal entry status -- Need to generate this within IF <condition>
119720          ,p_balance_type_code => l_balance_type_code
119717    ----------------------------------------------------------------------------------
119718    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
119719          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
119721          );
119722 
119723    -------------------------------------------------------------------------------------------
119724    -- 4262811 - Generate the Accrual Reversal lines
119725    -------------------------------------------------------------------------------------------
119726    BEGIN
119727       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
119728                               (g_array_event(p_event_id).array_value_num('header_index'));
119729       IF l_acc_rev_flag IS NULL THEN
119730          l_acc_rev_flag := 'N';
119731       END IF;
119732    EXCEPTION
119733       WHEN OTHERS THEN
119734          l_acc_rev_flag := 'N';
119735    END;
119736    --
119737    IF (l_acc_rev_flag = 'Y') THEN
119738 
119739        -- 4645092  ------------------------------------------------------------------------------
119740        -- To allow MPA report to determine if it should generate report process
119741        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
119742        ------------------------------------------------------------------------------------------
119743 
119744        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
119745        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
119746    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
119747    -- call ADRs
119748    -- Bug 4922099
119749    --
119750    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
119751         (NVL(l_actual_upg_option, 'N') = 'O') OR
119752         (NVL(l_enc_upg_option, 'N') = 'O')
119753       )
119754    THEN
119755    NULL;
119756    --
119757    --
119758    
119759   l_ccid := AcctDerRule_42(
119760            p_application_id           => p_application_id
119761          , p_ae_header_id             => l_ae_header_id 
119762 , p_source_50 => p_source_50
119763          , x_transaction_coa_id       => l_adr_transaction_coa_id
119764          , x_accounting_coa_id        => l_adr_accounting_coa_id
119765          , x_value_type_code          => l_adr_value_type_code
119766          , p_side                     => 'NA'
119767    );
119768 
119769    xla_ae_lines_pkg.set_ccid(
119770     p_code_combination_id          => l_ccid
119771   , p_value_type_code              => l_adr_value_type_code
119772   , p_transaction_coa_id           => l_adr_transaction_coa_id
119773   , p_accounting_coa_id            => l_adr_accounting_coa_id
119774   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
119775   , p_adr_type_code                => 'S'
119776   , p_component_type               => l_component_type
119777   , p_component_code               => l_component_code
119778   , p_component_type_code          => l_component_type_code
119779   , p_component_appl_id            => l_component_appl_id
119780   , p_amb_context_code             => l_amb_context_code
119781   , p_side                         => 'NA'
119782   );
119783 
119784 
119785    --
119786    --
119787    END IF;
119788 
119789        --
119790        -- Update the line information that should be overwritten
119791        --
119792        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
119793                                          p_header_num   => 1);
119794        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
119795 
119796        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
119797 
119798        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
119799           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
119800        END IF;
119801 
119802       --
119803       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
119804       --
119805       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
119806           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
119807       ELSE
119808           ---------------------------------------------------------------------------------------------------
119809           -- 4262811a Switch Sign
119810           ---------------------------------------------------------------------------------------------------
119811           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
119812           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
119813                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
119814           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
119815                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
119816           -- 5132302
119817           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
119818                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
119819 
119820       END IF;
119821 
119822       -- 4955764
119823       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
119824       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
119825 
119826 
119830       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
119827       XLA_AE_LINES_PKG.ValidateCurrentLine;
119828       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
119829 
119831                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
119832                ,p_balance_type_code => l_balance_type_code);
119833 
119834    END IF;
119835 
119836    -----------------------------------------------------------------------------------------
119837    -- 4262811 Multiperiod Accounting
119838    -----------------------------------------------------------------------------------------
119839      -- No MPA option is assigned.
119840 
119841 
119842 END IF;
119843 END IF;
119844 --
119845 
119846 --
119847 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
119848    trace
119849       (p_msg      => 'END of AcctLineType_198'
119850       ,p_level    => C_LEVEL_PROCEDURE
119851       ,p_module   => l_log_module);
119852 END IF;
119853 --
119854 EXCEPTION
119855   WHEN xla_exceptions_pkg.application_exception THEN
119856       RAISE;
119857   WHEN OTHERS THEN
119858        xla_exceptions_pkg.raise_message
119859            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_198');
119860 END AcctLineType_198;
119861 --
119862 
119863 ---------------------------------------
119864 --
119865 -- PRIVATE FUNCTION
119866 --         AcctLineType_199
119867 --
119868 ---------------------------------------
119869 PROCEDURE AcctLineType_199 (
119870   p_application_id        IN NUMBER
119871  ,p_event_id              IN NUMBER
119872  ,p_calculate_acctd_flag  IN VARCHAR2
119873  ,p_calculate_g_l_flag    IN VARCHAR2
119874  ,p_actual_flag           IN OUT VARCHAR2
119875  ,p_balance_type_code     OUT VARCHAR2
119876  ,p_gain_or_loss_ref      OUT VARCHAR2
119877  
119878 --Invoice Distribution Description
119879  , p_source_1            IN VARCHAR2
119880 --Invoice Distribution Ledger Amount
119881  , p_source_21            IN NUMBER
119882 --Invoice Distribution Type
119883  , p_source_33            IN VARCHAR2
119884  , p_source_33_meaning    IN VARCHAR2
119885 --Self-Assessed Tax Account
119886  , p_source_50            IN NUMBER
119887 --Accounting Reversal Indicator
119888  , p_source_53            IN VARCHAR2
119889 --Distribution Link Type
119890  , p_source_55            IN VARCHAR2
119891 --Allocation to Main Distribution Identifier
119892  , p_source_57            IN NUMBER
119893 --Invoice Identifier
119894  , p_source_58            IN NUMBER
119895 --Invoice Distribution Identifier
119896  , p_source_64            IN NUMBER
119897 --Payables Encumbrance Upgrade Credit Account
119898  , p_source_65            IN NUMBER
119899 --Payables Encumbrance Upgrade Credit Amount
119900  , p_source_66            IN NUMBER
119901 --Invoice Currency Code
119902  , p_source_67            IN VARCHAR2
119903 --Payables Encumbrance Upgrade Credit Base Amount
119904  , p_source_68            IN NUMBER
119905 --Payables Encumbrance Upgrade Debit Account
119906  , p_source_69            IN NUMBER
119907 --Payables Encumbrance Upgrade Debit Amount
119908  , p_source_70            IN NUMBER
119909 --Payables Encumbrance Upgrade Debit Base Amount
119910  , p_source_71            IN NUMBER
119911 --Payables Encumbrance Upgrade Option
119912  , p_source_72            IN VARCHAR2
119913 --Invoice Distribution Amount
119914  , p_source_73            IN NUMBER
119915 --Deferred Accounting End Date
119916  , p_source_77            IN DATE
119917 --Deferred Accounting Option
119918  , p_source_78            IN VARCHAR2
119919 --Deferred Accounting Start Date
119920  , p_source_79            IN DATE
119921 --Override Accounted Amount Indicator
119922  , p_source_80            IN VARCHAR2
119923  , p_source_80_meaning    IN VARCHAR2
119924 --Invoice Supplier Identifier
119925  , p_source_81            IN NUMBER
119926 --Invoice Supplier Site Identifier
119927  , p_source_82            IN NUMBER
119928 --Third Party Type
119929  , p_source_83            IN VARCHAR2
119930 --Parent Reversal Identifier
119931  , p_source_84            IN NUMBER
119932 --Invoice Distribution Statistical Amount
119933  , p_source_85            IN NUMBER
119934 --Invoice Distribution Tax Line Identifier
119935  , p_source_86            IN NUMBER
119936 --Invoice Distribution Tax Distribution Identifier from Tax
119937  , p_source_87            IN NUMBER
119938 --Invoice Distribution Summary Tax Line Identifier
119939  , p_source_88            IN NUMBER
119940 --Payables Upgrade Credit Encumbrance Type Identifier
119941  , p_source_89            IN NUMBER
119942 --Payables Upgrade Debit Encumbrance Type Identifier
119943  , p_source_90            IN NUMBER
119944 --Business Flow Accounts Payable Application Identifier
119945  , p_source_91            IN NUMBER
119946 --Business Flow Invoice Distribution Type
119947  , p_source_92            IN VARCHAR2
119948 --Business Flow Invoice Entity Code
119949  , p_source_93            IN VARCHAR2
119950 --Business Flow Invoice Distribution Identifier
119951  , p_source_94            IN NUMBER
119952 --Business Flow Invoice Identifier
119953  , p_source_95            IN NUMBER
119954 --Self-Assessed Tax Flag
119955  , p_source_142            IN VARCHAR2
119956  , p_source_142_meaning    IN VARCHAR2
119957 --Invoice Exchange Date
119958  , p_source_143            IN DATE
119959 --Invoice Exchange Rate
119960  , p_source_144            IN NUMBER
119961 --Invoice Exchange Rate Type
119962  , p_source_145            IN VARCHAR2
119966 l_component_type              VARCHAR2(80);
119963 )
119964 IS
119965 
119967 l_component_code              VARCHAR2(30);
119968 l_component_type_code         VARCHAR2(1);
119969 l_component_appl_id           INTEGER;
119970 l_amb_context_code            VARCHAR2(30);
119971 l_entity_code                 VARCHAR2(30);
119972 l_event_class_code            VARCHAR2(30);
119973 l_ae_header_id                NUMBER;
119974 l_event_type_code             VARCHAR2(30);
119975 l_line_definition_code        VARCHAR2(30);
119976 l_line_definition_owner_code  VARCHAR2(1);
119977 --
119978 -- adr variables
119979 l_segment                     VARCHAR2(30);
119980 l_ccid                        NUMBER;
119981 l_adr_transaction_coa_id      NUMBER;
119982 l_adr_accounting_coa_id       NUMBER;
119983 l_adr_flexfield_segment_code  VARCHAR2(30);
119984 l_adr_flex_value_set_id       NUMBER;
119985 l_adr_value_type_code         VARCHAR2(30);
119986 l_adr_value_combination_id    NUMBER;
119987 l_adr_value_segment_code      VARCHAR2(30);
119988 
119989 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
119990 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
119991 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
119992 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
119993 
119994 -- 4262811 Variables ------------------------------------------------------------------------------------------
119995 l_entered_amt_idx             NUMBER;
119996 l_accted_amt_idx              NUMBER;
119997 l_acc_rev_flag                VARCHAR2(1);
119998 l_accrual_line_num            NUMBER;
119999 l_tmp_amt                     NUMBER;
120000 l_acc_rev_natural_side_code   VARCHAR2(1);
120001 
120002 l_num_entries                 NUMBER;
120003 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
120004 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
120005 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
120006 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
120007 l_recog_line_1                NUMBER;
120008 l_recog_line_2                NUMBER;
120009 
120010 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
120011 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
120012 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
120013 
120014 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
120015 
120016 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
120017 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
120018 
120019 ---------------------------------------------------------------------------------------------------------------
120020 
120021 
120022 --
120023 -- bulk performance
120024 --
120025 l_balance_type_code           VARCHAR2(1);
120026 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
120027 l_log_module                  VARCHAR2(240);
120028 
120029 --
120030 -- Upgrade strategy
120031 --
120032 l_actual_upg_option           VARCHAR2(1);
120033 l_enc_upg_option           VARCHAR2(1);
120034 
120035 --
120036 BEGIN
120037 --
120038 IF g_log_enabled THEN
120039       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_199';
120040 END IF;
120041 --
120042 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
120043 
120044       trace
120045          (p_msg      => 'BEGIN of AcctLineType_199'
120046          ,p_level    => C_LEVEL_PROCEDURE
120047          ,p_module   => l_log_module);
120048 
120049 END IF;
120050 --
120051 l_component_type             := 'AMB_JLT';
120052 l_component_code             := 'AP_SELF_ASSESSED_RECTAX_PREPAY';
120053 l_component_type_code        := 'S';
120054 l_component_appl_id          :=  200;
120055 l_amb_context_code           := 'DEFAULT';
120056 l_entity_code                := 'AP_INVOICES';
120057 l_event_class_code           := 'PREPAYMENTS';
120058 l_event_type_code            := 'PREPAYMENTS_ALL';
120059 l_line_definition_owner_code := 'S';
120060 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
120061 --
120062 l_balance_type_code          := 'A';
120063 l_segment                     := NULL;
120064 l_ccid                        := NULL;
120065 l_adr_transaction_coa_id      := NULL;
120066 l_adr_accounting_coa_id       := NULL;
120067 l_adr_flexfield_segment_code  := NULL;
120068 l_adr_flex_value_set_id       := NULL;
120069 l_adr_value_type_code         := NULL;
120070 l_adr_value_combination_id    := NULL;
120071 l_adr_value_segment_code      := NULL;
120072 
120073 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
120074 l_bflow_class_code           := '';    -- 4219869 Business Flow
120075 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
120076 l_budgetary_control_flag     := 'N';
120077 
120078 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
120079 l_bflow_applied_to_amt       := NULL; -- 5132302
120080 l_entered_amt_idx            := NULL;          -- 4262811
120081 l_accted_amt_idx             := NULL;          -- 4262811
120082 l_acc_rev_flag               := NULL;          -- 4262811
120083 l_accrual_line_num           := NULL;          -- 4262811
120084 l_tmp_amt                    := NULL;          -- 4262811
120085 --
120086  
120087 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
120088     l_balance_type_code <> 'B' THEN
120092 ') =  'Y'
120089 IF NVL(p_source_33,'
120090 ') =  'REC_TAX' AND 
120091 NVL(p_source_142,'
120093  THEN 
120094 
120095    --
120096    XLA_AE_LINES_PKG.SetNewLine;
120097 
120098    p_balance_type_code          := l_balance_type_code;
120099    -- set the flag so later we will know whether the gain loss line needs to be created
120100    
120101    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
120102      p_actual_flag :='A';
120103    END IF;
120104 
120105    --
120106    -- bulk performance
120107    --
120108    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
120109                                       p_header_num   => 0); -- 4262811
120110    --
120111    -- set accounting line options
120112    --
120113    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
120114            p_natural_side_code          => 'D'
120115          , p_gain_or_loss_flag          => 'N'
120116          , p_gl_transfer_mode_code      => 'S'
120117          , p_acct_entry_type_code       => 'A'
120118          , p_switch_side_flag           => 'Y'
120119          , p_merge_duplicate_code       => 'A'
120120          );
120121    --
120122    l_acc_rev_natural_side_code := 'C';  -- 4262811
120123    -- 
120124    --
120125    -- set accounting line type info
120126    --
120127    xla_ae_lines_pkg.SetAcctLineType
120128       (p_component_type             => l_component_type
120129       ,p_event_type_code            => l_event_type_code
120130       ,p_line_definition_owner_code => l_line_definition_owner_code
120131       ,p_line_definition_code       => l_line_definition_code
120132       ,p_accounting_line_code       => l_component_code
120133       ,p_accounting_line_type_code  => l_component_type_code
120134       ,p_accounting_line_appl_id    => l_component_appl_id
120135       ,p_amb_context_code           => l_amb_context_code
120136       ,p_entity_code                => l_entity_code
120137       ,p_event_class_code           => l_event_class_code);
120138    --
120139    -- set accounting class
120140    --
120141    xla_ae_lines_pkg.SetAcctClass(
120142            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
120143          , p_ae_header_id           => l_ae_header_id
120144          );
120145 
120146    --
120147    -- set rounding class
120148    --
120149    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
120150                       'SELF_ASSESSED_TAX';
120151 
120152    --
120153    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
120154    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
120155    --
120156    -- bulk performance
120157    --
120158    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
120159 
120160    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
120161       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
120162 
120163    -- 4955764
120164    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
120165       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
120166 
120167    -- 4458381 Public Sector Enh
120168    
120169    --
120170    -- set accounting attributes for the line type
120171    --
120172    l_entered_amt_idx := 23;
120173    l_accted_amt_idx  := 28;
120174    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
120175    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
120176    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
120177    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
120178    l_rec_acct_attrs.array_num_value(2)  := 
120179 xla_ae_sources_pkg.GetSystemSourceNum(
120180    p_source_code           => 'XLA_EVENT_APPL_ID'
120181  , p_source_type_code      => 'Y'
120182  , p_source_application_id =>  602
120183 );
120184    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
120185    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
120186    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
120187    l_rec_acct_attrs.array_char_value(4)  := 
120188 xla_ae_sources_pkg.GetSystemSourceChar(
120189    p_source_code           => 'XLA_ENTITY_CODE'
120190  , p_source_type_code      => 'Y'
120191  , p_source_application_id =>  602
120192 );
120193    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
120194    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
120195    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
120196    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
120197    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
120198    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
120199    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
120200    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
120201    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
120202    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
120203    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
120204    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
120205    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
120206    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
120207    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
120211    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
120208    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
120209    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
120210    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
120212    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
120213    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
120214    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
120215    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
120216    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
120217    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
120218    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
120219    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
120220    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
120221    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
120222    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
120223    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
120224    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
120225    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
120226    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
120227    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
120228    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
120229    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
120230    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
120231    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
120232    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
120233    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
120234    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
120235    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
120236    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
120237    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
120238    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
120239    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
120240    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
120241    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
120242    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
120243    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
120244    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
120245    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
120246    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
120247    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
120248    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
120249    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
120250    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
120251    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
120252    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
120253    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
120254    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
120255    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
120256    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
120257    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
120258    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
120259    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
120260    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
120261    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
120262    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
120263    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
120264    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
120265    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
120266    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
120267    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
120268    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
120269    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
120270    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
120271 
120272    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
120273    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
120274 
120275    ---------------------------------------------------------------------------------------------------------------
120276    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
120277    ---------------------------------------------------------------------------------------------------------------
120278    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
120279 
120280    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
120281    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
120282 
120283    IF xla_accounting_cache_pkg.GetValueChar
120284          (p_source_code         => 'LEDGER_CATEGORY_CODE'
120285          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
120286    AND l_bflow_method_code = 'PRIOR_ENTRY'
120287 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
120288    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
120289          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
120290        )
120291    THEN
120292          xla_ae_lines_pkg.BflowUpgEntry
120296    ELSE
120293            (p_business_method_code    => l_bflow_method_code
120294            ,p_business_class_code     => l_bflow_class_code
120295            ,p_balance_type            => l_balance_type_code);
120297       NULL;
120298 -- No business flow processing for business flow method of NONE.
120299    END IF;
120300 
120301    --
120302    -- call analytical criteria
120303    --
120304    
120305    --
120306    -- call description
120307    --
120308    
120309 xla_ae_lines_pkg.SetLineDescription(
120310    p_ae_header_id => l_ae_header_id
120311   ,p_description  => Description_1 (
120312      p_application_id         => p_application_id
120313    , p_ae_header_id           => l_ae_header_id 
120314 , p_source_1 => p_source_1
120315    )
120316 );
120317 
120318 
120319    --
120320    -- call ADRs
120321    -- Bug 4922099
120322    --
120323    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
120324         (NVL(l_actual_upg_option, 'N') = 'O') OR
120325         (NVL(l_enc_upg_option, 'N') = 'O')
120326       )
120327    THEN
120328    NULL;
120329    --
120330    --
120331    
120332   l_ccid := AcctDerRule_42(
120333            p_application_id           => p_application_id
120334          , p_ae_header_id             => l_ae_header_id 
120335 , p_source_50 => p_source_50
120336          , x_transaction_coa_id       => l_adr_transaction_coa_id
120337          , x_accounting_coa_id        => l_adr_accounting_coa_id
120338          , x_value_type_code          => l_adr_value_type_code
120339          , p_side                     => 'NA'
120340    );
120341 
120342    xla_ae_lines_pkg.set_ccid(
120343     p_code_combination_id          => l_ccid
120344   , p_value_type_code              => l_adr_value_type_code
120345   , p_transaction_coa_id           => l_adr_transaction_coa_id
120346   , p_accounting_coa_id            => l_adr_accounting_coa_id
120347   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
120348   , p_adr_type_code                => 'S'
120349   , p_component_type               => l_component_type
120350   , p_component_code               => l_component_code
120351   , p_component_type_code          => l_component_type_code
120352   , p_component_appl_id            => l_component_appl_id
120353   , p_amb_context_code             => l_amb_context_code
120354   , p_side                         => 'NA'
120355   );
120356 
120357 
120358    --
120359    --
120360    END IF;
120361    --
120362    -- Bug 4922099
120363    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
120364           (NVL(l_enc_upg_option, 'N') = 'O')
120365         ) AND
120366         (l_bflow_method_code = 'PRIOR_ENTRY')
120367       )
120368    THEN
120369       IF
120370       --
120371       1 = 2
120372       --
120373       THEN
120374       xla_accounting_err_pkg.build_message
120375                                     (p_appli_s_name            => 'XLA'
120376                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
120377                                     ,p_token_1                 => 'LINE_NUMBER'
120378                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
120379                                     ,p_token_2                 => 'LINE_TYPE_NAME'
120380                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
120381                                                                              l_component_type
120382                                                                             ,l_component_code
120383                                                                             ,l_component_type_code
120384                                                                             ,l_component_appl_id
120385                                                                             ,l_amb_context_code
120386                                                                             ,l_entity_code
120387                                                                             ,l_event_class_code
120388                                                                            )
120389                                     ,p_token_3                 => 'OWNER'
120390                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
120391                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
120392                                                                           ,p_lookup_code    => l_component_type_code
120393                                                                          )
120394                                     ,p_token_4                 => 'PRODUCT_NAME'
120395                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
120396                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
120397                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
120398                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
120399                                     ,p_ae_header_id            =>  NULL
120400                                        );
120401 
120402         IF (C_LEVEL_ERROR>= g_log_level) THEN
120403                  trace
120404                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
120405                       ,p_level    => C_LEVEL_ERROR
120406                       ,p_module   => l_log_module);
120407         END IF;
120408       END IF;
120409    END IF;
120410    --
120411    --
120415    -- Prior Entry.  Currently, the following code is always generated.
120412    ------------------------------------------------------------------------------------------------
120413    -- 4219869 Business Flow
120414    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
120416    ------------------------------------------------------------------------------------------------
120417    XLA_AE_LINES_PKG.ValidateCurrentLine;
120418 
120419    ------------------------------------------------------------------------------------
120420    -- 4219869 Business Flow
120421    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
120422    ------------------------------------------------------------------------------------
120423    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
120424 
120425    ----------------------------------------------------------------------------------
120426    -- 4219869 Business Flow
120427    -- Update journal entry status -- Need to generate this within IF <condition>
120428    ----------------------------------------------------------------------------------
120429    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
120430          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
120431          ,p_balance_type_code => l_balance_type_code
120432          );
120433 
120434    -------------------------------------------------------------------------------------------
120435    -- 4262811 - Generate the Accrual Reversal lines
120436    -------------------------------------------------------------------------------------------
120437    BEGIN
120438       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
120439                               (g_array_event(p_event_id).array_value_num('header_index'));
120440       IF l_acc_rev_flag IS NULL THEN
120441          l_acc_rev_flag := 'N';
120442       END IF;
120443    EXCEPTION
120444       WHEN OTHERS THEN
120445          l_acc_rev_flag := 'N';
120446    END;
120447    --
120448    IF (l_acc_rev_flag = 'Y') THEN
120449 
120450        -- 4645092  ------------------------------------------------------------------------------
120451        -- To allow MPA report to determine if it should generate report process
120452        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
120453        ------------------------------------------------------------------------------------------
120454 
120455        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
120456        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
120457    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
120458    -- call ADRs
120459    -- Bug 4922099
120460    --
120461    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
120462         (NVL(l_actual_upg_option, 'N') = 'O') OR
120463         (NVL(l_enc_upg_option, 'N') = 'O')
120464       )
120465    THEN
120466    NULL;
120467    --
120468    --
120469    
120470   l_ccid := AcctDerRule_42(
120471            p_application_id           => p_application_id
120472          , p_ae_header_id             => l_ae_header_id 
120473 , p_source_50 => p_source_50
120474          , x_transaction_coa_id       => l_adr_transaction_coa_id
120475          , x_accounting_coa_id        => l_adr_accounting_coa_id
120476          , x_value_type_code          => l_adr_value_type_code
120477          , p_side                     => 'NA'
120478    );
120479 
120480    xla_ae_lines_pkg.set_ccid(
120481     p_code_combination_id          => l_ccid
120482   , p_value_type_code              => l_adr_value_type_code
120483   , p_transaction_coa_id           => l_adr_transaction_coa_id
120484   , p_accounting_coa_id            => l_adr_accounting_coa_id
120485   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
120486   , p_adr_type_code                => 'S'
120487   , p_component_type               => l_component_type
120488   , p_component_code               => l_component_code
120489   , p_component_type_code          => l_component_type_code
120490   , p_component_appl_id            => l_component_appl_id
120491   , p_amb_context_code             => l_amb_context_code
120492   , p_side                         => 'NA'
120493   );
120494 
120495 
120496    --
120497    --
120498    END IF;
120499 
120500        --
120501        -- Update the line information that should be overwritten
120502        --
120503        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
120504                                          p_header_num   => 1);
120505        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
120506 
120507        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
120508 
120509        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
120510           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
120511        END IF;
120512 
120513       --
120514       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
120515       --
120516       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
120517           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
120518       ELSE
120519           ---------------------------------------------------------------------------------------------------
120520           -- 4262811a Switch Sign
120521           ---------------------------------------------------------------------------------------------------
120525           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
120522           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
120523           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
120524                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
120526                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
120527           -- 5132302
120528           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
120529                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
120530 
120531       END IF;
120532 
120533       -- 4955764
120534       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
120535       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
120536 
120537 
120538       XLA_AE_LINES_PKG.ValidateCurrentLine;
120539       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
120540 
120541       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
120542                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
120543                ,p_balance_type_code => l_balance_type_code);
120544 
120545    END IF;
120546 
120547    -----------------------------------------------------------------------------------------
120548    -- 4262811 Multiperiod Accounting
120549    -----------------------------------------------------------------------------------------
120550      -- No MPA option is assigned.
120551 
120552 
120553 END IF;
120554 END IF;
120555 --
120556 
120557 --
120558 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
120559    trace
120560       (p_msg      => 'END of AcctLineType_199'
120561       ,p_level    => C_LEVEL_PROCEDURE
120562       ,p_module   => l_log_module);
120563 END IF;
120564 --
120565 EXCEPTION
120566   WHEN xla_exceptions_pkg.application_exception THEN
120567       RAISE;
120568   WHEN OTHERS THEN
120569        xla_exceptions_pkg.raise_message
120570            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_199');
120571 END AcctLineType_199;
120572 --
120573 
120574 ---------------------------------------
120575 --
120576 -- PRIVATE FUNCTION
120577 --         AcctLineType_200
120578 --
120579 ---------------------------------------
120580 PROCEDURE AcctLineType_200 (
120581   p_application_id        IN NUMBER
120582  ,p_event_id              IN NUMBER
120583  ,p_calculate_acctd_flag  IN VARCHAR2
120584  ,p_calculate_g_l_flag    IN VARCHAR2
120585  ,p_actual_flag           IN OUT VARCHAR2
120586  ,p_balance_type_code     OUT VARCHAR2
120587  ,p_gain_or_loss_ref      OUT VARCHAR2
120588  
120589 --Invoice Distribution Description
120590  , p_source_1            IN VARCHAR2
120591 --Invoice Distribution Ledger Amount
120592  , p_source_21            IN NUMBER
120593 --Invoice Distribution Type
120594  , p_source_33            IN VARCHAR2
120595  , p_source_33_meaning    IN VARCHAR2
120596 --Self-Assessed Tax Account
120597  , p_source_50            IN NUMBER
120598 --Accounting Reversal Indicator
120599  , p_source_53            IN VARCHAR2
120600 --Distribution Link Type
120601  , p_source_55            IN VARCHAR2
120602 --Allocation to Main Distribution Identifier
120603  , p_source_57            IN NUMBER
120604 --Invoice Identifier
120605  , p_source_58            IN NUMBER
120606 --Invoice Distribution Identifier
120607  , p_source_64            IN NUMBER
120608 --Payables Encumbrance Upgrade Credit Account
120609  , p_source_65            IN NUMBER
120610 --Payables Encumbrance Upgrade Credit Amount
120611  , p_source_66            IN NUMBER
120612 --Invoice Currency Code
120613  , p_source_67            IN VARCHAR2
120614 --Payables Encumbrance Upgrade Credit Base Amount
120615  , p_source_68            IN NUMBER
120616 --Payables Encumbrance Upgrade Debit Account
120617  , p_source_69            IN NUMBER
120618 --Payables Encumbrance Upgrade Debit Amount
120619  , p_source_70            IN NUMBER
120620 --Payables Encumbrance Upgrade Debit Base Amount
120621  , p_source_71            IN NUMBER
120622 --Payables Encumbrance Upgrade Option
120623  , p_source_72            IN VARCHAR2
120624 --Invoice Distribution Amount
120625  , p_source_73            IN NUMBER
120626 --Deferred Accounting End Date
120627  , p_source_77            IN DATE
120628 --Deferred Accounting Option
120629  , p_source_78            IN VARCHAR2
120630 --Deferred Accounting Start Date
120631  , p_source_79            IN DATE
120632 --Override Accounted Amount Indicator
120633  , p_source_80            IN VARCHAR2
120634  , p_source_80_meaning    IN VARCHAR2
120635 --Invoice Supplier Identifier
120636  , p_source_81            IN NUMBER
120637 --Invoice Supplier Site Identifier
120638  , p_source_82            IN NUMBER
120639 --Third Party Type
120640  , p_source_83            IN VARCHAR2
120641 --Parent Reversal Identifier
120642  , p_source_84            IN NUMBER
120643 --Invoice Distribution Statistical Amount
120644  , p_source_85            IN NUMBER
120645 --Invoice Distribution Tax Line Identifier
120646  , p_source_86            IN NUMBER
120647 --Invoice Distribution Tax Distribution Identifier from Tax
120648  , p_source_87            IN NUMBER
120649 --Invoice Distribution Summary Tax Line Identifier
120653 --Payables Upgrade Debit Encumbrance Type Identifier
120650  , p_source_88            IN NUMBER
120651 --Payables Upgrade Credit Encumbrance Type Identifier
120652  , p_source_89            IN NUMBER
120654  , p_source_90            IN NUMBER
120655 --Business Flow Accounts Payable Application Identifier
120656  , p_source_91            IN NUMBER
120657 --Business Flow Invoice Distribution Type
120658  , p_source_92            IN VARCHAR2
120659 --Business Flow Invoice Entity Code
120660  , p_source_93            IN VARCHAR2
120661 --Business Flow Invoice Distribution Identifier
120662  , p_source_94            IN NUMBER
120663 --Business Flow Invoice Identifier
120664  , p_source_95            IN NUMBER
120665 --Self-Assessed Tax Flag
120666  , p_source_142            IN VARCHAR2
120667  , p_source_142_meaning    IN VARCHAR2
120668 --Invoice Exchange Date
120669  , p_source_143            IN DATE
120670 --Invoice Exchange Rate
120671  , p_source_144            IN NUMBER
120672 --Invoice Exchange Rate Type
120673  , p_source_145            IN VARCHAR2
120674 )
120675 IS
120676 
120677 l_component_type              VARCHAR2(80);
120678 l_component_code              VARCHAR2(30);
120679 l_component_type_code         VARCHAR2(1);
120680 l_component_appl_id           INTEGER;
120681 l_amb_context_code            VARCHAR2(30);
120682 l_entity_code                 VARCHAR2(30);
120683 l_event_class_code            VARCHAR2(30);
120684 l_ae_header_id                NUMBER;
120685 l_event_type_code             VARCHAR2(30);
120686 l_line_definition_code        VARCHAR2(30);
120687 l_line_definition_owner_code  VARCHAR2(1);
120688 --
120689 -- adr variables
120690 l_segment                     VARCHAR2(30);
120691 l_ccid                        NUMBER;
120692 l_adr_transaction_coa_id      NUMBER;
120693 l_adr_accounting_coa_id       NUMBER;
120694 l_adr_flexfield_segment_code  VARCHAR2(30);
120695 l_adr_flex_value_set_id       NUMBER;
120696 l_adr_value_type_code         VARCHAR2(30);
120697 l_adr_value_combination_id    NUMBER;
120698 l_adr_value_segment_code      VARCHAR2(30);
120699 
120700 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
120701 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
120702 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
120703 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
120704 
120705 -- 4262811 Variables ------------------------------------------------------------------------------------------
120706 l_entered_amt_idx             NUMBER;
120707 l_accted_amt_idx              NUMBER;
120708 l_acc_rev_flag                VARCHAR2(1);
120709 l_accrual_line_num            NUMBER;
120710 l_tmp_amt                     NUMBER;
120711 l_acc_rev_natural_side_code   VARCHAR2(1);
120712 
120713 l_num_entries                 NUMBER;
120714 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
120715 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
120716 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
120717 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
120718 l_recog_line_1                NUMBER;
120719 l_recog_line_2                NUMBER;
120720 
120721 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
120722 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
120723 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
120724 
120725 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
120726 
120727 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
120728 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
120729 
120730 ---------------------------------------------------------------------------------------------------------------
120731 
120732 
120733 --
120734 -- bulk performance
120735 --
120736 l_balance_type_code           VARCHAR2(1);
120737 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
120738 l_log_module                  VARCHAR2(240);
120739 
120740 --
120741 -- Upgrade strategy
120742 --
120743 l_actual_upg_option           VARCHAR2(1);
120744 l_enc_upg_option           VARCHAR2(1);
120745 
120746 --
120747 BEGIN
120748 --
120749 IF g_log_enabled THEN
120750       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_200';
120751 END IF;
120752 --
120753 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
120754 
120755       trace
120756          (p_msg      => 'BEGIN of AcctLineType_200'
120757          ,p_level    => C_LEVEL_PROCEDURE
120758          ,p_module   => l_log_module);
120759 
120760 END IF;
120761 --
120762 l_component_type             := 'AMB_JLT';
120763 l_component_code             := 'AP_SELF_ASSESSED_REC_TAX_CM';
120764 l_component_type_code        := 'S';
120765 l_component_appl_id          :=  200;
120766 l_amb_context_code           := 'DEFAULT';
120767 l_entity_code                := 'AP_INVOICES';
120768 l_event_class_code           := 'CREDIT MEMOS';
120769 l_event_type_code            := 'CREDIT MEMOS_ALL';
120770 l_line_definition_owner_code := 'S';
120771 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
120772 --
120773 l_balance_type_code          := 'A';
120774 l_segment                     := NULL;
120775 l_ccid                        := NULL;
120776 l_adr_transaction_coa_id      := NULL;
120777 l_adr_accounting_coa_id       := NULL;
120781 l_adr_value_combination_id    := NULL;
120778 l_adr_flexfield_segment_code  := NULL;
120779 l_adr_flex_value_set_id       := NULL;
120780 l_adr_value_type_code         := NULL;
120782 l_adr_value_segment_code      := NULL;
120783 
120784 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
120785 l_bflow_class_code           := '';    -- 4219869 Business Flow
120786 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
120787 l_budgetary_control_flag     := 'N';
120788 
120789 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
120790 l_bflow_applied_to_amt       := NULL; -- 5132302
120791 l_entered_amt_idx            := NULL;          -- 4262811
120792 l_accted_amt_idx             := NULL;          -- 4262811
120793 l_acc_rev_flag               := NULL;          -- 4262811
120794 l_accrual_line_num           := NULL;          -- 4262811
120795 l_tmp_amt                    := NULL;          -- 4262811
120796 --
120797  
120798 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
120799     l_balance_type_code <> 'B' THEN
120800 IF NVL(p_source_33,'
120801 ') =  'REC_TAX' AND 
120802 NVL(p_source_142,'
120803 ') =  'Y'
120804  THEN 
120805 
120806    --
120807    XLA_AE_LINES_PKG.SetNewLine;
120808 
120809    p_balance_type_code          := l_balance_type_code;
120810    -- set the flag so later we will know whether the gain loss line needs to be created
120811    
120812    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
120813      p_actual_flag :='A';
120814    END IF;
120815 
120816    --
120817    -- bulk performance
120818    --
120819    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
120820                                       p_header_num   => 0); -- 4262811
120821    --
120822    -- set accounting line options
120823    --
120824    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
120825            p_natural_side_code          => 'D'
120826          , p_gain_or_loss_flag          => 'N'
120827          , p_gl_transfer_mode_code      => 'S'
120828          , p_acct_entry_type_code       => 'A'
120829          , p_switch_side_flag           => 'Y'
120830          , p_merge_duplicate_code       => 'A'
120831          );
120832    --
120833    l_acc_rev_natural_side_code := 'C';  -- 4262811
120834    -- 
120835    --
120836    -- set accounting line type info
120837    --
120838    xla_ae_lines_pkg.SetAcctLineType
120839       (p_component_type             => l_component_type
120840       ,p_event_type_code            => l_event_type_code
120841       ,p_line_definition_owner_code => l_line_definition_owner_code
120842       ,p_line_definition_code       => l_line_definition_code
120843       ,p_accounting_line_code       => l_component_code
120844       ,p_accounting_line_type_code  => l_component_type_code
120845       ,p_accounting_line_appl_id    => l_component_appl_id
120846       ,p_amb_context_code           => l_amb_context_code
120847       ,p_entity_code                => l_entity_code
120848       ,p_event_class_code           => l_event_class_code);
120849    --
120850    -- set accounting class
120851    --
120852    xla_ae_lines_pkg.SetAcctClass(
120853            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
120854          , p_ae_header_id           => l_ae_header_id
120855          );
120856 
120857    --
120858    -- set rounding class
120859    --
120860    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
120861                       'SELF_ASSESSED_TAX';
120862 
120863    --
120864    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
120865    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
120866    --
120867    -- bulk performance
120868    --
120869    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
120870 
120871    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
120872       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
120873 
120874    -- 4955764
120875    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
120876       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
120877 
120878    -- 4458381 Public Sector Enh
120879    
120880    --
120881    -- set accounting attributes for the line type
120882    --
120883    l_entered_amt_idx := 23;
120884    l_accted_amt_idx  := 28;
120885    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
120886    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
120887    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
120888    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
120889    l_rec_acct_attrs.array_num_value(2)  := 
120890 xla_ae_sources_pkg.GetSystemSourceNum(
120891    p_source_code           => 'XLA_EVENT_APPL_ID'
120892  , p_source_type_code      => 'Y'
120893  , p_source_application_id =>  602
120894 );
120895    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
120896    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
120897    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
120898    l_rec_acct_attrs.array_char_value(4)  := 
120899 xla_ae_sources_pkg.GetSystemSourceChar(
120900    p_source_code           => 'XLA_ENTITY_CODE'
120901  , p_source_type_code      => 'Y'
120902  , p_source_application_id =>  602
120906    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
120903 );
120904    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
120905    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
120907    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
120908    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
120909    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
120910    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
120911    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
120912    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
120913    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
120914    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
120915    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
120916    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
120917    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
120918    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
120919    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
120920    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
120921    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
120922    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
120923    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
120924    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
120925    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
120926    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
120927    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
120928    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
120929    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
120930    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
120931    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
120932    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
120933    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
120934    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
120935    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
120936    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
120937    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
120938    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
120939    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
120940    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
120941    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
120942    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
120943    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
120944    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
120945    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
120946    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
120947    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
120948    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
120949    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
120950    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
120951    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
120952    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
120953    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
120954    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
120955    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
120956    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
120957    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
120958    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
120959    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
120960    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
120961    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
120962    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
120963    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
120964    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
120965    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
120966    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
120967    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
120968    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
120969    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
120970    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
120971    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
120972    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
120973    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
120974    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
120975    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
120976    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
120977    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
120978    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
120979    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
120980    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
120981    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
120982 
120983    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
120984    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
120985 
120986    ---------------------------------------------------------------------------------------------------------------
120987    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
120991    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
120988    ---------------------------------------------------------------------------------------------------------------
120989    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
120990 
120992    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
120993 
120994    IF xla_accounting_cache_pkg.GetValueChar
120995          (p_source_code         => 'LEDGER_CATEGORY_CODE'
120996          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
120997    AND l_bflow_method_code = 'PRIOR_ENTRY'
120998 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
120999    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
121000          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
121001        )
121002    THEN
121003          xla_ae_lines_pkg.BflowUpgEntry
121004            (p_business_method_code    => l_bflow_method_code
121005            ,p_business_class_code     => l_bflow_class_code
121006            ,p_balance_type            => l_balance_type_code);
121007    ELSE
121008       NULL;
121009 -- No business flow processing for business flow method of NONE.
121010    END IF;
121011 
121012    --
121013    -- call analytical criteria
121014    --
121015    
121016    --
121017    -- call description
121018    --
121019    
121020 xla_ae_lines_pkg.SetLineDescription(
121021    p_ae_header_id => l_ae_header_id
121022   ,p_description  => Description_1 (
121023      p_application_id         => p_application_id
121024    , p_ae_header_id           => l_ae_header_id 
121025 , p_source_1 => p_source_1
121026    )
121027 );
121028 
121029 
121030    --
121031    -- call ADRs
121032    -- Bug 4922099
121033    --
121034    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
121035         (NVL(l_actual_upg_option, 'N') = 'O') OR
121036         (NVL(l_enc_upg_option, 'N') = 'O')
121037       )
121038    THEN
121039    NULL;
121040    --
121041    --
121042    
121043   l_ccid := AcctDerRule_42(
121044            p_application_id           => p_application_id
121045          , p_ae_header_id             => l_ae_header_id 
121046 , p_source_50 => p_source_50
121047          , x_transaction_coa_id       => l_adr_transaction_coa_id
121048          , x_accounting_coa_id        => l_adr_accounting_coa_id
121049          , x_value_type_code          => l_adr_value_type_code
121050          , p_side                     => 'NA'
121051    );
121052 
121053    xla_ae_lines_pkg.set_ccid(
121054     p_code_combination_id          => l_ccid
121055   , p_value_type_code              => l_adr_value_type_code
121056   , p_transaction_coa_id           => l_adr_transaction_coa_id
121057   , p_accounting_coa_id            => l_adr_accounting_coa_id
121058   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
121059   , p_adr_type_code                => 'S'
121060   , p_component_type               => l_component_type
121061   , p_component_code               => l_component_code
121062   , p_component_type_code          => l_component_type_code
121063   , p_component_appl_id            => l_component_appl_id
121064   , p_amb_context_code             => l_amb_context_code
121065   , p_side                         => 'NA'
121066   );
121067 
121068 
121069    --
121070    --
121071    END IF;
121072    --
121073    -- Bug 4922099
121074    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
121075           (NVL(l_enc_upg_option, 'N') = 'O')
121076         ) AND
121077         (l_bflow_method_code = 'PRIOR_ENTRY')
121078       )
121079    THEN
121080       IF
121081       --
121082       1 = 2
121083       --
121084       THEN
121085       xla_accounting_err_pkg.build_message
121086                                     (p_appli_s_name            => 'XLA'
121087                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
121088                                     ,p_token_1                 => 'LINE_NUMBER'
121089                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
121090                                     ,p_token_2                 => 'LINE_TYPE_NAME'
121091                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
121092                                                                              l_component_type
121093                                                                             ,l_component_code
121094                                                                             ,l_component_type_code
121095                                                                             ,l_component_appl_id
121096                                                                             ,l_amb_context_code
121097                                                                             ,l_entity_code
121098                                                                             ,l_event_class_code
121099                                                                            )
121100                                     ,p_token_3                 => 'OWNER'
121101                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
121102                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
121103                                                                           ,p_lookup_code    => l_component_type_code
121104                                                                          )
121108                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
121105                                     ,p_token_4                 => 'PRODUCT_NAME'
121106                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
121107                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
121109                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
121110                                     ,p_ae_header_id            =>  NULL
121111                                        );
121112 
121113         IF (C_LEVEL_ERROR>= g_log_level) THEN
121114                  trace
121115                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
121116                       ,p_level    => C_LEVEL_ERROR
121117                       ,p_module   => l_log_module);
121118         END IF;
121119       END IF;
121120    END IF;
121121    --
121122    --
121123    ------------------------------------------------------------------------------------------------
121124    -- 4219869 Business Flow
121125    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
121126    -- Prior Entry.  Currently, the following code is always generated.
121127    ------------------------------------------------------------------------------------------------
121128    XLA_AE_LINES_PKG.ValidateCurrentLine;
121129 
121130    ------------------------------------------------------------------------------------
121131    -- 4219869 Business Flow
121132    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
121133    ------------------------------------------------------------------------------------
121134    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
121135 
121136    ----------------------------------------------------------------------------------
121137    -- 4219869 Business Flow
121138    -- Update journal entry status -- Need to generate this within IF <condition>
121139    ----------------------------------------------------------------------------------
121140    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
121141          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
121142          ,p_balance_type_code => l_balance_type_code
121143          );
121144 
121145    -------------------------------------------------------------------------------------------
121146    -- 4262811 - Generate the Accrual Reversal lines
121147    -------------------------------------------------------------------------------------------
121148    BEGIN
121149       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
121150                               (g_array_event(p_event_id).array_value_num('header_index'));
121151       IF l_acc_rev_flag IS NULL THEN
121152          l_acc_rev_flag := 'N';
121153       END IF;
121154    EXCEPTION
121155       WHEN OTHERS THEN
121156          l_acc_rev_flag := 'N';
121157    END;
121158    --
121159    IF (l_acc_rev_flag = 'Y') THEN
121160 
121161        -- 4645092  ------------------------------------------------------------------------------
121162        -- To allow MPA report to determine if it should generate report process
121163        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
121164        ------------------------------------------------------------------------------------------
121165 
121166        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
121167        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
121168    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
121169    -- call ADRs
121170    -- Bug 4922099
121171    --
121172    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
121173         (NVL(l_actual_upg_option, 'N') = 'O') OR
121174         (NVL(l_enc_upg_option, 'N') = 'O')
121175       )
121176    THEN
121177    NULL;
121178    --
121179    --
121180    
121181   l_ccid := AcctDerRule_42(
121182            p_application_id           => p_application_id
121183          , p_ae_header_id             => l_ae_header_id 
121184 , p_source_50 => p_source_50
121185          , x_transaction_coa_id       => l_adr_transaction_coa_id
121186          , x_accounting_coa_id        => l_adr_accounting_coa_id
121187          , x_value_type_code          => l_adr_value_type_code
121188          , p_side                     => 'NA'
121189    );
121190 
121191    xla_ae_lines_pkg.set_ccid(
121192     p_code_combination_id          => l_ccid
121193   , p_value_type_code              => l_adr_value_type_code
121194   , p_transaction_coa_id           => l_adr_transaction_coa_id
121195   , p_accounting_coa_id            => l_adr_accounting_coa_id
121196   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
121197   , p_adr_type_code                => 'S'
121198   , p_component_type               => l_component_type
121199   , p_component_code               => l_component_code
121200   , p_component_type_code          => l_component_type_code
121201   , p_component_appl_id            => l_component_appl_id
121202   , p_amb_context_code             => l_amb_context_code
121203   , p_side                         => 'NA'
121204   );
121205 
121206 
121207    --
121208    --
121209    END IF;
121210 
121211        --
121212        -- Update the line information that should be overwritten
121213        --
121214        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
121215                                          p_header_num   => 1);
121219 
121216        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
121217 
121218        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
121220        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
121221           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
121222        END IF;
121223 
121224       --
121225       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
121226       --
121227       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
121228           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
121229       ELSE
121230           ---------------------------------------------------------------------------------------------------
121231           -- 4262811a Switch Sign
121232           ---------------------------------------------------------------------------------------------------
121233           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
121234           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
121235                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
121236           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
121237                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
121238           -- 5132302
121239           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
121240                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
121241 
121242       END IF;
121243 
121244       -- 4955764
121245       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
121246       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
121247 
121248 
121249       XLA_AE_LINES_PKG.ValidateCurrentLine;
121250       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
121251 
121252       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
121253                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
121254                ,p_balance_type_code => l_balance_type_code);
121255 
121256    END IF;
121257 
121258    -----------------------------------------------------------------------------------------
121259    -- 4262811 Multiperiod Accounting
121260    -----------------------------------------------------------------------------------------
121261      -- No MPA option is assigned.
121262 
121263 
121264 END IF;
121265 END IF;
121266 --
121267 
121268 --
121269 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
121270    trace
121271       (p_msg      => 'END of AcctLineType_200'
121272       ,p_level    => C_LEVEL_PROCEDURE
121273       ,p_module   => l_log_module);
121274 END IF;
121275 --
121276 EXCEPTION
121277   WHEN xla_exceptions_pkg.application_exception THEN
121278       RAISE;
121279   WHEN OTHERS THEN
121280        xla_exceptions_pkg.raise_message
121281            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_200');
121282 END AcctLineType_200;
121283 --
121284 
121285 ---------------------------------------
121286 --
121287 -- PRIVATE FUNCTION
121288 --         AcctLineType_201
121289 --
121290 ---------------------------------------
121291 PROCEDURE AcctLineType_201 (
121292   p_application_id        IN NUMBER
121293  ,p_event_id              IN NUMBER
121294  ,p_calculate_acctd_flag  IN VARCHAR2
121295  ,p_calculate_g_l_flag    IN VARCHAR2
121296  ,p_actual_flag           IN OUT VARCHAR2
121297  ,p_balance_type_code     OUT VARCHAR2
121298  ,p_gain_or_loss_ref      OUT VARCHAR2
121299  
121300 --Invoice Distribution Description
121301  , p_source_1            IN VARCHAR2
121302 --Invoice Distribution Ledger Amount
121303  , p_source_21            IN NUMBER
121304 --Invoice Distribution Type
121305  , p_source_33            IN VARCHAR2
121306  , p_source_33_meaning    IN VARCHAR2
121307 --Self-Assessed Tax Account
121308  , p_source_50            IN NUMBER
121309 --Accounting Reversal Indicator
121310  , p_source_53            IN VARCHAR2
121311 --Distribution Link Type
121312  , p_source_55            IN VARCHAR2
121313 --Allocation to Main Distribution Identifier
121314  , p_source_57            IN NUMBER
121315 --Invoice Identifier
121316  , p_source_58            IN NUMBER
121317 --Invoice Distribution Identifier
121318  , p_source_64            IN NUMBER
121319 --Payables Encumbrance Upgrade Credit Account
121320  , p_source_65            IN NUMBER
121321 --Payables Encumbrance Upgrade Credit Amount
121322  , p_source_66            IN NUMBER
121323 --Invoice Currency Code
121324  , p_source_67            IN VARCHAR2
121325 --Payables Encumbrance Upgrade Credit Base Amount
121326  , p_source_68            IN NUMBER
121327 --Payables Encumbrance Upgrade Debit Account
121328  , p_source_69            IN NUMBER
121329 --Payables Encumbrance Upgrade Debit Amount
121330  , p_source_70            IN NUMBER
121331 --Payables Encumbrance Upgrade Debit Base Amount
121332  , p_source_71            IN NUMBER
121333 --Payables Encumbrance Upgrade Option
121334  , p_source_72            IN VARCHAR2
121335 --Invoice Distribution Amount
121339 --Deferred Accounting Option
121336  , p_source_73            IN NUMBER
121337 --Deferred Accounting End Date
121338  , p_source_77            IN DATE
121340  , p_source_78            IN VARCHAR2
121341 --Deferred Accounting Start Date
121342  , p_source_79            IN DATE
121343 --Override Accounted Amount Indicator
121344  , p_source_80            IN VARCHAR2
121345  , p_source_80_meaning    IN VARCHAR2
121346 --Invoice Supplier Identifier
121347  , p_source_81            IN NUMBER
121348 --Invoice Supplier Site Identifier
121349  , p_source_82            IN NUMBER
121350 --Third Party Type
121351  , p_source_83            IN VARCHAR2
121352 --Parent Reversal Identifier
121353  , p_source_84            IN NUMBER
121354 --Invoice Distribution Tax Line Identifier
121355  , p_source_86            IN NUMBER
121356 --Invoice Distribution Tax Distribution Identifier from Tax
121357  , p_source_87            IN NUMBER
121358 --Invoice Distribution Summary Tax Line Identifier
121359  , p_source_88            IN NUMBER
121360 --Payables Upgrade Credit Encumbrance Type Identifier
121361  , p_source_89            IN NUMBER
121362 --Payables Upgrade Debit Encumbrance Type Identifier
121363  , p_source_90            IN NUMBER
121364 --Business Flow Accounts Payable Application Identifier
121365  , p_source_91            IN NUMBER
121366 --Business Flow Invoice Distribution Type
121367  , p_source_92            IN VARCHAR2
121368 --Business Flow Invoice Entity Code
121369  , p_source_93            IN VARCHAR2
121370 --Business Flow Invoice Distribution Identifier
121371  , p_source_94            IN NUMBER
121372 --Business Flow Invoice Identifier
121373  , p_source_95            IN NUMBER
121374 --Self-Assessed Tax Flag
121375  , p_source_142            IN VARCHAR2
121376  , p_source_142_meaning    IN VARCHAR2
121377 --Invoice Exchange Date
121378  , p_source_143            IN DATE
121379 --Invoice Exchange Rate
121380  , p_source_144            IN NUMBER
121381 --Invoice Exchange Rate Type
121382  , p_source_145            IN VARCHAR2
121383 )
121384 IS
121385 
121386 l_component_type              VARCHAR2(80);
121387 l_component_code              VARCHAR2(30);
121388 l_component_type_code         VARCHAR2(1);
121389 l_component_appl_id           INTEGER;
121390 l_amb_context_code            VARCHAR2(30);
121391 l_entity_code                 VARCHAR2(30);
121392 l_event_class_code            VARCHAR2(30);
121393 l_ae_header_id                NUMBER;
121394 l_event_type_code             VARCHAR2(30);
121395 l_line_definition_code        VARCHAR2(30);
121396 l_line_definition_owner_code  VARCHAR2(1);
121397 --
121398 -- adr variables
121399 l_segment                     VARCHAR2(30);
121400 l_ccid                        NUMBER;
121401 l_adr_transaction_coa_id      NUMBER;
121402 l_adr_accounting_coa_id       NUMBER;
121403 l_adr_flexfield_segment_code  VARCHAR2(30);
121404 l_adr_flex_value_set_id       NUMBER;
121405 l_adr_value_type_code         VARCHAR2(30);
121406 l_adr_value_combination_id    NUMBER;
121407 l_adr_value_segment_code      VARCHAR2(30);
121408 
121409 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
121410 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
121411 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
121412 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
121413 
121414 -- 4262811 Variables ------------------------------------------------------------------------------------------
121415 l_entered_amt_idx             NUMBER;
121416 l_accted_amt_idx              NUMBER;
121417 l_acc_rev_flag                VARCHAR2(1);
121418 l_accrual_line_num            NUMBER;
121419 l_tmp_amt                     NUMBER;
121420 l_acc_rev_natural_side_code   VARCHAR2(1);
121421 
121422 l_num_entries                 NUMBER;
121423 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
121424 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
121425 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
121426 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
121427 l_recog_line_1                NUMBER;
121428 l_recog_line_2                NUMBER;
121429 
121430 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
121431 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
121432 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
121433 
121434 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
121435 
121436 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
121437 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
121438 
121439 ---------------------------------------------------------------------------------------------------------------
121440 
121441 
121442 --
121443 -- bulk performance
121444 --
121445 l_balance_type_code           VARCHAR2(1);
121446 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
121447 l_log_module                  VARCHAR2(240);
121448 
121449 --
121450 -- Upgrade strategy
121451 --
121452 l_actual_upg_option           VARCHAR2(1);
121453 l_enc_upg_option           VARCHAR2(1);
121454 
121455 --
121456 BEGIN
121457 --
121458 IF g_log_enabled THEN
121459       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_201';
121460 END IF;
121461 --
121462 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
121463 
121464       trace
121468 
121465          (p_msg      => 'BEGIN of AcctLineType_201'
121466          ,p_level    => C_LEVEL_PROCEDURE
121467          ,p_module   => l_log_module);
121469 END IF;
121470 --
121471 l_component_type             := 'AMB_JLT';
121472 l_component_code             := 'AP_SELF_ASSESSED_REC_TAX_DM';
121473 l_component_type_code        := 'S';
121474 l_component_appl_id          :=  200;
121475 l_amb_context_code           := 'DEFAULT';
121476 l_entity_code                := 'AP_INVOICES';
121477 l_event_class_code           := 'DEBIT MEMOS';
121478 l_event_type_code            := 'DEBIT MEMOS_ALL';
121479 l_line_definition_owner_code := 'S';
121480 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
121481 --
121482 l_balance_type_code          := 'A';
121483 l_segment                     := NULL;
121484 l_ccid                        := NULL;
121485 l_adr_transaction_coa_id      := NULL;
121486 l_adr_accounting_coa_id       := NULL;
121487 l_adr_flexfield_segment_code  := NULL;
121488 l_adr_flex_value_set_id       := NULL;
121489 l_adr_value_type_code         := NULL;
121490 l_adr_value_combination_id    := NULL;
121491 l_adr_value_segment_code      := NULL;
121492 
121493 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
121494 l_bflow_class_code           := '';    -- 4219869 Business Flow
121495 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
121496 l_budgetary_control_flag     := 'N';
121497 
121498 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
121499 l_bflow_applied_to_amt       := NULL; -- 5132302
121500 l_entered_amt_idx            := NULL;          -- 4262811
121501 l_accted_amt_idx             := NULL;          -- 4262811
121502 l_acc_rev_flag               := NULL;          -- 4262811
121503 l_accrual_line_num           := NULL;          -- 4262811
121504 l_tmp_amt                    := NULL;          -- 4262811
121505 --
121506  
121507 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
121508     l_balance_type_code <> 'B' THEN
121509 IF NVL(p_source_33,'
121510 ') =  'REC_TAX' AND 
121511 NVL(p_source_142,'
121512 ') =  'Y'
121513  THEN 
121514 
121515    --
121516    XLA_AE_LINES_PKG.SetNewLine;
121517 
121518    p_balance_type_code          := l_balance_type_code;
121519    -- set the flag so later we will know whether the gain loss line needs to be created
121520    
121521    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
121522      p_actual_flag :='A';
121523    END IF;
121524 
121525    --
121526    -- bulk performance
121527    --
121528    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
121529                                       p_header_num   => 0); -- 4262811
121530    --
121531    -- set accounting line options
121532    --
121533    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
121534            p_natural_side_code          => 'D'
121535          , p_gain_or_loss_flag          => 'N'
121536          , p_gl_transfer_mode_code      => 'S'
121537          , p_acct_entry_type_code       => 'A'
121538          , p_switch_side_flag           => 'Y'
121539          , p_merge_duplicate_code       => 'A'
121540          );
121541    --
121542    l_acc_rev_natural_side_code := 'C';  -- 4262811
121543    -- 
121544    --
121545    -- set accounting line type info
121546    --
121547    xla_ae_lines_pkg.SetAcctLineType
121548       (p_component_type             => l_component_type
121549       ,p_event_type_code            => l_event_type_code
121550       ,p_line_definition_owner_code => l_line_definition_owner_code
121551       ,p_line_definition_code       => l_line_definition_code
121552       ,p_accounting_line_code       => l_component_code
121553       ,p_accounting_line_type_code  => l_component_type_code
121554       ,p_accounting_line_appl_id    => l_component_appl_id
121555       ,p_amb_context_code           => l_amb_context_code
121556       ,p_entity_code                => l_entity_code
121557       ,p_event_class_code           => l_event_class_code);
121558    --
121559    -- set accounting class
121560    --
121561    xla_ae_lines_pkg.SetAcctClass(
121562            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
121563          , p_ae_header_id           => l_ae_header_id
121564          );
121565 
121566    --
121567    -- set rounding class
121568    --
121569    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
121570                       'SELF_ASSESSED_TAX';
121571 
121572    --
121573    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
121574    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
121575    --
121576    -- bulk performance
121577    --
121578    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
121579 
121580    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
121581       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
121582 
121583    -- 4955764
121584    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
121585       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
121586 
121587    -- 4458381 Public Sector Enh
121588    
121589    --
121590    -- set accounting attributes for the line type
121591    --
121592    l_entered_amt_idx := 23;
121593    l_accted_amt_idx  := 28;
121594    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
121598    l_rec_acct_attrs.array_num_value(2)  := 
121595    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
121596    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
121597    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
121599 xla_ae_sources_pkg.GetSystemSourceNum(
121600    p_source_code           => 'XLA_EVENT_APPL_ID'
121601  , p_source_type_code      => 'Y'
121602  , p_source_application_id =>  602
121603 );
121604    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
121605    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
121606    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
121607    l_rec_acct_attrs.array_char_value(4)  := 
121608 xla_ae_sources_pkg.GetSystemSourceChar(
121609    p_source_code           => 'XLA_ENTITY_CODE'
121610  , p_source_type_code      => 'Y'
121611  , p_source_application_id =>  602
121612 );
121613    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
121614    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
121615    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
121616    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
121617    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
121618    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
121619    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
121620    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
121621    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
121622    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
121623    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
121624    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
121625    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
121626    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
121627    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
121628    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
121629    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
121630    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
121631    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
121632    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
121633    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
121634    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
121635    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
121636    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
121637    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
121638    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
121639    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
121640    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
121641    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
121642    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
121643    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
121644    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
121645    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
121646    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
121647    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
121648    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
121649    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
121650    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
121651    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
121652    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
121653    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
121654    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
121655    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
121656    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
121657    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
121658    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
121659    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
121660    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
121661    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
121662    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
121663    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
121664    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
121665    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
121666    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
121667    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
121668    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
121669    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
121670    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
121671    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
121672    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
121673    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
121674    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
121675    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
121676    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
121677    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
121678    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
121679    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
121680    l_rec_acct_attrs.array_num_value(38)  := p_source_86;
121681    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
121685    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
121682    l_rec_acct_attrs.array_num_value(39)  := p_source_87;
121683    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
121684    l_rec_acct_attrs.array_num_value(40)  := p_source_88;
121686    l_rec_acct_attrs.array_num_value(41)  := p_source_89;
121687    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
121688    l_rec_acct_attrs.array_num_value(42)  := p_source_90;
121689 
121690    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
121691    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
121692 
121693    ---------------------------------------------------------------------------------------------------------------
121694    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
121695    ---------------------------------------------------------------------------------------------------------------
121696    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
121697 
121698    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
121699    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
121700 
121701    IF xla_accounting_cache_pkg.GetValueChar
121702          (p_source_code         => 'LEDGER_CATEGORY_CODE'
121703          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
121704    AND l_bflow_method_code = 'PRIOR_ENTRY'
121705 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
121706    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
121707          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
121708        )
121709    THEN
121710          xla_ae_lines_pkg.BflowUpgEntry
121711            (p_business_method_code    => l_bflow_method_code
121712            ,p_business_class_code     => l_bflow_class_code
121713            ,p_balance_type            => l_balance_type_code);
121714    ELSE
121715       NULL;
121716 -- No business flow processing for business flow method of NONE.
121717    END IF;
121718 
121719    --
121720    -- call analytical criteria
121721    --
121722    
121723    --
121724    -- call description
121725    --
121726    
121727 xla_ae_lines_pkg.SetLineDescription(
121728    p_ae_header_id => l_ae_header_id
121729   ,p_description  => Description_1 (
121730      p_application_id         => p_application_id
121731    , p_ae_header_id           => l_ae_header_id 
121732 , p_source_1 => p_source_1
121733    )
121734 );
121735 
121736 
121737    --
121738    -- call ADRs
121739    -- Bug 4922099
121740    --
121741    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
121742         (NVL(l_actual_upg_option, 'N') = 'O') OR
121743         (NVL(l_enc_upg_option, 'N') = 'O')
121744       )
121745    THEN
121746    NULL;
121747    --
121748    --
121749    
121750   l_ccid := AcctDerRule_42(
121751            p_application_id           => p_application_id
121752          , p_ae_header_id             => l_ae_header_id 
121753 , p_source_50 => p_source_50
121754          , x_transaction_coa_id       => l_adr_transaction_coa_id
121755          , x_accounting_coa_id        => l_adr_accounting_coa_id
121756          , x_value_type_code          => l_adr_value_type_code
121757          , p_side                     => 'NA'
121758    );
121759 
121760    xla_ae_lines_pkg.set_ccid(
121761     p_code_combination_id          => l_ccid
121762   , p_value_type_code              => l_adr_value_type_code
121763   , p_transaction_coa_id           => l_adr_transaction_coa_id
121764   , p_accounting_coa_id            => l_adr_accounting_coa_id
121765   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
121766   , p_adr_type_code                => 'S'
121767   , p_component_type               => l_component_type
121768   , p_component_code               => l_component_code
121769   , p_component_type_code          => l_component_type_code
121770   , p_component_appl_id            => l_component_appl_id
121771   , p_amb_context_code             => l_amb_context_code
121772   , p_side                         => 'NA'
121773   );
121774 
121775 
121776    --
121777    --
121778    END IF;
121779    --
121780    -- Bug 4922099
121781    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
121782           (NVL(l_enc_upg_option, 'N') = 'O')
121783         ) AND
121784         (l_bflow_method_code = 'PRIOR_ENTRY')
121785       )
121786    THEN
121787       IF
121788       --
121789       1 = 2
121790       --
121791       THEN
121792       xla_accounting_err_pkg.build_message
121793                                     (p_appli_s_name            => 'XLA'
121794                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
121795                                     ,p_token_1                 => 'LINE_NUMBER'
121796                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
121797                                     ,p_token_2                 => 'LINE_TYPE_NAME'
121798                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
121799                                                                              l_component_type
121800                                                                             ,l_component_code
121801                                                                             ,l_component_type_code
121805                                                                             ,l_event_class_code
121802                                                                             ,l_component_appl_id
121803                                                                             ,l_amb_context_code
121804                                                                             ,l_entity_code
121806                                                                            )
121807                                     ,p_token_3                 => 'OWNER'
121808                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
121809                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
121810                                                                           ,p_lookup_code    => l_component_type_code
121811                                                                          )
121812                                     ,p_token_4                 => 'PRODUCT_NAME'
121813                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
121814                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
121815                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
121816                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
121817                                     ,p_ae_header_id            =>  NULL
121818                                        );
121819 
121820         IF (C_LEVEL_ERROR>= g_log_level) THEN
121821                  trace
121822                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
121823                       ,p_level    => C_LEVEL_ERROR
121824                       ,p_module   => l_log_module);
121825         END IF;
121826       END IF;
121827    END IF;
121828    --
121829    --
121830    ------------------------------------------------------------------------------------------------
121831    -- 4219869 Business Flow
121832    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
121833    -- Prior Entry.  Currently, the following code is always generated.
121834    ------------------------------------------------------------------------------------------------
121835    XLA_AE_LINES_PKG.ValidateCurrentLine;
121836 
121837    ------------------------------------------------------------------------------------
121838    -- 4219869 Business Flow
121839    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
121840    ------------------------------------------------------------------------------------
121841    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
121842 
121843    ----------------------------------------------------------------------------------
121844    -- 4219869 Business Flow
121845    -- Update journal entry status -- Need to generate this within IF <condition>
121846    ----------------------------------------------------------------------------------
121847    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
121848          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
121849          ,p_balance_type_code => l_balance_type_code
121850          );
121851 
121852    -------------------------------------------------------------------------------------------
121853    -- 4262811 - Generate the Accrual Reversal lines
121854    -------------------------------------------------------------------------------------------
121855    BEGIN
121856       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
121857                               (g_array_event(p_event_id).array_value_num('header_index'));
121858       IF l_acc_rev_flag IS NULL THEN
121859          l_acc_rev_flag := 'N';
121860       END IF;
121861    EXCEPTION
121862       WHEN OTHERS THEN
121863          l_acc_rev_flag := 'N';
121864    END;
121865    --
121866    IF (l_acc_rev_flag = 'Y') THEN
121867 
121868        -- 4645092  ------------------------------------------------------------------------------
121869        -- To allow MPA report to determine if it should generate report process
121870        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
121871        ------------------------------------------------------------------------------------------
121872 
121873        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
121874        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
121875    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
121876    -- call ADRs
121877    -- Bug 4922099
121878    --
121879    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
121880         (NVL(l_actual_upg_option, 'N') = 'O') OR
121881         (NVL(l_enc_upg_option, 'N') = 'O')
121882       )
121883    THEN
121884    NULL;
121885    --
121886    --
121887    
121888   l_ccid := AcctDerRule_42(
121889            p_application_id           => p_application_id
121890          , p_ae_header_id             => l_ae_header_id 
121891 , p_source_50 => p_source_50
121892          , x_transaction_coa_id       => l_adr_transaction_coa_id
121893          , x_accounting_coa_id        => l_adr_accounting_coa_id
121894          , x_value_type_code          => l_adr_value_type_code
121895          , p_side                     => 'NA'
121896    );
121897 
121898    xla_ae_lines_pkg.set_ccid(
121899     p_code_combination_id          => l_ccid
121900   , p_value_type_code              => l_adr_value_type_code
121904   , p_adr_type_code                => 'S'
121901   , p_transaction_coa_id           => l_adr_transaction_coa_id
121902   , p_accounting_coa_id            => l_adr_accounting_coa_id
121903   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
121905   , p_component_type               => l_component_type
121906   , p_component_code               => l_component_code
121907   , p_component_type_code          => l_component_type_code
121908   , p_component_appl_id            => l_component_appl_id
121909   , p_amb_context_code             => l_amb_context_code
121910   , p_side                         => 'NA'
121911   );
121912 
121913 
121914    --
121915    --
121916    END IF;
121917 
121918        --
121919        -- Update the line information that should be overwritten
121920        --
121921        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
121922                                          p_header_num   => 1);
121923        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
121924 
121925        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
121926 
121927        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
121928           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
121929        END IF;
121930 
121931       --
121932       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
121933       --
121934       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
121935           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
121936       ELSE
121937           ---------------------------------------------------------------------------------------------------
121938           -- 4262811a Switch Sign
121939           ---------------------------------------------------------------------------------------------------
121940           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
121941           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
121942                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
121943           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
121944                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
121945           -- 5132302
121946           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
121947                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
121948 
121949       END IF;
121950 
121951       -- 4955764
121952       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
121953       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
121954 
121955 
121956       XLA_AE_LINES_PKG.ValidateCurrentLine;
121957       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
121958 
121959       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
121960                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
121961                ,p_balance_type_code => l_balance_type_code);
121962 
121963    END IF;
121964 
121965    -----------------------------------------------------------------------------------------
121966    -- 4262811 Multiperiod Accounting
121967    -----------------------------------------------------------------------------------------
121968      -- No MPA option is assigned.
121969 
121970 
121971 END IF;
121972 END IF;
121973 --
121974 
121975 --
121976 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
121977    trace
121978       (p_msg      => 'END of AcctLineType_201'
121979       ,p_level    => C_LEVEL_PROCEDURE
121980       ,p_module   => l_log_module);
121981 END IF;
121982 --
121983 EXCEPTION
121984   WHEN xla_exceptions_pkg.application_exception THEN
121985       RAISE;
121986   WHEN OTHERS THEN
121987        xla_exceptions_pkg.raise_message
121988            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_201');
121989 END AcctLineType_201;
121990 --
121991 
121992 ---------------------------------------
121993 --
121994 -- PRIVATE FUNCTION
121995 --         AcctLineType_202
121996 --
121997 ---------------------------------------
121998 PROCEDURE AcctLineType_202 (
121999   p_application_id        IN NUMBER
122000  ,p_event_id              IN NUMBER
122001  ,p_calculate_acctd_flag  IN VARCHAR2
122002  ,p_calculate_g_l_flag    IN VARCHAR2
122003  ,p_actual_flag           IN OUT VARCHAR2
122004  ,p_balance_type_code     OUT VARCHAR2
122005  ,p_gain_or_loss_ref      OUT VARCHAR2
122006  
122007 --Invoice Distribution Description
122008  , p_source_1            IN VARCHAR2
122009 --Invoice Distribution Ledger Amount
122010  , p_source_21            IN NUMBER
122011 --Invoice Distribution Type
122012  , p_source_33            IN VARCHAR2
122013  , p_source_33_meaning    IN VARCHAR2
122014 --Self-Assessed Tax Account
122015  , p_source_50            IN NUMBER
122016 --Accounting Reversal Indicator
122017  , p_source_53            IN VARCHAR2
122018 --Distribution Link Type
122019  , p_source_55            IN VARCHAR2
122020 --Allocation to Main Distribution Identifier
122024 --Invoice Distribution Identifier
122021  , p_source_57            IN NUMBER
122022 --Invoice Identifier
122023  , p_source_58            IN NUMBER
122025  , p_source_64            IN NUMBER
122026 --Payables Encumbrance Upgrade Credit Account
122027  , p_source_65            IN NUMBER
122028 --Payables Encumbrance Upgrade Credit Amount
122029  , p_source_66            IN NUMBER
122030 --Invoice Currency Code
122031  , p_source_67            IN VARCHAR2
122032 --Payables Encumbrance Upgrade Credit Base Amount
122033  , p_source_68            IN NUMBER
122034 --Payables Encumbrance Upgrade Debit Account
122035  , p_source_69            IN NUMBER
122036 --Payables Encumbrance Upgrade Debit Amount
122037  , p_source_70            IN NUMBER
122038 --Payables Encumbrance Upgrade Debit Base Amount
122039  , p_source_71            IN NUMBER
122040 --Payables Encumbrance Upgrade Option
122041  , p_source_72            IN VARCHAR2
122042 --Invoice Distribution Amount
122043  , p_source_73            IN NUMBER
122044 --Deferred Accounting End Date
122045  , p_source_77            IN DATE
122046 --Deferred Accounting Option
122047  , p_source_78            IN VARCHAR2
122048 --Deferred Accounting Start Date
122049  , p_source_79            IN DATE
122050 --Override Accounted Amount Indicator
122051  , p_source_80            IN VARCHAR2
122052  , p_source_80_meaning    IN VARCHAR2
122053 --Invoice Supplier Identifier
122054  , p_source_81            IN NUMBER
122055 --Invoice Supplier Site Identifier
122056  , p_source_82            IN NUMBER
122057 --Third Party Type
122058  , p_source_83            IN VARCHAR2
122059 --Parent Reversal Identifier
122060  , p_source_84            IN NUMBER
122061 --Invoice Distribution Statistical Amount
122062  , p_source_85            IN NUMBER
122063 --Invoice Distribution Tax Line Identifier
122064  , p_source_86            IN NUMBER
122065 --Invoice Distribution Tax Distribution Identifier from Tax
122066  , p_source_87            IN NUMBER
122067 --Invoice Distribution Summary Tax Line Identifier
122068  , p_source_88            IN NUMBER
122069 --Payables Upgrade Credit Encumbrance Type Identifier
122070  , p_source_89            IN NUMBER
122071 --Payables Upgrade Debit Encumbrance Type Identifier
122072  , p_source_90            IN NUMBER
122073 --Business Flow Accounts Payable Application Identifier
122074  , p_source_91            IN NUMBER
122075 --Business Flow Invoice Distribution Type
122076  , p_source_92            IN VARCHAR2
122077 --Business Flow Invoice Entity Code
122078  , p_source_93            IN VARCHAR2
122079 --Business Flow Invoice Distribution Identifier
122080  , p_source_94            IN NUMBER
122081 --Business Flow Invoice Identifier
122082  , p_source_95            IN NUMBER
122083 --Self-Assessed Tax Flag
122084  , p_source_142            IN VARCHAR2
122085  , p_source_142_meaning    IN VARCHAR2
122086 --Invoice Exchange Date
122087  , p_source_143            IN DATE
122088 --Invoice Exchange Rate
122089  , p_source_144            IN NUMBER
122090 --Invoice Exchange Rate Type
122091  , p_source_145            IN VARCHAR2
122092 )
122093 IS
122094 
122095 l_component_type              VARCHAR2(80);
122096 l_component_code              VARCHAR2(30);
122097 l_component_type_code         VARCHAR2(1);
122098 l_component_appl_id           INTEGER;
122099 l_amb_context_code            VARCHAR2(30);
122100 l_entity_code                 VARCHAR2(30);
122101 l_event_class_code            VARCHAR2(30);
122102 l_ae_header_id                NUMBER;
122103 l_event_type_code             VARCHAR2(30);
122104 l_line_definition_code        VARCHAR2(30);
122105 l_line_definition_owner_code  VARCHAR2(1);
122106 --
122107 -- adr variables
122108 l_segment                     VARCHAR2(30);
122109 l_ccid                        NUMBER;
122110 l_adr_transaction_coa_id      NUMBER;
122111 l_adr_accounting_coa_id       NUMBER;
122112 l_adr_flexfield_segment_code  VARCHAR2(30);
122113 l_adr_flex_value_set_id       NUMBER;
122114 l_adr_value_type_code         VARCHAR2(30);
122115 l_adr_value_combination_id    NUMBER;
122116 l_adr_value_segment_code      VARCHAR2(30);
122117 
122118 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
122119 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
122120 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
122121 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
122122 
122123 -- 4262811 Variables ------------------------------------------------------------------------------------------
122124 l_entered_amt_idx             NUMBER;
122125 l_accted_amt_idx              NUMBER;
122126 l_acc_rev_flag                VARCHAR2(1);
122127 l_accrual_line_num            NUMBER;
122128 l_tmp_amt                     NUMBER;
122129 l_acc_rev_natural_side_code   VARCHAR2(1);
122130 
122131 l_num_entries                 NUMBER;
122132 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
122133 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
122134 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
122135 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
122136 l_recog_line_1                NUMBER;
122137 l_recog_line_2                NUMBER;
122138 
122139 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
122140 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
122141 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
122142 
122143 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
122144 
122148 ---------------------------------------------------------------------------------------------------------------
122145 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
122146 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
122147 
122149 
122150 
122151 --
122152 -- bulk performance
122153 --
122154 l_balance_type_code           VARCHAR2(1);
122155 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
122156 l_log_module                  VARCHAR2(240);
122157 
122158 --
122159 -- Upgrade strategy
122160 --
122161 l_actual_upg_option           VARCHAR2(1);
122162 l_enc_upg_option           VARCHAR2(1);
122163 
122164 --
122165 BEGIN
122166 --
122167 IF g_log_enabled THEN
122168       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_202';
122169 END IF;
122170 --
122171 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
122172 
122173       trace
122174          (p_msg      => 'BEGIN of AcctLineType_202'
122175          ,p_level    => C_LEVEL_PROCEDURE
122176          ,p_module   => l_log_module);
122177 
122178 END IF;
122179 --
122180 l_component_type             := 'AMB_JLT';
122181 l_component_code             := 'AP_SELF_ASSESSED_REC_TAX_INV';
122182 l_component_type_code        := 'S';
122183 l_component_appl_id          :=  200;
122184 l_amb_context_code           := 'DEFAULT';
122185 l_entity_code                := 'AP_INVOICES';
122186 l_event_class_code           := 'INVOICES';
122187 l_event_type_code            := 'INVOICES_ALL';
122188 l_line_definition_owner_code := 'S';
122189 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
122190 --
122191 l_balance_type_code          := 'A';
122192 l_segment                     := NULL;
122193 l_ccid                        := NULL;
122194 l_adr_transaction_coa_id      := NULL;
122195 l_adr_accounting_coa_id       := NULL;
122196 l_adr_flexfield_segment_code  := NULL;
122197 l_adr_flex_value_set_id       := NULL;
122198 l_adr_value_type_code         := NULL;
122199 l_adr_value_combination_id    := NULL;
122200 l_adr_value_segment_code      := NULL;
122201 
122202 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
122203 l_bflow_class_code           := '';    -- 4219869 Business Flow
122204 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
122205 l_budgetary_control_flag     := 'N';
122206 
122207 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
122208 l_bflow_applied_to_amt       := NULL; -- 5132302
122209 l_entered_amt_idx            := NULL;          -- 4262811
122210 l_accted_amt_idx             := NULL;          -- 4262811
122211 l_acc_rev_flag               := NULL;          -- 4262811
122212 l_accrual_line_num           := NULL;          -- 4262811
122213 l_tmp_amt                    := NULL;          -- 4262811
122214 --
122215  
122216 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
122217     l_balance_type_code <> 'B' THEN
122218 IF NVL(p_source_33,'
122219 ') =  'REC_TAX' AND 
122220 NVL(p_source_142,'
122221 ') =  'Y'
122222  THEN 
122223 
122224    --
122225    XLA_AE_LINES_PKG.SetNewLine;
122226 
122227    p_balance_type_code          := l_balance_type_code;
122228    -- set the flag so later we will know whether the gain loss line needs to be created
122229    
122230    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
122231      p_actual_flag :='A';
122232    END IF;
122233 
122234    --
122235    -- bulk performance
122236    --
122237    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
122238                                       p_header_num   => 0); -- 4262811
122239    --
122240    -- set accounting line options
122241    --
122242    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
122243            p_natural_side_code          => 'D'
122244          , p_gain_or_loss_flag          => 'N'
122245          , p_gl_transfer_mode_code      => 'S'
122246          , p_acct_entry_type_code       => 'A'
122247          , p_switch_side_flag           => 'Y'
122248          , p_merge_duplicate_code       => 'A'
122249          );
122250    --
122251    l_acc_rev_natural_side_code := 'C';  -- 4262811
122252    -- 
122253    --
122254    -- set accounting line type info
122255    --
122256    xla_ae_lines_pkg.SetAcctLineType
122257       (p_component_type             => l_component_type
122258       ,p_event_type_code            => l_event_type_code
122259       ,p_line_definition_owner_code => l_line_definition_owner_code
122260       ,p_line_definition_code       => l_line_definition_code
122261       ,p_accounting_line_code       => l_component_code
122262       ,p_accounting_line_type_code  => l_component_type_code
122263       ,p_accounting_line_appl_id    => l_component_appl_id
122264       ,p_amb_context_code           => l_amb_context_code
122265       ,p_entity_code                => l_entity_code
122266       ,p_event_class_code           => l_event_class_code);
122267    --
122268    -- set accounting class
122269    --
122270    xla_ae_lines_pkg.SetAcctClass(
122271            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
122272          , p_ae_header_id           => l_ae_header_id
122273          );
122274 
122275    --
122276    -- set rounding class
122277    --
122278    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
122279                       'SELF_ASSESSED_TAX';
122280 
122281    --
122285    -- bulk performance
122282    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
122283    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
122284    --
122286    --
122287    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
122288 
122289    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
122290       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
122291 
122292    -- 4955764
122293    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
122294       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
122295 
122296    -- 4458381 Public Sector Enh
122297    
122298    --
122299    -- set accounting attributes for the line type
122300    --
122301    l_entered_amt_idx := 24;
122302    l_accted_amt_idx  := 29;
122303    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
122304    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
122305    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
122306    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
122307    l_rec_acct_attrs.array_num_value(2)  := 
122308 xla_ae_sources_pkg.GetSystemSourceNum(
122309    p_source_code           => 'XLA_EVENT_APPL_ID'
122310  , p_source_type_code      => 'Y'
122311  , p_source_application_id =>  602
122312 );
122313    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
122314    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
122315    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
122316    l_rec_acct_attrs.array_char_value(4)  := 
122317 xla_ae_sources_pkg.GetSystemSourceChar(
122318    p_source_code           => 'XLA_ENTITY_CODE'
122319  , p_source_type_code      => 'Y'
122320  , p_source_application_id =>  602
122321 );
122322    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
122323    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
122324    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
122325    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
122326    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
122327    l_rec_acct_attrs.array_num_value(7)  := p_source_73;
122328    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
122329    l_rec_acct_attrs.array_num_value(8)  := p_source_91;
122330    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
122331    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
122332    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
122333    l_rec_acct_attrs.array_char_value(10)  := p_source_93;
122334    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
122335    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
122336    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
122337    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_95);
122338    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
122339    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_64);
122340    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
122341    l_rec_acct_attrs.array_char_value(14)  := p_source_55;
122342    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
122343    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
122344    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
122345    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
122346    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
122347    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
122348    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
122349    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
122350    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
122351    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
122352    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
122353    l_rec_acct_attrs.array_num_value(20)  := p_source_70;
122354    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
122355    l_rec_acct_attrs.array_char_value(21)  := p_source_67;
122356    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
122357    l_rec_acct_attrs.array_num_value(22)  := p_source_71;
122358    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
122359    l_rec_acct_attrs.array_char_value(23)  := p_source_72;
122360    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
122361    l_rec_acct_attrs.array_num_value(24)  := p_source_73;
122362    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
122363    l_rec_acct_attrs.array_char_value(25)  := p_source_67;
122364    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
122365    l_rec_acct_attrs.array_date_value(26)  := p_source_143;
122366    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
122367    l_rec_acct_attrs.array_num_value(27)  := p_source_144;
122368    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
122369    l_rec_acct_attrs.array_char_value(28)  := p_source_145;
122370    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
122371    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
122372    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
122373    l_rec_acct_attrs.array_date_value(30)  := p_source_77;
122374    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
122375    l_rec_acct_attrs.array_char_value(31)  := p_source_78;
122379    l_rec_acct_attrs.array_char_value(33)  := p_source_80;
122376    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
122377    l_rec_acct_attrs.array_date_value(32)  := p_source_79;
122378    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
122380    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
122381    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
122382    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
122383    l_rec_acct_attrs.array_num_value(35)  := p_source_82;
122384    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
122385    l_rec_acct_attrs.array_char_value(36)  := p_source_83;
122386    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
122387    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_84);
122388    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
122389    l_rec_acct_attrs.array_char_value(38)  := p_source_55;
122390    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
122391    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
122392    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
122393    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
122394    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
122395    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
122396    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
122397    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
122398    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
122399    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
122400    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
122401    l_rec_acct_attrs.array_num_value(44)  := p_source_90;
122402 
122403    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
122404    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
122405 
122406    ---------------------------------------------------------------------------------------------------------------
122407    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
122408    ---------------------------------------------------------------------------------------------------------------
122409    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
122410 
122411    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
122412    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
122413 
122414    IF xla_accounting_cache_pkg.GetValueChar
122415          (p_source_code         => 'LEDGER_CATEGORY_CODE'
122416          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
122417    AND l_bflow_method_code = 'PRIOR_ENTRY'
122418 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
122419    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
122420          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
122421        )
122422    THEN
122423          xla_ae_lines_pkg.BflowUpgEntry
122424            (p_business_method_code    => l_bflow_method_code
122425            ,p_business_class_code     => l_bflow_class_code
122426            ,p_balance_type            => l_balance_type_code);
122427    ELSE
122428       NULL;
122429 -- No business flow processing for business flow method of NONE.
122430    END IF;
122431 
122432    --
122433    -- call analytical criteria
122434    --
122435    
122436    --
122437    -- call description
122438    --
122439    
122440 xla_ae_lines_pkg.SetLineDescription(
122441    p_ae_header_id => l_ae_header_id
122442   ,p_description  => Description_1 (
122443      p_application_id         => p_application_id
122444    , p_ae_header_id           => l_ae_header_id 
122445 , p_source_1 => p_source_1
122446    )
122447 );
122448 
122449 
122450    --
122451    -- call ADRs
122452    -- Bug 4922099
122453    --
122454    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
122455         (NVL(l_actual_upg_option, 'N') = 'O') OR
122456         (NVL(l_enc_upg_option, 'N') = 'O')
122457       )
122458    THEN
122459    NULL;
122460    --
122461    --
122462    
122463   l_ccid := AcctDerRule_42(
122464            p_application_id           => p_application_id
122465          , p_ae_header_id             => l_ae_header_id 
122466 , p_source_50 => p_source_50
122467          , x_transaction_coa_id       => l_adr_transaction_coa_id
122468          , x_accounting_coa_id        => l_adr_accounting_coa_id
122469          , x_value_type_code          => l_adr_value_type_code
122470          , p_side                     => 'NA'
122471    );
122472 
122473    xla_ae_lines_pkg.set_ccid(
122474     p_code_combination_id          => l_ccid
122475   , p_value_type_code              => l_adr_value_type_code
122476   , p_transaction_coa_id           => l_adr_transaction_coa_id
122477   , p_accounting_coa_id            => l_adr_accounting_coa_id
122478   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
122479   , p_adr_type_code                => 'S'
122480   , p_component_type               => l_component_type
122481   , p_component_code               => l_component_code
122482   , p_component_type_code          => l_component_type_code
122483   , p_component_appl_id            => l_component_appl_id
122484   , p_amb_context_code             => l_amb_context_code
122485   , p_side                         => 'NA'
122489    --
122486   );
122487 
122488 
122490    --
122491    END IF;
122492    --
122493    -- Bug 4922099
122494    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
122495           (NVL(l_enc_upg_option, 'N') = 'O')
122496         ) AND
122497         (l_bflow_method_code = 'PRIOR_ENTRY')
122498       )
122499    THEN
122500       IF
122501       --
122502       1 = 2
122503       --
122504       THEN
122505       xla_accounting_err_pkg.build_message
122506                                     (p_appli_s_name            => 'XLA'
122507                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
122508                                     ,p_token_1                 => 'LINE_NUMBER'
122509                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
122510                                     ,p_token_2                 => 'LINE_TYPE_NAME'
122511                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
122512                                                                              l_component_type
122513                                                                             ,l_component_code
122514                                                                             ,l_component_type_code
122515                                                                             ,l_component_appl_id
122516                                                                             ,l_amb_context_code
122517                                                                             ,l_entity_code
122518                                                                             ,l_event_class_code
122519                                                                            )
122520                                     ,p_token_3                 => 'OWNER'
122521                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
122522                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
122523                                                                           ,p_lookup_code    => l_component_type_code
122524                                                                          )
122525                                     ,p_token_4                 => 'PRODUCT_NAME'
122526                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
122527                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
122528                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
122529                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
122530                                     ,p_ae_header_id            =>  NULL
122531                                        );
122532 
122533         IF (C_LEVEL_ERROR>= g_log_level) THEN
122534                  trace
122535                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
122536                       ,p_level    => C_LEVEL_ERROR
122537                       ,p_module   => l_log_module);
122538         END IF;
122539       END IF;
122540    END IF;
122541    --
122542    --
122543    ------------------------------------------------------------------------------------------------
122544    -- 4219869 Business Flow
122545    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
122546    -- Prior Entry.  Currently, the following code is always generated.
122547    ------------------------------------------------------------------------------------------------
122548    XLA_AE_LINES_PKG.ValidateCurrentLine;
122549 
122550    ------------------------------------------------------------------------------------
122551    -- 4219869 Business Flow
122552    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
122553    ------------------------------------------------------------------------------------
122554    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
122555 
122556    ----------------------------------------------------------------------------------
122557    -- 4219869 Business Flow
122558    -- Update journal entry status -- Need to generate this within IF <condition>
122559    ----------------------------------------------------------------------------------
122560    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
122561          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
122562          ,p_balance_type_code => l_balance_type_code
122563          );
122564 
122565    -------------------------------------------------------------------------------------------
122566    -- 4262811 - Generate the Accrual Reversal lines
122567    -------------------------------------------------------------------------------------------
122568    BEGIN
122569       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
122570                               (g_array_event(p_event_id).array_value_num('header_index'));
122571       IF l_acc_rev_flag IS NULL THEN
122572          l_acc_rev_flag := 'N';
122573       END IF;
122574    EXCEPTION
122575       WHEN OTHERS THEN
122576          l_acc_rev_flag := 'N';
122577    END;
122578    --
122579    IF (l_acc_rev_flag = 'Y') THEN
122580 
122581        -- 4645092  ------------------------------------------------------------------------------
122582        -- To allow MPA report to determine if it should generate report process
122586        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
122583        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
122584        ------------------------------------------------------------------------------------------
122585 
122587        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
122588    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
122589    -- call ADRs
122590    -- Bug 4922099
122591    --
122592    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
122593         (NVL(l_actual_upg_option, 'N') = 'O') OR
122594         (NVL(l_enc_upg_option, 'N') = 'O')
122595       )
122596    THEN
122597    NULL;
122598    --
122599    --
122600    
122601   l_ccid := AcctDerRule_42(
122602            p_application_id           => p_application_id
122603          , p_ae_header_id             => l_ae_header_id 
122604 , p_source_50 => p_source_50
122605          , x_transaction_coa_id       => l_adr_transaction_coa_id
122606          , x_accounting_coa_id        => l_adr_accounting_coa_id
122607          , x_value_type_code          => l_adr_value_type_code
122608          , p_side                     => 'NA'
122609    );
122610 
122611    xla_ae_lines_pkg.set_ccid(
122612     p_code_combination_id          => l_ccid
122613   , p_value_type_code              => l_adr_value_type_code
122614   , p_transaction_coa_id           => l_adr_transaction_coa_id
122615   , p_accounting_coa_id            => l_adr_accounting_coa_id
122616   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
122617   , p_adr_type_code                => 'S'
122618   , p_component_type               => l_component_type
122619   , p_component_code               => l_component_code
122620   , p_component_type_code          => l_component_type_code
122621   , p_component_appl_id            => l_component_appl_id
122622   , p_amb_context_code             => l_amb_context_code
122623   , p_side                         => 'NA'
122624   );
122625 
122626 
122627    --
122628    --
122629    END IF;
122630 
122631        --
122632        -- Update the line information that should be overwritten
122633        --
122634        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
122635                                          p_header_num   => 1);
122636        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
122637 
122638        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
122639 
122640        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
122641           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
122642        END IF;
122643 
122644       --
122645       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
122646       --
122647       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
122648           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
122649       ELSE
122650           ---------------------------------------------------------------------------------------------------
122651           -- 4262811a Switch Sign
122652           ---------------------------------------------------------------------------------------------------
122653           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
122654           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
122655                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
122656           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
122657                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
122658           -- 5132302
122659           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
122660                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
122661 
122662       END IF;
122663 
122664       -- 4955764
122665       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
122666       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
122667 
122668 
122669       XLA_AE_LINES_PKG.ValidateCurrentLine;
122670       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
122671 
122672       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
122673                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
122674                ,p_balance_type_code => l_balance_type_code);
122675 
122676    END IF;
122677 
122678    -----------------------------------------------------------------------------------------
122679    -- 4262811 Multiperiod Accounting
122680    -----------------------------------------------------------------------------------------
122681      -- No MPA option is assigned.
122682 
122683 
122684 END IF;
122685 END IF;
122686 --
122687 
122688 --
122689 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
122690    trace
122691       (p_msg      => 'END of AcctLineType_202'
122692       ,p_level    => C_LEVEL_PROCEDURE
122693       ,p_module   => l_log_module);
122694 END IF;
122695 --
122696 EXCEPTION
122697   WHEN xla_exceptions_pkg.application_exception THEN
122698       RAISE;
122699   WHEN OTHERS THEN
122700        xla_exceptions_pkg.raise_message
122704 
122701            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_202');
122702 END AcctLineType_202;
122703 --
122705 ---------------------------------------
122706 --
122707 -- PRIVATE FUNCTION
122708 --         AcctLineType_203
122709 --
122710 ---------------------------------------
122711 PROCEDURE AcctLineType_203 (
122712   p_application_id        IN NUMBER
122713  ,p_event_id              IN NUMBER
122714  ,p_calculate_acctd_flag  IN VARCHAR2
122715  ,p_calculate_g_l_flag    IN VARCHAR2
122716  ,p_actual_flag           IN OUT VARCHAR2
122717  ,p_balance_type_code     OUT VARCHAR2
122718  ,p_gain_or_loss_ref      OUT VARCHAR2
122719  
122720 --Invoice Distribution Description
122721  , p_source_1            IN VARCHAR2
122722 --Invoice Distribution Ledger Amount
122723  , p_source_21            IN NUMBER
122724 --Invoice Distribution Type
122725  , p_source_33            IN VARCHAR2
122726  , p_source_33_meaning    IN VARCHAR2
122727 --Self-Assessed Tax Liability Account
122728  , p_source_51            IN NUMBER
122729 --Accounting Reversal Indicator
122730  , p_source_53            IN VARCHAR2
122731 --Distribution Link Type
122732  , p_source_55            IN VARCHAR2
122733 --Allocation to Main Distribution Identifier
122734  , p_source_57            IN NUMBER
122735 --Invoice Identifier
122736  , p_source_58            IN NUMBER
122737 --Invoice Distribution Identifier
122738  , p_source_64            IN NUMBER
122739 --Payables Encumbrance Upgrade Credit Account
122740  , p_source_65            IN NUMBER
122741 --Payables Encumbrance Upgrade Credit Amount
122742  , p_source_66            IN NUMBER
122743 --Invoice Currency Code
122744  , p_source_67            IN VARCHAR2
122745 --Payables Encumbrance Upgrade Credit Base Amount
122746  , p_source_68            IN NUMBER
122747 --Payables Encumbrance Upgrade Debit Account
122748  , p_source_69            IN NUMBER
122749 --Payables Encumbrance Upgrade Debit Amount
122750  , p_source_70            IN NUMBER
122751 --Payables Encumbrance Upgrade Debit Base Amount
122752  , p_source_71            IN NUMBER
122753 --Payables Encumbrance Upgrade Option
122754  , p_source_72            IN VARCHAR2
122755 --Invoice Distribution Amount
122756  , p_source_73            IN NUMBER
122757 --Deferred Accounting End Date
122758  , p_source_77            IN DATE
122759 --Deferred Accounting Option
122760  , p_source_78            IN VARCHAR2
122761 --Deferred Accounting Start Date
122762  , p_source_79            IN DATE
122763 --Override Accounted Amount Indicator
122764  , p_source_80            IN VARCHAR2
122765  , p_source_80_meaning    IN VARCHAR2
122766 --Invoice Supplier Identifier
122767  , p_source_81            IN NUMBER
122768 --Invoice Supplier Site Identifier
122769  , p_source_82            IN NUMBER
122770 --Third Party Type
122771  , p_source_83            IN VARCHAR2
122772 --Parent Reversal Identifier
122773  , p_source_84            IN NUMBER
122774 --Invoice Distribution Statistical Amount
122775  , p_source_85            IN NUMBER
122776 --Invoice Distribution Tax Line Identifier
122777  , p_source_86            IN NUMBER
122778 --Invoice Distribution Tax Distribution Identifier from Tax
122779  , p_source_87            IN NUMBER
122780 --Invoice Distribution Summary Tax Line Identifier
122781  , p_source_88            IN NUMBER
122782 --Payables Upgrade Credit Encumbrance Type Identifier
122783  , p_source_89            IN NUMBER
122784 --Payables Upgrade Debit Encumbrance Type Identifier
122785  , p_source_90            IN NUMBER
122786 --Business Flow Accounts Payable Application Identifier
122787  , p_source_91            IN NUMBER
122788 --Business Flow Invoice Distribution Type
122789  , p_source_92            IN VARCHAR2
122790 --Business Flow Invoice Entity Code
122791  , p_source_93            IN VARCHAR2
122792 --Business Flow Invoice Distribution Identifier
122793  , p_source_94            IN NUMBER
122794 --Business Flow Invoice Identifier
122795  , p_source_95            IN NUMBER
122796 --Self-Assessed Tax Flag
122797  , p_source_142            IN VARCHAR2
122798  , p_source_142_meaning    IN VARCHAR2
122799 --Invoice Exchange Date
122800  , p_source_143            IN DATE
122801 --Invoice Exchange Rate
122802  , p_source_144            IN NUMBER
122803 --Invoice Exchange Rate Type
122804  , p_source_145            IN VARCHAR2
122805 )
122806 IS
122807 
122808 l_component_type              VARCHAR2(80);
122809 l_component_code              VARCHAR2(30);
122810 l_component_type_code         VARCHAR2(1);
122811 l_component_appl_id           INTEGER;
122812 l_amb_context_code            VARCHAR2(30);
122813 l_entity_code                 VARCHAR2(30);
122814 l_event_class_code            VARCHAR2(30);
122815 l_ae_header_id                NUMBER;
122816 l_event_type_code             VARCHAR2(30);
122817 l_line_definition_code        VARCHAR2(30);
122818 l_line_definition_owner_code  VARCHAR2(1);
122819 --
122820 -- adr variables
122821 l_segment                     VARCHAR2(30);
122822 l_ccid                        NUMBER;
122823 l_adr_transaction_coa_id      NUMBER;
122824 l_adr_accounting_coa_id       NUMBER;
122825 l_adr_flexfield_segment_code  VARCHAR2(30);
122826 l_adr_flex_value_set_id       NUMBER;
122827 l_adr_value_type_code         VARCHAR2(30);
122828 l_adr_value_combination_id    NUMBER;
122829 l_adr_value_segment_code      VARCHAR2(30);
122830 
122831 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
122832 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
122833 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
122837 l_entered_amt_idx             NUMBER;
122834 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
122835 
122836 -- 4262811 Variables ------------------------------------------------------------------------------------------
122838 l_accted_amt_idx              NUMBER;
122839 l_acc_rev_flag                VARCHAR2(1);
122840 l_accrual_line_num            NUMBER;
122841 l_tmp_amt                     NUMBER;
122842 l_acc_rev_natural_side_code   VARCHAR2(1);
122843 
122844 l_num_entries                 NUMBER;
122845 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
122846 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
122847 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
122848 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
122849 l_recog_line_1                NUMBER;
122850 l_recog_line_2                NUMBER;
122851 
122852 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
122853 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
122854 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
122855 
122856 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
122857 
122858 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
122859 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
122860 
122861 ---------------------------------------------------------------------------------------------------------------
122862 
122863 
122864 --
122865 -- bulk performance
122866 --
122867 l_balance_type_code           VARCHAR2(1);
122868 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
122869 l_log_module                  VARCHAR2(240);
122870 
122871 --
122872 -- Upgrade strategy
122873 --
122874 l_actual_upg_option           VARCHAR2(1);
122875 l_enc_upg_option           VARCHAR2(1);
122876 
122877 --
122878 BEGIN
122879 --
122880 IF g_log_enabled THEN
122881       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_203';
122882 END IF;
122883 --
122884 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
122885 
122886       trace
122887          (p_msg      => 'BEGIN of AcctLineType_203'
122888          ,p_level    => C_LEVEL_PROCEDURE
122889          ,p_module   => l_log_module);
122890 
122891 END IF;
122892 --
122893 l_component_type             := 'AMB_JLT';
122894 l_component_code             := 'AP_SELF_ASSESSED_TAX_CLR_CM';
122895 l_component_type_code        := 'S';
122896 l_component_appl_id          :=  200;
122897 l_amb_context_code           := 'DEFAULT';
122898 l_entity_code                := 'AP_INVOICES';
122899 l_event_class_code           := 'CREDIT MEMOS';
122900 l_event_type_code            := 'CREDIT MEMOS_ALL';
122901 l_line_definition_owner_code := 'S';
122902 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
122903 --
122904 l_balance_type_code          := 'A';
122905 l_segment                     := NULL;
122906 l_ccid                        := NULL;
122907 l_adr_transaction_coa_id      := NULL;
122908 l_adr_accounting_coa_id       := NULL;
122909 l_adr_flexfield_segment_code  := NULL;
122910 l_adr_flex_value_set_id       := NULL;
122911 l_adr_value_type_code         := NULL;
122912 l_adr_value_combination_id    := NULL;
122913 l_adr_value_segment_code      := NULL;
122914 
122915 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
122916 l_bflow_class_code           := '';    -- 4219869 Business Flow
122917 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
122918 l_budgetary_control_flag     := 'N';
122919 
122920 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
122921 l_bflow_applied_to_amt       := NULL; -- 5132302
122922 l_entered_amt_idx            := NULL;          -- 4262811
122923 l_accted_amt_idx             := NULL;          -- 4262811
122924 l_acc_rev_flag               := NULL;          -- 4262811
122925 l_accrual_line_num           := NULL;          -- 4262811
122926 l_tmp_amt                    := NULL;          -- 4262811
122927 --
122928  
122929 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
122930     l_balance_type_code <> 'B' THEN
122931 IF (NVL(p_source_33,'
122932 ') =  'REC_TAX' OR 
122933 NVL(p_source_33,'
122934 ') =  'NONREC_TAX') AND 
122935 NVL(p_source_142,'
122936 ') =  'Y'
122937  THEN 
122938 
122939    --
122940    XLA_AE_LINES_PKG.SetNewLine;
122941 
122942    p_balance_type_code          := l_balance_type_code;
122943    -- set the flag so later we will know whether the gain loss line needs to be created
122944    
122945    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
122946      p_actual_flag :='A';
122947    END IF;
122948 
122949    --
122950    -- bulk performance
122951    --
122952    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
122953                                       p_header_num   => 0); -- 4262811
122954    --
122955    -- set accounting line options
122956    --
122957    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
122958            p_natural_side_code          => 'C'
122959          , p_gain_or_loss_flag          => 'N'
122960          , p_gl_transfer_mode_code      => 'S'
122961          , p_acct_entry_type_code       => 'A'
122962          , p_switch_side_flag           => 'Y'
122963          , p_merge_duplicate_code       => 'A'
122964          );
122965    --
122966    l_acc_rev_natural_side_code := 'D';  -- 4262811
122967    -- 
122971    xla_ae_lines_pkg.SetAcctLineType
122968    --
122969    -- set accounting line type info
122970    --
122972       (p_component_type             => l_component_type
122973       ,p_event_type_code            => l_event_type_code
122974       ,p_line_definition_owner_code => l_line_definition_owner_code
122975       ,p_line_definition_code       => l_line_definition_code
122976       ,p_accounting_line_code       => l_component_code
122977       ,p_accounting_line_type_code  => l_component_type_code
122978       ,p_accounting_line_appl_id    => l_component_appl_id
122979       ,p_amb_context_code           => l_amb_context_code
122980       ,p_entity_code                => l_entity_code
122981       ,p_event_class_code           => l_event_class_code);
122982    --
122983    -- set accounting class
122984    --
122985    xla_ae_lines_pkg.SetAcctClass(
122986            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
122987          , p_ae_header_id           => l_ae_header_id
122988          );
122989 
122990    --
122991    -- set rounding class
122992    --
122993    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
122994                       'SELF_ASSESSED_TAX';
122995 
122996    --
122997    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
122998    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
122999    --
123000    -- bulk performance
123001    --
123002    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
123003 
123004    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
123005       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
123006 
123007    -- 4955764
123008    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
123009       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
123010 
123011    -- 4458381 Public Sector Enh
123012    
123013    --
123014    -- set accounting attributes for the line type
123015    --
123016    l_entered_amt_idx := 23;
123017    l_accted_amt_idx  := 28;
123018    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
123019    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
123020    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
123021    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
123022    l_rec_acct_attrs.array_num_value(2)  := 
123023 xla_ae_sources_pkg.GetSystemSourceNum(
123024    p_source_code           => 'XLA_EVENT_APPL_ID'
123025  , p_source_type_code      => 'Y'
123026  , p_source_application_id =>  602
123027 );
123028    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
123029    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
123030    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
123031    l_rec_acct_attrs.array_char_value(4)  := 
123032 xla_ae_sources_pkg.GetSystemSourceChar(
123033    p_source_code           => 'XLA_ENTITY_CODE'
123034  , p_source_type_code      => 'Y'
123035  , p_source_application_id =>  602
123036 );
123037    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
123038    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
123039    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
123040    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
123041    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
123042    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
123043    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
123044    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
123045    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
123046    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
123047    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
123048    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
123049    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
123050    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
123051    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
123052    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
123053    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
123054    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
123055    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
123056    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
123057    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
123058    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
123059    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
123060    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
123061    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
123062    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
123063    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
123064    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
123065    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
123066    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
123067    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
123068    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
123069    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
123070    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
123071    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
123072    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
123076    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
123073    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
123074    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
123075    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
123077    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
123078    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
123079    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
123080    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
123081    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
123082    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
123083    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
123084    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
123085    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
123086    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
123087    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
123088    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
123089    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
123090    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
123091    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
123092    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
123093    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
123094    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
123095    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
123096    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
123097    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
123098    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
123099    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
123100    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
123101    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
123102    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
123103    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
123104    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
123105    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
123106    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
123107    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
123108    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
123109    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
123110    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
123111    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
123112    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
123113    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
123114    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
123115 
123116    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
123117    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
123118 
123119    ---------------------------------------------------------------------------------------------------------------
123120    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
123121    ---------------------------------------------------------------------------------------------------------------
123122    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
123123 
123124    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
123125    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
123126 
123127    IF xla_accounting_cache_pkg.GetValueChar
123128          (p_source_code         => 'LEDGER_CATEGORY_CODE'
123129          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
123130    AND l_bflow_method_code = 'PRIOR_ENTRY'
123131 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
123132    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
123133          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
123134        )
123135    THEN
123136          xla_ae_lines_pkg.BflowUpgEntry
123137            (p_business_method_code    => l_bflow_method_code
123138            ,p_business_class_code     => l_bflow_class_code
123139            ,p_balance_type            => l_balance_type_code);
123140    ELSE
123141       NULL;
123142 -- No business flow processing for business flow method of NONE.
123143    END IF;
123144 
123145    --
123146    -- call analytical criteria
123147    --
123148    
123149    --
123150    -- call description
123151    --
123152    
123153 xla_ae_lines_pkg.SetLineDescription(
123154    p_ae_header_id => l_ae_header_id
123155   ,p_description  => Description_1 (
123156      p_application_id         => p_application_id
123157    , p_ae_header_id           => l_ae_header_id 
123158 , p_source_1 => p_source_1
123159    )
123160 );
123161 
123162 
123163    --
123164    -- call ADRs
123165    -- Bug 4922099
123166    --
123167    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
123168         (NVL(l_actual_upg_option, 'N') = 'O') OR
123169         (NVL(l_enc_upg_option, 'N') = 'O')
123170       )
123171    THEN
123172    NULL;
123173    --
123174    --
123175    
123176   l_ccid := AcctDerRule_43(
123177            p_application_id           => p_application_id
123181          , x_accounting_coa_id        => l_adr_accounting_coa_id
123178          , p_ae_header_id             => l_ae_header_id 
123179 , p_source_51 => p_source_51
123180          , x_transaction_coa_id       => l_adr_transaction_coa_id
123182          , x_value_type_code          => l_adr_value_type_code
123183          , p_side                     => 'NA'
123184    );
123185 
123186    xla_ae_lines_pkg.set_ccid(
123187     p_code_combination_id          => l_ccid
123188   , p_value_type_code              => l_adr_value_type_code
123189   , p_transaction_coa_id           => l_adr_transaction_coa_id
123190   , p_accounting_coa_id            => l_adr_accounting_coa_id
123191   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
123192   , p_adr_type_code                => 'S'
123193   , p_component_type               => l_component_type
123194   , p_component_code               => l_component_code
123195   , p_component_type_code          => l_component_type_code
123196   , p_component_appl_id            => l_component_appl_id
123197   , p_amb_context_code             => l_amb_context_code
123198   , p_side                         => 'NA'
123199   );
123200 
123201 
123202    --
123203    --
123204    END IF;
123205    --
123206    -- Bug 4922099
123207    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
123208           (NVL(l_enc_upg_option, 'N') = 'O')
123209         ) AND
123210         (l_bflow_method_code = 'PRIOR_ENTRY')
123211       )
123212    THEN
123213       IF
123214       --
123215       1 = 2
123216       --
123217       THEN
123218       xla_accounting_err_pkg.build_message
123219                                     (p_appli_s_name            => 'XLA'
123220                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
123221                                     ,p_token_1                 => 'LINE_NUMBER'
123222                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
123223                                     ,p_token_2                 => 'LINE_TYPE_NAME'
123224                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
123225                                                                              l_component_type
123226                                                                             ,l_component_code
123227                                                                             ,l_component_type_code
123228                                                                             ,l_component_appl_id
123229                                                                             ,l_amb_context_code
123230                                                                             ,l_entity_code
123231                                                                             ,l_event_class_code
123232                                                                            )
123233                                     ,p_token_3                 => 'OWNER'
123234                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
123235                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
123236                                                                           ,p_lookup_code    => l_component_type_code
123237                                                                          )
123238                                     ,p_token_4                 => 'PRODUCT_NAME'
123239                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
123240                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
123241                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
123242                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
123243                                     ,p_ae_header_id            =>  NULL
123244                                        );
123245 
123246         IF (C_LEVEL_ERROR>= g_log_level) THEN
123247                  trace
123248                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
123249                       ,p_level    => C_LEVEL_ERROR
123250                       ,p_module   => l_log_module);
123251         END IF;
123252       END IF;
123253    END IF;
123254    --
123255    --
123256    ------------------------------------------------------------------------------------------------
123257    -- 4219869 Business Flow
123258    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
123259    -- Prior Entry.  Currently, the following code is always generated.
123260    ------------------------------------------------------------------------------------------------
123261    XLA_AE_LINES_PKG.ValidateCurrentLine;
123262 
123263    ------------------------------------------------------------------------------------
123264    -- 4219869 Business Flow
123265    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
123266    ------------------------------------------------------------------------------------
123267    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
123268 
123269    ----------------------------------------------------------------------------------
123270    -- 4219869 Business Flow
123271    -- Update journal entry status -- Need to generate this within IF <condition>
123272    ----------------------------------------------------------------------------------
123276          );
123273    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
123274          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
123275          ,p_balance_type_code => l_balance_type_code
123277 
123278    -------------------------------------------------------------------------------------------
123279    -- 4262811 - Generate the Accrual Reversal lines
123280    -------------------------------------------------------------------------------------------
123281    BEGIN
123282       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
123283                               (g_array_event(p_event_id).array_value_num('header_index'));
123284       IF l_acc_rev_flag IS NULL THEN
123285          l_acc_rev_flag := 'N';
123286       END IF;
123287    EXCEPTION
123288       WHEN OTHERS THEN
123289          l_acc_rev_flag := 'N';
123290    END;
123291    --
123292    IF (l_acc_rev_flag = 'Y') THEN
123293 
123294        -- 4645092  ------------------------------------------------------------------------------
123295        -- To allow MPA report to determine if it should generate report process
123296        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
123297        ------------------------------------------------------------------------------------------
123298 
123299        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
123300        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
123301    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
123302    -- call ADRs
123303    -- Bug 4922099
123304    --
123305    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
123306         (NVL(l_actual_upg_option, 'N') = 'O') OR
123307         (NVL(l_enc_upg_option, 'N') = 'O')
123308       )
123309    THEN
123310    NULL;
123311    --
123312    --
123313    
123314   l_ccid := AcctDerRule_43(
123315            p_application_id           => p_application_id
123316          , p_ae_header_id             => l_ae_header_id 
123317 , p_source_51 => p_source_51
123318          , x_transaction_coa_id       => l_adr_transaction_coa_id
123319          , x_accounting_coa_id        => l_adr_accounting_coa_id
123320          , x_value_type_code          => l_adr_value_type_code
123321          , p_side                     => 'NA'
123322    );
123323 
123324    xla_ae_lines_pkg.set_ccid(
123325     p_code_combination_id          => l_ccid
123326   , p_value_type_code              => l_adr_value_type_code
123327   , p_transaction_coa_id           => l_adr_transaction_coa_id
123328   , p_accounting_coa_id            => l_adr_accounting_coa_id
123329   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
123330   , p_adr_type_code                => 'S'
123331   , p_component_type               => l_component_type
123332   , p_component_code               => l_component_code
123333   , p_component_type_code          => l_component_type_code
123334   , p_component_appl_id            => l_component_appl_id
123335   , p_amb_context_code             => l_amb_context_code
123336   , p_side                         => 'NA'
123337   );
123338 
123339 
123340    --
123341    --
123342    END IF;
123343 
123344        --
123345        -- Update the line information that should be overwritten
123346        --
123347        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
123348                                          p_header_num   => 1);
123349        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
123350 
123351        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
123352 
123353        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
123354           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
123355        END IF;
123356 
123357       --
123358       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
123359       --
123360       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
123361           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
123362       ELSE
123363           ---------------------------------------------------------------------------------------------------
123364           -- 4262811a Switch Sign
123365           ---------------------------------------------------------------------------------------------------
123366           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
123367           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
123368                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
123369           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
123370                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
123371           -- 5132302
123372           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
123373                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
123374 
123375       END IF;
123376 
123377       -- 4955764
123378       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
123379       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
123380 
123381 
123382       XLA_AE_LINES_PKG.ValidateCurrentLine;
123386                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
123383       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
123384 
123385       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
123387                ,p_balance_type_code => l_balance_type_code);
123388 
123389    END IF;
123390 
123391    -----------------------------------------------------------------------------------------
123392    -- 4262811 Multiperiod Accounting
123393    -----------------------------------------------------------------------------------------
123394      -- No MPA option is assigned.
123395 
123396 
123397 END IF;
123398 END IF;
123399 --
123400 
123401 --
123402 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
123403    trace
123404       (p_msg      => 'END of AcctLineType_203'
123405       ,p_level    => C_LEVEL_PROCEDURE
123406       ,p_module   => l_log_module);
123407 END IF;
123408 --
123409 EXCEPTION
123410   WHEN xla_exceptions_pkg.application_exception THEN
123411       RAISE;
123412   WHEN OTHERS THEN
123413        xla_exceptions_pkg.raise_message
123414            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_203');
123415 END AcctLineType_203;
123416 --
123417 
123418 ---------------------------------------
123419 --
123420 -- PRIVATE FUNCTION
123421 --         AcctLineType_204
123422 --
123423 ---------------------------------------
123424 PROCEDURE AcctLineType_204 (
123425   p_application_id        IN NUMBER
123426  ,p_event_id              IN NUMBER
123427  ,p_calculate_acctd_flag  IN VARCHAR2
123428  ,p_calculate_g_l_flag    IN VARCHAR2
123429  ,p_actual_flag           IN OUT VARCHAR2
123430  ,p_balance_type_code     OUT VARCHAR2
123431  ,p_gain_or_loss_ref      OUT VARCHAR2
123432  
123433 --Invoice Distribution Description
123434  , p_source_1            IN VARCHAR2
123435 --Invoice Distribution Ledger Amount
123436  , p_source_21            IN NUMBER
123437 --Invoice Distribution Type
123438  , p_source_33            IN VARCHAR2
123439  , p_source_33_meaning    IN VARCHAR2
123440 --Self-Assessed Tax Liability Account
123441  , p_source_51            IN NUMBER
123442 --Accounting Reversal Indicator
123443  , p_source_53            IN VARCHAR2
123444 --Distribution Link Type
123445  , p_source_55            IN VARCHAR2
123446 --Allocation to Main Distribution Identifier
123447  , p_source_57            IN NUMBER
123448 --Invoice Identifier
123449  , p_source_58            IN NUMBER
123450 --Invoice Distribution Identifier
123451  , p_source_64            IN NUMBER
123452 --Payables Encumbrance Upgrade Credit Account
123453  , p_source_65            IN NUMBER
123454 --Payables Encumbrance Upgrade Credit Amount
123455  , p_source_66            IN NUMBER
123456 --Invoice Currency Code
123457  , p_source_67            IN VARCHAR2
123458 --Payables Encumbrance Upgrade Credit Base Amount
123459  , p_source_68            IN NUMBER
123460 --Payables Encumbrance Upgrade Debit Account
123461  , p_source_69            IN NUMBER
123462 --Payables Encumbrance Upgrade Debit Amount
123463  , p_source_70            IN NUMBER
123464 --Payables Encumbrance Upgrade Debit Base Amount
123465  , p_source_71            IN NUMBER
123466 --Payables Encumbrance Upgrade Option
123467  , p_source_72            IN VARCHAR2
123468 --Invoice Distribution Amount
123469  , p_source_73            IN NUMBER
123470 --Deferred Accounting End Date
123471  , p_source_77            IN DATE
123472 --Deferred Accounting Option
123473  , p_source_78            IN VARCHAR2
123474 --Deferred Accounting Start Date
123475  , p_source_79            IN DATE
123476 --Override Accounted Amount Indicator
123477  , p_source_80            IN VARCHAR2
123478  , p_source_80_meaning    IN VARCHAR2
123479 --Invoice Supplier Identifier
123480  , p_source_81            IN NUMBER
123481 --Invoice Supplier Site Identifier
123482  , p_source_82            IN NUMBER
123483 --Third Party Type
123484  , p_source_83            IN VARCHAR2
123485 --Parent Reversal Identifier
123486  , p_source_84            IN NUMBER
123487 --Invoice Distribution Tax Line Identifier
123488  , p_source_86            IN NUMBER
123489 --Invoice Distribution Tax Distribution Identifier from Tax
123490  , p_source_87            IN NUMBER
123491 --Invoice Distribution Summary Tax Line Identifier
123492  , p_source_88            IN NUMBER
123493 --Payables Upgrade Credit Encumbrance Type Identifier
123494  , p_source_89            IN NUMBER
123495 --Payables Upgrade Debit Encumbrance Type Identifier
123496  , p_source_90            IN NUMBER
123497 --Business Flow Accounts Payable Application Identifier
123498  , p_source_91            IN NUMBER
123499 --Business Flow Invoice Distribution Type
123500  , p_source_92            IN VARCHAR2
123501 --Business Flow Invoice Entity Code
123502  , p_source_93            IN VARCHAR2
123503 --Business Flow Invoice Distribution Identifier
123504  , p_source_94            IN NUMBER
123505 --Business Flow Invoice Identifier
123506  , p_source_95            IN NUMBER
123507 --Self-Assessed Tax Flag
123508  , p_source_142            IN VARCHAR2
123509  , p_source_142_meaning    IN VARCHAR2
123510 --Invoice Exchange Date
123511  , p_source_143            IN DATE
123512 --Invoice Exchange Rate
123513  , p_source_144            IN NUMBER
123514 --Invoice Exchange Rate Type
123515  , p_source_145            IN VARCHAR2
123516 )
123517 IS
123518 
123519 l_component_type              VARCHAR2(80);
123520 l_component_code              VARCHAR2(30);
123521 l_component_type_code         VARCHAR2(1);
123525 l_event_class_code            VARCHAR2(30);
123522 l_component_appl_id           INTEGER;
123523 l_amb_context_code            VARCHAR2(30);
123524 l_entity_code                 VARCHAR2(30);
123526 l_ae_header_id                NUMBER;
123527 l_event_type_code             VARCHAR2(30);
123528 l_line_definition_code        VARCHAR2(30);
123529 l_line_definition_owner_code  VARCHAR2(1);
123530 --
123531 -- adr variables
123532 l_segment                     VARCHAR2(30);
123533 l_ccid                        NUMBER;
123534 l_adr_transaction_coa_id      NUMBER;
123535 l_adr_accounting_coa_id       NUMBER;
123536 l_adr_flexfield_segment_code  VARCHAR2(30);
123537 l_adr_flex_value_set_id       NUMBER;
123538 l_adr_value_type_code         VARCHAR2(30);
123539 l_adr_value_combination_id    NUMBER;
123540 l_adr_value_segment_code      VARCHAR2(30);
123541 
123542 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
123543 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
123544 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
123545 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
123546 
123547 -- 4262811 Variables ------------------------------------------------------------------------------------------
123548 l_entered_amt_idx             NUMBER;
123549 l_accted_amt_idx              NUMBER;
123550 l_acc_rev_flag                VARCHAR2(1);
123551 l_accrual_line_num            NUMBER;
123552 l_tmp_amt                     NUMBER;
123553 l_acc_rev_natural_side_code   VARCHAR2(1);
123554 
123555 l_num_entries                 NUMBER;
123556 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
123557 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
123558 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
123559 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
123560 l_recog_line_1                NUMBER;
123561 l_recog_line_2                NUMBER;
123562 
123563 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
123564 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
123565 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
123566 
123567 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
123568 
123569 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
123570 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
123571 
123572 ---------------------------------------------------------------------------------------------------------------
123573 
123574 
123575 --
123576 -- bulk performance
123577 --
123578 l_balance_type_code           VARCHAR2(1);
123579 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
123580 l_log_module                  VARCHAR2(240);
123581 
123582 --
123583 -- Upgrade strategy
123584 --
123585 l_actual_upg_option           VARCHAR2(1);
123586 l_enc_upg_option           VARCHAR2(1);
123587 
123588 --
123589 BEGIN
123590 --
123591 IF g_log_enabled THEN
123592       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_204';
123593 END IF;
123594 --
123595 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
123596 
123597       trace
123598          (p_msg      => 'BEGIN of AcctLineType_204'
123599          ,p_level    => C_LEVEL_PROCEDURE
123600          ,p_module   => l_log_module);
123601 
123602 END IF;
123603 --
123604 l_component_type             := 'AMB_JLT';
123605 l_component_code             := 'AP_SELF_ASSESSED_TAX_CLR_DM';
123606 l_component_type_code        := 'S';
123607 l_component_appl_id          :=  200;
123608 l_amb_context_code           := 'DEFAULT';
123609 l_entity_code                := 'AP_INVOICES';
123610 l_event_class_code           := 'DEBIT MEMOS';
123611 l_event_type_code            := 'DEBIT MEMOS_ALL';
123612 l_line_definition_owner_code := 'S';
123613 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
123614 --
123615 l_balance_type_code          := 'A';
123616 l_segment                     := NULL;
123617 l_ccid                        := NULL;
123618 l_adr_transaction_coa_id      := NULL;
123619 l_adr_accounting_coa_id       := NULL;
123620 l_adr_flexfield_segment_code  := NULL;
123621 l_adr_flex_value_set_id       := NULL;
123622 l_adr_value_type_code         := NULL;
123623 l_adr_value_combination_id    := NULL;
123624 l_adr_value_segment_code      := NULL;
123625 
123626 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
123627 l_bflow_class_code           := '';    -- 4219869 Business Flow
123628 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
123629 l_budgetary_control_flag     := 'N';
123630 
123631 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
123632 l_bflow_applied_to_amt       := NULL; -- 5132302
123633 l_entered_amt_idx            := NULL;          -- 4262811
123634 l_accted_amt_idx             := NULL;          -- 4262811
123635 l_acc_rev_flag               := NULL;          -- 4262811
123636 l_accrual_line_num           := NULL;          -- 4262811
123637 l_tmp_amt                    := NULL;          -- 4262811
123638 --
123639  
123640 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
123641     l_balance_type_code <> 'B' THEN
123642 IF (NVL(p_source_33,'
123643 ') =  'REC_TAX' OR 
123644 NVL(p_source_33,'
123645 ') =  'NONREC_TAX') AND 
123646 NVL(p_source_142,'
123647 ') =  'Y'
123648  THEN 
123649 
123650    --
123651    XLA_AE_LINES_PKG.SetNewLine;
123652 
123656    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
123653    p_balance_type_code          := l_balance_type_code;
123654    -- set the flag so later we will know whether the gain loss line needs to be created
123655    
123657      p_actual_flag :='A';
123658    END IF;
123659 
123660    --
123661    -- bulk performance
123662    --
123663    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
123664                                       p_header_num   => 0); -- 4262811
123665    --
123666    -- set accounting line options
123667    --
123668    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
123669            p_natural_side_code          => 'C'
123670          , p_gain_or_loss_flag          => 'N'
123671          , p_gl_transfer_mode_code      => 'S'
123672          , p_acct_entry_type_code       => 'A'
123673          , p_switch_side_flag           => 'Y'
123674          , p_merge_duplicate_code       => 'A'
123675          );
123676    --
123677    l_acc_rev_natural_side_code := 'D';  -- 4262811
123678    -- 
123679    --
123680    -- set accounting line type info
123681    --
123682    xla_ae_lines_pkg.SetAcctLineType
123683       (p_component_type             => l_component_type
123684       ,p_event_type_code            => l_event_type_code
123685       ,p_line_definition_owner_code => l_line_definition_owner_code
123686       ,p_line_definition_code       => l_line_definition_code
123687       ,p_accounting_line_code       => l_component_code
123688       ,p_accounting_line_type_code  => l_component_type_code
123689       ,p_accounting_line_appl_id    => l_component_appl_id
123690       ,p_amb_context_code           => l_amb_context_code
123691       ,p_entity_code                => l_entity_code
123692       ,p_event_class_code           => l_event_class_code);
123693    --
123694    -- set accounting class
123695    --
123696    xla_ae_lines_pkg.SetAcctClass(
123697            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
123698          , p_ae_header_id           => l_ae_header_id
123699          );
123700 
123701    --
123702    -- set rounding class
123703    --
123704    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
123705                       'SELF_ASSESSED_TAX';
123706 
123707    --
123708    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
123709    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
123710    --
123711    -- bulk performance
123712    --
123713    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
123714 
123715    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
123716       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
123717 
123718    -- 4955764
123719    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
123720       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
123721 
123722    -- 4458381 Public Sector Enh
123723    
123724    --
123725    -- set accounting attributes for the line type
123726    --
123727    l_entered_amt_idx := 23;
123728    l_accted_amt_idx  := 28;
123729    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
123730    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
123731    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
123732    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
123733    l_rec_acct_attrs.array_num_value(2)  := 
123734 xla_ae_sources_pkg.GetSystemSourceNum(
123735    p_source_code           => 'XLA_EVENT_APPL_ID'
123736  , p_source_type_code      => 'Y'
123737  , p_source_application_id =>  602
123738 );
123739    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
123740    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
123741    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
123742    l_rec_acct_attrs.array_char_value(4)  := 
123743 xla_ae_sources_pkg.GetSystemSourceChar(
123744    p_source_code           => 'XLA_ENTITY_CODE'
123745  , p_source_type_code      => 'Y'
123746  , p_source_application_id =>  602
123747 );
123748    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
123749    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
123750    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
123751    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
123752    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
123753    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
123754    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
123755    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
123756    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
123757    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
123758    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
123759    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
123760    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
123761    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
123762    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
123763    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
123764    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
123765    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
123769    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
123766    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
123767    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
123768    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
123770    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
123771    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
123772    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
123773    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
123774    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
123775    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
123776    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
123777    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
123778    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
123779    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
123780    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
123781    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
123782    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
123783    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
123784    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
123785    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
123786    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
123787    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
123788    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
123789    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
123790    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
123791    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
123792    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
123793    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
123794    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
123795    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
123796    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
123797    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
123798    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
123799    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
123800    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
123801    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
123802    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
123803    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
123804    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
123805    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
123806    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
123807    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
123808    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
123809    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
123810    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
123811    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
123812    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
123813    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
123814    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
123815    l_rec_acct_attrs.array_num_value(38)  := p_source_86;
123816    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
123817    l_rec_acct_attrs.array_num_value(39)  := p_source_87;
123818    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
123819    l_rec_acct_attrs.array_num_value(40)  := p_source_88;
123820    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
123821    l_rec_acct_attrs.array_num_value(41)  := p_source_89;
123822    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
123823    l_rec_acct_attrs.array_num_value(42)  := p_source_90;
123824 
123825    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
123826    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
123827 
123828    ---------------------------------------------------------------------------------------------------------------
123829    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
123830    ---------------------------------------------------------------------------------------------------------------
123831    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
123832 
123833    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
123834    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
123835 
123836    IF xla_accounting_cache_pkg.GetValueChar
123837          (p_source_code         => 'LEDGER_CATEGORY_CODE'
123838          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
123839    AND l_bflow_method_code = 'PRIOR_ENTRY'
123840 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
123841    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
123842          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
123843        )
123844    THEN
123845          xla_ae_lines_pkg.BflowUpgEntry
123846            (p_business_method_code    => l_bflow_method_code
123847            ,p_business_class_code     => l_bflow_class_code
123848            ,p_balance_type            => l_balance_type_code);
123849    ELSE
123850       NULL;
123854    --
123851 -- No business flow processing for business flow method of NONE.
123852    END IF;
123853 
123855    -- call analytical criteria
123856    --
123857    
123858    --
123859    -- call description
123860    --
123861    
123862 xla_ae_lines_pkg.SetLineDescription(
123863    p_ae_header_id => l_ae_header_id
123864   ,p_description  => Description_1 (
123865      p_application_id         => p_application_id
123866    , p_ae_header_id           => l_ae_header_id 
123867 , p_source_1 => p_source_1
123868    )
123869 );
123870 
123871 
123872    --
123873    -- call ADRs
123874    -- Bug 4922099
123875    --
123876    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
123877         (NVL(l_actual_upg_option, 'N') = 'O') OR
123878         (NVL(l_enc_upg_option, 'N') = 'O')
123879       )
123880    THEN
123881    NULL;
123882    --
123883    --
123884    
123885   l_ccid := AcctDerRule_43(
123886            p_application_id           => p_application_id
123887          , p_ae_header_id             => l_ae_header_id 
123888 , p_source_51 => p_source_51
123889          , x_transaction_coa_id       => l_adr_transaction_coa_id
123890          , x_accounting_coa_id        => l_adr_accounting_coa_id
123891          , x_value_type_code          => l_adr_value_type_code
123892          , p_side                     => 'NA'
123893    );
123894 
123895    xla_ae_lines_pkg.set_ccid(
123896     p_code_combination_id          => l_ccid
123897   , p_value_type_code              => l_adr_value_type_code
123898   , p_transaction_coa_id           => l_adr_transaction_coa_id
123899   , p_accounting_coa_id            => l_adr_accounting_coa_id
123900   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
123901   , p_adr_type_code                => 'S'
123902   , p_component_type               => l_component_type
123903   , p_component_code               => l_component_code
123904   , p_component_type_code          => l_component_type_code
123905   , p_component_appl_id            => l_component_appl_id
123906   , p_amb_context_code             => l_amb_context_code
123907   , p_side                         => 'NA'
123908   );
123909 
123910 
123911    --
123912    --
123913    END IF;
123914    --
123915    -- Bug 4922099
123916    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
123917           (NVL(l_enc_upg_option, 'N') = 'O')
123918         ) AND
123919         (l_bflow_method_code = 'PRIOR_ENTRY')
123920       )
123921    THEN
123922       IF
123923       --
123924       1 = 2
123925       --
123926       THEN
123927       xla_accounting_err_pkg.build_message
123928                                     (p_appli_s_name            => 'XLA'
123929                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
123930                                     ,p_token_1                 => 'LINE_NUMBER'
123931                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
123932                                     ,p_token_2                 => 'LINE_TYPE_NAME'
123933                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
123934                                                                              l_component_type
123935                                                                             ,l_component_code
123936                                                                             ,l_component_type_code
123937                                                                             ,l_component_appl_id
123938                                                                             ,l_amb_context_code
123939                                                                             ,l_entity_code
123940                                                                             ,l_event_class_code
123941                                                                            )
123942                                     ,p_token_3                 => 'OWNER'
123943                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
123944                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
123945                                                                           ,p_lookup_code    => l_component_type_code
123946                                                                          )
123947                                     ,p_token_4                 => 'PRODUCT_NAME'
123948                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
123949                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
123950                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
123951                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
123952                                     ,p_ae_header_id            =>  NULL
123953                                        );
123954 
123955         IF (C_LEVEL_ERROR>= g_log_level) THEN
123956                  trace
123957                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
123958                       ,p_level    => C_LEVEL_ERROR
123959                       ,p_module   => l_log_module);
123960         END IF;
123961       END IF;
123962    END IF;
123963    --
123964    --
123965    ------------------------------------------------------------------------------------------------
123969    ------------------------------------------------------------------------------------------------
123966    -- 4219869 Business Flow
123967    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
123968    -- Prior Entry.  Currently, the following code is always generated.
123970    XLA_AE_LINES_PKG.ValidateCurrentLine;
123971 
123972    ------------------------------------------------------------------------------------
123973    -- 4219869 Business Flow
123974    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
123975    ------------------------------------------------------------------------------------
123976    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
123977 
123978    ----------------------------------------------------------------------------------
123979    -- 4219869 Business Flow
123980    -- Update journal entry status -- Need to generate this within IF <condition>
123981    ----------------------------------------------------------------------------------
123982    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
123983          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
123984          ,p_balance_type_code => l_balance_type_code
123985          );
123986 
123987    -------------------------------------------------------------------------------------------
123988    -- 4262811 - Generate the Accrual Reversal lines
123989    -------------------------------------------------------------------------------------------
123990    BEGIN
123991       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
123992                               (g_array_event(p_event_id).array_value_num('header_index'));
123993       IF l_acc_rev_flag IS NULL THEN
123994          l_acc_rev_flag := 'N';
123995       END IF;
123996    EXCEPTION
123997       WHEN OTHERS THEN
123998          l_acc_rev_flag := 'N';
123999    END;
124000    --
124001    IF (l_acc_rev_flag = 'Y') THEN
124002 
124003        -- 4645092  ------------------------------------------------------------------------------
124004        -- To allow MPA report to determine if it should generate report process
124005        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
124006        ------------------------------------------------------------------------------------------
124007 
124008        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
124009        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
124010    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
124011    -- call ADRs
124012    -- Bug 4922099
124013    --
124014    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
124015         (NVL(l_actual_upg_option, 'N') = 'O') OR
124016         (NVL(l_enc_upg_option, 'N') = 'O')
124017       )
124018    THEN
124019    NULL;
124020    --
124021    --
124022    
124023   l_ccid := AcctDerRule_43(
124024            p_application_id           => p_application_id
124025          , p_ae_header_id             => l_ae_header_id 
124026 , p_source_51 => p_source_51
124027          , x_transaction_coa_id       => l_adr_transaction_coa_id
124028          , x_accounting_coa_id        => l_adr_accounting_coa_id
124029          , x_value_type_code          => l_adr_value_type_code
124030          , p_side                     => 'NA'
124031    );
124032 
124033    xla_ae_lines_pkg.set_ccid(
124034     p_code_combination_id          => l_ccid
124035   , p_value_type_code              => l_adr_value_type_code
124036   , p_transaction_coa_id           => l_adr_transaction_coa_id
124037   , p_accounting_coa_id            => l_adr_accounting_coa_id
124038   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
124039   , p_adr_type_code                => 'S'
124040   , p_component_type               => l_component_type
124041   , p_component_code               => l_component_code
124042   , p_component_type_code          => l_component_type_code
124043   , p_component_appl_id            => l_component_appl_id
124044   , p_amb_context_code             => l_amb_context_code
124045   , p_side                         => 'NA'
124046   );
124047 
124048 
124049    --
124050    --
124051    END IF;
124052 
124053        --
124054        -- Update the line information that should be overwritten
124055        --
124056        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
124057                                          p_header_num   => 1);
124058        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
124059 
124060        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
124061 
124062        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
124063           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
124064        END IF;
124065 
124066       --
124067       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
124068       --
124069       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
124070           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
124071       ELSE
124072           ---------------------------------------------------------------------------------------------------
124073           -- 4262811a Switch Sign
124074           ---------------------------------------------------------------------------------------------------
124075           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
124076           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
124080           -- 5132302
124077                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
124078           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
124079                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
124081           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
124082                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
124083 
124084       END IF;
124085 
124086       -- 4955764
124087       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
124088       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
124089 
124090 
124091       XLA_AE_LINES_PKG.ValidateCurrentLine;
124092       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
124093 
124094       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
124095                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
124096                ,p_balance_type_code => l_balance_type_code);
124097 
124098    END IF;
124099 
124100    -----------------------------------------------------------------------------------------
124101    -- 4262811 Multiperiod Accounting
124102    -----------------------------------------------------------------------------------------
124103      -- No MPA option is assigned.
124104 
124105 
124106 END IF;
124107 END IF;
124108 --
124109 
124110 --
124111 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
124112    trace
124113       (p_msg      => 'END of AcctLineType_204'
124114       ,p_level    => C_LEVEL_PROCEDURE
124115       ,p_module   => l_log_module);
124116 END IF;
124117 --
124118 EXCEPTION
124119   WHEN xla_exceptions_pkg.application_exception THEN
124120       RAISE;
124121   WHEN OTHERS THEN
124122        xla_exceptions_pkg.raise_message
124123            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_204');
124124 END AcctLineType_204;
124125 --
124126 
124127 ---------------------------------------
124128 --
124129 -- PRIVATE FUNCTION
124130 --         AcctLineType_205
124131 --
124132 ---------------------------------------
124133 PROCEDURE AcctLineType_205 (
124134   p_application_id        IN NUMBER
124135  ,p_event_id              IN NUMBER
124136  ,p_calculate_acctd_flag  IN VARCHAR2
124137  ,p_calculate_g_l_flag    IN VARCHAR2
124138  ,p_actual_flag           IN OUT VARCHAR2
124139  ,p_balance_type_code     OUT VARCHAR2
124140  ,p_gain_or_loss_ref      OUT VARCHAR2
124141  
124142 --Invoice Distribution Description
124143  , p_source_1            IN VARCHAR2
124144 --Invoice Distribution Ledger Amount
124145  , p_source_21            IN NUMBER
124146 --Invoice Distribution Type
124147  , p_source_33            IN VARCHAR2
124148  , p_source_33_meaning    IN VARCHAR2
124149 --Self-Assessed Tax Liability Account
124150  , p_source_51            IN NUMBER
124151 --Accounting Reversal Indicator
124152  , p_source_53            IN VARCHAR2
124153 --Distribution Link Type
124154  , p_source_55            IN VARCHAR2
124155 --Allocation to Main Distribution Identifier
124156  , p_source_57            IN NUMBER
124157 --Invoice Identifier
124158  , p_source_58            IN NUMBER
124159 --Invoice Distribution Identifier
124160  , p_source_64            IN NUMBER
124161 --Payables Encumbrance Upgrade Credit Account
124162  , p_source_65            IN NUMBER
124163 --Payables Encumbrance Upgrade Credit Amount
124164  , p_source_66            IN NUMBER
124165 --Invoice Currency Code
124166  , p_source_67            IN VARCHAR2
124167 --Payables Encumbrance Upgrade Credit Base Amount
124168  , p_source_68            IN NUMBER
124169 --Payables Encumbrance Upgrade Debit Account
124170  , p_source_69            IN NUMBER
124171 --Payables Encumbrance Upgrade Debit Amount
124172  , p_source_70            IN NUMBER
124173 --Payables Encumbrance Upgrade Debit Base Amount
124174  , p_source_71            IN NUMBER
124175 --Payables Encumbrance Upgrade Option
124176  , p_source_72            IN VARCHAR2
124177 --Invoice Distribution Amount
124178  , p_source_73            IN NUMBER
124179 --Deferred Accounting End Date
124180  , p_source_77            IN DATE
124181 --Deferred Accounting Option
124182  , p_source_78            IN VARCHAR2
124183 --Deferred Accounting Start Date
124184  , p_source_79            IN DATE
124185 --Override Accounted Amount Indicator
124186  , p_source_80            IN VARCHAR2
124187  , p_source_80_meaning    IN VARCHAR2
124188 --Invoice Supplier Identifier
124189  , p_source_81            IN NUMBER
124190 --Invoice Supplier Site Identifier
124191  , p_source_82            IN NUMBER
124192 --Third Party Type
124193  , p_source_83            IN VARCHAR2
124194 --Parent Reversal Identifier
124195  , p_source_84            IN NUMBER
124196 --Invoice Distribution Statistical Amount
124197  , p_source_85            IN NUMBER
124198 --Invoice Distribution Tax Line Identifier
124199  , p_source_86            IN NUMBER
124200 --Invoice Distribution Tax Distribution Identifier from Tax
124201  , p_source_87            IN NUMBER
124202 --Invoice Distribution Summary Tax Line Identifier
124203  , p_source_88            IN NUMBER
124204 --Payables Upgrade Credit Encumbrance Type Identifier
124205  , p_source_89            IN NUMBER
124206 --Payables Upgrade Debit Encumbrance Type Identifier
124207  , p_source_90            IN NUMBER
124208 --Business Flow Accounts Payable Application Identifier
124212 --Business Flow Invoice Entity Code
124209  , p_source_91            IN NUMBER
124210 --Business Flow Invoice Distribution Type
124211  , p_source_92            IN VARCHAR2
124213  , p_source_93            IN VARCHAR2
124214 --Business Flow Invoice Distribution Identifier
124215  , p_source_94            IN NUMBER
124216 --Business Flow Invoice Identifier
124217  , p_source_95            IN NUMBER
124218 --Self-Assessed Tax Flag
124219  , p_source_142            IN VARCHAR2
124220  , p_source_142_meaning    IN VARCHAR2
124221 --Invoice Exchange Date
124222  , p_source_143            IN DATE
124223 --Invoice Exchange Rate
124224  , p_source_144            IN NUMBER
124225 --Invoice Exchange Rate Type
124226  , p_source_145            IN VARCHAR2
124227 )
124228 IS
124229 
124230 l_component_type              VARCHAR2(80);
124231 l_component_code              VARCHAR2(30);
124232 l_component_type_code         VARCHAR2(1);
124233 l_component_appl_id           INTEGER;
124234 l_amb_context_code            VARCHAR2(30);
124235 l_entity_code                 VARCHAR2(30);
124236 l_event_class_code            VARCHAR2(30);
124237 l_ae_header_id                NUMBER;
124238 l_event_type_code             VARCHAR2(30);
124239 l_line_definition_code        VARCHAR2(30);
124240 l_line_definition_owner_code  VARCHAR2(1);
124241 --
124242 -- adr variables
124243 l_segment                     VARCHAR2(30);
124244 l_ccid                        NUMBER;
124245 l_adr_transaction_coa_id      NUMBER;
124246 l_adr_accounting_coa_id       NUMBER;
124247 l_adr_flexfield_segment_code  VARCHAR2(30);
124248 l_adr_flex_value_set_id       NUMBER;
124249 l_adr_value_type_code         VARCHAR2(30);
124250 l_adr_value_combination_id    NUMBER;
124251 l_adr_value_segment_code      VARCHAR2(30);
124252 
124253 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
124254 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
124255 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
124256 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
124257 
124258 -- 4262811 Variables ------------------------------------------------------------------------------------------
124259 l_entered_amt_idx             NUMBER;
124260 l_accted_amt_idx              NUMBER;
124261 l_acc_rev_flag                VARCHAR2(1);
124262 l_accrual_line_num            NUMBER;
124263 l_tmp_amt                     NUMBER;
124264 l_acc_rev_natural_side_code   VARCHAR2(1);
124265 
124266 l_num_entries                 NUMBER;
124267 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
124268 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
124269 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
124270 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
124271 l_recog_line_1                NUMBER;
124272 l_recog_line_2                NUMBER;
124273 
124274 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
124275 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
124276 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
124277 
124278 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
124279 
124280 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
124281 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
124282 
124283 ---------------------------------------------------------------------------------------------------------------
124284 
124285 
124286 --
124287 -- bulk performance
124288 --
124289 l_balance_type_code           VARCHAR2(1);
124290 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
124291 l_log_module                  VARCHAR2(240);
124292 
124293 --
124294 -- Upgrade strategy
124295 --
124296 l_actual_upg_option           VARCHAR2(1);
124297 l_enc_upg_option           VARCHAR2(1);
124298 
124299 --
124300 BEGIN
124301 --
124302 IF g_log_enabled THEN
124303       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_205';
124304 END IF;
124305 --
124306 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
124307 
124308       trace
124309          (p_msg      => 'BEGIN of AcctLineType_205'
124310          ,p_level    => C_LEVEL_PROCEDURE
124311          ,p_module   => l_log_module);
124312 
124313 END IF;
124314 --
124315 l_component_type             := 'AMB_JLT';
124316 l_component_code             := 'AP_SELF_ASSESSED_TAX_CRL_INV';
124317 l_component_type_code        := 'S';
124318 l_component_appl_id          :=  200;
124319 l_amb_context_code           := 'DEFAULT';
124320 l_entity_code                := 'AP_INVOICES';
124321 l_event_class_code           := 'INVOICES';
124322 l_event_type_code            := 'INVOICES_ALL';
124323 l_line_definition_owner_code := 'S';
124324 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
124325 --
124326 l_balance_type_code          := 'A';
124327 l_segment                     := NULL;
124328 l_ccid                        := NULL;
124329 l_adr_transaction_coa_id      := NULL;
124330 l_adr_accounting_coa_id       := NULL;
124331 l_adr_flexfield_segment_code  := NULL;
124332 l_adr_flex_value_set_id       := NULL;
124333 l_adr_value_type_code         := NULL;
124334 l_adr_value_combination_id    := NULL;
124335 l_adr_value_segment_code      := NULL;
124336 
124337 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
124338 l_bflow_class_code           := '';    -- 4219869 Business Flow
124342 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
124339 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
124340 l_budgetary_control_flag     := 'N';
124341 
124343 l_bflow_applied_to_amt       := NULL; -- 5132302
124344 l_entered_amt_idx            := NULL;          -- 4262811
124345 l_accted_amt_idx             := NULL;          -- 4262811
124346 l_acc_rev_flag               := NULL;          -- 4262811
124347 l_accrual_line_num           := NULL;          -- 4262811
124348 l_tmp_amt                    := NULL;          -- 4262811
124349 --
124350  
124351 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
124352     l_balance_type_code <> 'B' THEN
124353 IF (NVL(p_source_33,'
124354 ') =  'REC_TAX' OR 
124355 NVL(p_source_33,'
124356 ') =  'NONREC_TAX') AND 
124357 NVL(p_source_142,'
124358 ') =  'Y'
124359  THEN 
124360 
124361    --
124362    XLA_AE_LINES_PKG.SetNewLine;
124363 
124364    p_balance_type_code          := l_balance_type_code;
124365    -- set the flag so later we will know whether the gain loss line needs to be created
124366    
124367    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
124368      p_actual_flag :='A';
124369    END IF;
124370 
124371    --
124372    -- bulk performance
124373    --
124374    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
124375                                       p_header_num   => 0); -- 4262811
124376    --
124377    -- set accounting line options
124378    --
124379    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
124380            p_natural_side_code          => 'C'
124381          , p_gain_or_loss_flag          => 'N'
124382          , p_gl_transfer_mode_code      => 'S'
124383          , p_acct_entry_type_code       => 'A'
124384          , p_switch_side_flag           => 'Y'
124385          , p_merge_duplicate_code       => 'A'
124386          );
124387    --
124388    l_acc_rev_natural_side_code := 'D';  -- 4262811
124389    -- 
124390    --
124391    -- set accounting line type info
124392    --
124393    xla_ae_lines_pkg.SetAcctLineType
124394       (p_component_type             => l_component_type
124395       ,p_event_type_code            => l_event_type_code
124396       ,p_line_definition_owner_code => l_line_definition_owner_code
124397       ,p_line_definition_code       => l_line_definition_code
124398       ,p_accounting_line_code       => l_component_code
124399       ,p_accounting_line_type_code  => l_component_type_code
124400       ,p_accounting_line_appl_id    => l_component_appl_id
124401       ,p_amb_context_code           => l_amb_context_code
124402       ,p_entity_code                => l_entity_code
124403       ,p_event_class_code           => l_event_class_code);
124404    --
124405    -- set accounting class
124406    --
124407    xla_ae_lines_pkg.SetAcctClass(
124408            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
124409          , p_ae_header_id           => l_ae_header_id
124410          );
124411 
124412    --
124413    -- set rounding class
124414    --
124415    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
124416                       'SELF_ASSESSED_TAX';
124417 
124418    --
124419    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
124420    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
124421    --
124422    -- bulk performance
124423    --
124424    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
124425 
124426    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
124427       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
124428 
124429    -- 4955764
124430    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
124431       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
124432 
124433    -- 4458381 Public Sector Enh
124434    
124435    --
124436    -- set accounting attributes for the line type
124437    --
124438    l_entered_amt_idx := 24;
124439    l_accted_amt_idx  := 29;
124440    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
124441    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
124442    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
124443    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
124444    l_rec_acct_attrs.array_num_value(2)  := 
124445 xla_ae_sources_pkg.GetSystemSourceNum(
124446    p_source_code           => 'XLA_EVENT_APPL_ID'
124447  , p_source_type_code      => 'Y'
124448  , p_source_application_id =>  602
124449 );
124450    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
124451    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
124452    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
124453    l_rec_acct_attrs.array_char_value(4)  := 
124454 xla_ae_sources_pkg.GetSystemSourceChar(
124455    p_source_code           => 'XLA_ENTITY_CODE'
124456  , p_source_type_code      => 'Y'
124457  , p_source_application_id =>  602
124458 );
124459    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
124460    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
124461    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
124462    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
124466    l_rec_acct_attrs.array_num_value(8)  := p_source_91;
124463    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
124464    l_rec_acct_attrs.array_num_value(7)  := p_source_73;
124465    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
124467    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
124468    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
124469    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
124470    l_rec_acct_attrs.array_char_value(10)  := p_source_93;
124471    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
124472    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
124473    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
124474    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_95);
124475    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
124476    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_64);
124477    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
124478    l_rec_acct_attrs.array_char_value(14)  := p_source_55;
124479    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
124480    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
124481    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
124482    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
124483    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
124484    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
124485    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
124486    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
124487    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
124488    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
124489    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
124490    l_rec_acct_attrs.array_num_value(20)  := p_source_70;
124491    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
124492    l_rec_acct_attrs.array_char_value(21)  := p_source_67;
124493    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
124494    l_rec_acct_attrs.array_num_value(22)  := p_source_71;
124495    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
124496    l_rec_acct_attrs.array_char_value(23)  := p_source_72;
124497    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
124498    l_rec_acct_attrs.array_num_value(24)  := p_source_73;
124499    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
124500    l_rec_acct_attrs.array_char_value(25)  := p_source_67;
124501    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
124502    l_rec_acct_attrs.array_date_value(26)  := p_source_143;
124503    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
124504    l_rec_acct_attrs.array_num_value(27)  := p_source_144;
124505    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
124506    l_rec_acct_attrs.array_char_value(28)  := p_source_145;
124507    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
124508    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
124509    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
124510    l_rec_acct_attrs.array_date_value(30)  := p_source_77;
124511    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
124512    l_rec_acct_attrs.array_char_value(31)  := p_source_78;
124513    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
124514    l_rec_acct_attrs.array_date_value(32)  := p_source_79;
124515    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
124516    l_rec_acct_attrs.array_char_value(33)  := p_source_80;
124517    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
124518    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
124519    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
124520    l_rec_acct_attrs.array_num_value(35)  := p_source_82;
124521    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
124522    l_rec_acct_attrs.array_char_value(36)  := p_source_83;
124523    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
124524    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_84);
124525    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
124526    l_rec_acct_attrs.array_char_value(38)  := p_source_55;
124527    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
124528    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
124529    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
124530    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
124531    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
124532    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
124533    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
124534    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
124535    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
124536    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
124537    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
124538    l_rec_acct_attrs.array_num_value(44)  := p_source_90;
124539 
124540    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
124541    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
124542 
124543    ---------------------------------------------------------------------------------------------------------------
124544    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
124548    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
124545    ---------------------------------------------------------------------------------------------------------------
124546    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
124547 
124549    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
124550 
124551    IF xla_accounting_cache_pkg.GetValueChar
124552          (p_source_code         => 'LEDGER_CATEGORY_CODE'
124553          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
124554    AND l_bflow_method_code = 'PRIOR_ENTRY'
124555 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
124556    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
124557          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
124558        )
124559    THEN
124560          xla_ae_lines_pkg.BflowUpgEntry
124561            (p_business_method_code    => l_bflow_method_code
124562            ,p_business_class_code     => l_bflow_class_code
124563            ,p_balance_type            => l_balance_type_code);
124564    ELSE
124565       NULL;
124566 -- No business flow processing for business flow method of NONE.
124567    END IF;
124568 
124569    --
124570    -- call analytical criteria
124571    --
124572    
124573    --
124574    -- call description
124575    --
124576    
124577 xla_ae_lines_pkg.SetLineDescription(
124578    p_ae_header_id => l_ae_header_id
124579   ,p_description  => Description_1 (
124580      p_application_id         => p_application_id
124581    , p_ae_header_id           => l_ae_header_id 
124582 , p_source_1 => p_source_1
124583    )
124584 );
124585 
124586 
124587    --
124588    -- call ADRs
124589    -- Bug 4922099
124590    --
124591    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
124592         (NVL(l_actual_upg_option, 'N') = 'O') OR
124593         (NVL(l_enc_upg_option, 'N') = 'O')
124594       )
124595    THEN
124596    NULL;
124597    --
124598    --
124599    
124600   l_ccid := AcctDerRule_43(
124601            p_application_id           => p_application_id
124602          , p_ae_header_id             => l_ae_header_id 
124603 , p_source_51 => p_source_51
124604          , x_transaction_coa_id       => l_adr_transaction_coa_id
124605          , x_accounting_coa_id        => l_adr_accounting_coa_id
124606          , x_value_type_code          => l_adr_value_type_code
124607          , p_side                     => 'NA'
124608    );
124609 
124610    xla_ae_lines_pkg.set_ccid(
124611     p_code_combination_id          => l_ccid
124612   , p_value_type_code              => l_adr_value_type_code
124613   , p_transaction_coa_id           => l_adr_transaction_coa_id
124614   , p_accounting_coa_id            => l_adr_accounting_coa_id
124615   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
124616   , p_adr_type_code                => 'S'
124617   , p_component_type               => l_component_type
124618   , p_component_code               => l_component_code
124619   , p_component_type_code          => l_component_type_code
124620   , p_component_appl_id            => l_component_appl_id
124621   , p_amb_context_code             => l_amb_context_code
124622   , p_side                         => 'NA'
124623   );
124624 
124625 
124626    --
124627    --
124628    END IF;
124629    --
124630    -- Bug 4922099
124631    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
124632           (NVL(l_enc_upg_option, 'N') = 'O')
124633         ) AND
124634         (l_bflow_method_code = 'PRIOR_ENTRY')
124635       )
124636    THEN
124637       IF
124638       --
124639       1 = 2
124640       --
124641       THEN
124642       xla_accounting_err_pkg.build_message
124643                                     (p_appli_s_name            => 'XLA'
124644                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
124645                                     ,p_token_1                 => 'LINE_NUMBER'
124646                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
124647                                     ,p_token_2                 => 'LINE_TYPE_NAME'
124648                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
124649                                                                              l_component_type
124650                                                                             ,l_component_code
124651                                                                             ,l_component_type_code
124652                                                                             ,l_component_appl_id
124653                                                                             ,l_amb_context_code
124654                                                                             ,l_entity_code
124655                                                                             ,l_event_class_code
124656                                                                            )
124657                                     ,p_token_3                 => 'OWNER'
124658                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
124659                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
124660                                                                           ,p_lookup_code    => l_component_type_code
124664                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
124661                                                                          )
124662                                     ,p_token_4                 => 'PRODUCT_NAME'
124663                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
124665                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
124666                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
124667                                     ,p_ae_header_id            =>  NULL
124668                                        );
124669 
124670         IF (C_LEVEL_ERROR>= g_log_level) THEN
124671                  trace
124672                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
124673                       ,p_level    => C_LEVEL_ERROR
124674                       ,p_module   => l_log_module);
124675         END IF;
124676       END IF;
124677    END IF;
124678    --
124679    --
124680    ------------------------------------------------------------------------------------------------
124681    -- 4219869 Business Flow
124682    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
124683    -- Prior Entry.  Currently, the following code is always generated.
124684    ------------------------------------------------------------------------------------------------
124685    XLA_AE_LINES_PKG.ValidateCurrentLine;
124686 
124687    ------------------------------------------------------------------------------------
124688    -- 4219869 Business Flow
124689    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
124690    ------------------------------------------------------------------------------------
124691    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
124692 
124693    ----------------------------------------------------------------------------------
124694    -- 4219869 Business Flow
124695    -- Update journal entry status -- Need to generate this within IF <condition>
124696    ----------------------------------------------------------------------------------
124697    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
124698          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
124699          ,p_balance_type_code => l_balance_type_code
124700          );
124701 
124702    -------------------------------------------------------------------------------------------
124703    -- 4262811 - Generate the Accrual Reversal lines
124704    -------------------------------------------------------------------------------------------
124705    BEGIN
124706       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
124707                               (g_array_event(p_event_id).array_value_num('header_index'));
124708       IF l_acc_rev_flag IS NULL THEN
124709          l_acc_rev_flag := 'N';
124710       END IF;
124711    EXCEPTION
124712       WHEN OTHERS THEN
124713          l_acc_rev_flag := 'N';
124714    END;
124715    --
124716    IF (l_acc_rev_flag = 'Y') THEN
124717 
124718        -- 4645092  ------------------------------------------------------------------------------
124719        -- To allow MPA report to determine if it should generate report process
124720        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
124721        ------------------------------------------------------------------------------------------
124722 
124723        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
124724        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
124725    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
124726    -- call ADRs
124727    -- Bug 4922099
124728    --
124729    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
124730         (NVL(l_actual_upg_option, 'N') = 'O') OR
124731         (NVL(l_enc_upg_option, 'N') = 'O')
124732       )
124733    THEN
124734    NULL;
124735    --
124736    --
124737    
124738   l_ccid := AcctDerRule_43(
124739            p_application_id           => p_application_id
124740          , p_ae_header_id             => l_ae_header_id 
124741 , p_source_51 => p_source_51
124742          , x_transaction_coa_id       => l_adr_transaction_coa_id
124743          , x_accounting_coa_id        => l_adr_accounting_coa_id
124744          , x_value_type_code          => l_adr_value_type_code
124745          , p_side                     => 'NA'
124746    );
124747 
124748    xla_ae_lines_pkg.set_ccid(
124749     p_code_combination_id          => l_ccid
124750   , p_value_type_code              => l_adr_value_type_code
124751   , p_transaction_coa_id           => l_adr_transaction_coa_id
124752   , p_accounting_coa_id            => l_adr_accounting_coa_id
124753   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
124754   , p_adr_type_code                => 'S'
124755   , p_component_type               => l_component_type
124756   , p_component_code               => l_component_code
124757   , p_component_type_code          => l_component_type_code
124758   , p_component_appl_id            => l_component_appl_id
124759   , p_amb_context_code             => l_amb_context_code
124760   , p_side                         => 'NA'
124761   );
124762 
124763 
124764    --
124765    --
124766    END IF;
124767 
124768        --
124769        -- Update the line information that should be overwritten
124770        --
124771        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
124772                                          p_header_num   => 1);
124776 
124773        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
124774 
124775        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
124777        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
124778           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
124779        END IF;
124780 
124781       --
124782       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
124783       --
124784       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
124785           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
124786       ELSE
124787           ---------------------------------------------------------------------------------------------------
124788           -- 4262811a Switch Sign
124789           ---------------------------------------------------------------------------------------------------
124790           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
124791           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
124792                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
124793           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
124794                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
124795           -- 5132302
124796           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
124797                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
124798 
124799       END IF;
124800 
124801       -- 4955764
124802       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
124803       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
124804 
124805 
124806       XLA_AE_LINES_PKG.ValidateCurrentLine;
124807       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
124808 
124809       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
124810                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
124811                ,p_balance_type_code => l_balance_type_code);
124812 
124813    END IF;
124814 
124815    -----------------------------------------------------------------------------------------
124816    -- 4262811 Multiperiod Accounting
124817    -----------------------------------------------------------------------------------------
124818      -- No MPA option is assigned.
124819 
124820 
124821 END IF;
124822 END IF;
124823 --
124824 
124825 --
124826 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
124827    trace
124828       (p_msg      => 'END of AcctLineType_205'
124829       ,p_level    => C_LEVEL_PROCEDURE
124830       ,p_module   => l_log_module);
124831 END IF;
124832 --
124833 EXCEPTION
124834   WHEN xla_exceptions_pkg.application_exception THEN
124835       RAISE;
124836   WHEN OTHERS THEN
124837        xla_exceptions_pkg.raise_message
124838            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_205');
124839 END AcctLineType_205;
124840 --
124841 
124842 ---------------------------------------
124843 --
124844 -- PRIVATE FUNCTION
124845 --         AcctLineType_206
124846 --
124847 ---------------------------------------
124848 PROCEDURE AcctLineType_206 (
124849   p_application_id        IN NUMBER
124850  ,p_event_id              IN NUMBER
124851  ,p_calculate_acctd_flag  IN VARCHAR2
124852  ,p_calculate_g_l_flag    IN VARCHAR2
124853  ,p_actual_flag           IN OUT VARCHAR2
124854  ,p_balance_type_code     OUT VARCHAR2
124855  ,p_gain_or_loss_ref      OUT VARCHAR2
124856  
124857 --Invoice Distribution Description
124858  , p_source_1            IN VARCHAR2
124859 --Invoice Distribution Ledger Amount
124860  , p_source_21            IN NUMBER
124861 --Invoice Distribution Type
124862  , p_source_33            IN VARCHAR2
124863  , p_source_33_meaning    IN VARCHAR2
124864 --Self-Assessed Tax Liability Account
124865  , p_source_51            IN NUMBER
124866 --Accounting Reversal Indicator
124867  , p_source_53            IN VARCHAR2
124868 --Distribution Link Type
124869  , p_source_55            IN VARCHAR2
124870 --Allocation to Main Distribution Identifier
124871  , p_source_57            IN NUMBER
124872 --Invoice Identifier
124873  , p_source_58            IN NUMBER
124874 --Invoice Distribution Identifier
124875  , p_source_64            IN NUMBER
124876 --Payables Encumbrance Upgrade Credit Account
124877  , p_source_65            IN NUMBER
124878 --Payables Encumbrance Upgrade Credit Amount
124879  , p_source_66            IN NUMBER
124880 --Invoice Currency Code
124881  , p_source_67            IN VARCHAR2
124882 --Payables Encumbrance Upgrade Credit Base Amount
124883  , p_source_68            IN NUMBER
124884 --Payables Encumbrance Upgrade Debit Account
124885  , p_source_69            IN NUMBER
124886 --Payables Encumbrance Upgrade Debit Amount
124887  , p_source_70            IN NUMBER
124888 --Payables Encumbrance Upgrade Debit Base Amount
124889  , p_source_71            IN NUMBER
124890 --Payables Encumbrance Upgrade Option
124891  , p_source_72            IN VARCHAR2
124892 --Invoice Distribution Amount
124893  , p_source_73            IN NUMBER
124894 --Deferred Accounting End Date
124898 --Deferred Accounting Start Date
124895  , p_source_77            IN DATE
124896 --Deferred Accounting Option
124897  , p_source_78            IN VARCHAR2
124899  , p_source_79            IN DATE
124900 --Override Accounted Amount Indicator
124901  , p_source_80            IN VARCHAR2
124902  , p_source_80_meaning    IN VARCHAR2
124903 --Invoice Supplier Identifier
124904  , p_source_81            IN NUMBER
124905 --Invoice Supplier Site Identifier
124906  , p_source_82            IN NUMBER
124907 --Third Party Type
124908  , p_source_83            IN VARCHAR2
124909 --Parent Reversal Identifier
124910  , p_source_84            IN NUMBER
124911 --Invoice Distribution Statistical Amount
124912  , p_source_85            IN NUMBER
124913 --Invoice Distribution Tax Line Identifier
124914  , p_source_86            IN NUMBER
124915 --Invoice Distribution Tax Distribution Identifier from Tax
124916  , p_source_87            IN NUMBER
124917 --Invoice Distribution Summary Tax Line Identifier
124918  , p_source_88            IN NUMBER
124919 --Payables Upgrade Credit Encumbrance Type Identifier
124920  , p_source_89            IN NUMBER
124921 --Payables Upgrade Debit Encumbrance Type Identifier
124922  , p_source_90            IN NUMBER
124923 --Business Flow Accounts Payable Application Identifier
124924  , p_source_91            IN NUMBER
124925 --Business Flow Invoice Distribution Type
124926  , p_source_92            IN VARCHAR2
124927 --Business Flow Invoice Entity Code
124928  , p_source_93            IN VARCHAR2
124929 --Business Flow Invoice Distribution Identifier
124930  , p_source_94            IN NUMBER
124931 --Business Flow Invoice Identifier
124932  , p_source_95            IN NUMBER
124933 --Self-Assessed Tax Flag
124934  , p_source_142            IN VARCHAR2
124935  , p_source_142_meaning    IN VARCHAR2
124936 --Invoice Exchange Date
124937  , p_source_143            IN DATE
124938 --Invoice Exchange Rate
124939  , p_source_144            IN NUMBER
124940 --Invoice Exchange Rate Type
124941  , p_source_145            IN VARCHAR2
124942 )
124943 IS
124944 
124945 l_component_type              VARCHAR2(80);
124946 l_component_code              VARCHAR2(30);
124947 l_component_type_code         VARCHAR2(1);
124948 l_component_appl_id           INTEGER;
124949 l_amb_context_code            VARCHAR2(30);
124950 l_entity_code                 VARCHAR2(30);
124951 l_event_class_code            VARCHAR2(30);
124952 l_ae_header_id                NUMBER;
124953 l_event_type_code             VARCHAR2(30);
124954 l_line_definition_code        VARCHAR2(30);
124955 l_line_definition_owner_code  VARCHAR2(1);
124956 --
124957 -- adr variables
124958 l_segment                     VARCHAR2(30);
124959 l_ccid                        NUMBER;
124960 l_adr_transaction_coa_id      NUMBER;
124961 l_adr_accounting_coa_id       NUMBER;
124962 l_adr_flexfield_segment_code  VARCHAR2(30);
124963 l_adr_flex_value_set_id       NUMBER;
124964 l_adr_value_type_code         VARCHAR2(30);
124965 l_adr_value_combination_id    NUMBER;
124966 l_adr_value_segment_code      VARCHAR2(30);
124967 
124968 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
124969 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
124970 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
124971 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
124972 
124973 -- 4262811 Variables ------------------------------------------------------------------------------------------
124974 l_entered_amt_idx             NUMBER;
124975 l_accted_amt_idx              NUMBER;
124976 l_acc_rev_flag                VARCHAR2(1);
124977 l_accrual_line_num            NUMBER;
124978 l_tmp_amt                     NUMBER;
124979 l_acc_rev_natural_side_code   VARCHAR2(1);
124980 
124981 l_num_entries                 NUMBER;
124982 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
124983 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
124984 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
124985 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
124986 l_recog_line_1                NUMBER;
124987 l_recog_line_2                NUMBER;
124988 
124989 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
124990 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
124991 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
124992 
124993 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
124994 
124995 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
124996 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
124997 
124998 ---------------------------------------------------------------------------------------------------------------
124999 
125000 
125001 --
125002 -- bulk performance
125003 --
125004 l_balance_type_code           VARCHAR2(1);
125005 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
125006 l_log_module                  VARCHAR2(240);
125007 
125008 --
125009 -- Upgrade strategy
125010 --
125011 l_actual_upg_option           VARCHAR2(1);
125012 l_enc_upg_option           VARCHAR2(1);
125013 
125014 --
125015 BEGIN
125016 --
125017 IF g_log_enabled THEN
125018       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_206';
125019 END IF;
125020 --
125021 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
125022 
125026          ,p_module   => l_log_module);
125023       trace
125024          (p_msg      => 'BEGIN of AcctLineType_206'
125025          ,p_level    => C_LEVEL_PROCEDURE
125027 
125028 END IF;
125029 --
125030 l_component_type             := 'AMB_JLT';
125031 l_component_code             := 'AP_SELF_ASSESSED_TAX_LIB_PP';
125032 l_component_type_code        := 'S';
125033 l_component_appl_id          :=  200;
125034 l_amb_context_code           := 'DEFAULT';
125035 l_entity_code                := 'AP_INVOICES';
125036 l_event_class_code           := 'PREPAYMENTS';
125037 l_event_type_code            := 'PREPAYMENTS_ALL';
125038 l_line_definition_owner_code := 'S';
125039 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
125040 --
125041 l_balance_type_code          := 'A';
125042 l_segment                     := NULL;
125043 l_ccid                        := NULL;
125044 l_adr_transaction_coa_id      := NULL;
125045 l_adr_accounting_coa_id       := NULL;
125046 l_adr_flexfield_segment_code  := NULL;
125047 l_adr_flex_value_set_id       := NULL;
125048 l_adr_value_type_code         := NULL;
125049 l_adr_value_combination_id    := NULL;
125050 l_adr_value_segment_code      := NULL;
125051 
125052 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
125053 l_bflow_class_code           := '';    -- 4219869 Business Flow
125054 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
125055 l_budgetary_control_flag     := 'N';
125056 
125057 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
125058 l_bflow_applied_to_amt       := NULL; -- 5132302
125059 l_entered_amt_idx            := NULL;          -- 4262811
125060 l_accted_amt_idx             := NULL;          -- 4262811
125061 l_acc_rev_flag               := NULL;          -- 4262811
125062 l_accrual_line_num           := NULL;          -- 4262811
125063 l_tmp_amt                    := NULL;          -- 4262811
125064 --
125065  
125066 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
125067     l_balance_type_code <> 'B' THEN
125068 IF (NVL(p_source_33,'
125069 ') =  'REC_TAX' OR 
125070 NVL(p_source_33,'
125071 ') =  'NONREC_TAX') AND 
125072 NVL(p_source_142,'
125073 ') =  'Y'
125074  THEN 
125075 
125076    --
125077    XLA_AE_LINES_PKG.SetNewLine;
125078 
125079    p_balance_type_code          := l_balance_type_code;
125080    -- set the flag so later we will know whether the gain loss line needs to be created
125081    
125082    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
125083      p_actual_flag :='A';
125084    END IF;
125085 
125086    --
125087    -- bulk performance
125088    --
125089    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
125090                                       p_header_num   => 0); -- 4262811
125091    --
125092    -- set accounting line options
125093    --
125094    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
125095            p_natural_side_code          => 'C'
125096          , p_gain_or_loss_flag          => 'N'
125097          , p_gl_transfer_mode_code      => 'S'
125098          , p_acct_entry_type_code       => 'A'
125099          , p_switch_side_flag           => 'Y'
125100          , p_merge_duplicate_code       => 'A'
125101          );
125102    --
125103    l_acc_rev_natural_side_code := 'D';  -- 4262811
125104    -- 
125105    --
125106    -- set accounting line type info
125107    --
125108    xla_ae_lines_pkg.SetAcctLineType
125109       (p_component_type             => l_component_type
125110       ,p_event_type_code            => l_event_type_code
125111       ,p_line_definition_owner_code => l_line_definition_owner_code
125112       ,p_line_definition_code       => l_line_definition_code
125113       ,p_accounting_line_code       => l_component_code
125114       ,p_accounting_line_type_code  => l_component_type_code
125115       ,p_accounting_line_appl_id    => l_component_appl_id
125116       ,p_amb_context_code           => l_amb_context_code
125117       ,p_entity_code                => l_entity_code
125118       ,p_event_class_code           => l_event_class_code);
125119    --
125120    -- set accounting class
125121    --
125122    xla_ae_lines_pkg.SetAcctClass(
125123            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
125124          , p_ae_header_id           => l_ae_header_id
125125          );
125126 
125127    --
125128    -- set rounding class
125129    --
125130    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
125131                       'SELF_ASSESSED_TAX';
125132 
125133    --
125134    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
125135    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
125136    --
125137    -- bulk performance
125138    --
125139    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
125140 
125141    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
125142       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
125143 
125144    -- 4955764
125145    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
125146       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
125147 
125148    -- 4458381 Public Sector Enh
125149    
125150    --
125154    l_accted_amt_idx  := 28;
125151    -- set accounting attributes for the line type
125152    --
125153    l_entered_amt_idx := 23;
125155    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
125156    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
125157    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
125158    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
125159    l_rec_acct_attrs.array_num_value(2)  := 
125160 xla_ae_sources_pkg.GetSystemSourceNum(
125161    p_source_code           => 'XLA_EVENT_APPL_ID'
125162  , p_source_type_code      => 'Y'
125163  , p_source_application_id =>  602
125164 );
125165    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
125166    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
125167    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
125168    l_rec_acct_attrs.array_char_value(4)  := 
125169 xla_ae_sources_pkg.GetSystemSourceChar(
125170    p_source_code           => 'XLA_ENTITY_CODE'
125171  , p_source_type_code      => 'Y'
125172  , p_source_application_id =>  602
125173 );
125174    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
125175    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
125176    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
125177    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
125178    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
125179    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
125180    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
125181    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
125182    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
125183    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
125184    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
125185    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
125186    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
125187    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
125188    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
125189    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
125190    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
125191    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
125192    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
125193    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
125194    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
125195    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
125196    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
125197    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
125198    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
125199    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
125200    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
125201    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
125202    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
125203    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
125204    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
125205    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
125206    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
125207    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
125208    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
125209    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
125210    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
125211    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
125212    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
125213    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
125214    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
125215    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
125216    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
125217    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
125218    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
125219    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
125220    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
125221    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
125222    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
125223    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
125224    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
125225    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
125226    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
125227    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
125228    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
125229    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
125230    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
125231    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
125232    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
125233    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
125234    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
125235    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
125236    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
125237    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
125238    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
125239    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
125243    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
125240    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
125241    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
125242    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
125244    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
125245    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
125246    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
125247    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
125248    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
125249    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
125250    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
125251    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
125252 
125253    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
125254    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
125255 
125256    ---------------------------------------------------------------------------------------------------------------
125257    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
125258    ---------------------------------------------------------------------------------------------------------------
125259    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
125260 
125261    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
125262    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
125263 
125264    IF xla_accounting_cache_pkg.GetValueChar
125265          (p_source_code         => 'LEDGER_CATEGORY_CODE'
125266          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
125267    AND l_bflow_method_code = 'PRIOR_ENTRY'
125268 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
125269    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
125270          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
125271        )
125272    THEN
125273          xla_ae_lines_pkg.BflowUpgEntry
125274            (p_business_method_code    => l_bflow_method_code
125275            ,p_business_class_code     => l_bflow_class_code
125276            ,p_balance_type            => l_balance_type_code);
125277    ELSE
125278       NULL;
125279 -- No business flow processing for business flow method of NONE.
125280    END IF;
125281 
125282    --
125283    -- call analytical criteria
125284    --
125285    
125286    --
125287    -- call description
125288    --
125289    
125290 xla_ae_lines_pkg.SetLineDescription(
125291    p_ae_header_id => l_ae_header_id
125292   ,p_description  => Description_1 (
125293      p_application_id         => p_application_id
125294    , p_ae_header_id           => l_ae_header_id 
125295 , p_source_1 => p_source_1
125296    )
125297 );
125298 
125299 
125300    --
125301    -- call ADRs
125302    -- Bug 4922099
125303    --
125304    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
125305         (NVL(l_actual_upg_option, 'N') = 'O') OR
125306         (NVL(l_enc_upg_option, 'N') = 'O')
125307       )
125308    THEN
125309    NULL;
125310    --
125311    --
125312    
125313   l_ccid := AcctDerRule_43(
125314            p_application_id           => p_application_id
125315          , p_ae_header_id             => l_ae_header_id 
125316 , p_source_51 => p_source_51
125317          , x_transaction_coa_id       => l_adr_transaction_coa_id
125318          , x_accounting_coa_id        => l_adr_accounting_coa_id
125319          , x_value_type_code          => l_adr_value_type_code
125320          , p_side                     => 'NA'
125321    );
125322 
125323    xla_ae_lines_pkg.set_ccid(
125324     p_code_combination_id          => l_ccid
125325   , p_value_type_code              => l_adr_value_type_code
125326   , p_transaction_coa_id           => l_adr_transaction_coa_id
125327   , p_accounting_coa_id            => l_adr_accounting_coa_id
125328   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
125329   , p_adr_type_code                => 'S'
125330   , p_component_type               => l_component_type
125331   , p_component_code               => l_component_code
125332   , p_component_type_code          => l_component_type_code
125333   , p_component_appl_id            => l_component_appl_id
125334   , p_amb_context_code             => l_amb_context_code
125335   , p_side                         => 'NA'
125336   );
125337 
125338 
125339    --
125340    --
125341    END IF;
125342    --
125343    -- Bug 4922099
125344    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
125345           (NVL(l_enc_upg_option, 'N') = 'O')
125346         ) AND
125347         (l_bflow_method_code = 'PRIOR_ENTRY')
125348       )
125349    THEN
125350       IF
125351       --
125352       1 = 2
125353       --
125354       THEN
125355       xla_accounting_err_pkg.build_message
125356                                     (p_appli_s_name            => 'XLA'
125357                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
125358                                     ,p_token_1                 => 'LINE_NUMBER'
125359                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
125360                                     ,p_token_2                 => 'LINE_TYPE_NAME'
125361                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
125365                                                                             ,l_component_appl_id
125362                                                                              l_component_type
125363                                                                             ,l_component_code
125364                                                                             ,l_component_type_code
125366                                                                             ,l_amb_context_code
125367                                                                             ,l_entity_code
125368                                                                             ,l_event_class_code
125369                                                                            )
125370                                     ,p_token_3                 => 'OWNER'
125371                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
125372                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
125373                                                                           ,p_lookup_code    => l_component_type_code
125374                                                                          )
125375                                     ,p_token_4                 => 'PRODUCT_NAME'
125376                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
125377                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
125378                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
125379                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
125380                                     ,p_ae_header_id            =>  NULL
125381                                        );
125382 
125383         IF (C_LEVEL_ERROR>= g_log_level) THEN
125384                  trace
125385                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
125386                       ,p_level    => C_LEVEL_ERROR
125387                       ,p_module   => l_log_module);
125388         END IF;
125389       END IF;
125390    END IF;
125391    --
125392    --
125393    ------------------------------------------------------------------------------------------------
125394    -- 4219869 Business Flow
125395    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
125396    -- Prior Entry.  Currently, the following code is always generated.
125397    ------------------------------------------------------------------------------------------------
125398    XLA_AE_LINES_PKG.ValidateCurrentLine;
125399 
125400    ------------------------------------------------------------------------------------
125401    -- 4219869 Business Flow
125402    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
125403    ------------------------------------------------------------------------------------
125404    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
125405 
125406    ----------------------------------------------------------------------------------
125407    -- 4219869 Business Flow
125408    -- Update journal entry status -- Need to generate this within IF <condition>
125409    ----------------------------------------------------------------------------------
125410    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
125411          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
125412          ,p_balance_type_code => l_balance_type_code
125413          );
125414 
125415    -------------------------------------------------------------------------------------------
125416    -- 4262811 - Generate the Accrual Reversal lines
125417    -------------------------------------------------------------------------------------------
125418    BEGIN
125419       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
125420                               (g_array_event(p_event_id).array_value_num('header_index'));
125421       IF l_acc_rev_flag IS NULL THEN
125422          l_acc_rev_flag := 'N';
125423       END IF;
125424    EXCEPTION
125425       WHEN OTHERS THEN
125426          l_acc_rev_flag := 'N';
125427    END;
125428    --
125429    IF (l_acc_rev_flag = 'Y') THEN
125430 
125431        -- 4645092  ------------------------------------------------------------------------------
125432        -- To allow MPA report to determine if it should generate report process
125433        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
125434        ------------------------------------------------------------------------------------------
125435 
125436        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
125437        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
125438    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
125439    -- call ADRs
125440    -- Bug 4922099
125441    --
125442    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
125443         (NVL(l_actual_upg_option, 'N') = 'O') OR
125444         (NVL(l_enc_upg_option, 'N') = 'O')
125445       )
125446    THEN
125447    NULL;
125448    --
125449    --
125450    
125451   l_ccid := AcctDerRule_43(
125452            p_application_id           => p_application_id
125453          , p_ae_header_id             => l_ae_header_id 
125454 , p_source_51 => p_source_51
125455          , x_transaction_coa_id       => l_adr_transaction_coa_id
125456          , x_accounting_coa_id        => l_adr_accounting_coa_id
125457          , x_value_type_code          => l_adr_value_type_code
125458          , p_side                     => 'NA'
125462     p_code_combination_id          => l_ccid
125459    );
125460 
125461    xla_ae_lines_pkg.set_ccid(
125463   , p_value_type_code              => l_adr_value_type_code
125464   , p_transaction_coa_id           => l_adr_transaction_coa_id
125465   , p_accounting_coa_id            => l_adr_accounting_coa_id
125466   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX_LIAB'
125467   , p_adr_type_code                => 'S'
125468   , p_component_type               => l_component_type
125469   , p_component_code               => l_component_code
125470   , p_component_type_code          => l_component_type_code
125471   , p_component_appl_id            => l_component_appl_id
125472   , p_amb_context_code             => l_amb_context_code
125473   , p_side                         => 'NA'
125474   );
125475 
125476 
125477    --
125478    --
125479    END IF;
125480 
125481        --
125482        -- Update the line information that should be overwritten
125483        --
125484        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
125485                                          p_header_num   => 1);
125486        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
125487 
125488        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
125489 
125490        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
125491           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
125492        END IF;
125493 
125494       --
125495       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
125496       --
125497       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
125498           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
125499       ELSE
125500           ---------------------------------------------------------------------------------------------------
125501           -- 4262811a Switch Sign
125502           ---------------------------------------------------------------------------------------------------
125503           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
125504           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
125505                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
125506           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
125507                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
125508           -- 5132302
125509           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
125510                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
125511 
125512       END IF;
125513 
125514       -- 4955764
125515       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
125516       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
125517 
125518 
125519       XLA_AE_LINES_PKG.ValidateCurrentLine;
125520       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
125521 
125522       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
125523                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
125524                ,p_balance_type_code => l_balance_type_code);
125525 
125526    END IF;
125527 
125528    -----------------------------------------------------------------------------------------
125529    -- 4262811 Multiperiod Accounting
125530    -----------------------------------------------------------------------------------------
125531      -- No MPA option is assigned.
125532 
125533 
125534 END IF;
125535 END IF;
125536 --
125537 
125538 --
125539 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
125540    trace
125541       (p_msg      => 'END of AcctLineType_206'
125542       ,p_level    => C_LEVEL_PROCEDURE
125543       ,p_module   => l_log_module);
125544 END IF;
125545 --
125546 EXCEPTION
125547   WHEN xla_exceptions_pkg.application_exception THEN
125548       RAISE;
125549   WHEN OTHERS THEN
125550        xla_exceptions_pkg.raise_message
125551            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_206');
125552 END AcctLineType_206;
125553 --
125554 
125555 ---------------------------------------
125556 --
125557 -- PRIVATE FUNCTION
125558 --         AcctLineType_207
125559 --
125560 ---------------------------------------
125561 PROCEDURE AcctLineType_207 (
125562   p_application_id        IN NUMBER
125563  ,p_event_id              IN NUMBER
125564  ,p_calculate_acctd_flag  IN VARCHAR2
125565  ,p_calculate_g_l_flag    IN VARCHAR2
125566  ,p_actual_flag           IN OUT VARCHAR2
125567  ,p_balance_type_code     OUT VARCHAR2
125568  ,p_gain_or_loss_ref      OUT VARCHAR2
125569  
125570 --Invoice Distribution Description
125571  , p_source_1            IN VARCHAR2
125572 --Invoice Distribution Ledger Amount
125573  , p_source_21            IN NUMBER
125574 --Invoice Distribution Type
125575  , p_source_33            IN VARCHAR2
125576  , p_source_33_meaning    IN VARCHAR2
125577 --Self-Assessed Tax Account
125578  , p_source_50            IN NUMBER
125579 --Accounting Reversal Indicator
125580  , p_source_53            IN VARCHAR2
125581 --Distribution Link Type
125585 --Invoice Identifier
125582  , p_source_55            IN VARCHAR2
125583 --Allocation to Main Distribution Identifier
125584  , p_source_57            IN NUMBER
125586  , p_source_58            IN NUMBER
125587 --Invoice Distribution Identifier
125588  , p_source_64            IN NUMBER
125589 --Payables Encumbrance Upgrade Credit Account
125590  , p_source_65            IN NUMBER
125591 --Payables Encumbrance Upgrade Credit Amount
125592  , p_source_66            IN NUMBER
125593 --Invoice Currency Code
125594  , p_source_67            IN VARCHAR2
125595 --Payables Encumbrance Upgrade Credit Base Amount
125596  , p_source_68            IN NUMBER
125597 --Payables Encumbrance Upgrade Debit Account
125598  , p_source_69            IN NUMBER
125599 --Payables Encumbrance Upgrade Debit Amount
125600  , p_source_70            IN NUMBER
125601 --Payables Encumbrance Upgrade Debit Base Amount
125602  , p_source_71            IN NUMBER
125603 --Payables Encumbrance Upgrade Option
125604  , p_source_72            IN VARCHAR2
125605 --Invoice Distribution Amount
125606  , p_source_73            IN NUMBER
125607 --Purchase Order Exchange Rate Date
125608  , p_source_74            IN DATE
125609 --Purchase Order Exchange Rate
125610  , p_source_75            IN NUMBER
125611 --Purchase Order Exchange Rate Type
125612  , p_source_76            IN VARCHAR2
125613 --Deferred Accounting End Date
125614  , p_source_77            IN DATE
125615 --Deferred Accounting Option
125616  , p_source_78            IN VARCHAR2
125617 --Deferred Accounting Start Date
125618  , p_source_79            IN DATE
125619 --Override Accounted Amount Indicator
125620  , p_source_80            IN VARCHAR2
125621  , p_source_80_meaning    IN VARCHAR2
125622 --Invoice Supplier Identifier
125623  , p_source_81            IN NUMBER
125624 --Invoice Supplier Site Identifier
125625  , p_source_82            IN NUMBER
125626 --Third Party Type
125627  , p_source_83            IN VARCHAR2
125628 --Parent Reversal Identifier
125629  , p_source_84            IN NUMBER
125630 --Invoice Distribution Statistical Amount
125631  , p_source_85            IN NUMBER
125632 --Invoice Distribution Tax Line Identifier
125633  , p_source_86            IN NUMBER
125634 --Invoice Distribution Tax Distribution Identifier from Tax
125635  , p_source_87            IN NUMBER
125636 --Invoice Distribution Summary Tax Line Identifier
125637  , p_source_88            IN NUMBER
125638 --Payables Upgrade Credit Encumbrance Type Identifier
125639  , p_source_89            IN NUMBER
125640 --Payables Upgrade Debit Encumbrance Type Identifier
125641  , p_source_90            IN NUMBER
125642 --Business Flow Accounts Payable Application Identifier
125643  , p_source_91            IN NUMBER
125644 --Business Flow Invoice Distribution Type
125645  , p_source_92            IN VARCHAR2
125646 --Business Flow Invoice Entity Code
125647  , p_source_93            IN VARCHAR2
125648 --Business Flow Invoice Distribution Identifier
125649  , p_source_94            IN NUMBER
125650 --Business Flow Invoice Identifier
125651  , p_source_95            IN NUMBER
125652 --Accrue on Receipt Option
125653  , p_source_96            IN VARCHAR2
125654  , p_source_96_meaning    IN VARCHAR2
125655 --Self-Assessed Tax Flag
125656  , p_source_142            IN VARCHAR2
125657  , p_source_142_meaning    IN VARCHAR2
125658 )
125659 IS
125660 
125661 l_component_type              VARCHAR2(80);
125662 l_component_code              VARCHAR2(30);
125663 l_component_type_code         VARCHAR2(1);
125664 l_component_appl_id           INTEGER;
125665 l_amb_context_code            VARCHAR2(30);
125666 l_entity_code                 VARCHAR2(30);
125667 l_event_class_code            VARCHAR2(30);
125668 l_ae_header_id                NUMBER;
125669 l_event_type_code             VARCHAR2(30);
125670 l_line_definition_code        VARCHAR2(30);
125671 l_line_definition_owner_code  VARCHAR2(1);
125672 --
125673 -- adr variables
125674 l_segment                     VARCHAR2(30);
125675 l_ccid                        NUMBER;
125676 l_adr_transaction_coa_id      NUMBER;
125677 l_adr_accounting_coa_id       NUMBER;
125678 l_adr_flexfield_segment_code  VARCHAR2(30);
125679 l_adr_flex_value_set_id       NUMBER;
125680 l_adr_value_type_code         VARCHAR2(30);
125681 l_adr_value_combination_id    NUMBER;
125682 l_adr_value_segment_code      VARCHAR2(30);
125683 
125684 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
125685 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
125686 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
125687 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
125688 
125689 -- 4262811 Variables ------------------------------------------------------------------------------------------
125690 l_entered_amt_idx             NUMBER;
125691 l_accted_amt_idx              NUMBER;
125692 l_acc_rev_flag                VARCHAR2(1);
125693 l_accrual_line_num            NUMBER;
125694 l_tmp_amt                     NUMBER;
125695 l_acc_rev_natural_side_code   VARCHAR2(1);
125696 
125697 l_num_entries                 NUMBER;
125698 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
125699 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
125700 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
125701 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
125702 l_recog_line_1                NUMBER;
125703 l_recog_line_2                NUMBER;
125704 
125708 
125705 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
125706 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
125707 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
125709 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
125710 
125711 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
125712 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
125713 
125714 ---------------------------------------------------------------------------------------------------------------
125715 
125716 
125717 --
125718 -- bulk performance
125719 --
125720 l_balance_type_code           VARCHAR2(1);
125721 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
125722 l_log_module                  VARCHAR2(240);
125723 
125724 --
125725 -- Upgrade strategy
125726 --
125727 l_actual_upg_option           VARCHAR2(1);
125728 l_enc_upg_option           VARCHAR2(1);
125729 
125730 --
125731 BEGIN
125732 --
125733 IF g_log_enabled THEN
125734       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_207';
125735 END IF;
125736 --
125737 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
125738 
125739       trace
125740          (p_msg      => 'BEGIN of AcctLineType_207'
125741          ,p_level    => C_LEVEL_PROCEDURE
125742          ,p_module   => l_log_module);
125743 
125744 END IF;
125745 --
125746 l_component_type             := 'AMB_JLT';
125747 l_component_code             := 'AP_SELF_NONREC_ACCRUAL_PREPAY';
125748 l_component_type_code        := 'S';
125749 l_component_appl_id          :=  200;
125750 l_amb_context_code           := 'DEFAULT';
125751 l_entity_code                := 'AP_INVOICES';
125752 l_event_class_code           := 'PREPAYMENTS';
125753 l_event_type_code            := 'PREPAYMENTS_ALL';
125754 l_line_definition_owner_code := 'S';
125755 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
125756 --
125757 l_balance_type_code          := 'A';
125758 l_segment                     := NULL;
125759 l_ccid                        := NULL;
125760 l_adr_transaction_coa_id      := NULL;
125761 l_adr_accounting_coa_id       := NULL;
125762 l_adr_flexfield_segment_code  := NULL;
125763 l_adr_flex_value_set_id       := NULL;
125764 l_adr_value_type_code         := NULL;
125765 l_adr_value_combination_id    := NULL;
125766 l_adr_value_segment_code      := NULL;
125767 
125768 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
125769 l_bflow_class_code           := '';    -- 4219869 Business Flow
125770 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
125771 l_budgetary_control_flag     := 'N';
125772 
125773 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
125774 l_bflow_applied_to_amt       := NULL; -- 5132302
125775 l_entered_amt_idx            := NULL;          -- 4262811
125776 l_accted_amt_idx             := NULL;          -- 4262811
125777 l_acc_rev_flag               := NULL;          -- 4262811
125778 l_accrual_line_num           := NULL;          -- 4262811
125779 l_tmp_amt                    := NULL;          -- 4262811
125780 --
125781  
125782 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
125783     l_balance_type_code <> 'B' THEN
125784 IF NVL(p_source_33,'
125785 ') =  'NONREC_TAX' AND 
125786 NVL(p_source_142,'
125787 ') =  'Y' AND 
125788 NVL(p_source_96,'
125789 ') =  'Y'
125790  THEN 
125791 
125792    --
125793    XLA_AE_LINES_PKG.SetNewLine;
125794 
125795    p_balance_type_code          := l_balance_type_code;
125796    -- set the flag so later we will know whether the gain loss line needs to be created
125797    
125798    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
125799      p_actual_flag :='A';
125800    END IF;
125801 
125802    --
125803    -- bulk performance
125804    --
125805    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
125806                                       p_header_num   => 0); -- 4262811
125807    --
125808    -- set accounting line options
125809    --
125810    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
125811            p_natural_side_code          => 'D'
125812          , p_gain_or_loss_flag          => 'N'
125813          , p_gl_transfer_mode_code      => 'S'
125814          , p_acct_entry_type_code       => 'A'
125815          , p_switch_side_flag           => 'Y'
125816          , p_merge_duplicate_code       => 'A'
125817          );
125818    --
125819    l_acc_rev_natural_side_code := 'C';  -- 4262811
125820    -- 
125821    --
125822    -- set accounting line type info
125823    --
125824    xla_ae_lines_pkg.SetAcctLineType
125825       (p_component_type             => l_component_type
125826       ,p_event_type_code            => l_event_type_code
125827       ,p_line_definition_owner_code => l_line_definition_owner_code
125828       ,p_line_definition_code       => l_line_definition_code
125829       ,p_accounting_line_code       => l_component_code
125830       ,p_accounting_line_type_code  => l_component_type_code
125831       ,p_accounting_line_appl_id    => l_component_appl_id
125832       ,p_amb_context_code           => l_amb_context_code
125833       ,p_entity_code                => l_entity_code
125834       ,p_event_class_code           => l_event_class_code);
125835    --
125836    -- set accounting class
125837    --
125841          );
125838    xla_ae_lines_pkg.SetAcctClass(
125839            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
125840          , p_ae_header_id           => l_ae_header_id
125842 
125843    --
125844    -- set rounding class
125845    --
125846    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
125847                       'SELF_ASSESSED_TAX';
125848 
125849    --
125850    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
125851    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
125852    --
125853    -- bulk performance
125854    --
125855    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
125856 
125857    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
125858       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
125859 
125860    -- 4955764
125861    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
125862       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
125863 
125864    -- 4458381 Public Sector Enh
125865    
125866    --
125867    -- set accounting attributes for the line type
125868    --
125869    l_entered_amt_idx := 23;
125870    l_accted_amt_idx  := 28;
125871    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
125872    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
125873    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
125874    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
125875    l_rec_acct_attrs.array_num_value(2)  := 
125876 xla_ae_sources_pkg.GetSystemSourceNum(
125877    p_source_code           => 'XLA_EVENT_APPL_ID'
125878  , p_source_type_code      => 'Y'
125879  , p_source_application_id =>  602
125880 );
125881    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
125882    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
125883    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
125884    l_rec_acct_attrs.array_char_value(4)  := 
125885 xla_ae_sources_pkg.GetSystemSourceChar(
125886    p_source_code           => 'XLA_ENTITY_CODE'
125887  , p_source_type_code      => 'Y'
125888  , p_source_application_id =>  602
125889 );
125890    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
125891    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
125892    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
125893    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
125894    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
125895    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
125896    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
125897    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
125898    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
125899    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
125900    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
125901    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
125902    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
125903    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
125904    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
125905    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
125906    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
125907    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
125908    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
125909    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
125910    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
125911    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
125912    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
125913    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
125914    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
125915    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
125916    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
125917    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
125918    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
125919    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
125920    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
125921    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
125922    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
125923    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
125924    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
125925    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
125926    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
125927    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
125928    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
125929    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
125930    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
125931    l_rec_acct_attrs.array_date_value(25)  := p_source_74;
125932    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
125933    l_rec_acct_attrs.array_num_value(26)  := p_source_75;
125934    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
125935    l_rec_acct_attrs.array_char_value(27)  := p_source_76;
125936    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
125937    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
125941    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
125938    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
125939    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
125940    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
125942    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
125943    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
125944    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
125945    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
125946    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
125947    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
125948    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
125949    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
125950    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
125951    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
125952    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
125953    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
125954    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
125955    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
125956    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
125957    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
125958    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
125959    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
125960    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
125961    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
125962    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
125963    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
125964    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
125965    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
125966    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
125967    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
125968 
125969    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
125970    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
125971 
125972    ---------------------------------------------------------------------------------------------------------------
125973    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
125974    ---------------------------------------------------------------------------------------------------------------
125975    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
125976 
125977    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
125978    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
125979 
125980    IF xla_accounting_cache_pkg.GetValueChar
125981          (p_source_code         => 'LEDGER_CATEGORY_CODE'
125982          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
125983    AND l_bflow_method_code = 'PRIOR_ENTRY'
125984 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
125985    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
125986          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
125987        )
125988    THEN
125989          xla_ae_lines_pkg.BflowUpgEntry
125990            (p_business_method_code    => l_bflow_method_code
125991            ,p_business_class_code     => l_bflow_class_code
125992            ,p_balance_type            => l_balance_type_code);
125993    ELSE
125994       NULL;
125995 -- No business flow processing for business flow method of NONE.
125996    END IF;
125997 
125998    --
125999    -- call analytical criteria
126000    --
126001    
126002    --
126003    -- call description
126004    --
126005    
126006 xla_ae_lines_pkg.SetLineDescription(
126007    p_ae_header_id => l_ae_header_id
126008   ,p_description  => Description_1 (
126009      p_application_id         => p_application_id
126010    , p_ae_header_id           => l_ae_header_id 
126011 , p_source_1 => p_source_1
126012    )
126013 );
126014 
126015 
126016    --
126017    -- call ADRs
126018    -- Bug 4922099
126019    --
126020    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
126021         (NVL(l_actual_upg_option, 'N') = 'O') OR
126022         (NVL(l_enc_upg_option, 'N') = 'O')
126023       )
126024    THEN
126025    NULL;
126026    --
126027    --
126028    
126029   l_ccid := AcctDerRule_42(
126030            p_application_id           => p_application_id
126031          , p_ae_header_id             => l_ae_header_id 
126032 , p_source_50 => p_source_50
126033          , x_transaction_coa_id       => l_adr_transaction_coa_id
126034          , x_accounting_coa_id        => l_adr_accounting_coa_id
126035          , x_value_type_code          => l_adr_value_type_code
126036          , p_side                     => 'NA'
126037    );
126038 
126039    xla_ae_lines_pkg.set_ccid(
126040     p_code_combination_id          => l_ccid
126041   , p_value_type_code              => l_adr_value_type_code
126042   , p_transaction_coa_id           => l_adr_transaction_coa_id
126043   , p_accounting_coa_id            => l_adr_accounting_coa_id
126044   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
126045   , p_adr_type_code                => 'S'
126046   , p_component_type               => l_component_type
126047   , p_component_code               => l_component_code
126051   , p_side                         => 'NA'
126048   , p_component_type_code          => l_component_type_code
126049   , p_component_appl_id            => l_component_appl_id
126050   , p_amb_context_code             => l_amb_context_code
126052   );
126053 
126054 
126055    --
126056    --
126057    END IF;
126058    --
126059    -- Bug 4922099
126060    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
126061           (NVL(l_enc_upg_option, 'N') = 'O')
126062         ) AND
126063         (l_bflow_method_code = 'PRIOR_ENTRY')
126064       )
126065    THEN
126066       IF
126067       --
126068       1 = 2
126069       --
126070       THEN
126071       xla_accounting_err_pkg.build_message
126072                                     (p_appli_s_name            => 'XLA'
126073                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
126074                                     ,p_token_1                 => 'LINE_NUMBER'
126075                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
126076                                     ,p_token_2                 => 'LINE_TYPE_NAME'
126077                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
126078                                                                              l_component_type
126079                                                                             ,l_component_code
126080                                                                             ,l_component_type_code
126081                                                                             ,l_component_appl_id
126082                                                                             ,l_amb_context_code
126083                                                                             ,l_entity_code
126084                                                                             ,l_event_class_code
126085                                                                            )
126086                                     ,p_token_3                 => 'OWNER'
126087                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
126088                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
126089                                                                           ,p_lookup_code    => l_component_type_code
126090                                                                          )
126091                                     ,p_token_4                 => 'PRODUCT_NAME'
126092                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
126093                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
126094                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
126095                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
126096                                     ,p_ae_header_id            =>  NULL
126097                                        );
126098 
126099         IF (C_LEVEL_ERROR>= g_log_level) THEN
126100                  trace
126101                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
126102                       ,p_level    => C_LEVEL_ERROR
126103                       ,p_module   => l_log_module);
126104         END IF;
126105       END IF;
126106    END IF;
126107    --
126108    --
126109    ------------------------------------------------------------------------------------------------
126110    -- 4219869 Business Flow
126111    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
126112    -- Prior Entry.  Currently, the following code is always generated.
126113    ------------------------------------------------------------------------------------------------
126114    XLA_AE_LINES_PKG.ValidateCurrentLine;
126115 
126116    ------------------------------------------------------------------------------------
126117    -- 4219869 Business Flow
126118    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
126119    ------------------------------------------------------------------------------------
126120    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
126121 
126122    ----------------------------------------------------------------------------------
126123    -- 4219869 Business Flow
126124    -- Update journal entry status -- Need to generate this within IF <condition>
126125    ----------------------------------------------------------------------------------
126126    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
126127          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
126128          ,p_balance_type_code => l_balance_type_code
126129          );
126130 
126131    -------------------------------------------------------------------------------------------
126132    -- 4262811 - Generate the Accrual Reversal lines
126133    -------------------------------------------------------------------------------------------
126134    BEGIN
126135       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
126136                               (g_array_event(p_event_id).array_value_num('header_index'));
126137       IF l_acc_rev_flag IS NULL THEN
126138          l_acc_rev_flag := 'N';
126139       END IF;
126140    EXCEPTION
126141       WHEN OTHERS THEN
126142          l_acc_rev_flag := 'N';
126143    END;
126144    --
126145    IF (l_acc_rev_flag = 'Y') THEN
126146 
126147        -- 4645092  ------------------------------------------------------------------------------
126151 
126148        -- To allow MPA report to determine if it should generate report process
126149        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
126150        ------------------------------------------------------------------------------------------
126152        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
126153        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
126154    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
126155    -- call ADRs
126156    -- Bug 4922099
126157    --
126158    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
126159         (NVL(l_actual_upg_option, 'N') = 'O') OR
126160         (NVL(l_enc_upg_option, 'N') = 'O')
126161       )
126162    THEN
126163    NULL;
126164    --
126165    --
126166    
126167   l_ccid := AcctDerRule_42(
126168            p_application_id           => p_application_id
126169          , p_ae_header_id             => l_ae_header_id 
126170 , p_source_50 => p_source_50
126171          , x_transaction_coa_id       => l_adr_transaction_coa_id
126172          , x_accounting_coa_id        => l_adr_accounting_coa_id
126173          , x_value_type_code          => l_adr_value_type_code
126174          , p_side                     => 'NA'
126175    );
126176 
126177    xla_ae_lines_pkg.set_ccid(
126178     p_code_combination_id          => l_ccid
126179   , p_value_type_code              => l_adr_value_type_code
126180   , p_transaction_coa_id           => l_adr_transaction_coa_id
126181   , p_accounting_coa_id            => l_adr_accounting_coa_id
126182   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
126183   , p_adr_type_code                => 'S'
126184   , p_component_type               => l_component_type
126185   , p_component_code               => l_component_code
126186   , p_component_type_code          => l_component_type_code
126187   , p_component_appl_id            => l_component_appl_id
126188   , p_amb_context_code             => l_amb_context_code
126189   , p_side                         => 'NA'
126190   );
126191 
126192 
126193    --
126194    --
126195    END IF;
126196 
126197        --
126198        -- Update the line information that should be overwritten
126199        --
126200        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
126201                                          p_header_num   => 1);
126202        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
126203 
126204        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
126205 
126206        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
126207           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
126208        END IF;
126209 
126210       --
126211       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
126212       --
126213       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
126214           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
126215       ELSE
126216           ---------------------------------------------------------------------------------------------------
126217           -- 4262811a Switch Sign
126218           ---------------------------------------------------------------------------------------------------
126219           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
126220           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
126221                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
126222           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
126223                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
126224           -- 5132302
126225           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
126226                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
126227 
126228       END IF;
126229 
126230       -- 4955764
126231       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
126232       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
126233 
126234 
126235       XLA_AE_LINES_PKG.ValidateCurrentLine;
126236       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
126237 
126238       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
126239                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
126240                ,p_balance_type_code => l_balance_type_code);
126241 
126242    END IF;
126243 
126244    -----------------------------------------------------------------------------------------
126245    -- 4262811 Multiperiod Accounting
126246    -----------------------------------------------------------------------------------------
126247      -- No MPA option is assigned.
126248 
126249 
126250 END IF;
126251 END IF;
126252 --
126253 
126254 --
126255 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
126256    trace
126257       (p_msg      => 'END of AcctLineType_207'
126258       ,p_level    => C_LEVEL_PROCEDURE
126259       ,p_module   => l_log_module);
126260 END IF;
126261 --
126262 EXCEPTION
126266        xla_exceptions_pkg.raise_message
126263   WHEN xla_exceptions_pkg.application_exception THEN
126264       RAISE;
126265   WHEN OTHERS THEN
126267            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_207');
126268 END AcctLineType_207;
126269 --
126270 
126271 ---------------------------------------
126272 --
126273 -- PRIVATE FUNCTION
126274 --         AcctLineType_208
126275 --
126276 ---------------------------------------
126277 PROCEDURE AcctLineType_208 (
126278   p_application_id        IN NUMBER
126279  ,p_event_id              IN NUMBER
126280  ,p_calculate_acctd_flag  IN VARCHAR2
126281  ,p_calculate_g_l_flag    IN VARCHAR2
126282  ,p_actual_flag           IN OUT VARCHAR2
126283  ,p_balance_type_code     OUT VARCHAR2
126284  ,p_gain_or_loss_ref      OUT VARCHAR2
126285  
126286 --Invoice Distribution Description
126287  , p_source_1            IN VARCHAR2
126288 --Invoice Distribution Ledger Amount
126289  , p_source_21            IN NUMBER
126290 --Invoice Distribution Type
126291  , p_source_33            IN VARCHAR2
126292  , p_source_33_meaning    IN VARCHAR2
126293 --Self-Assessed Tax Account
126294  , p_source_50            IN NUMBER
126295 --Accounting Reversal Indicator
126296  , p_source_53            IN VARCHAR2
126297 --Distribution Link Type
126298  , p_source_55            IN VARCHAR2
126299 --Allocation to Main Distribution Identifier
126300  , p_source_57            IN NUMBER
126301 --Invoice Identifier
126302  , p_source_58            IN NUMBER
126303 --Invoice Distribution Identifier
126304  , p_source_64            IN NUMBER
126305 --Payables Encumbrance Upgrade Credit Account
126306  , p_source_65            IN NUMBER
126307 --Payables Encumbrance Upgrade Credit Amount
126308  , p_source_66            IN NUMBER
126309 --Invoice Currency Code
126310  , p_source_67            IN VARCHAR2
126311 --Payables Encumbrance Upgrade Credit Base Amount
126312  , p_source_68            IN NUMBER
126313 --Payables Encumbrance Upgrade Debit Account
126314  , p_source_69            IN NUMBER
126315 --Payables Encumbrance Upgrade Debit Amount
126316  , p_source_70            IN NUMBER
126317 --Payables Encumbrance Upgrade Debit Base Amount
126318  , p_source_71            IN NUMBER
126319 --Payables Encumbrance Upgrade Option
126320  , p_source_72            IN VARCHAR2
126321 --Invoice Distribution Amount
126322  , p_source_73            IN NUMBER
126323 --Purchase Order Exchange Rate Date
126324  , p_source_74            IN DATE
126325 --Purchase Order Exchange Rate
126326  , p_source_75            IN NUMBER
126327 --Purchase Order Exchange Rate Type
126328  , p_source_76            IN VARCHAR2
126329 --Deferred Accounting End Date
126330  , p_source_77            IN DATE
126331 --Deferred Accounting Option
126332  , p_source_78            IN VARCHAR2
126333 --Deferred Accounting Start Date
126334  , p_source_79            IN DATE
126335 --Override Accounted Amount Indicator
126336  , p_source_80            IN VARCHAR2
126337  , p_source_80_meaning    IN VARCHAR2
126338 --Invoice Supplier Identifier
126339  , p_source_81            IN NUMBER
126340 --Invoice Supplier Site Identifier
126341  , p_source_82            IN NUMBER
126342 --Third Party Type
126343  , p_source_83            IN VARCHAR2
126344 --Parent Reversal Identifier
126345  , p_source_84            IN NUMBER
126346 --Invoice Distribution Statistical Amount
126347  , p_source_85            IN NUMBER
126348 --Invoice Distribution Tax Line Identifier
126349  , p_source_86            IN NUMBER
126350 --Invoice Distribution Tax Distribution Identifier from Tax
126351  , p_source_87            IN NUMBER
126352 --Invoice Distribution Summary Tax Line Identifier
126353  , p_source_88            IN NUMBER
126354 --Payables Upgrade Credit Encumbrance Type Identifier
126355  , p_source_89            IN NUMBER
126356 --Payables Upgrade Debit Encumbrance Type Identifier
126357  , p_source_90            IN NUMBER
126358 --Business Flow Accounts Payable Application Identifier
126359  , p_source_91            IN NUMBER
126360 --Business Flow Invoice Distribution Type
126361  , p_source_92            IN VARCHAR2
126362 --Business Flow Invoice Entity Code
126363  , p_source_93            IN VARCHAR2
126364 --Business Flow Invoice Distribution Identifier
126365  , p_source_94            IN NUMBER
126366 --Business Flow Invoice Identifier
126367  , p_source_95            IN NUMBER
126368 --Accrue on Receipt Option
126369  , p_source_96            IN VARCHAR2
126370  , p_source_96_meaning    IN VARCHAR2
126371 --Self-Assessed Tax Flag
126372  , p_source_142            IN VARCHAR2
126373  , p_source_142_meaning    IN VARCHAR2
126374 )
126375 IS
126376 
126377 l_component_type              VARCHAR2(80);
126378 l_component_code              VARCHAR2(30);
126379 l_component_type_code         VARCHAR2(1);
126380 l_component_appl_id           INTEGER;
126381 l_amb_context_code            VARCHAR2(30);
126382 l_entity_code                 VARCHAR2(30);
126383 l_event_class_code            VARCHAR2(30);
126384 l_ae_header_id                NUMBER;
126385 l_event_type_code             VARCHAR2(30);
126386 l_line_definition_code        VARCHAR2(30);
126387 l_line_definition_owner_code  VARCHAR2(1);
126388 --
126389 -- adr variables
126390 l_segment                     VARCHAR2(30);
126391 l_ccid                        NUMBER;
126392 l_adr_transaction_coa_id      NUMBER;
126393 l_adr_accounting_coa_id       NUMBER;
126394 l_adr_flexfield_segment_code  VARCHAR2(30);
126398 l_adr_value_segment_code      VARCHAR2(30);
126395 l_adr_flex_value_set_id       NUMBER;
126396 l_adr_value_type_code         VARCHAR2(30);
126397 l_adr_value_combination_id    NUMBER;
126399 
126400 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
126401 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
126402 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
126403 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
126404 
126405 -- 4262811 Variables ------------------------------------------------------------------------------------------
126406 l_entered_amt_idx             NUMBER;
126407 l_accted_amt_idx              NUMBER;
126408 l_acc_rev_flag                VARCHAR2(1);
126409 l_accrual_line_num            NUMBER;
126410 l_tmp_amt                     NUMBER;
126411 l_acc_rev_natural_side_code   VARCHAR2(1);
126412 
126413 l_num_entries                 NUMBER;
126414 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
126415 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
126416 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
126417 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
126418 l_recog_line_1                NUMBER;
126419 l_recog_line_2                NUMBER;
126420 
126421 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
126422 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
126423 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
126424 
126425 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
126426 
126427 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
126428 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
126429 
126430 ---------------------------------------------------------------------------------------------------------------
126431 
126432 
126433 --
126434 -- bulk performance
126435 --
126436 l_balance_type_code           VARCHAR2(1);
126437 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
126438 l_log_module                  VARCHAR2(240);
126439 
126440 --
126441 -- Upgrade strategy
126442 --
126443 l_actual_upg_option           VARCHAR2(1);
126444 l_enc_upg_option           VARCHAR2(1);
126445 
126446 --
126447 BEGIN
126448 --
126449 IF g_log_enabled THEN
126450       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_208';
126451 END IF;
126452 --
126453 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
126454 
126455       trace
126456          (p_msg      => 'BEGIN of AcctLineType_208'
126457          ,p_level    => C_LEVEL_PROCEDURE
126458          ,p_module   => l_log_module);
126459 
126460 END IF;
126461 --
126462 l_component_type             := 'AMB_JLT';
126463 l_component_code             := 'AP_SELF_NON_REC_ACCRUAL_CM';
126464 l_component_type_code        := 'S';
126465 l_component_appl_id          :=  200;
126466 l_amb_context_code           := 'DEFAULT';
126467 l_entity_code                := 'AP_INVOICES';
126468 l_event_class_code           := 'CREDIT MEMOS';
126469 l_event_type_code            := 'CREDIT MEMOS_ALL';
126470 l_line_definition_owner_code := 'S';
126471 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
126472 --
126473 l_balance_type_code          := 'A';
126474 l_segment                     := NULL;
126475 l_ccid                        := NULL;
126476 l_adr_transaction_coa_id      := NULL;
126477 l_adr_accounting_coa_id       := NULL;
126478 l_adr_flexfield_segment_code  := NULL;
126479 l_adr_flex_value_set_id       := NULL;
126480 l_adr_value_type_code         := NULL;
126481 l_adr_value_combination_id    := NULL;
126482 l_adr_value_segment_code      := NULL;
126483 
126484 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
126485 l_bflow_class_code           := '';    -- 4219869 Business Flow
126486 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
126487 l_budgetary_control_flag     := 'N';
126488 
126489 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
126490 l_bflow_applied_to_amt       := NULL; -- 5132302
126491 l_entered_amt_idx            := NULL;          -- 4262811
126492 l_accted_amt_idx             := NULL;          -- 4262811
126493 l_acc_rev_flag               := NULL;          -- 4262811
126494 l_accrual_line_num           := NULL;          -- 4262811
126495 l_tmp_amt                    := NULL;          -- 4262811
126496 --
126497  
126498 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
126499     l_balance_type_code <> 'B' THEN
126500 IF NVL(p_source_33,'
126501 ') =  'NONREC_TAX' AND 
126502 NVL(p_source_142,'
126503 ') =  'Y' AND 
126504 NVL(p_source_96,'
126505 ') =  'Y'
126506  THEN 
126507 
126508    --
126509    XLA_AE_LINES_PKG.SetNewLine;
126510 
126511    p_balance_type_code          := l_balance_type_code;
126512    -- set the flag so later we will know whether the gain loss line needs to be created
126513    
126514    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
126515      p_actual_flag :='A';
126516    END IF;
126517 
126518    --
126519    -- bulk performance
126520    --
126521    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
126522                                       p_header_num   => 0); -- 4262811
126523    --
126524    -- set accounting line options
126525    --
126526    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
126530          , p_acct_entry_type_code       => 'A'
126527            p_natural_side_code          => 'D'
126528          , p_gain_or_loss_flag          => 'N'
126529          , p_gl_transfer_mode_code      => 'S'
126531          , p_switch_side_flag           => 'Y'
126532          , p_merge_duplicate_code       => 'A'
126533          );
126534    --
126535    l_acc_rev_natural_side_code := 'C';  -- 4262811
126536    -- 
126537    --
126538    -- set accounting line type info
126539    --
126540    xla_ae_lines_pkg.SetAcctLineType
126541       (p_component_type             => l_component_type
126542       ,p_event_type_code            => l_event_type_code
126543       ,p_line_definition_owner_code => l_line_definition_owner_code
126544       ,p_line_definition_code       => l_line_definition_code
126545       ,p_accounting_line_code       => l_component_code
126546       ,p_accounting_line_type_code  => l_component_type_code
126547       ,p_accounting_line_appl_id    => l_component_appl_id
126548       ,p_amb_context_code           => l_amb_context_code
126549       ,p_entity_code                => l_entity_code
126550       ,p_event_class_code           => l_event_class_code);
126551    --
126552    -- set accounting class
126553    --
126554    xla_ae_lines_pkg.SetAcctClass(
126555            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
126556          , p_ae_header_id           => l_ae_header_id
126557          );
126558 
126559    --
126560    -- set rounding class
126561    --
126562    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
126563                       'SELF_ASSESSED_TAX';
126564 
126565    --
126566    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
126567    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
126568    --
126569    -- bulk performance
126570    --
126571    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
126572 
126573    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
126574       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
126575 
126576    -- 4955764
126577    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
126578       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
126579 
126580    -- 4458381 Public Sector Enh
126581    
126582    --
126583    -- set accounting attributes for the line type
126584    --
126585    l_entered_amt_idx := 23;
126586    l_accted_amt_idx  := 28;
126587    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
126588    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
126589    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
126590    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
126591    l_rec_acct_attrs.array_num_value(2)  := 
126592 xla_ae_sources_pkg.GetSystemSourceNum(
126593    p_source_code           => 'XLA_EVENT_APPL_ID'
126594  , p_source_type_code      => 'Y'
126595  , p_source_application_id =>  602
126596 );
126597    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
126598    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
126599    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
126600    l_rec_acct_attrs.array_char_value(4)  := 
126601 xla_ae_sources_pkg.GetSystemSourceChar(
126602    p_source_code           => 'XLA_ENTITY_CODE'
126603  , p_source_type_code      => 'Y'
126604  , p_source_application_id =>  602
126605 );
126606    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
126607    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
126608    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
126609    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
126610    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
126611    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
126612    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
126613    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
126614    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
126615    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
126616    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
126617    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
126618    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
126619    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
126620    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
126621    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
126622    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
126623    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
126624    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
126625    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
126626    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
126627    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
126628    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
126629    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
126630    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
126631    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
126632    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
126633    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
126634    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
126638    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
126635    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
126636    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
126637    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
126639    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
126640    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
126641    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
126642    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
126643    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
126644    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
126645    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
126646    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
126647    l_rec_acct_attrs.array_date_value(25)  := p_source_74;
126648    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
126649    l_rec_acct_attrs.array_num_value(26)  := p_source_75;
126650    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
126651    l_rec_acct_attrs.array_char_value(27)  := p_source_76;
126652    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
126653    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
126654    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
126655    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
126656    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
126657    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
126658    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
126659    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
126660    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
126661    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
126662    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
126663    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
126664    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
126665    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
126666    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
126667    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
126668    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
126669    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
126670    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
126671    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
126672    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
126673    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
126674    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
126675    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
126676    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
126677    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
126678    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
126679    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
126680    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
126681    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
126682    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
126683    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
126684 
126685    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
126686    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
126687 
126688    ---------------------------------------------------------------------------------------------------------------
126689    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
126690    ---------------------------------------------------------------------------------------------------------------
126691    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
126692 
126693    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
126694    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
126695 
126696    IF xla_accounting_cache_pkg.GetValueChar
126697          (p_source_code         => 'LEDGER_CATEGORY_CODE'
126698          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
126699    AND l_bflow_method_code = 'PRIOR_ENTRY'
126700 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
126701    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
126702          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
126703        )
126704    THEN
126705          xla_ae_lines_pkg.BflowUpgEntry
126706            (p_business_method_code    => l_bflow_method_code
126707            ,p_business_class_code     => l_bflow_class_code
126708            ,p_balance_type            => l_balance_type_code);
126709    ELSE
126710       NULL;
126711 -- No business flow processing for business flow method of NONE.
126712    END IF;
126713 
126714    --
126715    -- call analytical criteria
126716    --
126717    
126718    --
126719    -- call description
126720    --
126721    
126722 xla_ae_lines_pkg.SetLineDescription(
126723    p_ae_header_id => l_ae_header_id
126724   ,p_description  => Description_1 (
126725      p_application_id         => p_application_id
126726    , p_ae_header_id           => l_ae_header_id 
126727 , p_source_1 => p_source_1
126728    )
126729 );
126730 
126731 
126732    --
126733    -- call ADRs
126734    -- Bug 4922099
126735    --
126736    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
126740    THEN
126737         (NVL(l_actual_upg_option, 'N') = 'O') OR
126738         (NVL(l_enc_upg_option, 'N') = 'O')
126739       )
126741    NULL;
126742    --
126743    --
126744    
126745   l_ccid := AcctDerRule_42(
126746            p_application_id           => p_application_id
126747          , p_ae_header_id             => l_ae_header_id 
126748 , p_source_50 => p_source_50
126749          , x_transaction_coa_id       => l_adr_transaction_coa_id
126750          , x_accounting_coa_id        => l_adr_accounting_coa_id
126751          , x_value_type_code          => l_adr_value_type_code
126752          , p_side                     => 'NA'
126753    );
126754 
126755    xla_ae_lines_pkg.set_ccid(
126756     p_code_combination_id          => l_ccid
126757   , p_value_type_code              => l_adr_value_type_code
126758   , p_transaction_coa_id           => l_adr_transaction_coa_id
126759   , p_accounting_coa_id            => l_adr_accounting_coa_id
126760   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
126761   , p_adr_type_code                => 'S'
126762   , p_component_type               => l_component_type
126763   , p_component_code               => l_component_code
126764   , p_component_type_code          => l_component_type_code
126765   , p_component_appl_id            => l_component_appl_id
126766   , p_amb_context_code             => l_amb_context_code
126767   , p_side                         => 'NA'
126768   );
126769 
126770 
126771    --
126772    --
126773    END IF;
126774    --
126775    -- Bug 4922099
126776    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
126777           (NVL(l_enc_upg_option, 'N') = 'O')
126778         ) AND
126779         (l_bflow_method_code = 'PRIOR_ENTRY')
126780       )
126781    THEN
126782       IF
126783       --
126784       1 = 2
126785       --
126786       THEN
126787       xla_accounting_err_pkg.build_message
126788                                     (p_appli_s_name            => 'XLA'
126789                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
126790                                     ,p_token_1                 => 'LINE_NUMBER'
126791                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
126792                                     ,p_token_2                 => 'LINE_TYPE_NAME'
126793                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
126794                                                                              l_component_type
126795                                                                             ,l_component_code
126796                                                                             ,l_component_type_code
126797                                                                             ,l_component_appl_id
126798                                                                             ,l_amb_context_code
126799                                                                             ,l_entity_code
126800                                                                             ,l_event_class_code
126801                                                                            )
126802                                     ,p_token_3                 => 'OWNER'
126803                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
126804                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
126805                                                                           ,p_lookup_code    => l_component_type_code
126806                                                                          )
126807                                     ,p_token_4                 => 'PRODUCT_NAME'
126808                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
126809                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
126810                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
126811                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
126812                                     ,p_ae_header_id            =>  NULL
126813                                        );
126814 
126815         IF (C_LEVEL_ERROR>= g_log_level) THEN
126816                  trace
126817                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
126818                       ,p_level    => C_LEVEL_ERROR
126819                       ,p_module   => l_log_module);
126820         END IF;
126821       END IF;
126822    END IF;
126823    --
126824    --
126825    ------------------------------------------------------------------------------------------------
126826    -- 4219869 Business Flow
126827    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
126828    -- Prior Entry.  Currently, the following code is always generated.
126829    ------------------------------------------------------------------------------------------------
126830    XLA_AE_LINES_PKG.ValidateCurrentLine;
126831 
126832    ------------------------------------------------------------------------------------
126833    -- 4219869 Business Flow
126834    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
126835    ------------------------------------------------------------------------------------
126836    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
126837 
126838    ----------------------------------------------------------------------------------
126839    -- 4219869 Business Flow
126843          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
126840    -- Update journal entry status -- Need to generate this within IF <condition>
126841    ----------------------------------------------------------------------------------
126842    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
126844          ,p_balance_type_code => l_balance_type_code
126845          );
126846 
126847    -------------------------------------------------------------------------------------------
126848    -- 4262811 - Generate the Accrual Reversal lines
126849    -------------------------------------------------------------------------------------------
126850    BEGIN
126851       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
126852                               (g_array_event(p_event_id).array_value_num('header_index'));
126853       IF l_acc_rev_flag IS NULL THEN
126854          l_acc_rev_flag := 'N';
126855       END IF;
126856    EXCEPTION
126857       WHEN OTHERS THEN
126858          l_acc_rev_flag := 'N';
126859    END;
126860    --
126861    IF (l_acc_rev_flag = 'Y') THEN
126862 
126863        -- 4645092  ------------------------------------------------------------------------------
126864        -- To allow MPA report to determine if it should generate report process
126865        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
126866        ------------------------------------------------------------------------------------------
126867 
126868        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
126869        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
126870    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
126871    -- call ADRs
126872    -- Bug 4922099
126873    --
126874    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
126875         (NVL(l_actual_upg_option, 'N') = 'O') OR
126876         (NVL(l_enc_upg_option, 'N') = 'O')
126877       )
126878    THEN
126879    NULL;
126880    --
126881    --
126882    
126883   l_ccid := AcctDerRule_42(
126884            p_application_id           => p_application_id
126885          , p_ae_header_id             => l_ae_header_id 
126886 , p_source_50 => p_source_50
126887          , x_transaction_coa_id       => l_adr_transaction_coa_id
126888          , x_accounting_coa_id        => l_adr_accounting_coa_id
126889          , x_value_type_code          => l_adr_value_type_code
126890          , p_side                     => 'NA'
126891    );
126892 
126893    xla_ae_lines_pkg.set_ccid(
126894     p_code_combination_id          => l_ccid
126895   , p_value_type_code              => l_adr_value_type_code
126896   , p_transaction_coa_id           => l_adr_transaction_coa_id
126897   , p_accounting_coa_id            => l_adr_accounting_coa_id
126898   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
126899   , p_adr_type_code                => 'S'
126900   , p_component_type               => l_component_type
126901   , p_component_code               => l_component_code
126902   , p_component_type_code          => l_component_type_code
126903   , p_component_appl_id            => l_component_appl_id
126904   , p_amb_context_code             => l_amb_context_code
126905   , p_side                         => 'NA'
126906   );
126907 
126908 
126909    --
126910    --
126911    END IF;
126912 
126913        --
126914        -- Update the line information that should be overwritten
126915        --
126916        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
126917                                          p_header_num   => 1);
126918        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
126919 
126920        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
126921 
126922        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
126923           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
126924        END IF;
126925 
126926       --
126927       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
126928       --
126929       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
126930           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
126931       ELSE
126932           ---------------------------------------------------------------------------------------------------
126933           -- 4262811a Switch Sign
126934           ---------------------------------------------------------------------------------------------------
126935           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
126936           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
126937                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
126938           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
126939                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
126940           -- 5132302
126941           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
126942                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
126943 
126944       END IF;
126945 
126946       -- 4955764
126950 
126947       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
126948       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
126949 
126951       XLA_AE_LINES_PKG.ValidateCurrentLine;
126952       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
126953 
126954       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
126955                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
126956                ,p_balance_type_code => l_balance_type_code);
126957 
126958    END IF;
126959 
126960    -----------------------------------------------------------------------------------------
126961    -- 4262811 Multiperiod Accounting
126962    -----------------------------------------------------------------------------------------
126963      -- No MPA option is assigned.
126964 
126965 
126966 END IF;
126967 END IF;
126968 --
126969 
126970 --
126971 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
126972    trace
126973       (p_msg      => 'END of AcctLineType_208'
126974       ,p_level    => C_LEVEL_PROCEDURE
126975       ,p_module   => l_log_module);
126976 END IF;
126977 --
126978 EXCEPTION
126979   WHEN xla_exceptions_pkg.application_exception THEN
126980       RAISE;
126981   WHEN OTHERS THEN
126982        xla_exceptions_pkg.raise_message
126983            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_208');
126984 END AcctLineType_208;
126985 --
126986 
126987 ---------------------------------------
126988 --
126989 -- PRIVATE FUNCTION
126990 --         AcctLineType_209
126991 --
126992 ---------------------------------------
126993 PROCEDURE AcctLineType_209 (
126994   p_application_id        IN NUMBER
126995  ,p_event_id              IN NUMBER
126996  ,p_calculate_acctd_flag  IN VARCHAR2
126997  ,p_calculate_g_l_flag    IN VARCHAR2
126998  ,p_actual_flag           IN OUT VARCHAR2
126999  ,p_balance_type_code     OUT VARCHAR2
127000  ,p_gain_or_loss_ref      OUT VARCHAR2
127001  
127002 --Invoice Distribution Description
127003  , p_source_1            IN VARCHAR2
127004 --Invoice Distribution Ledger Amount
127005  , p_source_21            IN NUMBER
127006 --Invoice Distribution Type
127007  , p_source_33            IN VARCHAR2
127008  , p_source_33_meaning    IN VARCHAR2
127009 --Self-Assessed Tax Account
127010  , p_source_50            IN NUMBER
127011 --Accounting Reversal Indicator
127012  , p_source_53            IN VARCHAR2
127013 --Distribution Link Type
127014  , p_source_55            IN VARCHAR2
127015 --Allocation to Main Distribution Identifier
127016  , p_source_57            IN NUMBER
127017 --Invoice Identifier
127018  , p_source_58            IN NUMBER
127019 --Invoice Distribution Identifier
127020  , p_source_64            IN NUMBER
127021 --Payables Encumbrance Upgrade Credit Account
127022  , p_source_65            IN NUMBER
127023 --Payables Encumbrance Upgrade Credit Amount
127024  , p_source_66            IN NUMBER
127025 --Invoice Currency Code
127026  , p_source_67            IN VARCHAR2
127027 --Payables Encumbrance Upgrade Credit Base Amount
127028  , p_source_68            IN NUMBER
127029 --Payables Encumbrance Upgrade Debit Account
127030  , p_source_69            IN NUMBER
127031 --Payables Encumbrance Upgrade Debit Amount
127032  , p_source_70            IN NUMBER
127033 --Payables Encumbrance Upgrade Debit Base Amount
127034  , p_source_71            IN NUMBER
127035 --Payables Encumbrance Upgrade Option
127036  , p_source_72            IN VARCHAR2
127037 --Invoice Distribution Amount
127038  , p_source_73            IN NUMBER
127039 --Purchase Order Exchange Rate Date
127040  , p_source_74            IN DATE
127041 --Purchase Order Exchange Rate
127042  , p_source_75            IN NUMBER
127043 --Purchase Order Exchange Rate Type
127044  , p_source_76            IN VARCHAR2
127045 --Deferred Accounting End Date
127046  , p_source_77            IN DATE
127047 --Deferred Accounting Option
127048  , p_source_78            IN VARCHAR2
127049 --Deferred Accounting Start Date
127050  , p_source_79            IN DATE
127051 --Override Accounted Amount Indicator
127052  , p_source_80            IN VARCHAR2
127053  , p_source_80_meaning    IN VARCHAR2
127054 --Invoice Supplier Identifier
127055  , p_source_81            IN NUMBER
127056 --Invoice Supplier Site Identifier
127057  , p_source_82            IN NUMBER
127058 --Third Party Type
127059  , p_source_83            IN VARCHAR2
127060 --Parent Reversal Identifier
127061  , p_source_84            IN NUMBER
127062 --Invoice Distribution Tax Line Identifier
127063  , p_source_86            IN NUMBER
127064 --Invoice Distribution Tax Distribution Identifier from Tax
127065  , p_source_87            IN NUMBER
127066 --Invoice Distribution Summary Tax Line Identifier
127067  , p_source_88            IN NUMBER
127068 --Payables Upgrade Credit Encumbrance Type Identifier
127069  , p_source_89            IN NUMBER
127070 --Payables Upgrade Debit Encumbrance Type Identifier
127071  , p_source_90            IN NUMBER
127072 --Business Flow Accounts Payable Application Identifier
127073  , p_source_91            IN NUMBER
127074 --Business Flow Invoice Distribution Type
127075  , p_source_92            IN VARCHAR2
127076 --Business Flow Invoice Entity Code
127077  , p_source_93            IN VARCHAR2
127078 --Business Flow Invoice Distribution Identifier
127079  , p_source_94            IN NUMBER
127080 --Business Flow Invoice Identifier
127084  , p_source_96_meaning    IN VARCHAR2
127081  , p_source_95            IN NUMBER
127082 --Accrue on Receipt Option
127083  , p_source_96            IN VARCHAR2
127085 --Self-Assessed Tax Flag
127086  , p_source_142            IN VARCHAR2
127087  , p_source_142_meaning    IN VARCHAR2
127088 )
127089 IS
127090 
127091 l_component_type              VARCHAR2(80);
127092 l_component_code              VARCHAR2(30);
127093 l_component_type_code         VARCHAR2(1);
127094 l_component_appl_id           INTEGER;
127095 l_amb_context_code            VARCHAR2(30);
127096 l_entity_code                 VARCHAR2(30);
127097 l_event_class_code            VARCHAR2(30);
127098 l_ae_header_id                NUMBER;
127099 l_event_type_code             VARCHAR2(30);
127100 l_line_definition_code        VARCHAR2(30);
127101 l_line_definition_owner_code  VARCHAR2(1);
127102 --
127103 -- adr variables
127104 l_segment                     VARCHAR2(30);
127105 l_ccid                        NUMBER;
127106 l_adr_transaction_coa_id      NUMBER;
127107 l_adr_accounting_coa_id       NUMBER;
127108 l_adr_flexfield_segment_code  VARCHAR2(30);
127109 l_adr_flex_value_set_id       NUMBER;
127110 l_adr_value_type_code         VARCHAR2(30);
127111 l_adr_value_combination_id    NUMBER;
127112 l_adr_value_segment_code      VARCHAR2(30);
127113 
127114 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
127115 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
127116 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
127117 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
127118 
127119 -- 4262811 Variables ------------------------------------------------------------------------------------------
127120 l_entered_amt_idx             NUMBER;
127121 l_accted_amt_idx              NUMBER;
127122 l_acc_rev_flag                VARCHAR2(1);
127123 l_accrual_line_num            NUMBER;
127124 l_tmp_amt                     NUMBER;
127125 l_acc_rev_natural_side_code   VARCHAR2(1);
127126 
127127 l_num_entries                 NUMBER;
127128 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
127129 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
127130 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
127131 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
127132 l_recog_line_1                NUMBER;
127133 l_recog_line_2                NUMBER;
127134 
127135 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
127136 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
127137 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
127138 
127139 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
127140 
127141 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
127142 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
127143 
127144 ---------------------------------------------------------------------------------------------------------------
127145 
127146 
127147 --
127148 -- bulk performance
127149 --
127150 l_balance_type_code           VARCHAR2(1);
127151 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
127152 l_log_module                  VARCHAR2(240);
127153 
127154 --
127155 -- Upgrade strategy
127156 --
127157 l_actual_upg_option           VARCHAR2(1);
127158 l_enc_upg_option           VARCHAR2(1);
127159 
127160 --
127161 BEGIN
127162 --
127163 IF g_log_enabled THEN
127164       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_209';
127165 END IF;
127166 --
127167 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
127168 
127169       trace
127170          (p_msg      => 'BEGIN of AcctLineType_209'
127171          ,p_level    => C_LEVEL_PROCEDURE
127172          ,p_module   => l_log_module);
127173 
127174 END IF;
127175 --
127176 l_component_type             := 'AMB_JLT';
127177 l_component_code             := 'AP_SELF_NON_REC_ACCRUAL_DM';
127178 l_component_type_code        := 'S';
127179 l_component_appl_id          :=  200;
127180 l_amb_context_code           := 'DEFAULT';
127181 l_entity_code                := 'AP_INVOICES';
127182 l_event_class_code           := 'DEBIT MEMOS';
127183 l_event_type_code            := 'DEBIT MEMOS_ALL';
127184 l_line_definition_owner_code := 'S';
127185 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
127186 --
127187 l_balance_type_code          := 'A';
127188 l_segment                     := NULL;
127189 l_ccid                        := NULL;
127190 l_adr_transaction_coa_id      := NULL;
127191 l_adr_accounting_coa_id       := NULL;
127192 l_adr_flexfield_segment_code  := NULL;
127193 l_adr_flex_value_set_id       := NULL;
127194 l_adr_value_type_code         := NULL;
127195 l_adr_value_combination_id    := NULL;
127196 l_adr_value_segment_code      := NULL;
127197 
127198 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
127199 l_bflow_class_code           := '';    -- 4219869 Business Flow
127200 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
127201 l_budgetary_control_flag     := 'N';
127202 
127203 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
127204 l_bflow_applied_to_amt       := NULL; -- 5132302
127205 l_entered_amt_idx            := NULL;          -- 4262811
127206 l_accted_amt_idx             := NULL;          -- 4262811
127207 l_acc_rev_flag               := NULL;          -- 4262811
127208 l_accrual_line_num           := NULL;          -- 4262811
127209 l_tmp_amt                    := NULL;          -- 4262811
127213     l_balance_type_code <> 'B' THEN
127210 --
127211  
127212 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
127214 IF NVL(p_source_33,'
127215 ') =  'NONREC_TAX' AND 
127216 NVL(p_source_142,'
127217 ') =  'Y' AND 
127218 NVL(p_source_96,'
127219 ') =  'Y'
127220  THEN 
127221 
127222    --
127223    XLA_AE_LINES_PKG.SetNewLine;
127224 
127225    p_balance_type_code          := l_balance_type_code;
127226    -- set the flag so later we will know whether the gain loss line needs to be created
127227    
127228    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
127229      p_actual_flag :='A';
127230    END IF;
127231 
127232    --
127233    -- bulk performance
127234    --
127235    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
127236                                       p_header_num   => 0); -- 4262811
127237    --
127238    -- set accounting line options
127239    --
127240    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
127241            p_natural_side_code          => 'D'
127242          , p_gain_or_loss_flag          => 'N'
127243          , p_gl_transfer_mode_code      => 'S'
127244          , p_acct_entry_type_code       => 'A'
127245          , p_switch_side_flag           => 'Y'
127246          , p_merge_duplicate_code       => 'A'
127247          );
127248    --
127249    l_acc_rev_natural_side_code := 'C';  -- 4262811
127250    -- 
127251    --
127252    -- set accounting line type info
127253    --
127254    xla_ae_lines_pkg.SetAcctLineType
127255       (p_component_type             => l_component_type
127256       ,p_event_type_code            => l_event_type_code
127257       ,p_line_definition_owner_code => l_line_definition_owner_code
127258       ,p_line_definition_code       => l_line_definition_code
127259       ,p_accounting_line_code       => l_component_code
127260       ,p_accounting_line_type_code  => l_component_type_code
127261       ,p_accounting_line_appl_id    => l_component_appl_id
127262       ,p_amb_context_code           => l_amb_context_code
127263       ,p_entity_code                => l_entity_code
127264       ,p_event_class_code           => l_event_class_code);
127265    --
127266    -- set accounting class
127267    --
127268    xla_ae_lines_pkg.SetAcctClass(
127269            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
127270          , p_ae_header_id           => l_ae_header_id
127271          );
127272 
127273    --
127274    -- set rounding class
127275    --
127276    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
127277                       'SELF_ASSESSED_TAX';
127278 
127279    --
127280    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
127281    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
127282    --
127283    -- bulk performance
127284    --
127285    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
127286 
127287    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
127288       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
127289 
127290    -- 4955764
127291    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
127292       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
127293 
127294    -- 4458381 Public Sector Enh
127295    
127296    --
127297    -- set accounting attributes for the line type
127298    --
127299    l_entered_amt_idx := 23;
127300    l_accted_amt_idx  := 28;
127301    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
127302    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
127303    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
127304    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
127305    l_rec_acct_attrs.array_num_value(2)  := 
127306 xla_ae_sources_pkg.GetSystemSourceNum(
127307    p_source_code           => 'XLA_EVENT_APPL_ID'
127308  , p_source_type_code      => 'Y'
127309  , p_source_application_id =>  602
127310 );
127311    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
127312    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
127313    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
127314    l_rec_acct_attrs.array_char_value(4)  := 
127315 xla_ae_sources_pkg.GetSystemSourceChar(
127316    p_source_code           => 'XLA_ENTITY_CODE'
127317  , p_source_type_code      => 'Y'
127318  , p_source_application_id =>  602
127319 );
127320    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
127321    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
127322    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
127323    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
127324    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
127325    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
127326    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
127327    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
127328    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
127329    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
127330    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
127331    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
127335    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
127332    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
127333    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
127334    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
127336    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
127337    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
127338    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
127339    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
127340    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
127341    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
127342    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
127343    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
127344    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
127345    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
127346    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
127347    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
127348    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
127349    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
127350    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
127351    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
127352    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
127353    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
127354    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
127355    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
127356    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
127357    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
127358    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
127359    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
127360    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
127361    l_rec_acct_attrs.array_date_value(25)  := p_source_74;
127362    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
127363    l_rec_acct_attrs.array_num_value(26)  := p_source_75;
127364    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
127365    l_rec_acct_attrs.array_char_value(27)  := p_source_76;
127366    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
127367    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
127368    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
127369    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
127370    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
127371    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
127372    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
127373    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
127374    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
127375    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
127376    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
127377    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
127378    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
127379    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
127380    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
127381    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
127382    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
127383    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
127384    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
127385    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
127386    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
127387    l_rec_acct_attrs.array_num_value(38)  := p_source_86;
127388    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
127389    l_rec_acct_attrs.array_num_value(39)  := p_source_87;
127390    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
127391    l_rec_acct_attrs.array_num_value(40)  := p_source_88;
127392    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
127393    l_rec_acct_attrs.array_num_value(41)  := p_source_89;
127394    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
127395    l_rec_acct_attrs.array_num_value(42)  := p_source_90;
127396 
127397    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
127398    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
127399 
127400    ---------------------------------------------------------------------------------------------------------------
127401    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
127402    ---------------------------------------------------------------------------------------------------------------
127403    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
127404 
127405    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
127406    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
127407 
127408    IF xla_accounting_cache_pkg.GetValueChar
127409          (p_source_code         => 'LEDGER_CATEGORY_CODE'
127410          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
127411    AND l_bflow_method_code = 'PRIOR_ENTRY'
127412 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
127413    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
127414          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
127415        )
127419            ,p_business_class_code     => l_bflow_class_code
127416    THEN
127417          xla_ae_lines_pkg.BflowUpgEntry
127418            (p_business_method_code    => l_bflow_method_code
127420            ,p_balance_type            => l_balance_type_code);
127421    ELSE
127422       NULL;
127423 -- No business flow processing for business flow method of NONE.
127424    END IF;
127425 
127426    --
127427    -- call analytical criteria
127428    --
127429    
127430    --
127431    -- call description
127432    --
127433    
127434 xla_ae_lines_pkg.SetLineDescription(
127435    p_ae_header_id => l_ae_header_id
127436   ,p_description  => Description_1 (
127437      p_application_id         => p_application_id
127438    , p_ae_header_id           => l_ae_header_id 
127439 , p_source_1 => p_source_1
127440    )
127441 );
127442 
127443 
127444    --
127445    -- call ADRs
127446    -- Bug 4922099
127447    --
127448    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
127449         (NVL(l_actual_upg_option, 'N') = 'O') OR
127450         (NVL(l_enc_upg_option, 'N') = 'O')
127451       )
127452    THEN
127453    NULL;
127454    --
127455    --
127456    
127457   l_ccid := AcctDerRule_42(
127458            p_application_id           => p_application_id
127459          , p_ae_header_id             => l_ae_header_id 
127460 , p_source_50 => p_source_50
127461          , x_transaction_coa_id       => l_adr_transaction_coa_id
127462          , x_accounting_coa_id        => l_adr_accounting_coa_id
127463          , x_value_type_code          => l_adr_value_type_code
127464          , p_side                     => 'NA'
127465    );
127466 
127467    xla_ae_lines_pkg.set_ccid(
127468     p_code_combination_id          => l_ccid
127469   , p_value_type_code              => l_adr_value_type_code
127470   , p_transaction_coa_id           => l_adr_transaction_coa_id
127471   , p_accounting_coa_id            => l_adr_accounting_coa_id
127472   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
127473   , p_adr_type_code                => 'S'
127474   , p_component_type               => l_component_type
127475   , p_component_code               => l_component_code
127476   , p_component_type_code          => l_component_type_code
127477   , p_component_appl_id            => l_component_appl_id
127478   , p_amb_context_code             => l_amb_context_code
127479   , p_side                         => 'NA'
127480   );
127481 
127482 
127483    --
127484    --
127485    END IF;
127486    --
127487    -- Bug 4922099
127488    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
127489           (NVL(l_enc_upg_option, 'N') = 'O')
127490         ) AND
127491         (l_bflow_method_code = 'PRIOR_ENTRY')
127492       )
127493    THEN
127494       IF
127495       --
127496       1 = 2
127497       --
127498       THEN
127499       xla_accounting_err_pkg.build_message
127500                                     (p_appli_s_name            => 'XLA'
127501                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
127502                                     ,p_token_1                 => 'LINE_NUMBER'
127503                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
127504                                     ,p_token_2                 => 'LINE_TYPE_NAME'
127505                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
127506                                                                              l_component_type
127507                                                                             ,l_component_code
127508                                                                             ,l_component_type_code
127509                                                                             ,l_component_appl_id
127510                                                                             ,l_amb_context_code
127511                                                                             ,l_entity_code
127512                                                                             ,l_event_class_code
127513                                                                            )
127514                                     ,p_token_3                 => 'OWNER'
127515                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
127516                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
127517                                                                           ,p_lookup_code    => l_component_type_code
127518                                                                          )
127519                                     ,p_token_4                 => 'PRODUCT_NAME'
127520                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
127521                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
127522                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
127523                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
127524                                     ,p_ae_header_id            =>  NULL
127525                                        );
127526 
127527         IF (C_LEVEL_ERROR>= g_log_level) THEN
127528                  trace
127529                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
127533       END IF;
127530                       ,p_level    => C_LEVEL_ERROR
127531                       ,p_module   => l_log_module);
127532         END IF;
127534    END IF;
127535    --
127536    --
127537    ------------------------------------------------------------------------------------------------
127538    -- 4219869 Business Flow
127539    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
127540    -- Prior Entry.  Currently, the following code is always generated.
127541    ------------------------------------------------------------------------------------------------
127542    XLA_AE_LINES_PKG.ValidateCurrentLine;
127543 
127544    ------------------------------------------------------------------------------------
127545    -- 4219869 Business Flow
127546    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
127547    ------------------------------------------------------------------------------------
127548    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
127549 
127550    ----------------------------------------------------------------------------------
127551    -- 4219869 Business Flow
127552    -- Update journal entry status -- Need to generate this within IF <condition>
127553    ----------------------------------------------------------------------------------
127554    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
127555          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
127556          ,p_balance_type_code => l_balance_type_code
127557          );
127558 
127559    -------------------------------------------------------------------------------------------
127560    -- 4262811 - Generate the Accrual Reversal lines
127561    -------------------------------------------------------------------------------------------
127562    BEGIN
127563       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
127564                               (g_array_event(p_event_id).array_value_num('header_index'));
127565       IF l_acc_rev_flag IS NULL THEN
127566          l_acc_rev_flag := 'N';
127567       END IF;
127568    EXCEPTION
127569       WHEN OTHERS THEN
127570          l_acc_rev_flag := 'N';
127571    END;
127572    --
127573    IF (l_acc_rev_flag = 'Y') THEN
127574 
127575        -- 4645092  ------------------------------------------------------------------------------
127576        -- To allow MPA report to determine if it should generate report process
127577        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
127578        ------------------------------------------------------------------------------------------
127579 
127580        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
127581        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
127582    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
127583    -- call ADRs
127584    -- Bug 4922099
127585    --
127586    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
127587         (NVL(l_actual_upg_option, 'N') = 'O') OR
127588         (NVL(l_enc_upg_option, 'N') = 'O')
127589       )
127590    THEN
127591    NULL;
127592    --
127593    --
127594    
127595   l_ccid := AcctDerRule_42(
127596            p_application_id           => p_application_id
127597          , p_ae_header_id             => l_ae_header_id 
127598 , p_source_50 => p_source_50
127599          , x_transaction_coa_id       => l_adr_transaction_coa_id
127600          , x_accounting_coa_id        => l_adr_accounting_coa_id
127601          , x_value_type_code          => l_adr_value_type_code
127602          , p_side                     => 'NA'
127603    );
127604 
127605    xla_ae_lines_pkg.set_ccid(
127606     p_code_combination_id          => l_ccid
127607   , p_value_type_code              => l_adr_value_type_code
127608   , p_transaction_coa_id           => l_adr_transaction_coa_id
127609   , p_accounting_coa_id            => l_adr_accounting_coa_id
127610   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
127611   , p_adr_type_code                => 'S'
127612   , p_component_type               => l_component_type
127613   , p_component_code               => l_component_code
127614   , p_component_type_code          => l_component_type_code
127615   , p_component_appl_id            => l_component_appl_id
127616   , p_amb_context_code             => l_amb_context_code
127617   , p_side                         => 'NA'
127618   );
127619 
127620 
127621    --
127622    --
127623    END IF;
127624 
127625        --
127626        -- Update the line information that should be overwritten
127627        --
127628        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
127629                                          p_header_num   => 1);
127630        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
127631 
127632        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
127633 
127634        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
127635           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
127636        END IF;
127637 
127638       --
127639       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
127640       --
127641       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
127645           -- 4262811a Switch Sign
127642           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
127643       ELSE
127644           ---------------------------------------------------------------------------------------------------
127646           ---------------------------------------------------------------------------------------------------
127647           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
127648           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
127649                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
127650           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
127651                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
127652           -- 5132302
127653           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
127654                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
127655 
127656       END IF;
127657 
127658       -- 4955764
127659       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
127660       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
127661 
127662 
127663       XLA_AE_LINES_PKG.ValidateCurrentLine;
127664       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
127665 
127666       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
127667                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
127668                ,p_balance_type_code => l_balance_type_code);
127669 
127670    END IF;
127671 
127672    -----------------------------------------------------------------------------------------
127673    -- 4262811 Multiperiod Accounting
127674    -----------------------------------------------------------------------------------------
127675      -- No MPA option is assigned.
127676 
127677 
127678 END IF;
127679 END IF;
127680 --
127681 
127682 --
127683 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
127684    trace
127685       (p_msg      => 'END of AcctLineType_209'
127686       ,p_level    => C_LEVEL_PROCEDURE
127687       ,p_module   => l_log_module);
127688 END IF;
127689 --
127690 EXCEPTION
127691   WHEN xla_exceptions_pkg.application_exception THEN
127692       RAISE;
127693   WHEN OTHERS THEN
127694        xla_exceptions_pkg.raise_message
127695            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_209');
127696 END AcctLineType_209;
127697 --
127698 
127699 ---------------------------------------
127700 --
127701 -- PRIVATE FUNCTION
127702 --         AcctLineType_210
127703 --
127704 ---------------------------------------
127705 PROCEDURE AcctLineType_210 (
127706   p_application_id        IN NUMBER
127707  ,p_event_id              IN NUMBER
127708  ,p_calculate_acctd_flag  IN VARCHAR2
127709  ,p_calculate_g_l_flag    IN VARCHAR2
127710  ,p_actual_flag           IN OUT VARCHAR2
127711  ,p_balance_type_code     OUT VARCHAR2
127712  ,p_gain_or_loss_ref      OUT VARCHAR2
127713  
127714 --Invoice Distribution Description
127715  , p_source_1            IN VARCHAR2
127716 --Invoice Distribution Ledger Amount
127717  , p_source_21            IN NUMBER
127718 --Invoice Distribution Type
127719  , p_source_33            IN VARCHAR2
127720  , p_source_33_meaning    IN VARCHAR2
127721 --Self-Assessed Tax Account
127722  , p_source_50            IN NUMBER
127723 --Accounting Reversal Indicator
127724  , p_source_53            IN VARCHAR2
127725 --Distribution Link Type
127726  , p_source_55            IN VARCHAR2
127727 --Allocation to Main Distribution Identifier
127728  , p_source_57            IN NUMBER
127729 --Invoice Identifier
127730  , p_source_58            IN NUMBER
127731 --Invoice Distribution Identifier
127732  , p_source_64            IN NUMBER
127733 --Payables Encumbrance Upgrade Credit Account
127734  , p_source_65            IN NUMBER
127735 --Payables Encumbrance Upgrade Credit Amount
127736  , p_source_66            IN NUMBER
127737 --Invoice Currency Code
127738  , p_source_67            IN VARCHAR2
127739 --Payables Encumbrance Upgrade Credit Base Amount
127740  , p_source_68            IN NUMBER
127741 --Payables Encumbrance Upgrade Debit Account
127742  , p_source_69            IN NUMBER
127743 --Payables Encumbrance Upgrade Debit Amount
127744  , p_source_70            IN NUMBER
127745 --Payables Encumbrance Upgrade Debit Base Amount
127746  , p_source_71            IN NUMBER
127747 --Payables Encumbrance Upgrade Option
127748  , p_source_72            IN VARCHAR2
127749 --Invoice Distribution Amount
127750  , p_source_73            IN NUMBER
127751 --Purchase Order Exchange Rate Date
127752  , p_source_74            IN DATE
127753 --Purchase Order Exchange Rate
127754  , p_source_75            IN NUMBER
127755 --Purchase Order Exchange Rate Type
127756  , p_source_76            IN VARCHAR2
127757 --Deferred Accounting End Date
127758  , p_source_77            IN DATE
127759 --Deferred Accounting Option
127760  , p_source_78            IN VARCHAR2
127761 --Deferred Accounting Start Date
127762  , p_source_79            IN DATE
127763 --Override Accounted Amount Indicator
127764  , p_source_80            IN VARCHAR2
127765  , p_source_80_meaning    IN VARCHAR2
127766 --Invoice Supplier Identifier
127767  , p_source_81            IN NUMBER
127768 --Invoice Supplier Site Identifier
127772 --Parent Reversal Identifier
127769  , p_source_82            IN NUMBER
127770 --Third Party Type
127771  , p_source_83            IN VARCHAR2
127773  , p_source_84            IN NUMBER
127774 --Invoice Distribution Statistical Amount
127775  , p_source_85            IN NUMBER
127776 --Invoice Distribution Tax Line Identifier
127777  , p_source_86            IN NUMBER
127778 --Invoice Distribution Tax Distribution Identifier from Tax
127779  , p_source_87            IN NUMBER
127780 --Invoice Distribution Summary Tax Line Identifier
127781  , p_source_88            IN NUMBER
127782 --Payables Upgrade Credit Encumbrance Type Identifier
127783  , p_source_89            IN NUMBER
127784 --Payables Upgrade Debit Encumbrance Type Identifier
127785  , p_source_90            IN NUMBER
127786 --Business Flow Accounts Payable Application Identifier
127787  , p_source_91            IN NUMBER
127788 --Business Flow Invoice Distribution Type
127789  , p_source_92            IN VARCHAR2
127790 --Business Flow Invoice Entity Code
127791  , p_source_93            IN VARCHAR2
127792 --Business Flow Invoice Distribution Identifier
127793  , p_source_94            IN NUMBER
127794 --Business Flow Invoice Identifier
127795  , p_source_95            IN NUMBER
127796 --Accrue on Receipt Option
127797  , p_source_96            IN VARCHAR2
127798  , p_source_96_meaning    IN VARCHAR2
127799 --Self-Assessed Tax Flag
127800  , p_source_142            IN VARCHAR2
127801  , p_source_142_meaning    IN VARCHAR2
127802 )
127803 IS
127804 
127805 l_component_type              VARCHAR2(80);
127806 l_component_code              VARCHAR2(30);
127807 l_component_type_code         VARCHAR2(1);
127808 l_component_appl_id           INTEGER;
127809 l_amb_context_code            VARCHAR2(30);
127810 l_entity_code                 VARCHAR2(30);
127811 l_event_class_code            VARCHAR2(30);
127812 l_ae_header_id                NUMBER;
127813 l_event_type_code             VARCHAR2(30);
127814 l_line_definition_code        VARCHAR2(30);
127815 l_line_definition_owner_code  VARCHAR2(1);
127816 --
127817 -- adr variables
127818 l_segment                     VARCHAR2(30);
127819 l_ccid                        NUMBER;
127820 l_adr_transaction_coa_id      NUMBER;
127821 l_adr_accounting_coa_id       NUMBER;
127822 l_adr_flexfield_segment_code  VARCHAR2(30);
127823 l_adr_flex_value_set_id       NUMBER;
127824 l_adr_value_type_code         VARCHAR2(30);
127825 l_adr_value_combination_id    NUMBER;
127826 l_adr_value_segment_code      VARCHAR2(30);
127827 
127828 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
127829 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
127830 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
127831 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
127832 
127833 -- 4262811 Variables ------------------------------------------------------------------------------------------
127834 l_entered_amt_idx             NUMBER;
127835 l_accted_amt_idx              NUMBER;
127836 l_acc_rev_flag                VARCHAR2(1);
127837 l_accrual_line_num            NUMBER;
127838 l_tmp_amt                     NUMBER;
127839 l_acc_rev_natural_side_code   VARCHAR2(1);
127840 
127841 l_num_entries                 NUMBER;
127842 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
127843 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
127844 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
127845 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
127846 l_recog_line_1                NUMBER;
127847 l_recog_line_2                NUMBER;
127848 
127849 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
127850 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
127851 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
127852 
127853 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
127854 
127855 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
127856 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
127857 
127858 ---------------------------------------------------------------------------------------------------------------
127859 
127860 
127861 --
127862 -- bulk performance
127863 --
127864 l_balance_type_code           VARCHAR2(1);
127865 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
127866 l_log_module                  VARCHAR2(240);
127867 
127868 --
127869 -- Upgrade strategy
127870 --
127871 l_actual_upg_option           VARCHAR2(1);
127872 l_enc_upg_option           VARCHAR2(1);
127873 
127874 --
127875 BEGIN
127876 --
127877 IF g_log_enabled THEN
127878       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_210';
127879 END IF;
127880 --
127881 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
127882 
127883       trace
127884          (p_msg      => 'BEGIN of AcctLineType_210'
127885          ,p_level    => C_LEVEL_PROCEDURE
127886          ,p_module   => l_log_module);
127887 
127888 END IF;
127889 --
127890 l_component_type             := 'AMB_JLT';
127891 l_component_code             := 'AP_SELF_NON_REC_ACCRUAL_INV';
127892 l_component_type_code        := 'S';
127893 l_component_appl_id          :=  200;
127894 l_amb_context_code           := 'DEFAULT';
127895 l_entity_code                := 'AP_INVOICES';
127896 l_event_class_code           := 'INVOICES';
127897 l_event_type_code            := 'INVOICES_ALL';
127901 l_balance_type_code          := 'A';
127898 l_line_definition_owner_code := 'S';
127899 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
127900 --
127902 l_segment                     := NULL;
127903 l_ccid                        := NULL;
127904 l_adr_transaction_coa_id      := NULL;
127905 l_adr_accounting_coa_id       := NULL;
127906 l_adr_flexfield_segment_code  := NULL;
127907 l_adr_flex_value_set_id       := NULL;
127908 l_adr_value_type_code         := NULL;
127909 l_adr_value_combination_id    := NULL;
127910 l_adr_value_segment_code      := NULL;
127911 
127912 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
127913 l_bflow_class_code           := '';    -- 4219869 Business Flow
127914 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
127915 l_budgetary_control_flag     := 'N';
127916 
127917 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
127918 l_bflow_applied_to_amt       := NULL; -- 5132302
127919 l_entered_amt_idx            := NULL;          -- 4262811
127920 l_accted_amt_idx             := NULL;          -- 4262811
127921 l_acc_rev_flag               := NULL;          -- 4262811
127922 l_accrual_line_num           := NULL;          -- 4262811
127923 l_tmp_amt                    := NULL;          -- 4262811
127924 --
127925  
127926 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
127927     l_balance_type_code <> 'B' THEN
127928 IF NVL(p_source_33,'
127929 ') =  'NONREC_TAX' AND 
127930 NVL(p_source_142,'
127931 ') =  'Y' AND 
127932 NVL(p_source_96,'
127933 ') =  'Y'
127934  THEN 
127935 
127936    --
127937    XLA_AE_LINES_PKG.SetNewLine;
127938 
127939    p_balance_type_code          := l_balance_type_code;
127940    -- set the flag so later we will know whether the gain loss line needs to be created
127941    
127942    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
127943      p_actual_flag :='A';
127944    END IF;
127945 
127946    --
127947    -- bulk performance
127948    --
127949    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
127950                                       p_header_num   => 0); -- 4262811
127951    --
127952    -- set accounting line options
127953    --
127954    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
127955            p_natural_side_code          => 'D'
127956          , p_gain_or_loss_flag          => 'N'
127957          , p_gl_transfer_mode_code      => 'S'
127958          , p_acct_entry_type_code       => 'A'
127959          , p_switch_side_flag           => 'Y'
127960          , p_merge_duplicate_code       => 'A'
127961          );
127962    --
127963    l_acc_rev_natural_side_code := 'C';  -- 4262811
127964    -- 
127965    --
127966    -- set accounting line type info
127967    --
127968    xla_ae_lines_pkg.SetAcctLineType
127969       (p_component_type             => l_component_type
127970       ,p_event_type_code            => l_event_type_code
127971       ,p_line_definition_owner_code => l_line_definition_owner_code
127972       ,p_line_definition_code       => l_line_definition_code
127973       ,p_accounting_line_code       => l_component_code
127974       ,p_accounting_line_type_code  => l_component_type_code
127975       ,p_accounting_line_appl_id    => l_component_appl_id
127976       ,p_amb_context_code           => l_amb_context_code
127977       ,p_entity_code                => l_entity_code
127978       ,p_event_class_code           => l_event_class_code);
127979    --
127980    -- set accounting class
127981    --
127982    xla_ae_lines_pkg.SetAcctClass(
127983            p_accounting_class_code  => 'SELF_ASSESSED_TAX'
127984          , p_ae_header_id           => l_ae_header_id
127985          );
127986 
127987    --
127988    -- set rounding class
127989    --
127990    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
127991                       'SELF_ASSESSED_TAX';
127992 
127993    --
127994    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
127995    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
127996    --
127997    -- bulk performance
127998    --
127999    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
128000 
128001    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
128002       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
128003 
128004    -- 4955764
128005    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
128006       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
128007 
128008    -- 4458381 Public Sector Enh
128009    
128010    --
128011    -- set accounting attributes for the line type
128012    --
128013    l_entered_amt_idx := 24;
128014    l_accted_amt_idx  := 29;
128015    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
128016    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
128017    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
128018    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
128019    l_rec_acct_attrs.array_num_value(2)  := 
128020 xla_ae_sources_pkg.GetSystemSourceNum(
128021    p_source_code           => 'XLA_EVENT_APPL_ID'
128022  , p_source_type_code      => 'Y'
128023  , p_source_application_id =>  602
128024 );
128025    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
128029 xla_ae_sources_pkg.GetSystemSourceChar(
128026    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
128027    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
128028    l_rec_acct_attrs.array_char_value(4)  := 
128030    p_source_code           => 'XLA_ENTITY_CODE'
128031  , p_source_type_code      => 'Y'
128032  , p_source_application_id =>  602
128033 );
128034    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
128035    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
128036    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
128037    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
128038    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
128039    l_rec_acct_attrs.array_num_value(7)  := p_source_73;
128040    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
128041    l_rec_acct_attrs.array_num_value(8)  := p_source_91;
128042    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
128043    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
128044    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
128045    l_rec_acct_attrs.array_char_value(10)  := p_source_93;
128046    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
128047    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
128048    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
128049    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_95);
128050    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
128051    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_64);
128052    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
128053    l_rec_acct_attrs.array_char_value(14)  := p_source_55;
128054    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
128055    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
128056    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
128057    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
128058    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
128059    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
128060    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
128061    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
128062    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
128063    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
128064    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
128065    l_rec_acct_attrs.array_num_value(20)  := p_source_70;
128066    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
128067    l_rec_acct_attrs.array_char_value(21)  := p_source_67;
128068    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
128069    l_rec_acct_attrs.array_num_value(22)  := p_source_71;
128070    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
128071    l_rec_acct_attrs.array_char_value(23)  := p_source_72;
128072    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
128073    l_rec_acct_attrs.array_num_value(24)  := p_source_73;
128074    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
128075    l_rec_acct_attrs.array_char_value(25)  := p_source_67;
128076    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
128077    l_rec_acct_attrs.array_date_value(26)  := p_source_74;
128078    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
128079    l_rec_acct_attrs.array_num_value(27)  := p_source_75;
128080    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
128081    l_rec_acct_attrs.array_char_value(28)  := p_source_76;
128082    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
128083    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
128084    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
128085    l_rec_acct_attrs.array_date_value(30)  := p_source_77;
128086    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
128087    l_rec_acct_attrs.array_char_value(31)  := p_source_78;
128088    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
128089    l_rec_acct_attrs.array_date_value(32)  := p_source_79;
128090    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
128091    l_rec_acct_attrs.array_char_value(33)  := p_source_80;
128092    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
128093    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
128094    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
128095    l_rec_acct_attrs.array_num_value(35)  := p_source_82;
128096    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
128097    l_rec_acct_attrs.array_char_value(36)  := p_source_83;
128098    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
128099    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_84);
128100    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
128101    l_rec_acct_attrs.array_char_value(38)  := p_source_55;
128102    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
128103    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
128104    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
128105    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
128106    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
128107    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
128108    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
128109    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
128113    l_rec_acct_attrs.array_num_value(44)  := p_source_90;
128110    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
128111    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
128112    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
128114 
128115    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
128116    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
128117 
128118    ---------------------------------------------------------------------------------------------------------------
128119    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
128120    ---------------------------------------------------------------------------------------------------------------
128121    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
128122 
128123    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
128124    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
128125 
128126    IF xla_accounting_cache_pkg.GetValueChar
128127          (p_source_code         => 'LEDGER_CATEGORY_CODE'
128128          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
128129    AND l_bflow_method_code = 'PRIOR_ENTRY'
128130 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
128131    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
128132          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
128133        )
128134    THEN
128135          xla_ae_lines_pkg.BflowUpgEntry
128136            (p_business_method_code    => l_bflow_method_code
128137            ,p_business_class_code     => l_bflow_class_code
128138            ,p_balance_type            => l_balance_type_code);
128139    ELSE
128140       NULL;
128141 -- No business flow processing for business flow method of NONE.
128142    END IF;
128143 
128144    --
128145    -- call analytical criteria
128146    --
128147    
128148    --
128149    -- call description
128150    --
128151    
128152 xla_ae_lines_pkg.SetLineDescription(
128153    p_ae_header_id => l_ae_header_id
128154   ,p_description  => Description_1 (
128155      p_application_id         => p_application_id
128156    , p_ae_header_id           => l_ae_header_id 
128157 , p_source_1 => p_source_1
128158    )
128159 );
128160 
128161 
128162    --
128163    -- call ADRs
128164    -- Bug 4922099
128165    --
128166    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
128167         (NVL(l_actual_upg_option, 'N') = 'O') OR
128168         (NVL(l_enc_upg_option, 'N') = 'O')
128169       )
128170    THEN
128171    NULL;
128172    --
128173    --
128174    
128175   l_ccid := AcctDerRule_42(
128176            p_application_id           => p_application_id
128177          , p_ae_header_id             => l_ae_header_id 
128178 , p_source_50 => p_source_50
128179          , x_transaction_coa_id       => l_adr_transaction_coa_id
128180          , x_accounting_coa_id        => l_adr_accounting_coa_id
128181          , x_value_type_code          => l_adr_value_type_code
128182          , p_side                     => 'NA'
128183    );
128184 
128185    xla_ae_lines_pkg.set_ccid(
128186     p_code_combination_id          => l_ccid
128187   , p_value_type_code              => l_adr_value_type_code
128188   , p_transaction_coa_id           => l_adr_transaction_coa_id
128189   , p_accounting_coa_id            => l_adr_accounting_coa_id
128190   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
128191   , p_adr_type_code                => 'S'
128192   , p_component_type               => l_component_type
128193   , p_component_code               => l_component_code
128194   , p_component_type_code          => l_component_type_code
128195   , p_component_appl_id            => l_component_appl_id
128196   , p_amb_context_code             => l_amb_context_code
128197   , p_side                         => 'NA'
128198   );
128199 
128200 
128201    --
128202    --
128203    END IF;
128204    --
128205    -- Bug 4922099
128206    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
128207           (NVL(l_enc_upg_option, 'N') = 'O')
128208         ) AND
128209         (l_bflow_method_code = 'PRIOR_ENTRY')
128210       )
128211    THEN
128212       IF
128213       --
128214       1 = 2
128215       --
128216       THEN
128217       xla_accounting_err_pkg.build_message
128218                                     (p_appli_s_name            => 'XLA'
128219                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
128220                                     ,p_token_1                 => 'LINE_NUMBER'
128221                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
128222                                     ,p_token_2                 => 'LINE_TYPE_NAME'
128223                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
128224                                                                              l_component_type
128225                                                                             ,l_component_code
128226                                                                             ,l_component_type_code
128227                                                                             ,l_component_appl_id
128231                                                                            )
128228                                                                             ,l_amb_context_code
128229                                                                             ,l_entity_code
128230                                                                             ,l_event_class_code
128232                                     ,p_token_3                 => 'OWNER'
128233                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
128234                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
128235                                                                           ,p_lookup_code    => l_component_type_code
128236                                                                          )
128237                                     ,p_token_4                 => 'PRODUCT_NAME'
128238                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
128239                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
128240                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
128241                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
128242                                     ,p_ae_header_id            =>  NULL
128243                                        );
128244 
128245         IF (C_LEVEL_ERROR>= g_log_level) THEN
128246                  trace
128247                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
128248                       ,p_level    => C_LEVEL_ERROR
128249                       ,p_module   => l_log_module);
128250         END IF;
128251       END IF;
128252    END IF;
128253    --
128254    --
128255    ------------------------------------------------------------------------------------------------
128256    -- 4219869 Business Flow
128257    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
128258    -- Prior Entry.  Currently, the following code is always generated.
128259    ------------------------------------------------------------------------------------------------
128260    XLA_AE_LINES_PKG.ValidateCurrentLine;
128261 
128262    ------------------------------------------------------------------------------------
128263    -- 4219869 Business Flow
128264    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
128265    ------------------------------------------------------------------------------------
128266    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
128267 
128268    ----------------------------------------------------------------------------------
128269    -- 4219869 Business Flow
128270    -- Update journal entry status -- Need to generate this within IF <condition>
128271    ----------------------------------------------------------------------------------
128272    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
128273          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
128274          ,p_balance_type_code => l_balance_type_code
128275          );
128276 
128277    -------------------------------------------------------------------------------------------
128278    -- 4262811 - Generate the Accrual Reversal lines
128279    -------------------------------------------------------------------------------------------
128280    BEGIN
128281       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
128282                               (g_array_event(p_event_id).array_value_num('header_index'));
128283       IF l_acc_rev_flag IS NULL THEN
128284          l_acc_rev_flag := 'N';
128285       END IF;
128286    EXCEPTION
128287       WHEN OTHERS THEN
128288          l_acc_rev_flag := 'N';
128289    END;
128290    --
128291    IF (l_acc_rev_flag = 'Y') THEN
128292 
128293        -- 4645092  ------------------------------------------------------------------------------
128294        -- To allow MPA report to determine if it should generate report process
128295        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
128296        ------------------------------------------------------------------------------------------
128297 
128298        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
128299        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
128300    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
128301    -- call ADRs
128302    -- Bug 4922099
128303    --
128304    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
128305         (NVL(l_actual_upg_option, 'N') = 'O') OR
128306         (NVL(l_enc_upg_option, 'N') = 'O')
128307       )
128308    THEN
128309    NULL;
128310    --
128311    --
128312    
128313   l_ccid := AcctDerRule_42(
128314            p_application_id           => p_application_id
128315          , p_ae_header_id             => l_ae_header_id 
128316 , p_source_50 => p_source_50
128317          , x_transaction_coa_id       => l_adr_transaction_coa_id
128318          , x_accounting_coa_id        => l_adr_accounting_coa_id
128319          , x_value_type_code          => l_adr_value_type_code
128320          , p_side                     => 'NA'
128321    );
128322 
128323    xla_ae_lines_pkg.set_ccid(
128324     p_code_combination_id          => l_ccid
128325   , p_value_type_code              => l_adr_value_type_code
128326   , p_transaction_coa_id           => l_adr_transaction_coa_id
128327   , p_accounting_coa_id            => l_adr_accounting_coa_id
128328   , p_adr_code                     => 'AP_SELF_ASSESSED_TAX'
128332   , p_component_type_code          => l_component_type_code
128329   , p_adr_type_code                => 'S'
128330   , p_component_type               => l_component_type
128331   , p_component_code               => l_component_code
128333   , p_component_appl_id            => l_component_appl_id
128334   , p_amb_context_code             => l_amb_context_code
128335   , p_side                         => 'NA'
128336   );
128337 
128338 
128339    --
128340    --
128341    END IF;
128342 
128343        --
128344        -- Update the line information that should be overwritten
128345        --
128346        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
128347                                          p_header_num   => 1);
128348        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
128349 
128350        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
128351 
128352        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
128353           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
128354        END IF;
128355 
128356       --
128357       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
128358       --
128359       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
128360           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
128361       ELSE
128362           ---------------------------------------------------------------------------------------------------
128363           -- 4262811a Switch Sign
128364           ---------------------------------------------------------------------------------------------------
128365           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
128366           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
128367                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
128368           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
128369                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
128370           -- 5132302
128371           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
128372                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
128373 
128374       END IF;
128375 
128376       -- 4955764
128377       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
128378       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
128379 
128380 
128381       XLA_AE_LINES_PKG.ValidateCurrentLine;
128382       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
128383 
128384       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
128385                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
128386                ,p_balance_type_code => l_balance_type_code);
128387 
128388    END IF;
128389 
128390    -----------------------------------------------------------------------------------------
128391    -- 4262811 Multiperiod Accounting
128392    -----------------------------------------------------------------------------------------
128393      -- No MPA option is assigned.
128394 
128395 
128396 END IF;
128397 END IF;
128398 --
128399 
128400 --
128401 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
128402    trace
128403       (p_msg      => 'END of AcctLineType_210'
128404       ,p_level    => C_LEVEL_PROCEDURE
128405       ,p_module   => l_log_module);
128406 END IF;
128407 --
128408 EXCEPTION
128409   WHEN xla_exceptions_pkg.application_exception THEN
128410       RAISE;
128411   WHEN OTHERS THEN
128412        xla_exceptions_pkg.raise_message
128413            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_210');
128414 END AcctLineType_210;
128415 --
128416 
128417 ---------------------------------------
128418 --
128419 -- PRIVATE FUNCTION
128420 --         AcctLineType_211
128421 --
128422 ---------------------------------------
128423 PROCEDURE AcctLineType_211 (
128424   p_application_id        IN NUMBER
128425  ,p_event_id              IN NUMBER
128426  ,p_calculate_acctd_flag  IN VARCHAR2
128427  ,p_calculate_g_l_flag    IN VARCHAR2
128428  ,p_actual_flag           IN OUT VARCHAR2
128429  ,p_balance_type_code     OUT VARCHAR2
128430  ,p_gain_or_loss_ref      OUT VARCHAR2
128431  
128432 --Automatic Offsets Value
128433  , p_source_15            IN VARCHAR2
128434  , p_source_15_meaning    IN VARCHAR2
128435 --Invoice Distribution Account
128436  , p_source_30            IN NUMBER
128437 --Payables Options Tax Difference Account
128438  , p_source_41            IN NUMBER
128439 --Accounting Reversal Indicator
128440  , p_source_53            IN VARCHAR2
128441 --Distribution Link Type
128442  , p_source_55            IN VARCHAR2
128443 --Invoice Identifier
128444  , p_source_58            IN NUMBER
128445 --Payables Encumbrance Upgrade Credit Account
128446  , p_source_65            IN NUMBER
128447 --Payables Encumbrance Upgrade Credit Amount
128448  , p_source_66            IN NUMBER
128449 --Invoice Currency Code
128450  , p_source_67            IN VARCHAR2
128451 --Payables Encumbrance Upgrade Credit Base Amount
128452  , p_source_68            IN NUMBER
128456  , p_source_70            IN NUMBER
128453 --Payables Encumbrance Upgrade Debit Account
128454  , p_source_69            IN NUMBER
128455 --Payables Encumbrance Upgrade Debit Amount
128457 --Payables Encumbrance Upgrade Debit Base Amount
128458  , p_source_71            IN NUMBER
128459 --Payables Encumbrance Upgrade Option
128460  , p_source_72            IN VARCHAR2
128461 --Deferred Accounting End Date
128462  , p_source_77            IN DATE
128463 --Deferred Accounting Option
128464  , p_source_78            IN VARCHAR2
128465 --Deferred Accounting Start Date
128466  , p_source_79            IN DATE
128467 --Override Accounted Amount Indicator
128468  , p_source_80            IN VARCHAR2
128469  , p_source_80_meaning    IN VARCHAR2
128470 --Invoice Supplier Identifier
128471  , p_source_81            IN NUMBER
128472 --Invoice Supplier Site Identifier
128473  , p_source_82            IN NUMBER
128474 --Third Party Type
128475  , p_source_83            IN VARCHAR2
128476 --Invoice Distribution Tax Line Identifier
128477  , p_source_86            IN NUMBER
128478 --Invoice Distribution Tax Distribution Identifier from Tax
128479  , p_source_87            IN NUMBER
128480 --Invoice Distribution Summary Tax Line Identifier
128481  , p_source_88            IN NUMBER
128482 --Payables Upgrade Credit Encumbrance Type Identifier
128483  , p_source_89            IN NUMBER
128484 --Payables Upgrade Debit Encumbrance Type Identifier
128485  , p_source_90            IN NUMBER
128486 --Business Flow Accounts Payable Application Identifier
128487  , p_source_91            IN NUMBER
128488 --Prepayment Distribution Type
128489  , p_source_125            IN VARCHAR2
128490 --Prepayment Application Distribution Identifier
128491  , p_source_127            IN NUMBER
128492 --Upgrade Encumbrance Credit Account Class
128493  , p_source_132            IN VARCHAR2
128494 --Upgrade Encumbrance Debit Account Class
128495  , p_source_133            IN VARCHAR2
128496 --Prepayment Distribution Amount
128497  , p_source_134            IN NUMBER
128498 --Identifier of the Prepayment Application Reversed
128499  , p_source_136            IN NUMBER
128500 --Prepayment Distribution (Invoice Rate) Ledger Amount
128501  , p_source_141            IN NUMBER
128502 --Invoice Exchange Date
128503  , p_source_143            IN DATE
128504 --Invoice Exchange Rate
128505  , p_source_144            IN NUMBER
128506 --Invoice Exchange Rate Type
128507  , p_source_145            IN VARCHAR2
128508 --Business Flow Prepayment Invoice Distribution Type
128509  , p_source_146            IN VARCHAR2
128510 --Business Flow Prepayment Invoice Entity Code
128511  , p_source_147            IN VARCHAR2
128512 --Business Flow Prepayment Invoice Distribution Identifier
128513  , p_source_148            IN NUMBER
128514 --Business Flow Prepayment Invoice Identifier
128515  , p_source_149            IN NUMBER
128516 )
128517 IS
128518 
128519 l_component_type              VARCHAR2(80);
128520 l_component_code              VARCHAR2(30);
128521 l_component_type_code         VARCHAR2(1);
128522 l_component_appl_id           INTEGER;
128523 l_amb_context_code            VARCHAR2(30);
128524 l_entity_code                 VARCHAR2(30);
128525 l_event_class_code            VARCHAR2(30);
128526 l_ae_header_id                NUMBER;
128527 l_event_type_code             VARCHAR2(30);
128528 l_line_definition_code        VARCHAR2(30);
128529 l_line_definition_owner_code  VARCHAR2(1);
128530 --
128531 -- adr variables
128532 l_segment                     VARCHAR2(30);
128533 l_ccid                        NUMBER;
128534 l_adr_transaction_coa_id      NUMBER;
128535 l_adr_accounting_coa_id       NUMBER;
128536 l_adr_flexfield_segment_code  VARCHAR2(30);
128537 l_adr_flex_value_set_id       NUMBER;
128538 l_adr_value_type_code         VARCHAR2(30);
128539 l_adr_value_combination_id    NUMBER;
128540 l_adr_value_segment_code      VARCHAR2(30);
128541 
128542 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
128543 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
128544 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
128545 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
128546 
128547 -- 4262811 Variables ------------------------------------------------------------------------------------------
128548 l_entered_amt_idx             NUMBER;
128549 l_accted_amt_idx              NUMBER;
128550 l_acc_rev_flag                VARCHAR2(1);
128551 l_accrual_line_num            NUMBER;
128552 l_tmp_amt                     NUMBER;
128553 l_acc_rev_natural_side_code   VARCHAR2(1);
128554 
128555 l_num_entries                 NUMBER;
128556 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
128557 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
128558 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
128559 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
128560 l_recog_line_1                NUMBER;
128561 l_recog_line_2                NUMBER;
128562 
128563 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
128564 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
128565 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
128566 
128567 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
128568 
128569 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
128570 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
128571 
128575 --
128572 ---------------------------------------------------------------------------------------------------------------
128573 
128574 
128576 -- bulk performance
128577 --
128578 l_balance_type_code           VARCHAR2(1);
128579 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
128580 l_log_module                  VARCHAR2(240);
128581 
128582 --
128583 -- Upgrade strategy
128584 --
128585 l_actual_upg_option           VARCHAR2(1);
128586 l_enc_upg_option           VARCHAR2(1);
128587 
128588 --
128589 BEGIN
128590 --
128591 IF g_log_enabled THEN
128592       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_211';
128593 END IF;
128594 --
128595 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
128596 
128597       trace
128598          (p_msg      => 'BEGIN of AcctLineType_211'
128599          ,p_level    => C_LEVEL_PROCEDURE
128600          ,p_module   => l_log_module);
128601 
128602 END IF;
128603 --
128604 l_component_type             := 'AMB_JLT';
128605 l_component_code             := 'AP_TAX_DIFF_PREPAY_APP';
128606 l_component_type_code        := 'S';
128607 l_component_appl_id          :=  200;
128608 l_amb_context_code           := 'DEFAULT';
128609 l_entity_code                := 'AP_INVOICES';
128610 l_event_class_code           := 'PREPAYMENT APPLICATIONS';
128611 l_event_type_code            := 'PREPAYMENT APPLICATIONS_ALL';
128612 l_line_definition_owner_code := 'S';
128613 l_line_definition_code       := 'ACCRUAL_PREPAYMENT APPLICATIO2';
128614 --
128615 l_balance_type_code          := 'A';
128616 l_segment                     := NULL;
128617 l_ccid                        := NULL;
128618 l_adr_transaction_coa_id      := NULL;
128619 l_adr_accounting_coa_id       := NULL;
128620 l_adr_flexfield_segment_code  := NULL;
128621 l_adr_flex_value_set_id       := NULL;
128622 l_adr_value_type_code         := NULL;
128623 l_adr_value_combination_id    := NULL;
128624 l_adr_value_segment_code      := NULL;
128625 
128626 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
128627 l_bflow_class_code           := '';    -- 4219869 Business Flow
128628 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
128629 l_budgetary_control_flag     := 'N';
128630 
128631 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
128632 l_bflow_applied_to_amt       := NULL; -- 5132302
128633 l_entered_amt_idx            := NULL;          -- 4262811
128634 l_accted_amt_idx             := NULL;          -- 4262811
128635 l_acc_rev_flag               := NULL;          -- 4262811
128636 l_accrual_line_num           := NULL;          -- 4262811
128637 l_tmp_amt                    := NULL;          -- 4262811
128638 --
128639  
128640 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
128641     l_balance_type_code <> 'B' THEN
128642 IF NVL(p_source_125,'
128643 ') =  'TAX DIFF'
128644  THEN 
128645 
128646    --
128647    XLA_AE_LINES_PKG.SetNewLine;
128648 
128649    p_balance_type_code          := l_balance_type_code;
128650    -- set the flag so later we will know whether the gain loss line needs to be created
128651    
128652    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
128653      p_actual_flag :='A';
128654    END IF;
128655 
128656    --
128657    -- bulk performance
128658    --
128659    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
128660                                       p_header_num   => 0); -- 4262811
128661    --
128662    -- set accounting line options
128663    --
128664    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
128665            p_natural_side_code          => 'C'
128666          , p_gain_or_loss_flag          => 'N'
128667          , p_gl_transfer_mode_code      => 'S'
128668          , p_acct_entry_type_code       => 'A'
128669          , p_switch_side_flag           => 'Y'
128670          , p_merge_duplicate_code       => 'A'
128671          );
128672    --
128673    l_acc_rev_natural_side_code := 'D';  -- 4262811
128674    -- 
128675    --
128676    -- set accounting line type info
128677    --
128678    xla_ae_lines_pkg.SetAcctLineType
128679       (p_component_type             => l_component_type
128680       ,p_event_type_code            => l_event_type_code
128681       ,p_line_definition_owner_code => l_line_definition_owner_code
128682       ,p_line_definition_code       => l_line_definition_code
128683       ,p_accounting_line_code       => l_component_code
128684       ,p_accounting_line_type_code  => l_component_type_code
128685       ,p_accounting_line_appl_id    => l_component_appl_id
128686       ,p_amb_context_code           => l_amb_context_code
128687       ,p_entity_code                => l_entity_code
128688       ,p_event_class_code           => l_event_class_code);
128689    --
128690    -- set accounting class
128691    --
128692    xla_ae_lines_pkg.SetAcctClass(
128693            p_accounting_class_code  => 'TAX_DIFF'
128694          , p_ae_header_id           => l_ae_header_id
128695          );
128696 
128697    --
128698    -- set rounding class
128699    --
128700    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
128701                       'TAX_DIFF';
128702 
128703    --
128704    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
128705    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
128706    --
128710 
128707    -- bulk performance
128708    --
128709    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
128711    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
128712       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
128713 
128714    -- 4955764
128715    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
128716       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
128717 
128718    -- 4458381 Public Sector Enh
128719    
128720    --
128721    -- set accounting attributes for the line type
128722    --
128723    l_entered_amt_idx := 25;
128724    l_accted_amt_idx  := 30;
128725    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
128726    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
128727    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
128728    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
128729    l_rec_acct_attrs.array_num_value(2)  := 
128730 xla_ae_sources_pkg.GetSystemSourceNum(
128731    p_source_code           => 'XLA_EVENT_APPL_ID'
128732  , p_source_type_code      => 'Y'
128733  , p_source_application_id =>  602
128734 );
128735    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
128736    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
128737    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
128738    l_rec_acct_attrs.array_char_value(4)  := 
128739 xla_ae_sources_pkg.GetSystemSourceChar(
128740    p_source_code           => 'XLA_ENTITY_CODE'
128741  , p_source_type_code      => 'Y'
128742  , p_source_application_id =>  602
128743 );
128744    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
128745    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_127);
128746    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
128747    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
128748    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
128749    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
128750    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
128751    l_rec_acct_attrs.array_char_value(8)  := p_source_146;
128752    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
128753    l_rec_acct_attrs.array_char_value(9)  := p_source_147;
128754    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
128755    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_148);
128756    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
128757    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_149);
128758    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
128759    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_127);
128760    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
128761    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
128762    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_ACCT_CLASS';
128763    l_rec_acct_attrs.array_char_value(14)  := p_source_132;
128764    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
128765    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
128766    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
128767    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
128768    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
128769    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
128770    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
128771    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
128772    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ACCT_CLASS';
128773    l_rec_acct_attrs.array_char_value(19)  := p_source_133;
128774    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_CCID';
128775    l_rec_acct_attrs.array_num_value(20)  := p_source_69;
128776    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_AMT';
128777    l_rec_acct_attrs.array_num_value(21)  := p_source_70;
128778    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_ENTERED_CURR';
128779    l_rec_acct_attrs.array_char_value(22)  := p_source_67;
128780    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_LEDGER_AMT';
128781    l_rec_acct_attrs.array_num_value(23)  := p_source_71;
128782    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_OPTION';
128783    l_rec_acct_attrs.array_char_value(24)  := p_source_72;
128784    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_AMOUNT';
128785    l_rec_acct_attrs.array_num_value(25)  := p_source_134;
128786    l_rec_acct_attrs.array_acct_attr_code(26) := 'ENTERED_CURRENCY_CODE';
128787    l_rec_acct_attrs.array_char_value(26)  := p_source_67;
128788    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_DATE';
128789    l_rec_acct_attrs.array_date_value(27)  := p_source_143;
128790    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE';
128791    l_rec_acct_attrs.array_num_value(28)  := p_source_144;
128792    l_rec_acct_attrs.array_acct_attr_code(29) := 'EXCHANGE_RATE_TYPE';
128793    l_rec_acct_attrs.array_char_value(29)  := p_source_145;
128794    l_rec_acct_attrs.array_acct_attr_code(30) := 'LEDGER_AMOUNT';
128795    l_rec_acct_attrs.array_num_value(30)  := p_source_141;
128796    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_END_DATE';
128797    l_rec_acct_attrs.array_date_value(31)  := p_source_77;
128798    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_OPTION';
128799    l_rec_acct_attrs.array_char_value(32)  := p_source_78;
128803    l_rec_acct_attrs.array_char_value(34)  := p_source_80;
128800    l_rec_acct_attrs.array_acct_attr_code(33) := 'MULTIPERIOD_START_DATE';
128801    l_rec_acct_attrs.array_date_value(33)  := p_source_79;
128802    l_rec_acct_attrs.array_acct_attr_code(34) := 'OVERRIDE_ACCTD_AMT_FLAG';
128804    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_ID';
128805    l_rec_acct_attrs.array_num_value(35)  := p_source_81;
128806    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_SITE_ID';
128807    l_rec_acct_attrs.array_num_value(36)  := p_source_82;
128808    l_rec_acct_attrs.array_acct_attr_code(37) := 'PARTY_TYPE';
128809    l_rec_acct_attrs.array_char_value(37)  := p_source_83;
128810    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
128811    l_rec_acct_attrs.array_num_value(38)  :=  to_char(p_source_136);
128812    l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_TYPE';
128813    l_rec_acct_attrs.array_char_value(39)  := p_source_55;
128814    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
128815    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
128816    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
128817    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
128818    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
128819    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
128820    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
128821    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
128822    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
128823    l_rec_acct_attrs.array_num_value(44)  := p_source_90;
128824 
128825    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
128826    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
128827 
128828    ---------------------------------------------------------------------------------------------------------------
128829    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
128830    ---------------------------------------------------------------------------------------------------------------
128831    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
128832 
128833    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
128834    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
128835 
128836    IF xla_accounting_cache_pkg.GetValueChar
128837          (p_source_code         => 'LEDGER_CATEGORY_CODE'
128838          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
128839    AND l_bflow_method_code = 'PRIOR_ENTRY'
128840 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
128841    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
128842          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
128843        )
128844    THEN
128845          xla_ae_lines_pkg.BflowUpgEntry
128846            (p_business_method_code    => l_bflow_method_code
128847            ,p_business_class_code     => l_bflow_class_code
128848            ,p_balance_type            => l_balance_type_code);
128849    ELSE
128850       NULL;
128851 -- No business flow processing for business flow method of NONE.
128852    END IF;
128853 
128854    --
128855    -- call analytical criteria
128856    --
128857    
128858    --
128859    -- call description
128860    --
128861    -- No description or it is inherited.
128862    --
128863    -- call ADRs
128864    -- Bug 4922099
128865    --
128866    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
128867         (NVL(l_actual_upg_option, 'N') = 'O') OR
128868         (NVL(l_enc_upg_option, 'N') = 'O')
128869       )
128870    THEN
128871    NULL;
128872    --
128873    --
128874    
128875   l_ccid := AcctDerRule_45(
128876            p_application_id           => p_application_id
128877          , p_ae_header_id             => l_ae_header_id 
128878 , p_source_15 => p_source_15
128879 , p_source_15_meaning => p_source_15_meaning
128880 , p_source_30 => p_source_30
128881 , p_source_41 => p_source_41
128882          , x_transaction_coa_id       => l_adr_transaction_coa_id
128883          , x_accounting_coa_id        => l_adr_accounting_coa_id
128884          , x_value_type_code          => l_adr_value_type_code
128885          , p_side                     => 'NA'
128886    );
128887 
128888    xla_ae_lines_pkg.set_ccid(
128889     p_code_combination_id          => l_ccid
128890   , p_value_type_code              => l_adr_value_type_code
128891   , p_transaction_coa_id           => l_adr_transaction_coa_id
128892   , p_accounting_coa_id            => l_adr_accounting_coa_id
128893   , p_adr_code                     => 'AP_TAX_DIFFERENCE'
128894   , p_adr_type_code                => 'S'
128895   , p_component_type               => l_component_type
128896   , p_component_code               => l_component_code
128897   , p_component_type_code          => l_component_type_code
128898   , p_component_appl_id            => l_component_appl_id
128899   , p_amb_context_code             => l_amb_context_code
128900   , p_side                         => 'NA'
128901   );
128902 
128903 
128904    l_segment := AcctDerRule_22(
128905            p_application_id           => p_application_id
128906          , p_ae_header_id             => l_ae_header_id 
128907 , p_source_15 => p_source_15
128908 , p_source_15_meaning => p_source_15_meaning
128909 , p_source_30 => p_source_30
128913          , x_flex_value_set_id        => l_adr_flex_value_set_id
128910          , x_transaction_coa_id       => l_adr_transaction_coa_id
128911          , x_accounting_coa_id        => l_adr_accounting_coa_id
128912          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
128914          , x_value_type_code          => l_adr_value_type_code
128915          , x_value_combination_id     => l_adr_value_combination_id
128916          , x_value_segment_code       => l_adr_value_segment_code
128917          , p_side                     => 'NA'
128918          , p_override_seg_flag        => 'Y'
128919    );
128920 
128921    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
128922 
128923       xla_ae_lines_pkg.set_segment(
128924           p_to_segment_code         => 'GL_BALANCING'
128925         , p_segment_value           => l_segment
128926         , p_from_segment_code       => l_adr_value_segment_code
128927         , p_from_combination_id     => l_adr_value_combination_id
128928         , p_value_type_code         => l_adr_value_type_code
128929         , p_transaction_coa_id      => l_adr_transaction_coa_id
128930         , p_accounting_coa_id       => l_adr_accounting_coa_id
128931         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
128932         , p_flex_value_set_id       => l_adr_flex_value_set_id
128933         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
128934         , p_adr_type_code           => 'S'
128935         , p_component_type          => l_component_type
128936         , p_component_code          => l_component_code
128937         , p_component_type_code     => l_component_type_code
128938         , p_component_appl_id       => l_component_appl_id
128939         , p_amb_context_code        => l_amb_context_code
128940         , p_entity_code             => 'AP_INVOICES'
128941         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
128942         , p_side                    => 'NA'
128943         );
128944 
128945   END IF;
128946 
128947    l_segment := AcctDerRule_20(
128948            p_application_id           => p_application_id
128949          , p_ae_header_id             => l_ae_header_id 
128950 , p_source_41 => p_source_41
128951          , x_transaction_coa_id       => l_adr_transaction_coa_id
128952          , x_accounting_coa_id        => l_adr_accounting_coa_id
128953          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
128954          , x_flex_value_set_id        => l_adr_flex_value_set_id
128955          , x_value_type_code          => l_adr_value_type_code
128956          , x_value_combination_id     => l_adr_value_combination_id
128957          , x_value_segment_code       => l_adr_value_segment_code
128958          , p_side                     => 'NA'
128959          , p_override_seg_flag        => 'Y'
128960    );
128961 
128962    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
128963 
128964       xla_ae_lines_pkg.set_segment(
128965           p_to_segment_code         => 'GL_ACCOUNT'
128966         , p_segment_value           => l_segment
128967         , p_from_segment_code       => l_adr_value_segment_code
128968         , p_from_combination_id     => l_adr_value_combination_id
128969         , p_value_type_code         => l_adr_value_type_code
128970         , p_transaction_coa_id      => l_adr_transaction_coa_id
128971         , p_accounting_coa_id       => l_adr_accounting_coa_id
128972         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
128973         , p_flex_value_set_id       => l_adr_flex_value_set_id
128974         , p_adr_code                => 'AP_TAX_DIFFERENCE_NAT_ACCT'
128975         , p_adr_type_code           => 'S'
128976         , p_component_type          => l_component_type
128977         , p_component_code          => l_component_code
128978         , p_component_type_code     => l_component_type_code
128979         , p_component_appl_id       => l_component_appl_id
128980         , p_amb_context_code        => l_amb_context_code
128981         , p_entity_code             => 'AP_INVOICES'
128982         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
128983         , p_side                    => 'NA'
128984         );
128985 
128986   END IF;
128987 
128988    --
128989    --
128990    END IF;
128991    --
128992    -- Bug 4922099
128993    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
128994           (NVL(l_enc_upg_option, 'N') = 'O')
128995         ) AND
128996         (l_bflow_method_code = 'PRIOR_ENTRY')
128997       )
128998    THEN
128999       IF
129000       --
129001       1 = 2
129002       --
129003       THEN
129004       xla_accounting_err_pkg.build_message
129005                                     (p_appli_s_name            => 'XLA'
129006                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
129007                                     ,p_token_1                 => 'LINE_NUMBER'
129008                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
129009                                     ,p_token_2                 => 'LINE_TYPE_NAME'
129010                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
129011                                                                              l_component_type
129012                                                                             ,l_component_code
129013                                                                             ,l_component_type_code
129014                                                                             ,l_component_appl_id
129015                                                                             ,l_amb_context_code
129019                                     ,p_token_3                 => 'OWNER'
129016                                                                             ,l_entity_code
129017                                                                             ,l_event_class_code
129018                                                                            )
129020                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
129021                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
129022                                                                           ,p_lookup_code    => l_component_type_code
129023                                                                          )
129024                                     ,p_token_4                 => 'PRODUCT_NAME'
129025                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
129026                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
129027                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
129028                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
129029                                     ,p_ae_header_id            =>  NULL
129030                                        );
129031 
129032         IF (C_LEVEL_ERROR>= g_log_level) THEN
129033                  trace
129034                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
129035                       ,p_level    => C_LEVEL_ERROR
129036                       ,p_module   => l_log_module);
129037         END IF;
129038       END IF;
129039    END IF;
129040    --
129041    --
129042    ------------------------------------------------------------------------------------------------
129043    -- 4219869 Business Flow
129044    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
129045    -- Prior Entry.  Currently, the following code is always generated.
129046    ------------------------------------------------------------------------------------------------
129047    XLA_AE_LINES_PKG.ValidateCurrentLine;
129048 
129049    ------------------------------------------------------------------------------------
129050    -- 4219869 Business Flow
129051    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
129052    ------------------------------------------------------------------------------------
129053    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
129054 
129055    ----------------------------------------------------------------------------------
129056    -- 4219869 Business Flow
129057    -- Update journal entry status -- Need to generate this within IF <condition>
129058    ----------------------------------------------------------------------------------
129059    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
129060          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
129061          ,p_balance_type_code => l_balance_type_code
129062          );
129063 
129064    -------------------------------------------------------------------------------------------
129065    -- 4262811 - Generate the Accrual Reversal lines
129066    -------------------------------------------------------------------------------------------
129067    BEGIN
129068       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
129069                               (g_array_event(p_event_id).array_value_num('header_index'));
129070       IF l_acc_rev_flag IS NULL THEN
129071          l_acc_rev_flag := 'N';
129072       END IF;
129073    EXCEPTION
129074       WHEN OTHERS THEN
129075          l_acc_rev_flag := 'N';
129076    END;
129077    --
129078    IF (l_acc_rev_flag = 'Y') THEN
129079 
129080        -- 4645092  ------------------------------------------------------------------------------
129081        -- To allow MPA report to determine if it should generate report process
129082        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
129083        ------------------------------------------------------------------------------------------
129084 
129085        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
129086        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
129087    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
129088    -- call ADRs
129089    -- Bug 4922099
129090    --
129091    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
129092         (NVL(l_actual_upg_option, 'N') = 'O') OR
129093         (NVL(l_enc_upg_option, 'N') = 'O')
129094       )
129095    THEN
129096    NULL;
129097    --
129098    --
129099    
129100   l_ccid := AcctDerRule_45(
129101            p_application_id           => p_application_id
129102          , p_ae_header_id             => l_ae_header_id 
129103 , p_source_15 => p_source_15
129104 , p_source_15_meaning => p_source_15_meaning
129105 , p_source_30 => p_source_30
129106 , p_source_41 => p_source_41
129107          , x_transaction_coa_id       => l_adr_transaction_coa_id
129108          , x_accounting_coa_id        => l_adr_accounting_coa_id
129109          , x_value_type_code          => l_adr_value_type_code
129110          , p_side                     => 'NA'
129111    );
129112 
129113    xla_ae_lines_pkg.set_ccid(
129114     p_code_combination_id          => l_ccid
129115   , p_value_type_code              => l_adr_value_type_code
129116   , p_transaction_coa_id           => l_adr_transaction_coa_id
129117   , p_accounting_coa_id            => l_adr_accounting_coa_id
129121   , p_component_code               => l_component_code
129118   , p_adr_code                     => 'AP_TAX_DIFFERENCE'
129119   , p_adr_type_code                => 'S'
129120   , p_component_type               => l_component_type
129122   , p_component_type_code          => l_component_type_code
129123   , p_component_appl_id            => l_component_appl_id
129124   , p_amb_context_code             => l_amb_context_code
129125   , p_side                         => 'NA'
129126   );
129127 
129128 
129129    l_segment := AcctDerRule_22(
129130            p_application_id           => p_application_id
129131          , p_ae_header_id             => l_ae_header_id 
129132 , p_source_15 => p_source_15
129133 , p_source_15_meaning => p_source_15_meaning
129134 , p_source_30 => p_source_30
129135          , x_transaction_coa_id       => l_adr_transaction_coa_id
129136          , x_accounting_coa_id        => l_adr_accounting_coa_id
129137          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
129138          , x_flex_value_set_id        => l_adr_flex_value_set_id
129139          , x_value_type_code          => l_adr_value_type_code
129140          , x_value_combination_id     => l_adr_value_combination_id
129141          , x_value_segment_code       => l_adr_value_segment_code
129142          , p_side                     => 'NA'
129143          , p_override_seg_flag        => 'Y'
129144    );
129145 
129146    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
129147 
129148       xla_ae_lines_pkg.set_segment(
129149           p_to_segment_code         => 'GL_BALANCING'
129150         , p_segment_value           => l_segment
129151         , p_from_segment_code       => l_adr_value_segment_code
129152         , p_from_combination_id     => l_adr_value_combination_id
129153         , p_value_type_code         => l_adr_value_type_code
129154         , p_transaction_coa_id      => l_adr_transaction_coa_id
129155         , p_accounting_coa_id       => l_adr_accounting_coa_id
129156         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
129157         , p_flex_value_set_id       => l_adr_flex_value_set_id
129158         , p_adr_code                => 'AP_INV_DIST_BAL_SEG'
129159         , p_adr_type_code           => 'S'
129160         , p_component_type          => l_component_type
129161         , p_component_code          => l_component_code
129162         , p_component_type_code     => l_component_type_code
129163         , p_component_appl_id       => l_component_appl_id
129164         , p_amb_context_code        => l_amb_context_code
129165         , p_entity_code             => 'AP_INVOICES'
129166         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
129167         , p_side                    => 'NA'
129168         );
129169 
129170   END IF;
129171 
129172    l_segment := AcctDerRule_20(
129173            p_application_id           => p_application_id
129174          , p_ae_header_id             => l_ae_header_id 
129175 , p_source_41 => p_source_41
129176          , x_transaction_coa_id       => l_adr_transaction_coa_id
129177          , x_accounting_coa_id        => l_adr_accounting_coa_id
129178          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
129179          , x_flex_value_set_id        => l_adr_flex_value_set_id
129180          , x_value_type_code          => l_adr_value_type_code
129181          , x_value_combination_id     => l_adr_value_combination_id
129182          , x_value_segment_code       => l_adr_value_segment_code
129183          , p_side                     => 'NA'
129184          , p_override_seg_flag        => 'Y'
129185    );
129186 
129187    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
129188 
129189       xla_ae_lines_pkg.set_segment(
129190           p_to_segment_code         => 'GL_ACCOUNT'
129191         , p_segment_value           => l_segment
129192         , p_from_segment_code       => l_adr_value_segment_code
129193         , p_from_combination_id     => l_adr_value_combination_id
129194         , p_value_type_code         => l_adr_value_type_code
129195         , p_transaction_coa_id      => l_adr_transaction_coa_id
129196         , p_accounting_coa_id       => l_adr_accounting_coa_id
129197         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
129198         , p_flex_value_set_id       => l_adr_flex_value_set_id
129199         , p_adr_code                => 'AP_TAX_DIFFERENCE_NAT_ACCT'
129200         , p_adr_type_code           => 'S'
129201         , p_component_type          => l_component_type
129202         , p_component_code          => l_component_code
129203         , p_component_type_code     => l_component_type_code
129204         , p_component_appl_id       => l_component_appl_id
129205         , p_amb_context_code        => l_amb_context_code
129206         , p_entity_code             => 'AP_INVOICES'
129207         , p_event_class_code        => 'PREPAYMENT APPLICATIONS'
129208         , p_side                    => 'NA'
129209         );
129210 
129211   END IF;
129212 
129213    --
129214    --
129215    END IF;
129216 
129217        --
129218        -- Update the line information that should be overwritten
129219        --
129220        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
129221                                          p_header_num   => 1);
129222        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
129223 
129224        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
129225 
129226        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
129227           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
129231       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
129228        END IF;
129229 
129230       --
129232       --
129233       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
129234           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
129235       ELSE
129236           ---------------------------------------------------------------------------------------------------
129237           -- 4262811a Switch Sign
129238           ---------------------------------------------------------------------------------------------------
129239           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
129240           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
129241                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
129242           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
129243                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
129244           -- 5132302
129245           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
129246                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
129247 
129248       END IF;
129249 
129250       -- 4955764
129251       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
129252       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
129253 
129254 
129255       XLA_AE_LINES_PKG.ValidateCurrentLine;
129256       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
129257 
129258       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
129259                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
129260                ,p_balance_type_code => l_balance_type_code);
129261 
129262    END IF;
129263 
129264    -----------------------------------------------------------------------------------------
129265    -- 4262811 Multiperiod Accounting
129266    -----------------------------------------------------------------------------------------
129267      -- No MPA option is assigned.
129268 
129269 
129270 END IF;
129271 END IF;
129272 --
129273 
129274 --
129275 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
129276    trace
129277       (p_msg      => 'END of AcctLineType_211'
129278       ,p_level    => C_LEVEL_PROCEDURE
129279       ,p_module   => l_log_module);
129280 END IF;
129281 --
129282 EXCEPTION
129283   WHEN xla_exceptions_pkg.application_exception THEN
129284       RAISE;
129285   WHEN OTHERS THEN
129286        xla_exceptions_pkg.raise_message
129287            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_211');
129288 END AcctLineType_211;
129289 --
129290 
129291 ---------------------------------------
129292 --
129293 -- PRIVATE FUNCTION
129294 --         AcctLineType_212
129295 --
129296 ---------------------------------------
129297 PROCEDURE AcctLineType_212 (
129298   p_application_id        IN NUMBER
129299  ,p_event_id              IN NUMBER
129300  ,p_calculate_acctd_flag  IN VARCHAR2
129301  ,p_calculate_g_l_flag    IN VARCHAR2
129302  ,p_actual_flag           IN OUT VARCHAR2
129303  ,p_balance_type_code     OUT VARCHAR2
129304  ,p_gain_or_loss_ref      OUT VARCHAR2
129305  
129306 --Invoice Distribution Description
129307  , p_source_1            IN VARCHAR2
129308 --Automatic Offsets Value
129309  , p_source_15            IN VARCHAR2
129310  , p_source_15_meaning    IN VARCHAR2
129311 --Purchase Order Rate Variance Gain Account
129312  , p_source_20            IN NUMBER
129313 --Invoice Distribution Ledger Amount
129314  , p_source_21            IN NUMBER
129315 --Destination Type of the PO Distribution
129316  , p_source_22            IN VARCHAR2
129317  , p_source_22_meaning    IN VARCHAR2
129318 --Purchase Order Rate Variance Loss Account
129319  , p_source_23            IN NUMBER
129320 --Invoice Distribution Account
129321  , p_source_30            IN NUMBER
129322 --Invoice Distribution Type
129323  , p_source_33            IN VARCHAR2
129324  , p_source_33_meaning    IN VARCHAR2
129325 --Automatic Offsets Flag
129326  , p_source_47            IN VARCHAR2
129327  , p_source_47_meaning    IN VARCHAR2
129328 --Accounting Reversal Indicator
129329  , p_source_53            IN VARCHAR2
129330 --Distribution Link Type
129331  , p_source_55            IN VARCHAR2
129332 --Allocation to Main Distribution Identifier
129333  , p_source_57            IN NUMBER
129334 --Invoice Identifier
129335  , p_source_58            IN NUMBER
129336 --Invoice Distribution Identifier
129337  , p_source_64            IN NUMBER
129338 --Payables Encumbrance Upgrade Credit Account
129339  , p_source_65            IN NUMBER
129340 --Payables Encumbrance Upgrade Credit Amount
129341  , p_source_66            IN NUMBER
129342 --Invoice Currency Code
129343  , p_source_67            IN VARCHAR2
129344 --Payables Encumbrance Upgrade Credit Base Amount
129345  , p_source_68            IN NUMBER
129346 --Payables Encumbrance Upgrade Debit Account
129347  , p_source_69            IN NUMBER
129348 --Payables Encumbrance Upgrade Debit Amount
129349  , p_source_70            IN NUMBER
129350 --Payables Encumbrance Upgrade Debit Base Amount
129351  , p_source_71            IN NUMBER
129355  , p_source_73            IN NUMBER
129352 --Payables Encumbrance Upgrade Option
129353  , p_source_72            IN VARCHAR2
129354 --Invoice Distribution Amount
129356 --Deferred Accounting End Date
129357  , p_source_77            IN DATE
129358 --Deferred Accounting Option
129359  , p_source_78            IN VARCHAR2
129360 --Deferred Accounting Start Date
129361  , p_source_79            IN DATE
129362 --Override Accounted Amount Indicator
129363  , p_source_80            IN VARCHAR2
129364  , p_source_80_meaning    IN VARCHAR2
129365 --Invoice Supplier Identifier
129366  , p_source_81            IN NUMBER
129367 --Invoice Supplier Site Identifier
129368  , p_source_82            IN NUMBER
129369 --Third Party Type
129370  , p_source_83            IN VARCHAR2
129371 --Parent Reversal Identifier
129372  , p_source_84            IN NUMBER
129373 --Invoice Distribution Statistical Amount
129374  , p_source_85            IN NUMBER
129375 --Invoice Distribution Tax Line Identifier
129376  , p_source_86            IN NUMBER
129377 --Invoice Distribution Tax Distribution Identifier from Tax
129378  , p_source_87            IN NUMBER
129379 --Invoice Distribution Summary Tax Line Identifier
129380  , p_source_88            IN NUMBER
129381 --Payables Upgrade Credit Encumbrance Type Identifier
129382  , p_source_89            IN NUMBER
129383 --Payables Upgrade Debit Encumbrance Type Identifier
129384  , p_source_90            IN NUMBER
129385 --Business Flow Accounts Payable Application Identifier
129386  , p_source_91            IN NUMBER
129387 --Business Flow Invoice Distribution Type
129388  , p_source_92            IN VARCHAR2
129389 --Business Flow Invoice Entity Code
129390  , p_source_93            IN VARCHAR2
129391 --Business Flow Invoice Distribution Identifier
129392  , p_source_94            IN NUMBER
129393 --Business Flow Invoice Identifier
129394  , p_source_95            IN NUMBER
129395 --Accrue on Receipt Option
129396  , p_source_96            IN VARCHAR2
129397  , p_source_96_meaning    IN VARCHAR2
129398 --Invoice Exchange Date
129399  , p_source_143            IN DATE
129400 --Invoice Exchange Rate
129401  , p_source_144            IN NUMBER
129402 --Invoice Exchange Rate Type
129403  , p_source_145            IN VARCHAR2
129404 )
129405 IS
129406 
129407 l_component_type              VARCHAR2(80);
129408 l_component_code              VARCHAR2(30);
129409 l_component_type_code         VARCHAR2(1);
129410 l_component_appl_id           INTEGER;
129411 l_amb_context_code            VARCHAR2(30);
129412 l_entity_code                 VARCHAR2(30);
129413 l_event_class_code            VARCHAR2(30);
129414 l_ae_header_id                NUMBER;
129415 l_event_type_code             VARCHAR2(30);
129416 l_line_definition_code        VARCHAR2(30);
129417 l_line_definition_owner_code  VARCHAR2(1);
129418 --
129419 -- adr variables
129420 l_segment                     VARCHAR2(30);
129421 l_ccid                        NUMBER;
129422 l_adr_transaction_coa_id      NUMBER;
129423 l_adr_accounting_coa_id       NUMBER;
129424 l_adr_flexfield_segment_code  VARCHAR2(30);
129425 l_adr_flex_value_set_id       NUMBER;
129426 l_adr_value_type_code         VARCHAR2(30);
129427 l_adr_value_combination_id    NUMBER;
129428 l_adr_value_segment_code      VARCHAR2(30);
129429 
129430 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
129431 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
129432 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
129433 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
129434 
129435 -- 4262811 Variables ------------------------------------------------------------------------------------------
129436 l_entered_amt_idx             NUMBER;
129437 l_accted_amt_idx              NUMBER;
129438 l_acc_rev_flag                VARCHAR2(1);
129439 l_accrual_line_num            NUMBER;
129440 l_tmp_amt                     NUMBER;
129441 l_acc_rev_natural_side_code   VARCHAR2(1);
129442 
129443 l_num_entries                 NUMBER;
129444 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
129445 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
129446 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
129447 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
129448 l_recog_line_1                NUMBER;
129449 l_recog_line_2                NUMBER;
129450 
129451 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
129452 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
129453 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
129454 
129455 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
129456 
129457 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
129458 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
129459 
129460 ---------------------------------------------------------------------------------------------------------------
129461 
129462 
129463 --
129464 -- bulk performance
129465 --
129466 l_balance_type_code           VARCHAR2(1);
129467 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
129468 l_log_module                  VARCHAR2(240);
129469 
129470 --
129471 -- Upgrade strategy
129472 --
129473 l_actual_upg_option           VARCHAR2(1);
129474 l_enc_upg_option           VARCHAR2(1);
129475 
129476 --
129477 BEGIN
129481 END IF;
129478 --
129479 IF g_log_enabled THEN
129480       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_212';
129482 --
129483 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
129484 
129485       trace
129486          (p_msg      => 'BEGIN of AcctLineType_212'
129487          ,p_level    => C_LEVEL_PROCEDURE
129488          ,p_module   => l_log_module);
129489 
129490 END IF;
129491 --
129492 l_component_type             := 'AMB_JLT';
129493 l_component_code             := 'AP_TAX_EX_RATE_VAR_CM';
129494 l_component_type_code        := 'S';
129495 l_component_appl_id          :=  200;
129496 l_amb_context_code           := 'DEFAULT';
129497 l_entity_code                := 'AP_INVOICES';
129498 l_event_class_code           := 'CREDIT MEMOS';
129499 l_event_type_code            := 'CREDIT MEMOS_ALL';
129500 l_line_definition_owner_code := 'S';
129501 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
129502 --
129503 l_balance_type_code          := 'A';
129504 l_segment                     := NULL;
129505 l_ccid                        := NULL;
129506 l_adr_transaction_coa_id      := NULL;
129507 l_adr_accounting_coa_id       := NULL;
129508 l_adr_flexfield_segment_code  := NULL;
129509 l_adr_flex_value_set_id       := NULL;
129510 l_adr_value_type_code         := NULL;
129511 l_adr_value_combination_id    := NULL;
129512 l_adr_value_segment_code      := NULL;
129513 
129514 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
129515 l_bflow_class_code           := '';    -- 4219869 Business Flow
129516 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
129517 l_budgetary_control_flag     := 'N';
129518 
129519 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
129520 l_bflow_applied_to_amt       := NULL; -- 5132302
129521 l_entered_amt_idx            := NULL;          -- 4262811
129522 l_accted_amt_idx             := NULL;          -- 4262811
129523 l_acc_rev_flag               := NULL;          -- 4262811
129524 l_accrual_line_num           := NULL;          -- 4262811
129525 l_tmp_amt                    := NULL;          -- 4262811
129526 --
129527 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
129528             (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
129529                return;
129530   END IF;
129531   
129532 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
129533     l_balance_type_code <> 'B' THEN
129534 IF NVL(p_source_33,'
129535 ') =  'TERV' AND 
129536 NVL(p_source_96,'
129537 ') =  'Y'
129538  THEN 
129539 
129540    --
129541    XLA_AE_LINES_PKG.SetNewLine;
129542 
129543    p_balance_type_code          := l_balance_type_code;
129544    -- set the flag so later we will know whether the gain loss line needs to be created
129545    
129546    IF(l_balance_type_code = 'A' ) THEN
129547      p_actual_flag :='G';
129548    END IF;
129549 
129550    --
129551    -- bulk performance
129552    --
129553    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
129554                                       p_header_num   => 0); -- 4262811
129555    --
129556    -- set accounting line options
129557    --
129558    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
129559            p_natural_side_code          => 'D'
129560          , p_gain_or_loss_flag          => 'Y'
129561          , p_gl_transfer_mode_code      => 'S'
129562          , p_acct_entry_type_code       => 'A'
129563          , p_switch_side_flag           => 'Y'
129564          , p_merge_duplicate_code       => 'A'
129565          );
129566    --
129567    l_acc_rev_natural_side_code := 'C';  -- 4262811
129568    -- 
129569    --
129570    -- set accounting line type info
129571    --
129572    xla_ae_lines_pkg.SetAcctLineType
129573       (p_component_type             => l_component_type
129574       ,p_event_type_code            => l_event_type_code
129575       ,p_line_definition_owner_code => l_line_definition_owner_code
129576       ,p_line_definition_code       => l_line_definition_code
129577       ,p_accounting_line_code       => l_component_code
129578       ,p_accounting_line_type_code  => l_component_type_code
129579       ,p_accounting_line_appl_id    => l_component_appl_id
129580       ,p_amb_context_code           => l_amb_context_code
129581       ,p_entity_code                => l_entity_code
129582       ,p_event_class_code           => l_event_class_code);
129583    --
129584    -- set accounting class
129585    --
129586    xla_ae_lines_pkg.SetAcctClass(
129587            p_accounting_class_code  => 'TERV'
129588          , p_ae_header_id           => l_ae_header_id
129589          );
129590 
129591    --
129592    -- set rounding class
129593    --
129594    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
129595                       'TERV';
129596 
129597    --
129598    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
129599    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
129600    --
129601    -- bulk performance
129602    --
129603    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
129604 
129605    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
129609    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
129606       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
129607 
129608    -- 4955764
129610       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
129611 
129612    -- 4458381 Public Sector Enh
129613    
129614    --
129615    -- set accounting attributes for the line type
129616    --
129617    l_entered_amt_idx := 23;
129618    l_accted_amt_idx  := 28;
129619    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
129620    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
129621    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
129622    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
129623    l_rec_acct_attrs.array_num_value(2)  := 
129624 xla_ae_sources_pkg.GetSystemSourceNum(
129625    p_source_code           => 'XLA_EVENT_APPL_ID'
129626  , p_source_type_code      => 'Y'
129627  , p_source_application_id =>  602
129628 );
129629    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
129630    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
129631    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
129632    l_rec_acct_attrs.array_char_value(4)  := 
129633 xla_ae_sources_pkg.GetSystemSourceChar(
129634    p_source_code           => 'XLA_ENTITY_CODE'
129635  , p_source_type_code      => 'Y'
129636  , p_source_application_id =>  602
129637 );
129638    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
129639    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
129640    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
129641    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
129642    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
129643    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
129644    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
129645    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
129646    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
129647    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
129648    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
129649    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
129650    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
129651    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
129652    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
129653    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
129654    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
129655    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
129656    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
129657    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
129658    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
129659    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
129660    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
129661    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
129662    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
129663    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
129664    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
129665    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
129666    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
129667    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
129668    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
129669    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
129670    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
129671    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
129672    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
129673    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
129674    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
129675    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
129676    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
129677    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
129678    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
129679    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
129680    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
129681    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
129682    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
129683    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
129684    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
129685    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
129686    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
129687    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
129688    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
129689    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
129690    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
129691    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
129692    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
129693    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
129694    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
129695    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
129696    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
129697    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
129698    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
129699    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
129703    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
129700    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
129701    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
129702    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
129704    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
129705    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
129706    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
129707    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
129708    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
129709    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
129710    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
129711    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
129712    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
129713    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
129714    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
129715    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
129716 
129717    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
129718    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
129719 
129720    ---------------------------------------------------------------------------------------------------------------
129721    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
129722    ---------------------------------------------------------------------------------------------------------------
129723    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
129724 
129725    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
129726    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
129727 
129728    IF xla_accounting_cache_pkg.GetValueChar
129729          (p_source_code         => 'LEDGER_CATEGORY_CODE'
129730          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
129731    AND l_bflow_method_code = 'PRIOR_ENTRY'
129732 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
129733    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
129734          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
129735        )
129736    THEN
129737          xla_ae_lines_pkg.BflowUpgEntry
129738            (p_business_method_code    => l_bflow_method_code
129739            ,p_business_class_code     => l_bflow_class_code
129740            ,p_balance_type            => l_balance_type_code);
129741    ELSE
129742       NULL;
129743 -- No business flow processing for business flow method of NONE.
129744    END IF;
129745 
129746    --
129747    -- call analytical criteria
129748    --
129749    
129750    --
129751    -- call description
129752    --
129753    
129754 xla_ae_lines_pkg.SetLineDescription(
129755    p_ae_header_id => l_ae_header_id
129756   ,p_description  => Description_1 (
129757      p_application_id         => p_application_id
129758    , p_ae_header_id           => l_ae_header_id 
129759 , p_source_1 => p_source_1
129760    )
129761 );
129762 
129763 
129764    --
129765    -- call ADRs
129766    -- Bug 4922099
129767    --
129768    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
129769         (NVL(l_actual_upg_option, 'N') = 'O') OR
129770         (NVL(l_enc_upg_option, 'N') = 'O')
129771       )
129772    THEN
129773    NULL;
129774    --
129775    --
129776    
129777   l_ccid := AcctDerRule_30(
129778            p_application_id           => p_application_id
129779          , p_ae_header_id             => l_ae_header_id 
129780 , p_source_15 => p_source_15
129781 , p_source_15_meaning => p_source_15_meaning
129782 , p_source_20 => p_source_20
129783 , p_source_21 => p_source_21
129784 , p_source_22 => p_source_22
129785 , p_source_22_meaning => p_source_22_meaning
129786 , p_source_23 => p_source_23
129787 , p_source_30 => p_source_30
129788 , p_source_47 => p_source_47
129789 , p_source_47_meaning => p_source_47_meaning
129790          , x_transaction_coa_id       => l_adr_transaction_coa_id
129791          , x_accounting_coa_id        => l_adr_accounting_coa_id
129792          , x_value_type_code          => l_adr_value_type_code
129793          , p_side                     => 'NA'
129794    );
129795 
129796    xla_ae_lines_pkg.set_ccid(
129797     p_code_combination_id          => l_ccid
129798   , p_value_type_code              => l_adr_value_type_code
129799   , p_transaction_coa_id           => l_adr_transaction_coa_id
129800   , p_accounting_coa_id            => l_adr_accounting_coa_id
129801   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
129802   , p_adr_type_code                => 'S'
129803   , p_component_type               => l_component_type
129804   , p_component_code               => l_component_code
129805   , p_component_type_code          => l_component_type_code
129806   , p_component_appl_id            => l_component_appl_id
129807   , p_amb_context_code             => l_amb_context_code
129808   , p_side                         => 'NA'
129809   );
129810 
129811 
129812    l_segment := AcctDerRule_8(
129813            p_application_id           => p_application_id
129814          , p_ae_header_id             => l_ae_header_id 
129815 , p_source_15 => p_source_15
129816 , p_source_15_meaning => p_source_15_meaning
129817 , p_source_20 => p_source_20
129818 , p_source_21 => p_source_21
129822          , x_transaction_coa_id       => l_adr_transaction_coa_id
129819 , p_source_22 => p_source_22
129820 , p_source_22_meaning => p_source_22_meaning
129821 , p_source_23 => p_source_23
129823          , x_accounting_coa_id        => l_adr_accounting_coa_id
129824          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
129825          , x_flex_value_set_id        => l_adr_flex_value_set_id
129826          , x_value_type_code          => l_adr_value_type_code
129827          , x_value_combination_id     => l_adr_value_combination_id
129828          , x_value_segment_code       => l_adr_value_segment_code
129829          , p_side                     => 'NA'
129830          , p_override_seg_flag        => 'Y'
129831    );
129832 
129833    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
129834 
129835       xla_ae_lines_pkg.set_segment(
129836           p_to_segment_code         => 'GL_ACCOUNT'
129837         , p_segment_value           => l_segment
129838         , p_from_segment_code       => l_adr_value_segment_code
129839         , p_from_combination_id     => l_adr_value_combination_id
129840         , p_value_type_code         => l_adr_value_type_code
129841         , p_transaction_coa_id      => l_adr_transaction_coa_id
129842         , p_accounting_coa_id       => l_adr_accounting_coa_id
129843         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
129844         , p_flex_value_set_id       => l_adr_flex_value_set_id
129845         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
129846         , p_adr_type_code           => 'S'
129847         , p_component_type          => l_component_type
129848         , p_component_code          => l_component_code
129849         , p_component_type_code     => l_component_type_code
129850         , p_component_appl_id       => l_component_appl_id
129851         , p_amb_context_code        => l_amb_context_code
129852         , p_entity_code             => 'AP_INVOICES'
129853         , p_event_class_code        => 'CREDIT MEMOS'
129854         , p_side                    => 'NA'
129855         );
129856 
129857   END IF;
129858 
129859    l_segment := AcctDerRule_23(
129860            p_application_id           => p_application_id
129861          , p_ae_header_id             => l_ae_header_id 
129862 , p_source_15 => p_source_15
129863 , p_source_15_meaning => p_source_15_meaning
129864 , p_source_22 => p_source_22
129865 , p_source_22_meaning => p_source_22_meaning
129866 , p_source_30 => p_source_30
129867          , x_transaction_coa_id       => l_adr_transaction_coa_id
129868          , x_accounting_coa_id        => l_adr_accounting_coa_id
129869          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
129870          , x_flex_value_set_id        => l_adr_flex_value_set_id
129871          , x_value_type_code          => l_adr_value_type_code
129872          , x_value_combination_id     => l_adr_value_combination_id
129873          , x_value_segment_code       => l_adr_value_segment_code
129874          , p_side                     => 'NA'
129875          , p_override_seg_flag        => 'Y'
129876    );
129877 
129878    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
129879 
129880       xla_ae_lines_pkg.set_segment(
129881           p_to_segment_code         => 'GL_BALANCING'
129882         , p_segment_value           => l_segment
129883         , p_from_segment_code       => l_adr_value_segment_code
129884         , p_from_combination_id     => l_adr_value_combination_id
129885         , p_value_type_code         => l_adr_value_type_code
129886         , p_transaction_coa_id      => l_adr_transaction_coa_id
129887         , p_accounting_coa_id       => l_adr_accounting_coa_id
129888         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
129889         , p_flex_value_set_id       => l_adr_flex_value_set_id
129890         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
129891         , p_adr_type_code           => 'S'
129892         , p_component_type          => l_component_type
129893         , p_component_code          => l_component_code
129894         , p_component_type_code     => l_component_type_code
129895         , p_component_appl_id       => l_component_appl_id
129896         , p_amb_context_code        => l_amb_context_code
129897         , p_entity_code             => 'AP_INVOICES'
129898         , p_event_class_code        => 'CREDIT MEMOS'
129899         , p_side                    => 'NA'
129900         );
129901 
129902   END IF;
129903 
129904    --
129905    --
129906    END IF;
129907    --
129908    -- Bug 4922099
129909    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
129910           (NVL(l_enc_upg_option, 'N') = 'O')
129911         ) AND
129912         (l_bflow_method_code = 'PRIOR_ENTRY')
129913       )
129914    THEN
129915       IF
129916       --
129917       1 = 2
129918       --
129919       THEN
129920       xla_accounting_err_pkg.build_message
129921                                     (p_appli_s_name            => 'XLA'
129922                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
129923                                     ,p_token_1                 => 'LINE_NUMBER'
129924                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
129925                                     ,p_token_2                 => 'LINE_TYPE_NAME'
129926                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
129927                                                                              l_component_type
129931                                                                             ,l_amb_context_code
129928                                                                             ,l_component_code
129929                                                                             ,l_component_type_code
129930                                                                             ,l_component_appl_id
129932                                                                             ,l_entity_code
129933                                                                             ,l_event_class_code
129934                                                                            )
129935                                     ,p_token_3                 => 'OWNER'
129936                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
129937                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
129938                                                                           ,p_lookup_code    => l_component_type_code
129939                                                                          )
129940                                     ,p_token_4                 => 'PRODUCT_NAME'
129941                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
129942                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
129943                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
129944                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
129945                                     ,p_ae_header_id            =>  NULL
129946                                        );
129947 
129948         IF (C_LEVEL_ERROR>= g_log_level) THEN
129949                  trace
129950                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
129951                       ,p_level    => C_LEVEL_ERROR
129952                       ,p_module   => l_log_module);
129953         END IF;
129954       END IF;
129955    END IF;
129956    --
129957    --
129958    ------------------------------------------------------------------------------------------------
129959    -- 4219869 Business Flow
129960    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
129961    -- Prior Entry.  Currently, the following code is always generated.
129962    ------------------------------------------------------------------------------------------------
129963    XLA_AE_LINES_PKG.ValidateCurrentLine;
129964 
129965    ------------------------------------------------------------------------------------
129966    -- 4219869 Business Flow
129967    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
129968    ------------------------------------------------------------------------------------
129969    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
129970 
129971    ----------------------------------------------------------------------------------
129972    -- 4219869 Business Flow
129973    -- Update journal entry status -- Need to generate this within IF <condition>
129974    ----------------------------------------------------------------------------------
129975    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
129976          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
129977          ,p_balance_type_code => l_balance_type_code
129978          );
129979 
129980    -------------------------------------------------------------------------------------------
129981    -- 4262811 - Generate the Accrual Reversal lines
129982    -------------------------------------------------------------------------------------------
129983    BEGIN
129984       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
129985                               (g_array_event(p_event_id).array_value_num('header_index'));
129986       IF l_acc_rev_flag IS NULL THEN
129987          l_acc_rev_flag := 'N';
129988       END IF;
129989    EXCEPTION
129990       WHEN OTHERS THEN
129991          l_acc_rev_flag := 'N';
129992    END;
129993    --
129994    IF (l_acc_rev_flag = 'Y') THEN
129995 
129996        -- 4645092  ------------------------------------------------------------------------------
129997        -- To allow MPA report to determine if it should generate report process
129998        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
129999        ------------------------------------------------------------------------------------------
130000 
130001        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
130002        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
130003    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
130004    -- call ADRs
130005    -- Bug 4922099
130006    --
130007    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
130008         (NVL(l_actual_upg_option, 'N') = 'O') OR
130009         (NVL(l_enc_upg_option, 'N') = 'O')
130010       )
130011    THEN
130012    NULL;
130013    --
130014    --
130015    
130016   l_ccid := AcctDerRule_30(
130017            p_application_id           => p_application_id
130018          , p_ae_header_id             => l_ae_header_id 
130019 , p_source_15 => p_source_15
130020 , p_source_15_meaning => p_source_15_meaning
130021 , p_source_20 => p_source_20
130022 , p_source_21 => p_source_21
130023 , p_source_22 => p_source_22
130024 , p_source_22_meaning => p_source_22_meaning
130025 , p_source_23 => p_source_23
130029          , x_transaction_coa_id       => l_adr_transaction_coa_id
130026 , p_source_30 => p_source_30
130027 , p_source_47 => p_source_47
130028 , p_source_47_meaning => p_source_47_meaning
130030          , x_accounting_coa_id        => l_adr_accounting_coa_id
130031          , x_value_type_code          => l_adr_value_type_code
130032          , p_side                     => 'NA'
130033    );
130034 
130035    xla_ae_lines_pkg.set_ccid(
130036     p_code_combination_id          => l_ccid
130037   , p_value_type_code              => l_adr_value_type_code
130038   , p_transaction_coa_id           => l_adr_transaction_coa_id
130039   , p_accounting_coa_id            => l_adr_accounting_coa_id
130040   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
130041   , p_adr_type_code                => 'S'
130042   , p_component_type               => l_component_type
130043   , p_component_code               => l_component_code
130044   , p_component_type_code          => l_component_type_code
130045   , p_component_appl_id            => l_component_appl_id
130046   , p_amb_context_code             => l_amb_context_code
130047   , p_side                         => 'NA'
130048   );
130049 
130050 
130051    l_segment := AcctDerRule_8(
130052            p_application_id           => p_application_id
130053          , p_ae_header_id             => l_ae_header_id 
130054 , p_source_15 => p_source_15
130055 , p_source_15_meaning => p_source_15_meaning
130056 , p_source_20 => p_source_20
130057 , p_source_21 => p_source_21
130058 , p_source_22 => p_source_22
130059 , p_source_22_meaning => p_source_22_meaning
130060 , p_source_23 => p_source_23
130061          , x_transaction_coa_id       => l_adr_transaction_coa_id
130062          , x_accounting_coa_id        => l_adr_accounting_coa_id
130063          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
130064          , x_flex_value_set_id        => l_adr_flex_value_set_id
130065          , x_value_type_code          => l_adr_value_type_code
130066          , x_value_combination_id     => l_adr_value_combination_id
130067          , x_value_segment_code       => l_adr_value_segment_code
130068          , p_side                     => 'NA'
130069          , p_override_seg_flag        => 'Y'
130070    );
130071 
130072    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
130073 
130074       xla_ae_lines_pkg.set_segment(
130075           p_to_segment_code         => 'GL_ACCOUNT'
130076         , p_segment_value           => l_segment
130077         , p_from_segment_code       => l_adr_value_segment_code
130078         , p_from_combination_id     => l_adr_value_combination_id
130079         , p_value_type_code         => l_adr_value_type_code
130080         , p_transaction_coa_id      => l_adr_transaction_coa_id
130081         , p_accounting_coa_id       => l_adr_accounting_coa_id
130082         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
130083         , p_flex_value_set_id       => l_adr_flex_value_set_id
130084         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
130085         , p_adr_type_code           => 'S'
130086         , p_component_type          => l_component_type
130087         , p_component_code          => l_component_code
130088         , p_component_type_code     => l_component_type_code
130089         , p_component_appl_id       => l_component_appl_id
130090         , p_amb_context_code        => l_amb_context_code
130091         , p_entity_code             => 'AP_INVOICES'
130092         , p_event_class_code        => 'CREDIT MEMOS'
130093         , p_side                    => 'NA'
130094         );
130095 
130096   END IF;
130097 
130098    l_segment := AcctDerRule_23(
130099            p_application_id           => p_application_id
130100          , p_ae_header_id             => l_ae_header_id 
130101 , p_source_15 => p_source_15
130102 , p_source_15_meaning => p_source_15_meaning
130103 , p_source_22 => p_source_22
130104 , p_source_22_meaning => p_source_22_meaning
130105 , p_source_30 => p_source_30
130106          , x_transaction_coa_id       => l_adr_transaction_coa_id
130107          , x_accounting_coa_id        => l_adr_accounting_coa_id
130108          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
130109          , x_flex_value_set_id        => l_adr_flex_value_set_id
130110          , x_value_type_code          => l_adr_value_type_code
130111          , x_value_combination_id     => l_adr_value_combination_id
130112          , x_value_segment_code       => l_adr_value_segment_code
130113          , p_side                     => 'NA'
130114          , p_override_seg_flag        => 'Y'
130115    );
130116 
130117    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
130118 
130119       xla_ae_lines_pkg.set_segment(
130120           p_to_segment_code         => 'GL_BALANCING'
130121         , p_segment_value           => l_segment
130122         , p_from_segment_code       => l_adr_value_segment_code
130123         , p_from_combination_id     => l_adr_value_combination_id
130124         , p_value_type_code         => l_adr_value_type_code
130125         , p_transaction_coa_id      => l_adr_transaction_coa_id
130126         , p_accounting_coa_id       => l_adr_accounting_coa_id
130127         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
130128         , p_flex_value_set_id       => l_adr_flex_value_set_id
130129         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
130130         , p_adr_type_code           => 'S'
130131         , p_component_type          => l_component_type
130132         , p_component_code          => l_component_code
130136         , p_entity_code             => 'AP_INVOICES'
130133         , p_component_type_code     => l_component_type_code
130134         , p_component_appl_id       => l_component_appl_id
130135         , p_amb_context_code        => l_amb_context_code
130137         , p_event_class_code        => 'CREDIT MEMOS'
130138         , p_side                    => 'NA'
130139         );
130140 
130141   END IF;
130142 
130143    --
130144    --
130145    END IF;
130146 
130147        --
130148        -- Update the line information that should be overwritten
130149        --
130150        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
130151                                          p_header_num   => 1);
130152        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
130153 
130154        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
130155 
130156        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
130157           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
130158        END IF;
130159 
130160       --
130161       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
130162       --
130163       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
130164           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
130165       ELSE
130166           ---------------------------------------------------------------------------------------------------
130167           -- 4262811a Switch Sign
130168           ---------------------------------------------------------------------------------------------------
130169           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
130170           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
130171                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
130172           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
130173                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
130174           -- 5132302
130175           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
130176                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
130177 
130178       END IF;
130179 
130180       -- 4955764
130181       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
130182       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
130183 
130184 
130185       XLA_AE_LINES_PKG.ValidateCurrentLine;
130186       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
130187 
130188       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
130189                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
130190                ,p_balance_type_code => l_balance_type_code);
130191 
130192    END IF;
130193 
130194    -----------------------------------------------------------------------------------------
130195    -- 4262811 Multiperiod Accounting
130196    -----------------------------------------------------------------------------------------
130197      -- No MPA option is assigned.
130198 
130199 
130200 END IF;
130201 END IF;
130202 --
130203 
130204 --
130205 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
130206    trace
130207       (p_msg      => 'END of AcctLineType_212'
130208       ,p_level    => C_LEVEL_PROCEDURE
130209       ,p_module   => l_log_module);
130210 END IF;
130211 --
130212 EXCEPTION
130213   WHEN xla_exceptions_pkg.application_exception THEN
130214       RAISE;
130215   WHEN OTHERS THEN
130216        xla_exceptions_pkg.raise_message
130217            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_212');
130218 END AcctLineType_212;
130219 --
130220 
130221 ---------------------------------------
130222 --
130223 -- PRIVATE FUNCTION
130224 --         AcctLineType_213
130225 --
130226 ---------------------------------------
130227 PROCEDURE AcctLineType_213 (
130228   p_application_id        IN NUMBER
130229  ,p_event_id              IN NUMBER
130230  ,p_calculate_acctd_flag  IN VARCHAR2
130231  ,p_calculate_g_l_flag    IN VARCHAR2
130232  ,p_actual_flag           IN OUT VARCHAR2
130233  ,p_balance_type_code     OUT VARCHAR2
130234  ,p_gain_or_loss_ref      OUT VARCHAR2
130235  
130236 --Invoice Distribution Description
130237  , p_source_1            IN VARCHAR2
130238 --Automatic Offsets Value
130239  , p_source_15            IN VARCHAR2
130240  , p_source_15_meaning    IN VARCHAR2
130241 --Purchase Order Rate Variance Gain Account
130242  , p_source_20            IN NUMBER
130243 --Invoice Distribution Ledger Amount
130244  , p_source_21            IN NUMBER
130245 --Destination Type of the PO Distribution
130246  , p_source_22            IN VARCHAR2
130247  , p_source_22_meaning    IN VARCHAR2
130248 --Purchase Order Rate Variance Loss Account
130249  , p_source_23            IN NUMBER
130250 --Invoice Distribution Account
130251  , p_source_30            IN NUMBER
130252 --Invoice Distribution Type
130253  , p_source_33            IN VARCHAR2
130254  , p_source_33_meaning    IN VARCHAR2
130255 --Automatic Offsets Flag
130256  , p_source_47            IN VARCHAR2
130257  , p_source_47_meaning    IN VARCHAR2
130258 --Accounting Reversal Indicator
130262 --Allocation to Main Distribution Identifier
130259  , p_source_53            IN VARCHAR2
130260 --Distribution Link Type
130261  , p_source_55            IN VARCHAR2
130263  , p_source_57            IN NUMBER
130264 --Invoice Identifier
130265  , p_source_58            IN NUMBER
130266 --Invoice Distribution Identifier
130267  , p_source_64            IN NUMBER
130268 --Payables Encumbrance Upgrade Credit Account
130269  , p_source_65            IN NUMBER
130270 --Payables Encumbrance Upgrade Credit Amount
130271  , p_source_66            IN NUMBER
130272 --Invoice Currency Code
130273  , p_source_67            IN VARCHAR2
130274 --Payables Encumbrance Upgrade Credit Base Amount
130275  , p_source_68            IN NUMBER
130276 --Payables Encumbrance Upgrade Debit Account
130277  , p_source_69            IN NUMBER
130278 --Payables Encumbrance Upgrade Debit Amount
130279  , p_source_70            IN NUMBER
130280 --Payables Encumbrance Upgrade Debit Base Amount
130281  , p_source_71            IN NUMBER
130282 --Payables Encumbrance Upgrade Option
130283  , p_source_72            IN VARCHAR2
130284 --Invoice Distribution Amount
130285  , p_source_73            IN NUMBER
130286 --Deferred Accounting End Date
130287  , p_source_77            IN DATE
130288 --Deferred Accounting Option
130289  , p_source_78            IN VARCHAR2
130290 --Deferred Accounting Start Date
130291  , p_source_79            IN DATE
130292 --Override Accounted Amount Indicator
130293  , p_source_80            IN VARCHAR2
130294  , p_source_80_meaning    IN VARCHAR2
130295 --Invoice Supplier Identifier
130296  , p_source_81            IN NUMBER
130297 --Invoice Supplier Site Identifier
130298  , p_source_82            IN NUMBER
130299 --Third Party Type
130300  , p_source_83            IN VARCHAR2
130301 --Parent Reversal Identifier
130302  , p_source_84            IN NUMBER
130303 --Invoice Distribution Tax Line Identifier
130304  , p_source_86            IN NUMBER
130305 --Invoice Distribution Tax Distribution Identifier from Tax
130306  , p_source_87            IN NUMBER
130307 --Invoice Distribution Summary Tax Line Identifier
130308  , p_source_88            IN NUMBER
130309 --Payables Upgrade Credit Encumbrance Type Identifier
130310  , p_source_89            IN NUMBER
130311 --Payables Upgrade Debit Encumbrance Type Identifier
130312  , p_source_90            IN NUMBER
130313 --Business Flow Accounts Payable Application Identifier
130314  , p_source_91            IN NUMBER
130315 --Business Flow Invoice Distribution Type
130316  , p_source_92            IN VARCHAR2
130317 --Business Flow Invoice Entity Code
130318  , p_source_93            IN VARCHAR2
130319 --Business Flow Invoice Distribution Identifier
130320  , p_source_94            IN NUMBER
130321 --Business Flow Invoice Identifier
130322  , p_source_95            IN NUMBER
130323 --Accrue on Receipt Option
130324  , p_source_96            IN VARCHAR2
130325  , p_source_96_meaning    IN VARCHAR2
130326 --Invoice Exchange Date
130327  , p_source_143            IN DATE
130328 --Invoice Exchange Rate
130329  , p_source_144            IN NUMBER
130330 --Invoice Exchange Rate Type
130331  , p_source_145            IN VARCHAR2
130332 )
130333 IS
130334 
130335 l_component_type              VARCHAR2(80);
130336 l_component_code              VARCHAR2(30);
130337 l_component_type_code         VARCHAR2(1);
130338 l_component_appl_id           INTEGER;
130339 l_amb_context_code            VARCHAR2(30);
130340 l_entity_code                 VARCHAR2(30);
130341 l_event_class_code            VARCHAR2(30);
130342 l_ae_header_id                NUMBER;
130343 l_event_type_code             VARCHAR2(30);
130344 l_line_definition_code        VARCHAR2(30);
130345 l_line_definition_owner_code  VARCHAR2(1);
130346 --
130347 -- adr variables
130348 l_segment                     VARCHAR2(30);
130349 l_ccid                        NUMBER;
130350 l_adr_transaction_coa_id      NUMBER;
130351 l_adr_accounting_coa_id       NUMBER;
130352 l_adr_flexfield_segment_code  VARCHAR2(30);
130353 l_adr_flex_value_set_id       NUMBER;
130354 l_adr_value_type_code         VARCHAR2(30);
130355 l_adr_value_combination_id    NUMBER;
130356 l_adr_value_segment_code      VARCHAR2(30);
130357 
130358 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
130359 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
130360 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
130361 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
130362 
130363 -- 4262811 Variables ------------------------------------------------------------------------------------------
130364 l_entered_amt_idx             NUMBER;
130365 l_accted_amt_idx              NUMBER;
130366 l_acc_rev_flag                VARCHAR2(1);
130367 l_accrual_line_num            NUMBER;
130368 l_tmp_amt                     NUMBER;
130369 l_acc_rev_natural_side_code   VARCHAR2(1);
130370 
130371 l_num_entries                 NUMBER;
130372 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
130373 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
130374 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
130375 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
130376 l_recog_line_1                NUMBER;
130377 l_recog_line_2                NUMBER;
130378 
130379 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
130380 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
130381 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
130382 
130386 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
130383 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
130384 
130385 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
130387 
130388 ---------------------------------------------------------------------------------------------------------------
130389 
130390 
130391 --
130392 -- bulk performance
130393 --
130394 l_balance_type_code           VARCHAR2(1);
130395 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
130396 l_log_module                  VARCHAR2(240);
130397 
130398 --
130399 -- Upgrade strategy
130400 --
130401 l_actual_upg_option           VARCHAR2(1);
130402 l_enc_upg_option           VARCHAR2(1);
130403 
130404 --
130405 BEGIN
130406 --
130407 IF g_log_enabled THEN
130408       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_213';
130409 END IF;
130410 --
130411 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
130412 
130413       trace
130414          (p_msg      => 'BEGIN of AcctLineType_213'
130415          ,p_level    => C_LEVEL_PROCEDURE
130416          ,p_module   => l_log_module);
130417 
130418 END IF;
130419 --
130420 l_component_type             := 'AMB_JLT';
130421 l_component_code             := 'AP_TAX_EX_RATE_VAR_DM';
130422 l_component_type_code        := 'S';
130423 l_component_appl_id          :=  200;
130424 l_amb_context_code           := 'DEFAULT';
130425 l_entity_code                := 'AP_INVOICES';
130426 l_event_class_code           := 'DEBIT MEMOS';
130427 l_event_type_code            := 'DEBIT MEMOS_ALL';
130428 l_line_definition_owner_code := 'S';
130429 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
130430 --
130431 l_balance_type_code          := 'A';
130432 l_segment                     := NULL;
130433 l_ccid                        := NULL;
130434 l_adr_transaction_coa_id      := NULL;
130435 l_adr_accounting_coa_id       := NULL;
130436 l_adr_flexfield_segment_code  := NULL;
130437 l_adr_flex_value_set_id       := NULL;
130438 l_adr_value_type_code         := NULL;
130439 l_adr_value_combination_id    := NULL;
130440 l_adr_value_segment_code      := NULL;
130441 
130442 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
130443 l_bflow_class_code           := '';    -- 4219869 Business Flow
130444 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
130445 l_budgetary_control_flag     := 'N';
130446 
130447 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
130448 l_bflow_applied_to_amt       := NULL; -- 5132302
130449 l_entered_amt_idx            := NULL;          -- 4262811
130450 l_accted_amt_idx             := NULL;          -- 4262811
130451 l_acc_rev_flag               := NULL;          -- 4262811
130452 l_accrual_line_num           := NULL;          -- 4262811
130453 l_tmp_amt                    := NULL;          -- 4262811
130454 --
130455 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
130456             (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
130457                return;
130458   END IF;
130459   
130460 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
130461     l_balance_type_code <> 'B' THEN
130462 IF NVL(p_source_33,'
130463 ') =  'TERV' AND 
130464 NVL(p_source_96,'
130465 ') =  'Y'
130466  THEN 
130467 
130468    --
130469    XLA_AE_LINES_PKG.SetNewLine;
130470 
130471    p_balance_type_code          := l_balance_type_code;
130472    -- set the flag so later we will know whether the gain loss line needs to be created
130473    
130474    IF(l_balance_type_code = 'A' ) THEN
130475      p_actual_flag :='G';
130476    END IF;
130477 
130478    --
130479    -- bulk performance
130480    --
130481    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
130482                                       p_header_num   => 0); -- 4262811
130483    --
130484    -- set accounting line options
130485    --
130486    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
130487            p_natural_side_code          => 'D'
130488          , p_gain_or_loss_flag          => 'Y'
130489          , p_gl_transfer_mode_code      => 'S'
130490          , p_acct_entry_type_code       => 'A'
130491          , p_switch_side_flag           => 'Y'
130492          , p_merge_duplicate_code       => 'A'
130493          );
130494    --
130495    l_acc_rev_natural_side_code := 'C';  -- 4262811
130496    -- 
130497    --
130498    -- set accounting line type info
130499    --
130500    xla_ae_lines_pkg.SetAcctLineType
130501       (p_component_type             => l_component_type
130502       ,p_event_type_code            => l_event_type_code
130503       ,p_line_definition_owner_code => l_line_definition_owner_code
130504       ,p_line_definition_code       => l_line_definition_code
130505       ,p_accounting_line_code       => l_component_code
130506       ,p_accounting_line_type_code  => l_component_type_code
130507       ,p_accounting_line_appl_id    => l_component_appl_id
130508       ,p_amb_context_code           => l_amb_context_code
130509       ,p_entity_code                => l_entity_code
130510       ,p_event_class_code           => l_event_class_code);
130511    --
130512    -- set accounting class
130513    --
130514    xla_ae_lines_pkg.SetAcctClass(
130515            p_accounting_class_code  => 'TERV'
130519    --
130516          , p_ae_header_id           => l_ae_header_id
130517          );
130518 
130520    -- set rounding class
130521    --
130522    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
130523                       'TERV';
130524 
130525    --
130526    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
130527    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
130528    --
130529    -- bulk performance
130530    --
130531    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
130532 
130533    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
130534       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
130535 
130536    -- 4955764
130537    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
130538       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
130539 
130540    -- 4458381 Public Sector Enh
130541    
130542    --
130543    -- set accounting attributes for the line type
130544    --
130545    l_entered_amt_idx := 23;
130546    l_accted_amt_idx  := 28;
130547    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
130548    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
130549    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
130550    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
130551    l_rec_acct_attrs.array_num_value(2)  := 
130552 xla_ae_sources_pkg.GetSystemSourceNum(
130553    p_source_code           => 'XLA_EVENT_APPL_ID'
130554  , p_source_type_code      => 'Y'
130555  , p_source_application_id =>  602
130556 );
130557    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
130558    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
130559    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
130560    l_rec_acct_attrs.array_char_value(4)  := 
130561 xla_ae_sources_pkg.GetSystemSourceChar(
130562    p_source_code           => 'XLA_ENTITY_CODE'
130563  , p_source_type_code      => 'Y'
130564  , p_source_application_id =>  602
130565 );
130566    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
130567    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
130568    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
130569    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
130570    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
130571    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
130572    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
130573    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
130574    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
130575    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
130576    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
130577    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
130578    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
130579    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
130580    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
130581    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
130582    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
130583    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
130584    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
130585    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
130586    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
130587    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
130588    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
130589    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
130590    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
130591    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
130592    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
130593    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
130594    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
130595    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
130596    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
130597    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
130598    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
130599    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
130600    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
130601    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
130602    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
130603    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
130604    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
130605    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
130606    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
130607    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
130608    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
130609    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
130610    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
130611    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
130612    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
130613    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
130617    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
130614    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
130615    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
130616    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
130618    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
130619    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
130620    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
130621    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
130622    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
130623    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
130624    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
130625    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
130626    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
130627    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
130628    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
130629    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
130630    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
130631    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
130632    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
130633    l_rec_acct_attrs.array_num_value(38)  := p_source_86;
130634    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
130635    l_rec_acct_attrs.array_num_value(39)  := p_source_87;
130636    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
130637    l_rec_acct_attrs.array_num_value(40)  := p_source_88;
130638    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
130639    l_rec_acct_attrs.array_num_value(41)  := p_source_89;
130640    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
130641    l_rec_acct_attrs.array_num_value(42)  := p_source_90;
130642 
130643    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
130644    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
130645 
130646    ---------------------------------------------------------------------------------------------------------------
130647    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
130648    ---------------------------------------------------------------------------------------------------------------
130649    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
130650 
130651    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
130652    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
130653 
130654    IF xla_accounting_cache_pkg.GetValueChar
130655          (p_source_code         => 'LEDGER_CATEGORY_CODE'
130656          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
130657    AND l_bflow_method_code = 'PRIOR_ENTRY'
130658 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
130659    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
130660          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
130661        )
130662    THEN
130663          xla_ae_lines_pkg.BflowUpgEntry
130664            (p_business_method_code    => l_bflow_method_code
130665            ,p_business_class_code     => l_bflow_class_code
130666            ,p_balance_type            => l_balance_type_code);
130667    ELSE
130668       NULL;
130669 -- No business flow processing for business flow method of NONE.
130670    END IF;
130671 
130672    --
130673    -- call analytical criteria
130674    --
130675    
130676    --
130677    -- call description
130678    --
130679    
130680 xla_ae_lines_pkg.SetLineDescription(
130681    p_ae_header_id => l_ae_header_id
130682   ,p_description  => Description_1 (
130683      p_application_id         => p_application_id
130684    , p_ae_header_id           => l_ae_header_id 
130685 , p_source_1 => p_source_1
130686    )
130687 );
130688 
130689 
130690    --
130691    -- call ADRs
130692    -- Bug 4922099
130693    --
130694    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
130695         (NVL(l_actual_upg_option, 'N') = 'O') OR
130696         (NVL(l_enc_upg_option, 'N') = 'O')
130697       )
130698    THEN
130699    NULL;
130700    --
130701    --
130702    
130703   l_ccid := AcctDerRule_30(
130704            p_application_id           => p_application_id
130705          , p_ae_header_id             => l_ae_header_id 
130706 , p_source_15 => p_source_15
130707 , p_source_15_meaning => p_source_15_meaning
130708 , p_source_20 => p_source_20
130709 , p_source_21 => p_source_21
130710 , p_source_22 => p_source_22
130711 , p_source_22_meaning => p_source_22_meaning
130712 , p_source_23 => p_source_23
130713 , p_source_30 => p_source_30
130714 , p_source_47 => p_source_47
130715 , p_source_47_meaning => p_source_47_meaning
130716          , x_transaction_coa_id       => l_adr_transaction_coa_id
130717          , x_accounting_coa_id        => l_adr_accounting_coa_id
130718          , x_value_type_code          => l_adr_value_type_code
130719          , p_side                     => 'NA'
130720    );
130721 
130722    xla_ae_lines_pkg.set_ccid(
130723     p_code_combination_id          => l_ccid
130724   , p_value_type_code              => l_adr_value_type_code
130725   , p_transaction_coa_id           => l_adr_transaction_coa_id
130729   , p_component_type               => l_component_type
130726   , p_accounting_coa_id            => l_adr_accounting_coa_id
130727   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
130728   , p_adr_type_code                => 'S'
130730   , p_component_code               => l_component_code
130731   , p_component_type_code          => l_component_type_code
130732   , p_component_appl_id            => l_component_appl_id
130733   , p_amb_context_code             => l_amb_context_code
130734   , p_side                         => 'NA'
130735   );
130736 
130737 
130738    l_segment := AcctDerRule_8(
130739            p_application_id           => p_application_id
130740          , p_ae_header_id             => l_ae_header_id 
130741 , p_source_15 => p_source_15
130742 , p_source_15_meaning => p_source_15_meaning
130743 , p_source_20 => p_source_20
130744 , p_source_21 => p_source_21
130745 , p_source_22 => p_source_22
130746 , p_source_22_meaning => p_source_22_meaning
130747 , p_source_23 => p_source_23
130748          , x_transaction_coa_id       => l_adr_transaction_coa_id
130749          , x_accounting_coa_id        => l_adr_accounting_coa_id
130750          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
130751          , x_flex_value_set_id        => l_adr_flex_value_set_id
130752          , x_value_type_code          => l_adr_value_type_code
130753          , x_value_combination_id     => l_adr_value_combination_id
130754          , x_value_segment_code       => l_adr_value_segment_code
130755          , p_side                     => 'NA'
130756          , p_override_seg_flag        => 'Y'
130757    );
130758 
130759    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
130760 
130761       xla_ae_lines_pkg.set_segment(
130762           p_to_segment_code         => 'GL_ACCOUNT'
130763         , p_segment_value           => l_segment
130764         , p_from_segment_code       => l_adr_value_segment_code
130765         , p_from_combination_id     => l_adr_value_combination_id
130766         , p_value_type_code         => l_adr_value_type_code
130767         , p_transaction_coa_id      => l_adr_transaction_coa_id
130768         , p_accounting_coa_id       => l_adr_accounting_coa_id
130769         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
130770         , p_flex_value_set_id       => l_adr_flex_value_set_id
130771         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
130772         , p_adr_type_code           => 'S'
130773         , p_component_type          => l_component_type
130774         , p_component_code          => l_component_code
130775         , p_component_type_code     => l_component_type_code
130776         , p_component_appl_id       => l_component_appl_id
130777         , p_amb_context_code        => l_amb_context_code
130778         , p_entity_code             => 'AP_INVOICES'
130779         , p_event_class_code        => 'DEBIT MEMOS'
130780         , p_side                    => 'NA'
130781         );
130782 
130783   END IF;
130784 
130785    l_segment := AcctDerRule_23(
130786            p_application_id           => p_application_id
130787          , p_ae_header_id             => l_ae_header_id 
130788 , p_source_15 => p_source_15
130789 , p_source_15_meaning => p_source_15_meaning
130790 , p_source_22 => p_source_22
130791 , p_source_22_meaning => p_source_22_meaning
130792 , p_source_30 => p_source_30
130793          , x_transaction_coa_id       => l_adr_transaction_coa_id
130794          , x_accounting_coa_id        => l_adr_accounting_coa_id
130795          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
130796          , x_flex_value_set_id        => l_adr_flex_value_set_id
130797          , x_value_type_code          => l_adr_value_type_code
130798          , x_value_combination_id     => l_adr_value_combination_id
130799          , x_value_segment_code       => l_adr_value_segment_code
130800          , p_side                     => 'NA'
130801          , p_override_seg_flag        => 'Y'
130802    );
130803 
130804    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
130805 
130806       xla_ae_lines_pkg.set_segment(
130807           p_to_segment_code         => 'GL_BALANCING'
130808         , p_segment_value           => l_segment
130809         , p_from_segment_code       => l_adr_value_segment_code
130810         , p_from_combination_id     => l_adr_value_combination_id
130811         , p_value_type_code         => l_adr_value_type_code
130812         , p_transaction_coa_id      => l_adr_transaction_coa_id
130813         , p_accounting_coa_id       => l_adr_accounting_coa_id
130814         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
130815         , p_flex_value_set_id       => l_adr_flex_value_set_id
130816         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
130817         , p_adr_type_code           => 'S'
130818         , p_component_type          => l_component_type
130819         , p_component_code          => l_component_code
130820         , p_component_type_code     => l_component_type_code
130821         , p_component_appl_id       => l_component_appl_id
130822         , p_amb_context_code        => l_amb_context_code
130823         , p_entity_code             => 'AP_INVOICES'
130824         , p_event_class_code        => 'DEBIT MEMOS'
130825         , p_side                    => 'NA'
130826         );
130827 
130828   END IF;
130829 
130830    --
130831    --
130832    END IF;
130833    --
130834    -- Bug 4922099
130835    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
130836           (NVL(l_enc_upg_option, 'N') = 'O')
130840    THEN
130837         ) AND
130838         (l_bflow_method_code = 'PRIOR_ENTRY')
130839       )
130841       IF
130842       --
130843       1 = 2
130844       --
130845       THEN
130846       xla_accounting_err_pkg.build_message
130847                                     (p_appli_s_name            => 'XLA'
130848                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
130849                                     ,p_token_1                 => 'LINE_NUMBER'
130850                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
130851                                     ,p_token_2                 => 'LINE_TYPE_NAME'
130852                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
130853                                                                              l_component_type
130854                                                                             ,l_component_code
130855                                                                             ,l_component_type_code
130856                                                                             ,l_component_appl_id
130857                                                                             ,l_amb_context_code
130858                                                                             ,l_entity_code
130859                                                                             ,l_event_class_code
130860                                                                            )
130861                                     ,p_token_3                 => 'OWNER'
130862                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
130863                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
130864                                                                           ,p_lookup_code    => l_component_type_code
130865                                                                          )
130866                                     ,p_token_4                 => 'PRODUCT_NAME'
130867                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
130868                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
130869                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
130870                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
130871                                     ,p_ae_header_id            =>  NULL
130872                                        );
130873 
130874         IF (C_LEVEL_ERROR>= g_log_level) THEN
130875                  trace
130876                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
130877                       ,p_level    => C_LEVEL_ERROR
130878                       ,p_module   => l_log_module);
130879         END IF;
130880       END IF;
130881    END IF;
130882    --
130883    --
130884    ------------------------------------------------------------------------------------------------
130885    -- 4219869 Business Flow
130886    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
130887    -- Prior Entry.  Currently, the following code is always generated.
130888    ------------------------------------------------------------------------------------------------
130889    XLA_AE_LINES_PKG.ValidateCurrentLine;
130890 
130891    ------------------------------------------------------------------------------------
130892    -- 4219869 Business Flow
130893    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
130894    ------------------------------------------------------------------------------------
130895    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
130896 
130897    ----------------------------------------------------------------------------------
130898    -- 4219869 Business Flow
130899    -- Update journal entry status -- Need to generate this within IF <condition>
130900    ----------------------------------------------------------------------------------
130901    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
130902          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
130903          ,p_balance_type_code => l_balance_type_code
130904          );
130905 
130906    -------------------------------------------------------------------------------------------
130907    -- 4262811 - Generate the Accrual Reversal lines
130908    -------------------------------------------------------------------------------------------
130909    BEGIN
130910       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
130911                               (g_array_event(p_event_id).array_value_num('header_index'));
130912       IF l_acc_rev_flag IS NULL THEN
130913          l_acc_rev_flag := 'N';
130914       END IF;
130915    EXCEPTION
130916       WHEN OTHERS THEN
130917          l_acc_rev_flag := 'N';
130918    END;
130919    --
130920    IF (l_acc_rev_flag = 'Y') THEN
130921 
130922        -- 4645092  ------------------------------------------------------------------------------
130923        -- To allow MPA report to determine if it should generate report process
130924        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
130925        ------------------------------------------------------------------------------------------
130926 
130927        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
130928        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
130929    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
130930    -- call ADRs
130934         (NVL(l_actual_upg_option, 'N') = 'O') OR
130931    -- Bug 4922099
130932    --
130933    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
130935         (NVL(l_enc_upg_option, 'N') = 'O')
130936       )
130937    THEN
130938    NULL;
130939    --
130940    --
130941    
130942   l_ccid := AcctDerRule_30(
130943            p_application_id           => p_application_id
130944          , p_ae_header_id             => l_ae_header_id 
130945 , p_source_15 => p_source_15
130946 , p_source_15_meaning => p_source_15_meaning
130947 , p_source_20 => p_source_20
130948 , p_source_21 => p_source_21
130949 , p_source_22 => p_source_22
130950 , p_source_22_meaning => p_source_22_meaning
130951 , p_source_23 => p_source_23
130952 , p_source_30 => p_source_30
130953 , p_source_47 => p_source_47
130954 , p_source_47_meaning => p_source_47_meaning
130955          , x_transaction_coa_id       => l_adr_transaction_coa_id
130956          , x_accounting_coa_id        => l_adr_accounting_coa_id
130957          , x_value_type_code          => l_adr_value_type_code
130958          , p_side                     => 'NA'
130959    );
130960 
130961    xla_ae_lines_pkg.set_ccid(
130962     p_code_combination_id          => l_ccid
130963   , p_value_type_code              => l_adr_value_type_code
130964   , p_transaction_coa_id           => l_adr_transaction_coa_id
130965   , p_accounting_coa_id            => l_adr_accounting_coa_id
130966   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
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_side                         => 'NA'
130974   );
130975 
130976 
130977    l_segment := AcctDerRule_8(
130978            p_application_id           => p_application_id
130979          , p_ae_header_id             => l_ae_header_id 
130980 , p_source_15 => p_source_15
130981 , p_source_15_meaning => p_source_15_meaning
130982 , p_source_20 => p_source_20
130983 , p_source_21 => p_source_21
130984 , p_source_22 => p_source_22
130985 , p_source_22_meaning => p_source_22_meaning
130986 , p_source_23 => p_source_23
130987          , x_transaction_coa_id       => l_adr_transaction_coa_id
130988          , x_accounting_coa_id        => l_adr_accounting_coa_id
130989          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
130990          , x_flex_value_set_id        => l_adr_flex_value_set_id
130991          , x_value_type_code          => l_adr_value_type_code
130992          , x_value_combination_id     => l_adr_value_combination_id
130993          , x_value_segment_code       => l_adr_value_segment_code
130994          , p_side                     => 'NA'
130995          , p_override_seg_flag        => 'Y'
130996    );
130997 
130998    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
130999 
131000       xla_ae_lines_pkg.set_segment(
131001           p_to_segment_code         => 'GL_ACCOUNT'
131002         , p_segment_value           => l_segment
131003         , p_from_segment_code       => l_adr_value_segment_code
131004         , p_from_combination_id     => l_adr_value_combination_id
131005         , p_value_type_code         => l_adr_value_type_code
131006         , p_transaction_coa_id      => l_adr_transaction_coa_id
131007         , p_accounting_coa_id       => l_adr_accounting_coa_id
131008         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
131009         , p_flex_value_set_id       => l_adr_flex_value_set_id
131010         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
131011         , p_adr_type_code           => 'S'
131012         , p_component_type          => l_component_type
131013         , p_component_code          => l_component_code
131014         , p_component_type_code     => l_component_type_code
131015         , p_component_appl_id       => l_component_appl_id
131016         , p_amb_context_code        => l_amb_context_code
131017         , p_entity_code             => 'AP_INVOICES'
131018         , p_event_class_code        => 'DEBIT MEMOS'
131019         , p_side                    => 'NA'
131020         );
131021 
131022   END IF;
131023 
131024    l_segment := AcctDerRule_23(
131025            p_application_id           => p_application_id
131026          , p_ae_header_id             => l_ae_header_id 
131027 , p_source_15 => p_source_15
131028 , p_source_15_meaning => p_source_15_meaning
131029 , p_source_22 => p_source_22
131030 , p_source_22_meaning => p_source_22_meaning
131031 , p_source_30 => p_source_30
131032          , x_transaction_coa_id       => l_adr_transaction_coa_id
131033          , x_accounting_coa_id        => l_adr_accounting_coa_id
131034          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
131035          , x_flex_value_set_id        => l_adr_flex_value_set_id
131036          , x_value_type_code          => l_adr_value_type_code
131037          , x_value_combination_id     => l_adr_value_combination_id
131038          , x_value_segment_code       => l_adr_value_segment_code
131039          , p_side                     => 'NA'
131040          , p_override_seg_flag        => 'Y'
131041    );
131042 
131043    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
131044 
131045       xla_ae_lines_pkg.set_segment(
131046           p_to_segment_code         => 'GL_BALANCING'
131047         , p_segment_value           => l_segment
131051         , p_transaction_coa_id      => l_adr_transaction_coa_id
131048         , p_from_segment_code       => l_adr_value_segment_code
131049         , p_from_combination_id     => l_adr_value_combination_id
131050         , p_value_type_code         => l_adr_value_type_code
131052         , p_accounting_coa_id       => l_adr_accounting_coa_id
131053         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
131054         , p_flex_value_set_id       => l_adr_flex_value_set_id
131055         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
131056         , p_adr_type_code           => 'S'
131057         , p_component_type          => l_component_type
131058         , p_component_code          => l_component_code
131059         , p_component_type_code     => l_component_type_code
131060         , p_component_appl_id       => l_component_appl_id
131061         , p_amb_context_code        => l_amb_context_code
131062         , p_entity_code             => 'AP_INVOICES'
131063         , p_event_class_code        => 'DEBIT MEMOS'
131064         , p_side                    => 'NA'
131065         );
131066 
131067   END IF;
131068 
131069    --
131070    --
131071    END IF;
131072 
131073        --
131074        -- Update the line information that should be overwritten
131075        --
131076        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
131077                                          p_header_num   => 1);
131078        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
131079 
131080        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
131081 
131082        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
131083           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
131084        END IF;
131085 
131086       --
131087       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
131088       --
131089       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
131090           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
131091       ELSE
131092           ---------------------------------------------------------------------------------------------------
131093           -- 4262811a Switch Sign
131094           ---------------------------------------------------------------------------------------------------
131095           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
131096           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
131097                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
131098           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
131099                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
131100           -- 5132302
131101           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
131102                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
131103 
131104       END IF;
131105 
131106       -- 4955764
131107       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
131108       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
131109 
131110 
131111       XLA_AE_LINES_PKG.ValidateCurrentLine;
131112       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
131113 
131114       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
131115                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
131116                ,p_balance_type_code => l_balance_type_code);
131117 
131118    END IF;
131119 
131120    -----------------------------------------------------------------------------------------
131121    -- 4262811 Multiperiod Accounting
131122    -----------------------------------------------------------------------------------------
131123      -- No MPA option is assigned.
131124 
131125 
131126 END IF;
131127 END IF;
131128 --
131129 
131130 --
131131 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
131132    trace
131133       (p_msg      => 'END of AcctLineType_213'
131134       ,p_level    => C_LEVEL_PROCEDURE
131135       ,p_module   => l_log_module);
131136 END IF;
131137 --
131138 EXCEPTION
131139   WHEN xla_exceptions_pkg.application_exception THEN
131140       RAISE;
131141   WHEN OTHERS THEN
131142        xla_exceptions_pkg.raise_message
131143            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_213');
131144 END AcctLineType_213;
131145 --
131146 
131147 ---------------------------------------
131148 --
131149 -- PRIVATE FUNCTION
131150 --         AcctLineType_214
131151 --
131152 ---------------------------------------
131153 PROCEDURE AcctLineType_214 (
131154   p_application_id        IN NUMBER
131155  ,p_event_id              IN NUMBER
131156  ,p_calculate_acctd_flag  IN VARCHAR2
131157  ,p_calculate_g_l_flag    IN VARCHAR2
131158  ,p_actual_flag           IN OUT VARCHAR2
131159  ,p_balance_type_code     OUT VARCHAR2
131160  ,p_gain_or_loss_ref      OUT VARCHAR2
131161  
131162 --Invoice Distribution Description
131163  , p_source_1            IN VARCHAR2
131164 --Automatic Offsets Value
131165  , p_source_15            IN VARCHAR2
131166  , p_source_15_meaning    IN VARCHAR2
131167 --Purchase Order Rate Variance Gain Account
131171 --Destination Type of the PO Distribution
131168  , p_source_20            IN NUMBER
131169 --Invoice Distribution Ledger Amount
131170  , p_source_21            IN NUMBER
131172  , p_source_22            IN VARCHAR2
131173  , p_source_22_meaning    IN VARCHAR2
131174 --Purchase Order Rate Variance Loss Account
131175  , p_source_23            IN NUMBER
131176 --Invoice Distribution Account
131177  , p_source_30            IN NUMBER
131178 --Invoice Distribution Type
131179  , p_source_33            IN VARCHAR2
131180  , p_source_33_meaning    IN VARCHAR2
131181 --Automatic Offsets Flag
131182  , p_source_47            IN VARCHAR2
131183  , p_source_47_meaning    IN VARCHAR2
131184 --Accounting Reversal Indicator
131185  , p_source_53            IN VARCHAR2
131186 --Distribution Link Type
131187  , p_source_55            IN VARCHAR2
131188 --Allocation to Main Distribution Identifier
131189  , p_source_57            IN NUMBER
131190 --Invoice Identifier
131191  , p_source_58            IN NUMBER
131192 --Invoice Distribution Identifier
131193  , p_source_64            IN NUMBER
131194 --Payables Encumbrance Upgrade Credit Account
131195  , p_source_65            IN NUMBER
131196 --Payables Encumbrance Upgrade Credit Amount
131197  , p_source_66            IN NUMBER
131198 --Invoice Currency Code
131199  , p_source_67            IN VARCHAR2
131200 --Payables Encumbrance Upgrade Credit Base Amount
131201  , p_source_68            IN NUMBER
131202 --Payables Encumbrance Upgrade Debit Account
131203  , p_source_69            IN NUMBER
131204 --Payables Encumbrance Upgrade Debit Amount
131205  , p_source_70            IN NUMBER
131206 --Payables Encumbrance Upgrade Debit Base Amount
131207  , p_source_71            IN NUMBER
131208 --Payables Encumbrance Upgrade Option
131209  , p_source_72            IN VARCHAR2
131210 --Invoice Distribution Amount
131211  , p_source_73            IN NUMBER
131212 --Deferred Accounting End Date
131213  , p_source_77            IN DATE
131214 --Deferred Accounting Option
131215  , p_source_78            IN VARCHAR2
131216 --Deferred Accounting Start Date
131217  , p_source_79            IN DATE
131218 --Override Accounted Amount Indicator
131219  , p_source_80            IN VARCHAR2
131220  , p_source_80_meaning    IN VARCHAR2
131221 --Invoice Supplier Identifier
131222  , p_source_81            IN NUMBER
131223 --Invoice Supplier Site Identifier
131224  , p_source_82            IN NUMBER
131225 --Third Party Type
131226  , p_source_83            IN VARCHAR2
131227 --Parent Reversal Identifier
131228  , p_source_84            IN NUMBER
131229 --Invoice Distribution Statistical Amount
131230  , p_source_85            IN NUMBER
131231 --Invoice Distribution Tax Line Identifier
131232  , p_source_86            IN NUMBER
131233 --Invoice Distribution Tax Distribution Identifier from Tax
131234  , p_source_87            IN NUMBER
131235 --Invoice Distribution Summary Tax Line Identifier
131236  , p_source_88            IN NUMBER
131237 --Payables Upgrade Credit Encumbrance Type Identifier
131238  , p_source_89            IN NUMBER
131239 --Payables Upgrade Debit Encumbrance Type Identifier
131240  , p_source_90            IN NUMBER
131241 --Business Flow Accounts Payable Application Identifier
131242  , p_source_91            IN NUMBER
131243 --Business Flow Invoice Distribution Type
131244  , p_source_92            IN VARCHAR2
131245 --Business Flow Invoice Entity Code
131246  , p_source_93            IN VARCHAR2
131247 --Business Flow Invoice Distribution Identifier
131248  , p_source_94            IN NUMBER
131249 --Business Flow Invoice Identifier
131250  , p_source_95            IN NUMBER
131251 --Accrue on Receipt Option
131252  , p_source_96            IN VARCHAR2
131253  , p_source_96_meaning    IN VARCHAR2
131254 --Invoice Exchange Date
131255  , p_source_143            IN DATE
131256 --Invoice Exchange Rate
131257  , p_source_144            IN NUMBER
131258 --Invoice Exchange Rate Type
131259  , p_source_145            IN VARCHAR2
131260 )
131261 IS
131262 
131263 l_component_type              VARCHAR2(80);
131264 l_component_code              VARCHAR2(30);
131265 l_component_type_code         VARCHAR2(1);
131266 l_component_appl_id           INTEGER;
131267 l_amb_context_code            VARCHAR2(30);
131268 l_entity_code                 VARCHAR2(30);
131269 l_event_class_code            VARCHAR2(30);
131270 l_ae_header_id                NUMBER;
131271 l_event_type_code             VARCHAR2(30);
131272 l_line_definition_code        VARCHAR2(30);
131273 l_line_definition_owner_code  VARCHAR2(1);
131274 --
131275 -- adr variables
131276 l_segment                     VARCHAR2(30);
131277 l_ccid                        NUMBER;
131278 l_adr_transaction_coa_id      NUMBER;
131279 l_adr_accounting_coa_id       NUMBER;
131280 l_adr_flexfield_segment_code  VARCHAR2(30);
131281 l_adr_flex_value_set_id       NUMBER;
131282 l_adr_value_type_code         VARCHAR2(30);
131283 l_adr_value_combination_id    NUMBER;
131284 l_adr_value_segment_code      VARCHAR2(30);
131285 
131286 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
131287 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
131288 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
131289 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
131290 
131291 -- 4262811 Variables ------------------------------------------------------------------------------------------
131292 l_entered_amt_idx             NUMBER;
131293 l_accted_amt_idx              NUMBER;
131297 l_acc_rev_natural_side_code   VARCHAR2(1);
131294 l_acc_rev_flag                VARCHAR2(1);
131295 l_accrual_line_num            NUMBER;
131296 l_tmp_amt                     NUMBER;
131298 
131299 l_num_entries                 NUMBER;
131300 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
131301 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
131302 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
131303 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
131304 l_recog_line_1                NUMBER;
131305 l_recog_line_2                NUMBER;
131306 
131307 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
131308 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
131309 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
131310 
131311 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
131312 
131313 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
131314 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
131315 
131316 ---------------------------------------------------------------------------------------------------------------
131317 
131318 
131319 --
131320 -- bulk performance
131321 --
131322 l_balance_type_code           VARCHAR2(1);
131323 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
131324 l_log_module                  VARCHAR2(240);
131325 
131326 --
131327 -- Upgrade strategy
131328 --
131329 l_actual_upg_option           VARCHAR2(1);
131330 l_enc_upg_option           VARCHAR2(1);
131331 
131332 --
131333 BEGIN
131334 --
131335 IF g_log_enabled THEN
131336       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_214';
131337 END IF;
131338 --
131339 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
131340 
131341       trace
131342          (p_msg      => 'BEGIN of AcctLineType_214'
131343          ,p_level    => C_LEVEL_PROCEDURE
131344          ,p_module   => l_log_module);
131345 
131346 END IF;
131347 --
131348 l_component_type             := 'AMB_JLT';
131349 l_component_code             := 'AP_TAX_EX_RATE_VAR_INV';
131350 l_component_type_code        := 'S';
131351 l_component_appl_id          :=  200;
131352 l_amb_context_code           := 'DEFAULT';
131353 l_entity_code                := 'AP_INVOICES';
131354 l_event_class_code           := 'INVOICES';
131355 l_event_type_code            := 'INVOICES_ALL';
131356 l_line_definition_owner_code := 'S';
131357 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
131358 --
131359 l_balance_type_code          := 'A';
131360 l_segment                     := NULL;
131361 l_ccid                        := NULL;
131362 l_adr_transaction_coa_id      := NULL;
131363 l_adr_accounting_coa_id       := NULL;
131364 l_adr_flexfield_segment_code  := NULL;
131365 l_adr_flex_value_set_id       := NULL;
131366 l_adr_value_type_code         := NULL;
131367 l_adr_value_combination_id    := NULL;
131368 l_adr_value_segment_code      := NULL;
131369 
131370 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
131371 l_bflow_class_code           := '';    -- 4219869 Business Flow
131372 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
131373 l_budgetary_control_flag     := 'N';
131374 
131375 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
131376 l_bflow_applied_to_amt       := NULL; -- 5132302
131377 l_entered_amt_idx            := NULL;          -- 4262811
131378 l_accted_amt_idx             := NULL;          -- 4262811
131379 l_acc_rev_flag               := NULL;          -- 4262811
131380 l_accrual_line_num           := NULL;          -- 4262811
131381 l_tmp_amt                    := NULL;          -- 4262811
131382 --
131383 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
131384             (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
131385                return;
131386   END IF;
131387   
131388 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
131389     l_balance_type_code <> 'B' THEN
131390 IF NVL(p_source_33,'
131391 ') =  'TERV' AND 
131392 NVL(p_source_96,'
131393 ') =  'Y'
131394  THEN 
131395 
131396    --
131397    XLA_AE_LINES_PKG.SetNewLine;
131398 
131399    p_balance_type_code          := l_balance_type_code;
131400    -- set the flag so later we will know whether the gain loss line needs to be created
131401    
131402    IF(l_balance_type_code = 'A' ) THEN
131403      p_actual_flag :='G';
131404    END IF;
131405 
131406    --
131407    -- bulk performance
131408    --
131409    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
131410                                       p_header_num   => 0); -- 4262811
131411    --
131412    -- set accounting line options
131413    --
131414    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
131415            p_natural_side_code          => 'D'
131416          , p_gain_or_loss_flag          => 'Y'
131417          , p_gl_transfer_mode_code      => 'S'
131418          , p_acct_entry_type_code       => 'A'
131419          , p_switch_side_flag           => 'Y'
131420          , p_merge_duplicate_code       => 'A'
131421          );
131422    --
131426    -- set accounting line type info
131423    l_acc_rev_natural_side_code := 'C';  -- 4262811
131424    -- 
131425    --
131427    --
131428    xla_ae_lines_pkg.SetAcctLineType
131429       (p_component_type             => l_component_type
131430       ,p_event_type_code            => l_event_type_code
131431       ,p_line_definition_owner_code => l_line_definition_owner_code
131432       ,p_line_definition_code       => l_line_definition_code
131433       ,p_accounting_line_code       => l_component_code
131434       ,p_accounting_line_type_code  => l_component_type_code
131435       ,p_accounting_line_appl_id    => l_component_appl_id
131436       ,p_amb_context_code           => l_amb_context_code
131437       ,p_entity_code                => l_entity_code
131438       ,p_event_class_code           => l_event_class_code);
131439    --
131440    -- set accounting class
131441    --
131442    xla_ae_lines_pkg.SetAcctClass(
131443            p_accounting_class_code  => 'TERV'
131444          , p_ae_header_id           => l_ae_header_id
131445          );
131446 
131447    --
131448    -- set rounding class
131449    --
131450    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
131451                       'TERV';
131452 
131453    --
131454    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
131455    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
131456    --
131457    -- bulk performance
131458    --
131459    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
131460 
131461    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
131462       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
131463 
131464    -- 4955764
131465    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
131466       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
131467 
131468    -- 4458381 Public Sector Enh
131469    
131470    --
131471    -- set accounting attributes for the line type
131472    --
131473    l_entered_amt_idx := 24;
131474    l_accted_amt_idx  := 29;
131475    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
131476    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
131477    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
131478    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
131479    l_rec_acct_attrs.array_num_value(2)  := 
131480 xla_ae_sources_pkg.GetSystemSourceNum(
131481    p_source_code           => 'XLA_EVENT_APPL_ID'
131482  , p_source_type_code      => 'Y'
131483  , p_source_application_id =>  602
131484 );
131485    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
131486    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
131487    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
131488    l_rec_acct_attrs.array_char_value(4)  := 
131489 xla_ae_sources_pkg.GetSystemSourceChar(
131490    p_source_code           => 'XLA_ENTITY_CODE'
131491  , p_source_type_code      => 'Y'
131492  , p_source_application_id =>  602
131493 );
131494    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
131495    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
131496    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
131497    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
131498    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
131499    l_rec_acct_attrs.array_num_value(7)  := p_source_73;
131500    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
131501    l_rec_acct_attrs.array_num_value(8)  := p_source_91;
131502    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
131503    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
131504    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
131505    l_rec_acct_attrs.array_char_value(10)  := p_source_93;
131506    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
131507    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
131508    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
131509    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_95);
131510    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
131511    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_64);
131512    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
131513    l_rec_acct_attrs.array_char_value(14)  := p_source_55;
131514    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
131515    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
131516    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
131517    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
131518    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
131519    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
131520    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
131521    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
131522    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
131523    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
131524    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
131525    l_rec_acct_attrs.array_num_value(20)  := p_source_70;
131526    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
131527    l_rec_acct_attrs.array_char_value(21)  := p_source_67;
131531    l_rec_acct_attrs.array_char_value(23)  := p_source_72;
131528    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
131529    l_rec_acct_attrs.array_num_value(22)  := p_source_71;
131530    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
131532    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
131533    l_rec_acct_attrs.array_num_value(24)  := p_source_73;
131534    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
131535    l_rec_acct_attrs.array_char_value(25)  := p_source_67;
131536    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
131537    l_rec_acct_attrs.array_date_value(26)  := p_source_143;
131538    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
131539    l_rec_acct_attrs.array_num_value(27)  := p_source_144;
131540    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
131541    l_rec_acct_attrs.array_char_value(28)  := p_source_145;
131542    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
131543    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
131544    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
131545    l_rec_acct_attrs.array_date_value(30)  := p_source_77;
131546    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
131547    l_rec_acct_attrs.array_char_value(31)  := p_source_78;
131548    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
131549    l_rec_acct_attrs.array_date_value(32)  := p_source_79;
131550    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
131551    l_rec_acct_attrs.array_char_value(33)  := p_source_80;
131552    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
131553    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
131554    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
131555    l_rec_acct_attrs.array_num_value(35)  := p_source_82;
131556    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
131557    l_rec_acct_attrs.array_char_value(36)  := p_source_83;
131558    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
131559    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_84);
131560    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
131561    l_rec_acct_attrs.array_char_value(38)  := p_source_55;
131562    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
131563    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
131564    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
131565    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
131566    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
131567    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
131568    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
131569    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
131570    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
131571    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
131572    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
131573    l_rec_acct_attrs.array_num_value(44)  := p_source_90;
131574 
131575    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
131576    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
131577 
131578    ---------------------------------------------------------------------------------------------------------------
131579    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
131580    ---------------------------------------------------------------------------------------------------------------
131581    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
131582 
131583    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
131584    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
131585 
131586    IF xla_accounting_cache_pkg.GetValueChar
131587          (p_source_code         => 'LEDGER_CATEGORY_CODE'
131588          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
131589    AND l_bflow_method_code = 'PRIOR_ENTRY'
131590 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
131591    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
131592          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
131593        )
131594    THEN
131595          xla_ae_lines_pkg.BflowUpgEntry
131596            (p_business_method_code    => l_bflow_method_code
131597            ,p_business_class_code     => l_bflow_class_code
131598            ,p_balance_type            => l_balance_type_code);
131599    ELSE
131600       NULL;
131601 -- No business flow processing for business flow method of NONE.
131602    END IF;
131603 
131604    --
131605    -- call analytical criteria
131606    --
131607    
131608    --
131609    -- call description
131610    --
131611    
131612 xla_ae_lines_pkg.SetLineDescription(
131613    p_ae_header_id => l_ae_header_id
131614   ,p_description  => Description_1 (
131615      p_application_id         => p_application_id
131616    , p_ae_header_id           => l_ae_header_id 
131617 , p_source_1 => p_source_1
131618    )
131619 );
131620 
131621 
131622    --
131623    -- call ADRs
131624    -- Bug 4922099
131625    --
131626    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
131627         (NVL(l_actual_upg_option, 'N') = 'O') OR
131628         (NVL(l_enc_upg_option, 'N') = 'O')
131629       )
131630    THEN
131631    NULL;
131632    --
131633    --
131634    
131638 , p_source_15 => p_source_15
131635   l_ccid := AcctDerRule_30(
131636            p_application_id           => p_application_id
131637          , p_ae_header_id             => l_ae_header_id 
131639 , p_source_15_meaning => p_source_15_meaning
131640 , p_source_20 => p_source_20
131641 , p_source_21 => p_source_21
131642 , p_source_22 => p_source_22
131643 , p_source_22_meaning => p_source_22_meaning
131644 , p_source_23 => p_source_23
131645 , p_source_30 => p_source_30
131646 , p_source_47 => p_source_47
131647 , p_source_47_meaning => p_source_47_meaning
131648          , x_transaction_coa_id       => l_adr_transaction_coa_id
131649          , x_accounting_coa_id        => l_adr_accounting_coa_id
131650          , x_value_type_code          => l_adr_value_type_code
131651          , p_side                     => 'NA'
131652    );
131653 
131654    xla_ae_lines_pkg.set_ccid(
131655     p_code_combination_id          => l_ccid
131656   , p_value_type_code              => l_adr_value_type_code
131657   , p_transaction_coa_id           => l_adr_transaction_coa_id
131658   , p_accounting_coa_id            => l_adr_accounting_coa_id
131659   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
131660   , p_adr_type_code                => 'S'
131661   , p_component_type               => l_component_type
131662   , p_component_code               => l_component_code
131663   , p_component_type_code          => l_component_type_code
131664   , p_component_appl_id            => l_component_appl_id
131665   , p_amb_context_code             => l_amb_context_code
131666   , p_side                         => 'NA'
131667   );
131668 
131669 
131670    l_segment := AcctDerRule_8(
131671            p_application_id           => p_application_id
131672          , p_ae_header_id             => l_ae_header_id 
131673 , p_source_15 => p_source_15
131674 , p_source_15_meaning => p_source_15_meaning
131675 , p_source_20 => p_source_20
131676 , p_source_21 => p_source_21
131677 , p_source_22 => p_source_22
131678 , p_source_22_meaning => p_source_22_meaning
131679 , p_source_23 => p_source_23
131680          , x_transaction_coa_id       => l_adr_transaction_coa_id
131681          , x_accounting_coa_id        => l_adr_accounting_coa_id
131682          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
131683          , x_flex_value_set_id        => l_adr_flex_value_set_id
131684          , x_value_type_code          => l_adr_value_type_code
131685          , x_value_combination_id     => l_adr_value_combination_id
131686          , x_value_segment_code       => l_adr_value_segment_code
131687          , p_side                     => 'NA'
131688          , p_override_seg_flag        => 'Y'
131689    );
131690 
131691    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
131692 
131693       xla_ae_lines_pkg.set_segment(
131694           p_to_segment_code         => 'GL_ACCOUNT'
131695         , p_segment_value           => l_segment
131696         , p_from_segment_code       => l_adr_value_segment_code
131697         , p_from_combination_id     => l_adr_value_combination_id
131698         , p_value_type_code         => l_adr_value_type_code
131699         , p_transaction_coa_id      => l_adr_transaction_coa_id
131700         , p_accounting_coa_id       => l_adr_accounting_coa_id
131701         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
131702         , p_flex_value_set_id       => l_adr_flex_value_set_id
131703         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
131704         , p_adr_type_code           => 'S'
131705         , p_component_type          => l_component_type
131706         , p_component_code          => l_component_code
131707         , p_component_type_code     => l_component_type_code
131708         , p_component_appl_id       => l_component_appl_id
131709         , p_amb_context_code        => l_amb_context_code
131710         , p_entity_code             => 'AP_INVOICES'
131711         , p_event_class_code        => 'INVOICES'
131712         , p_side                    => 'NA'
131713         );
131714 
131715   END IF;
131716 
131717    l_segment := AcctDerRule_23(
131718            p_application_id           => p_application_id
131719          , p_ae_header_id             => l_ae_header_id 
131720 , p_source_15 => p_source_15
131721 , p_source_15_meaning => p_source_15_meaning
131722 , p_source_22 => p_source_22
131723 , p_source_22_meaning => p_source_22_meaning
131724 , p_source_30 => p_source_30
131725          , x_transaction_coa_id       => l_adr_transaction_coa_id
131726          , x_accounting_coa_id        => l_adr_accounting_coa_id
131727          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
131728          , x_flex_value_set_id        => l_adr_flex_value_set_id
131729          , x_value_type_code          => l_adr_value_type_code
131730          , x_value_combination_id     => l_adr_value_combination_id
131731          , x_value_segment_code       => l_adr_value_segment_code
131732          , p_side                     => 'NA'
131733          , p_override_seg_flag        => 'Y'
131734    );
131735 
131736    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
131737 
131738       xla_ae_lines_pkg.set_segment(
131739           p_to_segment_code         => 'GL_BALANCING'
131740         , p_segment_value           => l_segment
131741         , p_from_segment_code       => l_adr_value_segment_code
131742         , p_from_combination_id     => l_adr_value_combination_id
131743         , p_value_type_code         => l_adr_value_type_code
131744         , p_transaction_coa_id      => l_adr_transaction_coa_id
131745         , p_accounting_coa_id       => l_adr_accounting_coa_id
131749         , p_adr_type_code           => 'S'
131746         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
131747         , p_flex_value_set_id       => l_adr_flex_value_set_id
131748         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
131750         , p_component_type          => l_component_type
131751         , p_component_code          => l_component_code
131752         , p_component_type_code     => l_component_type_code
131753         , p_component_appl_id       => l_component_appl_id
131754         , p_amb_context_code        => l_amb_context_code
131755         , p_entity_code             => 'AP_INVOICES'
131756         , p_event_class_code        => 'INVOICES'
131757         , p_side                    => 'NA'
131758         );
131759 
131760   END IF;
131761 
131762    --
131763    --
131764    END IF;
131765    --
131766    -- Bug 4922099
131767    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
131768           (NVL(l_enc_upg_option, 'N') = 'O')
131769         ) AND
131770         (l_bflow_method_code = 'PRIOR_ENTRY')
131771       )
131772    THEN
131773       IF
131774       --
131775       1 = 2
131776       --
131777       THEN
131778       xla_accounting_err_pkg.build_message
131779                                     (p_appli_s_name            => 'XLA'
131780                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
131781                                     ,p_token_1                 => 'LINE_NUMBER'
131782                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
131783                                     ,p_token_2                 => 'LINE_TYPE_NAME'
131784                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
131785                                                                              l_component_type
131786                                                                             ,l_component_code
131787                                                                             ,l_component_type_code
131788                                                                             ,l_component_appl_id
131789                                                                             ,l_amb_context_code
131790                                                                             ,l_entity_code
131791                                                                             ,l_event_class_code
131792                                                                            )
131793                                     ,p_token_3                 => 'OWNER'
131794                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
131795                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
131796                                                                           ,p_lookup_code    => l_component_type_code
131797                                                                          )
131798                                     ,p_token_4                 => 'PRODUCT_NAME'
131799                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
131800                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
131801                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
131802                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
131803                                     ,p_ae_header_id            =>  NULL
131804                                        );
131805 
131806         IF (C_LEVEL_ERROR>= g_log_level) THEN
131807                  trace
131808                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
131809                       ,p_level    => C_LEVEL_ERROR
131810                       ,p_module   => l_log_module);
131811         END IF;
131812       END IF;
131813    END IF;
131814    --
131815    --
131816    ------------------------------------------------------------------------------------------------
131817    -- 4219869 Business Flow
131818    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
131819    -- Prior Entry.  Currently, the following code is always generated.
131820    ------------------------------------------------------------------------------------------------
131821    XLA_AE_LINES_PKG.ValidateCurrentLine;
131822 
131823    ------------------------------------------------------------------------------------
131824    -- 4219869 Business Flow
131825    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
131826    ------------------------------------------------------------------------------------
131827    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
131828 
131829    ----------------------------------------------------------------------------------
131830    -- 4219869 Business Flow
131831    -- Update journal entry status -- Need to generate this within IF <condition>
131832    ----------------------------------------------------------------------------------
131833    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
131834          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
131835          ,p_balance_type_code => l_balance_type_code
131836          );
131837 
131838    -------------------------------------------------------------------------------------------
131839    -- 4262811 - Generate the Accrual Reversal lines
131843                               (g_array_event(p_event_id).array_value_num('header_index'));
131840    -------------------------------------------------------------------------------------------
131841    BEGIN
131842       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
131844       IF l_acc_rev_flag IS NULL THEN
131845          l_acc_rev_flag := 'N';
131846       END IF;
131847    EXCEPTION
131848       WHEN OTHERS THEN
131849          l_acc_rev_flag := 'N';
131850    END;
131851    --
131852    IF (l_acc_rev_flag = 'Y') THEN
131853 
131854        -- 4645092  ------------------------------------------------------------------------------
131855        -- To allow MPA report to determine if it should generate report process
131856        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
131857        ------------------------------------------------------------------------------------------
131858 
131859        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
131860        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
131861    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
131862    -- call ADRs
131863    -- Bug 4922099
131864    --
131865    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
131866         (NVL(l_actual_upg_option, 'N') = 'O') OR
131867         (NVL(l_enc_upg_option, 'N') = 'O')
131868       )
131869    THEN
131870    NULL;
131871    --
131872    --
131873    
131874   l_ccid := AcctDerRule_30(
131875            p_application_id           => p_application_id
131876          , p_ae_header_id             => l_ae_header_id 
131877 , p_source_15 => p_source_15
131878 , p_source_15_meaning => p_source_15_meaning
131879 , p_source_20 => p_source_20
131880 , p_source_21 => p_source_21
131881 , p_source_22 => p_source_22
131882 , p_source_22_meaning => p_source_22_meaning
131883 , p_source_23 => p_source_23
131884 , p_source_30 => p_source_30
131885 , p_source_47 => p_source_47
131886 , p_source_47_meaning => p_source_47_meaning
131887          , x_transaction_coa_id       => l_adr_transaction_coa_id
131888          , x_accounting_coa_id        => l_adr_accounting_coa_id
131889          , x_value_type_code          => l_adr_value_type_code
131890          , p_side                     => 'NA'
131891    );
131892 
131893    xla_ae_lines_pkg.set_ccid(
131894     p_code_combination_id          => l_ccid
131895   , p_value_type_code              => l_adr_value_type_code
131896   , p_transaction_coa_id           => l_adr_transaction_coa_id
131897   , p_accounting_coa_id            => l_adr_accounting_coa_id
131898   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
131899   , p_adr_type_code                => 'S'
131900   , p_component_type               => l_component_type
131901   , p_component_code               => l_component_code
131902   , p_component_type_code          => l_component_type_code
131903   , p_component_appl_id            => l_component_appl_id
131904   , p_amb_context_code             => l_amb_context_code
131905   , p_side                         => 'NA'
131906   );
131907 
131908 
131909    l_segment := AcctDerRule_8(
131910            p_application_id           => p_application_id
131911          , p_ae_header_id             => l_ae_header_id 
131912 , p_source_15 => p_source_15
131913 , p_source_15_meaning => p_source_15_meaning
131914 , p_source_20 => p_source_20
131915 , p_source_21 => p_source_21
131916 , p_source_22 => p_source_22
131917 , p_source_22_meaning => p_source_22_meaning
131918 , p_source_23 => p_source_23
131919          , x_transaction_coa_id       => l_adr_transaction_coa_id
131920          , x_accounting_coa_id        => l_adr_accounting_coa_id
131921          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
131922          , x_flex_value_set_id        => l_adr_flex_value_set_id
131923          , x_value_type_code          => l_adr_value_type_code
131924          , x_value_combination_id     => l_adr_value_combination_id
131925          , x_value_segment_code       => l_adr_value_segment_code
131926          , p_side                     => 'NA'
131927          , p_override_seg_flag        => 'Y'
131928    );
131929 
131930    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
131931 
131932       xla_ae_lines_pkg.set_segment(
131933           p_to_segment_code         => 'GL_ACCOUNT'
131934         , p_segment_value           => l_segment
131935         , p_from_segment_code       => l_adr_value_segment_code
131936         , p_from_combination_id     => l_adr_value_combination_id
131937         , p_value_type_code         => l_adr_value_type_code
131938         , p_transaction_coa_id      => l_adr_transaction_coa_id
131939         , p_accounting_coa_id       => l_adr_accounting_coa_id
131940         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
131941         , p_flex_value_set_id       => l_adr_flex_value_set_id
131942         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
131943         , p_adr_type_code           => 'S'
131944         , p_component_type          => l_component_type
131945         , p_component_code          => l_component_code
131946         , p_component_type_code     => l_component_type_code
131947         , p_component_appl_id       => l_component_appl_id
131948         , p_amb_context_code        => l_amb_context_code
131949         , p_entity_code             => 'AP_INVOICES'
131950         , p_event_class_code        => 'INVOICES'
131951         , p_side                    => 'NA'
131952         );
131953 
131954   END IF;
131955 
131959 , p_source_15 => p_source_15
131956    l_segment := AcctDerRule_23(
131957            p_application_id           => p_application_id
131958          , p_ae_header_id             => l_ae_header_id 
131960 , p_source_15_meaning => p_source_15_meaning
131961 , p_source_22 => p_source_22
131962 , p_source_22_meaning => p_source_22_meaning
131963 , p_source_30 => p_source_30
131964          , x_transaction_coa_id       => l_adr_transaction_coa_id
131965          , x_accounting_coa_id        => l_adr_accounting_coa_id
131966          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
131967          , x_flex_value_set_id        => l_adr_flex_value_set_id
131968          , x_value_type_code          => l_adr_value_type_code
131969          , x_value_combination_id     => l_adr_value_combination_id
131970          , x_value_segment_code       => l_adr_value_segment_code
131971          , p_side                     => 'NA'
131972          , p_override_seg_flag        => 'Y'
131973    );
131974 
131975    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
131976 
131977       xla_ae_lines_pkg.set_segment(
131978           p_to_segment_code         => 'GL_BALANCING'
131979         , p_segment_value           => l_segment
131980         , p_from_segment_code       => l_adr_value_segment_code
131981         , p_from_combination_id     => l_adr_value_combination_id
131982         , p_value_type_code         => l_adr_value_type_code
131983         , p_transaction_coa_id      => l_adr_transaction_coa_id
131984         , p_accounting_coa_id       => l_adr_accounting_coa_id
131985         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
131986         , p_flex_value_set_id       => l_adr_flex_value_set_id
131987         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
131988         , p_adr_type_code           => 'S'
131989         , p_component_type          => l_component_type
131990         , p_component_code          => l_component_code
131991         , p_component_type_code     => l_component_type_code
131992         , p_component_appl_id       => l_component_appl_id
131993         , p_amb_context_code        => l_amb_context_code
131994         , p_entity_code             => 'AP_INVOICES'
131995         , p_event_class_code        => 'INVOICES'
131996         , p_side                    => 'NA'
131997         );
131998 
131999   END IF;
132000 
132001    --
132002    --
132003    END IF;
132004 
132005        --
132006        -- Update the line information that should be overwritten
132007        --
132008        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
132009                                          p_header_num   => 1);
132010        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
132011 
132012        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
132013 
132014        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
132015           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
132016        END IF;
132017 
132018       --
132019       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
132020       --
132021       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
132022           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
132023       ELSE
132024           ---------------------------------------------------------------------------------------------------
132025           -- 4262811a Switch Sign
132026           ---------------------------------------------------------------------------------------------------
132027           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
132028           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
132029                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
132030           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
132031                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
132032           -- 5132302
132033           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
132034                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
132035 
132036       END IF;
132037 
132038       -- 4955764
132039       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
132040       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
132041 
132042 
132043       XLA_AE_LINES_PKG.ValidateCurrentLine;
132044       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
132045 
132046       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
132047                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
132048                ,p_balance_type_code => l_balance_type_code);
132049 
132050    END IF;
132051 
132052    -----------------------------------------------------------------------------------------
132053    -- 4262811 Multiperiod Accounting
132054    -----------------------------------------------------------------------------------------
132055      -- No MPA option is assigned.
132056 
132057 
132058 END IF;
132059 END IF;
132060 --
132061 
132062 --
132063 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
132064    trace
132065       (p_msg      => 'END of AcctLineType_214'
132066       ,p_level    => C_LEVEL_PROCEDURE
132070 EXCEPTION
132067       ,p_module   => l_log_module);
132068 END IF;
132069 --
132071   WHEN xla_exceptions_pkg.application_exception THEN
132072       RAISE;
132073   WHEN OTHERS THEN
132074        xla_exceptions_pkg.raise_message
132075            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_214');
132076 END AcctLineType_214;
132077 --
132078 
132079 ---------------------------------------
132080 --
132081 -- PRIVATE FUNCTION
132082 --         AcctLineType_215
132083 --
132084 ---------------------------------------
132085 PROCEDURE AcctLineType_215 (
132086   p_application_id        IN NUMBER
132087  ,p_event_id              IN NUMBER
132088  ,p_calculate_acctd_flag  IN VARCHAR2
132089  ,p_calculate_g_l_flag    IN VARCHAR2
132090  ,p_actual_flag           IN OUT VARCHAR2
132091  ,p_balance_type_code     OUT VARCHAR2
132092  ,p_gain_or_loss_ref      OUT VARCHAR2
132093  
132094 --Invoice Distribution Description
132095  , p_source_1            IN VARCHAR2
132096 --Automatic Offsets Value
132097  , p_source_15            IN VARCHAR2
132098  , p_source_15_meaning    IN VARCHAR2
132099 --Purchase Order Rate Variance Gain Account
132100  , p_source_20            IN NUMBER
132101 --Invoice Distribution Ledger Amount
132102  , p_source_21            IN NUMBER
132103 --Destination Type of the PO Distribution
132104  , p_source_22            IN VARCHAR2
132105  , p_source_22_meaning    IN VARCHAR2
132106 --Purchase Order Rate Variance Loss Account
132107  , p_source_23            IN NUMBER
132108 --Invoice Distribution Account
132109  , p_source_30            IN NUMBER
132110 --Invoice Distribution Type
132111  , p_source_33            IN VARCHAR2
132112  , p_source_33_meaning    IN VARCHAR2
132113 --Automatic Offsets Flag
132114  , p_source_47            IN VARCHAR2
132115  , p_source_47_meaning    IN VARCHAR2
132116 --Accounting Reversal Indicator
132117  , p_source_53            IN VARCHAR2
132118 --Distribution Link Type
132119  , p_source_55            IN VARCHAR2
132120 --Allocation to Main Distribution Identifier
132121  , p_source_57            IN NUMBER
132122 --Invoice Identifier
132123  , p_source_58            IN NUMBER
132124 --Invoice Distribution Identifier
132125  , p_source_64            IN NUMBER
132126 --Payables Encumbrance Upgrade Credit Account
132127  , p_source_65            IN NUMBER
132128 --Payables Encumbrance Upgrade Credit Amount
132129  , p_source_66            IN NUMBER
132130 --Invoice Currency Code
132131  , p_source_67            IN VARCHAR2
132132 --Payables Encumbrance Upgrade Credit Base Amount
132133  , p_source_68            IN NUMBER
132134 --Payables Encumbrance Upgrade Debit Account
132135  , p_source_69            IN NUMBER
132136 --Payables Encumbrance Upgrade Debit Amount
132137  , p_source_70            IN NUMBER
132138 --Payables Encumbrance Upgrade Debit Base Amount
132139  , p_source_71            IN NUMBER
132140 --Payables Encumbrance Upgrade Option
132141  , p_source_72            IN VARCHAR2
132142 --Invoice Distribution Amount
132143  , p_source_73            IN NUMBER
132144 --Deferred Accounting End Date
132145  , p_source_77            IN DATE
132146 --Deferred Accounting Option
132147  , p_source_78            IN VARCHAR2
132148 --Deferred Accounting Start Date
132149  , p_source_79            IN DATE
132150 --Override Accounted Amount Indicator
132151  , p_source_80            IN VARCHAR2
132152  , p_source_80_meaning    IN VARCHAR2
132153 --Invoice Supplier Identifier
132154  , p_source_81            IN NUMBER
132155 --Invoice Supplier Site Identifier
132156  , p_source_82            IN NUMBER
132157 --Third Party Type
132158  , p_source_83            IN VARCHAR2
132159 --Parent Reversal Identifier
132160  , p_source_84            IN NUMBER
132161 --Invoice Distribution Statistical Amount
132162  , p_source_85            IN NUMBER
132163 --Invoice Distribution Tax Line Identifier
132164  , p_source_86            IN NUMBER
132165 --Invoice Distribution Tax Distribution Identifier from Tax
132166  , p_source_87            IN NUMBER
132167 --Invoice Distribution Summary Tax Line Identifier
132168  , p_source_88            IN NUMBER
132169 --Payables Upgrade Credit Encumbrance Type Identifier
132170  , p_source_89            IN NUMBER
132171 --Payables Upgrade Debit Encumbrance Type Identifier
132172  , p_source_90            IN NUMBER
132173 --Business Flow Accounts Payable Application Identifier
132174  , p_source_91            IN NUMBER
132175 --Business Flow Invoice Distribution Type
132176  , p_source_92            IN VARCHAR2
132177 --Business Flow Invoice Entity Code
132178  , p_source_93            IN VARCHAR2
132179 --Business Flow Invoice Distribution Identifier
132180  , p_source_94            IN NUMBER
132181 --Business Flow Invoice Identifier
132182  , p_source_95            IN NUMBER
132183 --Accrue on Receipt Option
132184  , p_source_96            IN VARCHAR2
132185  , p_source_96_meaning    IN VARCHAR2
132186 --Invoice Exchange Date
132187  , p_source_143            IN DATE
132188 --Invoice Exchange Rate
132189  , p_source_144            IN NUMBER
132190 --Invoice Exchange Rate Type
132191  , p_source_145            IN VARCHAR2
132192 )
132193 IS
132194 
132195 l_component_type              VARCHAR2(80);
132196 l_component_code              VARCHAR2(30);
132197 l_component_type_code         VARCHAR2(1);
132198 l_component_appl_id           INTEGER;
132199 l_amb_context_code            VARCHAR2(30);
132200 l_entity_code                 VARCHAR2(30);
132201 l_event_class_code            VARCHAR2(30);
132205 l_line_definition_owner_code  VARCHAR2(1);
132202 l_ae_header_id                NUMBER;
132203 l_event_type_code             VARCHAR2(30);
132204 l_line_definition_code        VARCHAR2(30);
132206 --
132207 -- adr variables
132208 l_segment                     VARCHAR2(30);
132209 l_ccid                        NUMBER;
132210 l_adr_transaction_coa_id      NUMBER;
132211 l_adr_accounting_coa_id       NUMBER;
132212 l_adr_flexfield_segment_code  VARCHAR2(30);
132213 l_adr_flex_value_set_id       NUMBER;
132214 l_adr_value_type_code         VARCHAR2(30);
132215 l_adr_value_combination_id    NUMBER;
132216 l_adr_value_segment_code      VARCHAR2(30);
132217 
132218 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
132219 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
132220 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
132221 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
132222 
132223 -- 4262811 Variables ------------------------------------------------------------------------------------------
132224 l_entered_amt_idx             NUMBER;
132225 l_accted_amt_idx              NUMBER;
132226 l_acc_rev_flag                VARCHAR2(1);
132227 l_accrual_line_num            NUMBER;
132228 l_tmp_amt                     NUMBER;
132229 l_acc_rev_natural_side_code   VARCHAR2(1);
132230 
132231 l_num_entries                 NUMBER;
132232 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
132233 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
132234 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
132235 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
132236 l_recog_line_1                NUMBER;
132237 l_recog_line_2                NUMBER;
132238 
132239 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
132240 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
132241 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
132242 
132243 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
132244 
132245 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
132246 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
132247 
132248 ---------------------------------------------------------------------------------------------------------------
132249 
132250 
132251 --
132252 -- bulk performance
132253 --
132254 l_balance_type_code           VARCHAR2(1);
132255 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
132256 l_log_module                  VARCHAR2(240);
132257 
132258 --
132259 -- Upgrade strategy
132260 --
132261 l_actual_upg_option           VARCHAR2(1);
132262 l_enc_upg_option           VARCHAR2(1);
132263 
132264 --
132265 BEGIN
132266 --
132267 IF g_log_enabled THEN
132268       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_215';
132269 END IF;
132270 --
132271 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
132272 
132273       trace
132274          (p_msg      => 'BEGIN of AcctLineType_215'
132275          ,p_level    => C_LEVEL_PROCEDURE
132276          ,p_module   => l_log_module);
132277 
132278 END IF;
132279 --
132280 l_component_type             := 'AMB_JLT';
132281 l_component_code             := 'AP_TAX_EX_RATE_VAR_PREPAY';
132282 l_component_type_code        := 'S';
132283 l_component_appl_id          :=  200;
132284 l_amb_context_code           := 'DEFAULT';
132285 l_entity_code                := 'AP_INVOICES';
132286 l_event_class_code           := 'PREPAYMENTS';
132287 l_event_type_code            := 'PREPAYMENTS_ALL';
132288 l_line_definition_owner_code := 'S';
132289 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
132290 --
132291 l_balance_type_code          := 'A';
132292 l_segment                     := NULL;
132293 l_ccid                        := NULL;
132294 l_adr_transaction_coa_id      := NULL;
132295 l_adr_accounting_coa_id       := NULL;
132296 l_adr_flexfield_segment_code  := NULL;
132297 l_adr_flex_value_set_id       := NULL;
132298 l_adr_value_type_code         := NULL;
132299 l_adr_value_combination_id    := NULL;
132300 l_adr_value_segment_code      := NULL;
132301 
132302 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
132303 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
132304 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
132305 l_budgetary_control_flag     := 'N';
132306 
132307 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
132308 l_bflow_applied_to_amt       := NULL; -- 5132302
132309 l_entered_amt_idx            := NULL;          -- 4262811
132310 l_accted_amt_idx             := NULL;          -- 4262811
132311 l_acc_rev_flag               := NULL;          -- 4262811
132312 l_accrual_line_num           := NULL;          -- 4262811
132313 l_tmp_amt                    := NULL;          -- 4262811
132314 --
132315 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
132316             (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
132317                return;
132318   END IF;
132319   
132320 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
132321     l_balance_type_code <> 'B' THEN
132322 IF NVL(p_source_33,'
132323 ') =  'TERV' AND 
132324 NVL(p_source_96,'
132325 ') =  'Y'
132326  THEN 
132327 
132328    --
132332    -- set the flag so later we will know whether the gain loss line needs to be created
132329    XLA_AE_LINES_PKG.SetNewLine;
132330 
132331    p_balance_type_code          := l_balance_type_code;
132333    
132334    IF(l_balance_type_code = 'A' ) THEN
132335      p_actual_flag :='G';
132336    END IF;
132337 
132338    --
132339    -- bulk performance
132340    --
132341    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
132342                                       p_header_num   => 0); -- 4262811
132343    --
132344    -- set accounting line options
132345    --
132346    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
132347            p_natural_side_code          => 'D'
132348          , p_gain_or_loss_flag          => 'Y'
132349          , p_gl_transfer_mode_code      => 'S'
132350          , p_acct_entry_type_code       => 'A'
132351          , p_switch_side_flag           => 'Y'
132352          , p_merge_duplicate_code       => 'A'
132353          );
132354    --
132355    l_acc_rev_natural_side_code := 'C';  -- 4262811
132356    -- 
132357    --
132358    -- set accounting line type info
132359    --
132360    xla_ae_lines_pkg.SetAcctLineType
132361       (p_component_type             => l_component_type
132362       ,p_event_type_code            => l_event_type_code
132363       ,p_line_definition_owner_code => l_line_definition_owner_code
132364       ,p_line_definition_code       => l_line_definition_code
132365       ,p_accounting_line_code       => l_component_code
132366       ,p_accounting_line_type_code  => l_component_type_code
132367       ,p_accounting_line_appl_id    => l_component_appl_id
132368       ,p_amb_context_code           => l_amb_context_code
132369       ,p_entity_code                => l_entity_code
132370       ,p_event_class_code           => l_event_class_code);
132371    --
132372    -- set accounting class
132373    --
132374    xla_ae_lines_pkg.SetAcctClass(
132375            p_accounting_class_code  => 'TERV'
132376          , p_ae_header_id           => l_ae_header_id
132377          );
132378 
132379    --
132380    -- set rounding class
132381    --
132382    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
132383                       'TERV';
132384 
132385    --
132386    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
132387    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
132388    --
132389    -- bulk performance
132390    --
132391    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
132392 
132393    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
132394       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
132395 
132396    -- 4955764
132397    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
132398       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
132399 
132400    -- 4458381 Public Sector Enh
132401    
132402    --
132403    -- set accounting attributes for the line type
132404    --
132405    l_entered_amt_idx := 23;
132406    l_accted_amt_idx  := 28;
132407    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
132408    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
132409    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
132410    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
132411    l_rec_acct_attrs.array_num_value(2)  := 
132412 xla_ae_sources_pkg.GetSystemSourceNum(
132413    p_source_code           => 'XLA_EVENT_APPL_ID'
132414  , p_source_type_code      => 'Y'
132415  , p_source_application_id =>  602
132416 );
132417    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
132418    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
132419    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
132420    l_rec_acct_attrs.array_char_value(4)  := 
132421 xla_ae_sources_pkg.GetSystemSourceChar(
132422    p_source_code           => 'XLA_ENTITY_CODE'
132423  , p_source_type_code      => 'Y'
132424  , p_source_application_id =>  602
132425 );
132426    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
132427    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
132428    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
132429    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
132430    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
132431    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
132432    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
132433    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
132434    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
132435    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
132436    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
132437    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
132438    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
132439    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
132440    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
132441    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
132442    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
132446    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
132443    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
132444    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
132445    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
132447    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
132448    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
132449    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
132450    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
132451    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
132452    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
132453    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
132454    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
132455    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
132456    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
132457    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
132458    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
132459    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
132460    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
132461    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
132462    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
132463    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
132464    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
132465    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
132466    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
132467    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
132468    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
132469    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
132470    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
132471    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
132472    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
132473    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
132474    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
132475    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
132476    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
132477    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
132478    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
132479    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
132480    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
132481    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
132482    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
132483    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
132484    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
132485    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
132486    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
132487    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
132488    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
132489    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
132490    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
132491    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
132492    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
132493    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
132494    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
132495    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
132496    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
132497    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
132498    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
132499    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
132500    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
132501    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
132502    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
132503    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
132504 
132505    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
132506    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
132507 
132508    ---------------------------------------------------------------------------------------------------------------
132509    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
132510    ---------------------------------------------------------------------------------------------------------------
132511    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
132512 
132513    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
132514    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
132515 
132516    IF xla_accounting_cache_pkg.GetValueChar
132517          (p_source_code         => 'LEDGER_CATEGORY_CODE'
132518          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
132519    AND l_bflow_method_code = 'PRIOR_ENTRY'
132520 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
132521    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
132522          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
132523        )
132524    THEN
132525          xla_ae_lines_pkg.BflowUpgEntry
132526            (p_business_method_code    => l_bflow_method_code
132527            ,p_business_class_code     => l_bflow_class_code
132531 -- No business flow processing for business flow method of NONE.
132528            ,p_balance_type            => l_balance_type_code);
132529    ELSE
132530       NULL;
132532    END IF;
132533 
132534    --
132535    -- call analytical criteria
132536    --
132537    
132538    --
132539    -- call description
132540    --
132541    
132542 xla_ae_lines_pkg.SetLineDescription(
132543    p_ae_header_id => l_ae_header_id
132544   ,p_description  => Description_1 (
132545      p_application_id         => p_application_id
132546    , p_ae_header_id           => l_ae_header_id 
132547 , p_source_1 => p_source_1
132548    )
132549 );
132550 
132551 
132552    --
132553    -- call ADRs
132554    -- Bug 4922099
132555    --
132556    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
132557         (NVL(l_actual_upg_option, 'N') = 'O') OR
132558         (NVL(l_enc_upg_option, 'N') = 'O')
132559       )
132560    THEN
132561    NULL;
132562    --
132563    --
132564    
132565   l_ccid := AcctDerRule_30(
132566            p_application_id           => p_application_id
132567          , p_ae_header_id             => l_ae_header_id 
132568 , p_source_15 => p_source_15
132569 , p_source_15_meaning => p_source_15_meaning
132570 , p_source_20 => p_source_20
132571 , p_source_21 => p_source_21
132572 , p_source_22 => p_source_22
132573 , p_source_22_meaning => p_source_22_meaning
132574 , p_source_23 => p_source_23
132575 , p_source_30 => p_source_30
132576 , p_source_47 => p_source_47
132577 , p_source_47_meaning => p_source_47_meaning
132578          , x_transaction_coa_id       => l_adr_transaction_coa_id
132579          , x_accounting_coa_id        => l_adr_accounting_coa_id
132580          , x_value_type_code          => l_adr_value_type_code
132581          , p_side                     => 'NA'
132582    );
132583 
132584    xla_ae_lines_pkg.set_ccid(
132585     p_code_combination_id          => l_ccid
132586   , p_value_type_code              => l_adr_value_type_code
132587   , p_transaction_coa_id           => l_adr_transaction_coa_id
132588   , p_accounting_coa_id            => l_adr_accounting_coa_id
132589   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
132590   , p_adr_type_code                => 'S'
132591   , p_component_type               => l_component_type
132592   , p_component_code               => l_component_code
132593   , p_component_type_code          => l_component_type_code
132594   , p_component_appl_id            => l_component_appl_id
132595   , p_amb_context_code             => l_amb_context_code
132596   , p_side                         => 'NA'
132597   );
132598 
132599 
132600    l_segment := AcctDerRule_8(
132601            p_application_id           => p_application_id
132602          , p_ae_header_id             => l_ae_header_id 
132603 , p_source_15 => p_source_15
132604 , p_source_15_meaning => p_source_15_meaning
132605 , p_source_20 => p_source_20
132606 , p_source_21 => p_source_21
132607 , p_source_22 => p_source_22
132608 , p_source_22_meaning => p_source_22_meaning
132609 , p_source_23 => p_source_23
132610          , x_transaction_coa_id       => l_adr_transaction_coa_id
132611          , x_accounting_coa_id        => l_adr_accounting_coa_id
132612          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
132613          , x_flex_value_set_id        => l_adr_flex_value_set_id
132614          , x_value_type_code          => l_adr_value_type_code
132615          , x_value_combination_id     => l_adr_value_combination_id
132616          , x_value_segment_code       => l_adr_value_segment_code
132617          , p_side                     => 'NA'
132618          , p_override_seg_flag        => 'Y'
132619    );
132620 
132621    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
132622 
132623       xla_ae_lines_pkg.set_segment(
132624           p_to_segment_code         => 'GL_ACCOUNT'
132625         , p_segment_value           => l_segment
132626         , p_from_segment_code       => l_adr_value_segment_code
132627         , p_from_combination_id     => l_adr_value_combination_id
132628         , p_value_type_code         => l_adr_value_type_code
132629         , p_transaction_coa_id      => l_adr_transaction_coa_id
132630         , p_accounting_coa_id       => l_adr_accounting_coa_id
132631         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
132632         , p_flex_value_set_id       => l_adr_flex_value_set_id
132633         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
132634         , p_adr_type_code           => 'S'
132635         , p_component_type          => l_component_type
132636         , p_component_code          => l_component_code
132637         , p_component_type_code     => l_component_type_code
132638         , p_component_appl_id       => l_component_appl_id
132639         , p_amb_context_code        => l_amb_context_code
132640         , p_entity_code             => 'AP_INVOICES'
132641         , p_event_class_code        => 'PREPAYMENTS'
132642         , p_side                    => 'NA'
132643         );
132644 
132645   END IF;
132646 
132647    l_segment := AcctDerRule_23(
132648            p_application_id           => p_application_id
132649          , p_ae_header_id             => l_ae_header_id 
132650 , p_source_15 => p_source_15
132651 , p_source_15_meaning => p_source_15_meaning
132652 , p_source_22 => p_source_22
132653 , p_source_22_meaning => p_source_22_meaning
132654 , p_source_30 => p_source_30
132655          , x_transaction_coa_id       => l_adr_transaction_coa_id
132656          , x_accounting_coa_id        => l_adr_accounting_coa_id
132660          , x_value_combination_id     => l_adr_value_combination_id
132657          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
132658          , x_flex_value_set_id        => l_adr_flex_value_set_id
132659          , x_value_type_code          => l_adr_value_type_code
132661          , x_value_segment_code       => l_adr_value_segment_code
132662          , p_side                     => 'NA'
132663          , p_override_seg_flag        => 'Y'
132664    );
132665 
132666    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
132667 
132668       xla_ae_lines_pkg.set_segment(
132669           p_to_segment_code         => 'GL_BALANCING'
132670         , p_segment_value           => l_segment
132671         , p_from_segment_code       => l_adr_value_segment_code
132672         , p_from_combination_id     => l_adr_value_combination_id
132673         , p_value_type_code         => l_adr_value_type_code
132674         , p_transaction_coa_id      => l_adr_transaction_coa_id
132675         , p_accounting_coa_id       => l_adr_accounting_coa_id
132676         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
132677         , p_flex_value_set_id       => l_adr_flex_value_set_id
132678         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
132679         , p_adr_type_code           => 'S'
132680         , p_component_type          => l_component_type
132681         , p_component_code          => l_component_code
132682         , p_component_type_code     => l_component_type_code
132683         , p_component_appl_id       => l_component_appl_id
132684         , p_amb_context_code        => l_amb_context_code
132685         , p_entity_code             => 'AP_INVOICES'
132686         , p_event_class_code        => 'PREPAYMENTS'
132687         , p_side                    => 'NA'
132688         );
132689 
132690   END IF;
132691 
132692    --
132693    --
132694    END IF;
132695    --
132696    -- Bug 4922099
132697    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
132698           (NVL(l_enc_upg_option, 'N') = 'O')
132699         ) AND
132700         (l_bflow_method_code = 'PRIOR_ENTRY')
132701       )
132702    THEN
132703       IF
132704       --
132705       1 = 2
132706       --
132707       THEN
132708       xla_accounting_err_pkg.build_message
132709                                     (p_appli_s_name            => 'XLA'
132710                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
132711                                     ,p_token_1                 => 'LINE_NUMBER'
132712                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
132713                                     ,p_token_2                 => 'LINE_TYPE_NAME'
132714                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
132715                                                                              l_component_type
132716                                                                             ,l_component_code
132717                                                                             ,l_component_type_code
132718                                                                             ,l_component_appl_id
132719                                                                             ,l_amb_context_code
132720                                                                             ,l_entity_code
132721                                                                             ,l_event_class_code
132722                                                                            )
132723                                     ,p_token_3                 => 'OWNER'
132724                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
132725                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
132726                                                                           ,p_lookup_code    => l_component_type_code
132727                                                                          )
132728                                     ,p_token_4                 => 'PRODUCT_NAME'
132729                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
132730                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
132731                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
132732                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
132733                                     ,p_ae_header_id            =>  NULL
132734                                        );
132735 
132736         IF (C_LEVEL_ERROR>= g_log_level) THEN
132737                  trace
132738                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
132739                       ,p_level    => C_LEVEL_ERROR
132740                       ,p_module   => l_log_module);
132741         END IF;
132742       END IF;
132743    END IF;
132744    --
132745    --
132746    ------------------------------------------------------------------------------------------------
132747    -- 4219869 Business Flow
132748    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
132749    -- Prior Entry.  Currently, the following code is always generated.
132750    ------------------------------------------------------------------------------------------------
132751    XLA_AE_LINES_PKG.ValidateCurrentLine;
132752 
132753    ------------------------------------------------------------------------------------
132754    -- 4219869 Business Flow
132758 
132755    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
132756    ------------------------------------------------------------------------------------
132757    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
132759    ----------------------------------------------------------------------------------
132760    -- 4219869 Business Flow
132761    -- Update journal entry status -- Need to generate this within IF <condition>
132762    ----------------------------------------------------------------------------------
132763    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
132764          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
132765          ,p_balance_type_code => l_balance_type_code
132766          );
132767 
132768    -------------------------------------------------------------------------------------------
132769    -- 4262811 - Generate the Accrual Reversal lines
132770    -------------------------------------------------------------------------------------------
132771    BEGIN
132772       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
132773                               (g_array_event(p_event_id).array_value_num('header_index'));
132774       IF l_acc_rev_flag IS NULL THEN
132775          l_acc_rev_flag := 'N';
132776       END IF;
132777    EXCEPTION
132778       WHEN OTHERS THEN
132779          l_acc_rev_flag := 'N';
132780    END;
132781    --
132782    IF (l_acc_rev_flag = 'Y') THEN
132783 
132784        -- 4645092  ------------------------------------------------------------------------------
132785        -- To allow MPA report to determine if it should generate report process
132786        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
132787        ------------------------------------------------------------------------------------------
132788 
132789        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
132790        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
132791    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
132792    -- call ADRs
132793    -- Bug 4922099
132794    --
132795    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
132796         (NVL(l_actual_upg_option, 'N') = 'O') OR
132797         (NVL(l_enc_upg_option, 'N') = 'O')
132798       )
132799    THEN
132800    NULL;
132801    --
132802    --
132803    
132804   l_ccid := AcctDerRule_30(
132805            p_application_id           => p_application_id
132806          , p_ae_header_id             => l_ae_header_id 
132807 , p_source_15 => p_source_15
132808 , p_source_15_meaning => p_source_15_meaning
132809 , p_source_20 => p_source_20
132810 , p_source_21 => p_source_21
132811 , p_source_22 => p_source_22
132812 , p_source_22_meaning => p_source_22_meaning
132813 , p_source_23 => p_source_23
132814 , p_source_30 => p_source_30
132815 , p_source_47 => p_source_47
132816 , p_source_47_meaning => p_source_47_meaning
132817          , x_transaction_coa_id       => l_adr_transaction_coa_id
132818          , x_accounting_coa_id        => l_adr_accounting_coa_id
132819          , x_value_type_code          => l_adr_value_type_code
132820          , p_side                     => 'NA'
132821    );
132822 
132823    xla_ae_lines_pkg.set_ccid(
132824     p_code_combination_id          => l_ccid
132825   , p_value_type_code              => l_adr_value_type_code
132826   , p_transaction_coa_id           => l_adr_transaction_coa_id
132827   , p_accounting_coa_id            => l_adr_accounting_coa_id
132828   , p_adr_code                     => 'AP_EXCHG_TAXEXCHG_RATE_VAR'
132829   , p_adr_type_code                => 'S'
132830   , p_component_type               => l_component_type
132831   , p_component_code               => l_component_code
132832   , p_component_type_code          => l_component_type_code
132833   , p_component_appl_id            => l_component_appl_id
132834   , p_amb_context_code             => l_amb_context_code
132835   , p_side                         => 'NA'
132836   );
132837 
132838 
132839    l_segment := AcctDerRule_8(
132840            p_application_id           => p_application_id
132841          , p_ae_header_id             => l_ae_header_id 
132842 , p_source_15 => p_source_15
132843 , p_source_15_meaning => p_source_15_meaning
132844 , p_source_20 => p_source_20
132845 , p_source_21 => p_source_21
132846 , p_source_22 => p_source_22
132847 , p_source_22_meaning => p_source_22_meaning
132848 , p_source_23 => p_source_23
132849          , x_transaction_coa_id       => l_adr_transaction_coa_id
132850          , x_accounting_coa_id        => l_adr_accounting_coa_id
132851          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
132852          , x_flex_value_set_id        => l_adr_flex_value_set_id
132853          , x_value_type_code          => l_adr_value_type_code
132854          , x_value_combination_id     => l_adr_value_combination_id
132855          , x_value_segment_code       => l_adr_value_segment_code
132856          , p_side                     => 'NA'
132857          , p_override_seg_flag        => 'Y'
132858    );
132859 
132860    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
132861 
132862       xla_ae_lines_pkg.set_segment(
132863           p_to_segment_code         => 'GL_ACCOUNT'
132864         , p_segment_value           => l_segment
132865         , p_from_segment_code       => l_adr_value_segment_code
132866         , p_from_combination_id     => l_adr_value_combination_id
132867         , p_value_type_code         => l_adr_value_type_code
132868         , p_transaction_coa_id      => l_adr_transaction_coa_id
132869         , p_accounting_coa_id       => l_adr_accounting_coa_id
132873         , p_adr_type_code           => 'S'
132870         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
132871         , p_flex_value_set_id       => l_adr_flex_value_set_id
132872         , p_adr_code                => 'AP_ERV_GAIN_LOSS_NAT_ACCT_SEG'
132874         , p_component_type          => l_component_type
132875         , p_component_code          => l_component_code
132876         , p_component_type_code     => l_component_type_code
132877         , p_component_appl_id       => l_component_appl_id
132878         , p_amb_context_code        => l_amb_context_code
132879         , p_entity_code             => 'AP_INVOICES'
132880         , p_event_class_code        => 'PREPAYMENTS'
132881         , p_side                    => 'NA'
132882         );
132883 
132884   END IF;
132885 
132886    l_segment := AcctDerRule_23(
132887            p_application_id           => p_application_id
132888          , p_ae_header_id             => l_ae_header_id 
132889 , p_source_15 => p_source_15
132890 , p_source_15_meaning => p_source_15_meaning
132891 , p_source_22 => p_source_22
132892 , p_source_22_meaning => p_source_22_meaning
132893 , p_source_30 => p_source_30
132894          , x_transaction_coa_id       => l_adr_transaction_coa_id
132895          , x_accounting_coa_id        => l_adr_accounting_coa_id
132896          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
132897          , x_flex_value_set_id        => l_adr_flex_value_set_id
132898          , x_value_type_code          => l_adr_value_type_code
132899          , x_value_combination_id     => l_adr_value_combination_id
132900          , x_value_segment_code       => l_adr_value_segment_code
132901          , p_side                     => 'NA'
132902          , p_override_seg_flag        => 'Y'
132903    );
132904 
132905    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
132906 
132907       xla_ae_lines_pkg.set_segment(
132908           p_to_segment_code         => 'GL_BALANCING'
132909         , p_segment_value           => l_segment
132910         , p_from_segment_code       => l_adr_value_segment_code
132911         , p_from_combination_id     => l_adr_value_combination_id
132912         , p_value_type_code         => l_adr_value_type_code
132913         , p_transaction_coa_id      => l_adr_transaction_coa_id
132914         , p_accounting_coa_id       => l_adr_accounting_coa_id
132915         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
132916         , p_flex_value_set_id       => l_adr_flex_value_set_id
132917         , p_adr_code                => 'AP_RELATED_DIST_BAL_SEG'
132918         , p_adr_type_code           => 'S'
132919         , p_component_type          => l_component_type
132920         , p_component_code          => l_component_code
132921         , p_component_type_code     => l_component_type_code
132922         , p_component_appl_id       => l_component_appl_id
132923         , p_amb_context_code        => l_amb_context_code
132924         , p_entity_code             => 'AP_INVOICES'
132925         , p_event_class_code        => 'PREPAYMENTS'
132926         , p_side                    => 'NA'
132927         );
132928 
132929   END IF;
132930 
132931    --
132932    --
132933    END IF;
132934 
132935        --
132936        -- Update the line information that should be overwritten
132937        --
132938        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
132939                                          p_header_num   => 1);
132940        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
132941 
132942        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
132943 
132944        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
132945           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
132946        END IF;
132947 
132948       --
132949       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
132950       --
132951       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
132952           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
132953       ELSE
132954           ---------------------------------------------------------------------------------------------------
132955           -- 4262811a Switch Sign
132956           ---------------------------------------------------------------------------------------------------
132957           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
132958           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
132959                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
132960           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
132961                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
132962           -- 5132302
132963           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
132964                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
132965 
132966       END IF;
132967 
132968       -- 4955764
132969       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
132970       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
132971 
132972 
132973       XLA_AE_LINES_PKG.ValidateCurrentLine;
132977                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
132974       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
132975 
132976       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
132978                ,p_balance_type_code => l_balance_type_code);
132979 
132980    END IF;
132981 
132982    -----------------------------------------------------------------------------------------
132983    -- 4262811 Multiperiod Accounting
132984    -----------------------------------------------------------------------------------------
132985      -- No MPA option is assigned.
132986 
132987 
132988 END IF;
132989 END IF;
132990 --
132991 
132992 --
132993 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
132994    trace
132995       (p_msg      => 'END of AcctLineType_215'
132996       ,p_level    => C_LEVEL_PROCEDURE
132997       ,p_module   => l_log_module);
132998 END IF;
132999 --
133000 EXCEPTION
133001   WHEN xla_exceptions_pkg.application_exception THEN
133002       RAISE;
133003   WHEN OTHERS THEN
133004        xla_exceptions_pkg.raise_message
133005            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_215');
133006 END AcctLineType_215;
133007 --
133008 
133009 ---------------------------------------
133010 --
133011 -- PRIVATE FUNCTION
133012 --         AcctLineType_216
133013 --
133014 ---------------------------------------
133015 PROCEDURE AcctLineType_216 (
133016   p_application_id        IN NUMBER
133017  ,p_event_id              IN NUMBER
133018  ,p_calculate_acctd_flag  IN VARCHAR2
133019  ,p_calculate_g_l_flag    IN VARCHAR2
133020  ,p_actual_flag           IN OUT VARCHAR2
133021  ,p_balance_type_code     OUT VARCHAR2
133022  ,p_gain_or_loss_ref      OUT VARCHAR2
133023  
133024 --Invoice Distribution Description
133025  , p_source_1            IN VARCHAR2
133026 --Invoice Distribution Ledger Amount
133027  , p_source_21            IN NUMBER
133028 --Invoice Distribution Account
133029  , p_source_30            IN NUMBER
133030 --Invoice Distribution Type
133031  , p_source_33            IN VARCHAR2
133032  , p_source_33_meaning    IN VARCHAR2
133033 --Accounting Reversal Indicator
133034  , p_source_53            IN VARCHAR2
133035 --Distribution Link Type
133036  , p_source_55            IN VARCHAR2
133037 --Allocation to Main Distribution Identifier
133038  , p_source_57            IN NUMBER
133039 --Invoice Identifier
133040  , p_source_58            IN NUMBER
133041 --Invoice Distribution Identifier
133042  , p_source_64            IN NUMBER
133043 --Payables Encumbrance Upgrade Credit Account
133044  , p_source_65            IN NUMBER
133045 --Payables Encumbrance Upgrade Credit Amount
133046  , p_source_66            IN NUMBER
133047 --Invoice Currency Code
133048  , p_source_67            IN VARCHAR2
133049 --Payables Encumbrance Upgrade Credit Base Amount
133050  , p_source_68            IN NUMBER
133051 --Payables Encumbrance Upgrade Debit Account
133052  , p_source_69            IN NUMBER
133053 --Payables Encumbrance Upgrade Debit Amount
133054  , p_source_70            IN NUMBER
133055 --Payables Encumbrance Upgrade Debit Base Amount
133056  , p_source_71            IN NUMBER
133057 --Payables Encumbrance Upgrade Option
133058  , p_source_72            IN VARCHAR2
133059 --Invoice Distribution Amount
133060  , p_source_73            IN NUMBER
133061 --Deferred Accounting End Date
133062  , p_source_77            IN DATE
133063 --Deferred Accounting Option
133064  , p_source_78            IN VARCHAR2
133065 --Deferred Accounting Start Date
133066  , p_source_79            IN DATE
133067 --Override Accounted Amount Indicator
133068  , p_source_80            IN VARCHAR2
133069  , p_source_80_meaning    IN VARCHAR2
133070 --Invoice Supplier Identifier
133071  , p_source_81            IN NUMBER
133072 --Invoice Supplier Site Identifier
133073  , p_source_82            IN NUMBER
133074 --Third Party Type
133075  , p_source_83            IN VARCHAR2
133076 --Parent Reversal Identifier
133077  , p_source_84            IN NUMBER
133078 --Invoice Distribution Statistical Amount
133079  , p_source_85            IN NUMBER
133080 --Invoice Distribution Tax Line Identifier
133081  , p_source_86            IN NUMBER
133082 --Invoice Distribution Tax Distribution Identifier from Tax
133083  , p_source_87            IN NUMBER
133084 --Invoice Distribution Summary Tax Line Identifier
133085  , p_source_88            IN NUMBER
133086 --Payables Upgrade Credit Encumbrance Type Identifier
133087  , p_source_89            IN NUMBER
133088 --Payables Upgrade Debit Encumbrance Type Identifier
133089  , p_source_90            IN NUMBER
133090 --Business Flow Accounts Payable Application Identifier
133091  , p_source_91            IN NUMBER
133092 --Business Flow Invoice Distribution Type
133093  , p_source_92            IN VARCHAR2
133094 --Business Flow Invoice Entity Code
133095  , p_source_93            IN VARCHAR2
133096 --Business Flow Invoice Distribution Identifier
133097  , p_source_94            IN NUMBER
133098 --Business Flow Invoice Identifier
133099  , p_source_95            IN NUMBER
133100 --Accrue on Receipt Option
133101  , p_source_96            IN VARCHAR2
133102  , p_source_96_meaning    IN VARCHAR2
133103 --Invoice Exchange Date
133104  , p_source_143            IN DATE
133105 --Invoice Exchange Rate
133106  , p_source_144            IN NUMBER
133107 --Invoice Exchange Rate Type
133108  , p_source_145            IN VARCHAR2
133109 )
133110 IS
133111 
133115 l_component_appl_id           INTEGER;
133112 l_component_type              VARCHAR2(80);
133113 l_component_code              VARCHAR2(30);
133114 l_component_type_code         VARCHAR2(1);
133116 l_amb_context_code            VARCHAR2(30);
133117 l_entity_code                 VARCHAR2(30);
133118 l_event_class_code            VARCHAR2(30);
133119 l_ae_header_id                NUMBER;
133120 l_event_type_code             VARCHAR2(30);
133121 l_line_definition_code        VARCHAR2(30);
133122 l_line_definition_owner_code  VARCHAR2(1);
133123 --
133124 -- adr variables
133125 l_segment                     VARCHAR2(30);
133126 l_ccid                        NUMBER;
133127 l_adr_transaction_coa_id      NUMBER;
133128 l_adr_accounting_coa_id       NUMBER;
133129 l_adr_flexfield_segment_code  VARCHAR2(30);
133130 l_adr_flex_value_set_id       NUMBER;
133131 l_adr_value_type_code         VARCHAR2(30);
133132 l_adr_value_combination_id    NUMBER;
133133 l_adr_value_segment_code      VARCHAR2(30);
133134 
133135 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
133136 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
133137 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
133138 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
133139 
133140 -- 4262811 Variables ------------------------------------------------------------------------------------------
133141 l_entered_amt_idx             NUMBER;
133142 l_accted_amt_idx              NUMBER;
133143 l_acc_rev_flag                VARCHAR2(1);
133144 l_accrual_line_num            NUMBER;
133145 l_tmp_amt                     NUMBER;
133146 l_acc_rev_natural_side_code   VARCHAR2(1);
133147 
133148 l_num_entries                 NUMBER;
133149 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
133150 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
133151 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
133152 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
133153 l_recog_line_1                NUMBER;
133154 l_recog_line_2                NUMBER;
133155 
133156 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
133157 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
133158 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
133159 
133160 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
133161 
133162 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
133163 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
133164 
133165 ---------------------------------------------------------------------------------------------------------------
133166 
133167 
133168 --
133169 -- bulk performance
133170 --
133171 l_balance_type_code           VARCHAR2(1);
133172 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
133173 l_log_module                  VARCHAR2(240);
133174 
133175 --
133176 -- Upgrade strategy
133177 --
133178 l_actual_upg_option           VARCHAR2(1);
133179 l_enc_upg_option           VARCHAR2(1);
133180 
133181 --
133182 BEGIN
133183 --
133184 IF g_log_enabled THEN
133185       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_216';
133186 END IF;
133187 --
133188 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
133189 
133190       trace
133191          (p_msg      => 'BEGIN of AcctLineType_216'
133192          ,p_level    => C_LEVEL_PROCEDURE
133193          ,p_module   => l_log_module);
133194 
133195 END IF;
133196 --
133197 l_component_type             := 'AMB_JLT';
133198 l_component_code             := 'AP_TAX_INV_PRICE_VAR_CM';
133199 l_component_type_code        := 'S';
133200 l_component_appl_id          :=  200;
133201 l_amb_context_code           := 'DEFAULT';
133202 l_entity_code                := 'AP_INVOICES';
133203 l_event_class_code           := 'CREDIT MEMOS';
133204 l_event_type_code            := 'CREDIT MEMOS_ALL';
133205 l_line_definition_owner_code := 'S';
133206 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
133207 --
133208 l_balance_type_code          := 'A';
133209 l_segment                     := NULL;
133210 l_ccid                        := NULL;
133211 l_adr_transaction_coa_id      := NULL;
133212 l_adr_accounting_coa_id       := NULL;
133213 l_adr_flexfield_segment_code  := NULL;
133214 l_adr_flex_value_set_id       := NULL;
133215 l_adr_value_type_code         := NULL;
133216 l_adr_value_combination_id    := NULL;
133217 l_adr_value_segment_code      := NULL;
133218 
133219 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
133220 l_bflow_class_code           := '';    -- 4219869 Business Flow
133221 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
133222 l_budgetary_control_flag     := 'N';
133223 
133224 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
133225 l_bflow_applied_to_amt       := NULL; -- 5132302
133226 l_entered_amt_idx            := NULL;          -- 4262811
133227 l_accted_amt_idx             := NULL;          -- 4262811
133228 l_acc_rev_flag               := NULL;          -- 4262811
133229 l_accrual_line_num           := NULL;          -- 4262811
133230 l_tmp_amt                    := NULL;          -- 4262811
133231 --
133232  
133233 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
133234     l_balance_type_code <> 'B' THEN
133238 ') =  'Y'
133235 IF NVL(p_source_33,'
133236 ') =  'TIPV' AND 
133237 NVL(p_source_96,'
133239  THEN 
133240 
133241    --
133242    XLA_AE_LINES_PKG.SetNewLine;
133243 
133244    p_balance_type_code          := l_balance_type_code;
133245    -- set the flag so later we will know whether the gain loss line needs to be created
133246    
133247    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
133248      p_actual_flag :='A';
133249    END IF;
133250 
133251    --
133252    -- bulk performance
133253    --
133254    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
133255                                       p_header_num   => 0); -- 4262811
133256    --
133257    -- set accounting line options
133258    --
133259    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
133260            p_natural_side_code          => 'D'
133261          , p_gain_or_loss_flag          => 'N'
133262          , p_gl_transfer_mode_code      => 'S'
133263          , p_acct_entry_type_code       => 'A'
133264          , p_switch_side_flag           => 'Y'
133265          , p_merge_duplicate_code       => 'A'
133266          );
133267    --
133268    l_acc_rev_natural_side_code := 'C';  -- 4262811
133269    -- 
133270    --
133271    -- set accounting line type info
133272    --
133273    xla_ae_lines_pkg.SetAcctLineType
133274       (p_component_type             => l_component_type
133275       ,p_event_type_code            => l_event_type_code
133276       ,p_line_definition_owner_code => l_line_definition_owner_code
133277       ,p_line_definition_code       => l_line_definition_code
133278       ,p_accounting_line_code       => l_component_code
133279       ,p_accounting_line_type_code  => l_component_type_code
133280       ,p_accounting_line_appl_id    => l_component_appl_id
133281       ,p_amb_context_code           => l_amb_context_code
133282       ,p_entity_code                => l_entity_code
133283       ,p_event_class_code           => l_event_class_code);
133284    --
133285    -- set accounting class
133286    --
133287    xla_ae_lines_pkg.SetAcctClass(
133288            p_accounting_class_code  => 'TIPV'
133289          , p_ae_header_id           => l_ae_header_id
133290          );
133291 
133292    --
133293    -- set rounding class
133294    --
133295    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
133296                       'TIPV';
133297 
133298    --
133299    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
133300    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
133301    --
133302    -- bulk performance
133303    --
133304    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
133305 
133306    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
133307       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
133308 
133309    -- 4955764
133310    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
133311       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
133312 
133313    -- 4458381 Public Sector Enh
133314    
133315    --
133316    -- set accounting attributes for the line type
133317    --
133318    l_entered_amt_idx := 23;
133319    l_accted_amt_idx  := 28;
133320    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
133321    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
133322    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
133323    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
133324    l_rec_acct_attrs.array_num_value(2)  := 
133325 xla_ae_sources_pkg.GetSystemSourceNum(
133326    p_source_code           => 'XLA_EVENT_APPL_ID'
133327  , p_source_type_code      => 'Y'
133328  , p_source_application_id =>  602
133329 );
133330    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
133331    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
133332    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
133333    l_rec_acct_attrs.array_char_value(4)  := 
133334 xla_ae_sources_pkg.GetSystemSourceChar(
133335    p_source_code           => 'XLA_ENTITY_CODE'
133336  , p_source_type_code      => 'Y'
133337  , p_source_application_id =>  602
133338 );
133339    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
133340    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
133341    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
133342    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
133343    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
133344    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
133345    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
133346    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
133347    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
133348    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
133349    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
133350    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
133351    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
133352    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
133353    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
133354    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
133355    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
133359    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
133356    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
133357    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
133358    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
133360    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
133361    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
133362    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
133363    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
133364    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
133365    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
133366    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
133367    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
133368    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
133369    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
133370    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
133371    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
133372    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
133373    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
133374    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
133375    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
133376    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
133377    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
133378    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
133379    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
133380    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
133381    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
133382    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
133383    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
133384    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
133385    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
133386    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
133387    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
133388    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
133389    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
133390    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
133391    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
133392    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
133393    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
133394    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
133395    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
133396    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
133397    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
133398    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
133399    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
133400    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
133401    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
133402    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
133403    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
133404    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
133405    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
133406    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
133407    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
133408    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
133409    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
133410    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
133411    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
133412    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
133413    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
133414    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
133415    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
133416    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
133417 
133418    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
133419    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
133420 
133421    ---------------------------------------------------------------------------------------------------------------
133422    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
133423    ---------------------------------------------------------------------------------------------------------------
133424    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
133425 
133426    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
133427    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
133428 
133429    IF xla_accounting_cache_pkg.GetValueChar
133430          (p_source_code         => 'LEDGER_CATEGORY_CODE'
133431          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
133432    AND l_bflow_method_code = 'PRIOR_ENTRY'
133433 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
133434    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
133435          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
133436        )
133437    THEN
133438          xla_ae_lines_pkg.BflowUpgEntry
133439            (p_business_method_code    => l_bflow_method_code
133440            ,p_business_class_code     => l_bflow_class_code
133444 -- No business flow processing for business flow method of NONE.
133441            ,p_balance_type            => l_balance_type_code);
133442    ELSE
133443       NULL;
133445    END IF;
133446 
133447    --
133448    -- call analytical criteria
133449    --
133450    
133451    --
133452    -- call description
133453    --
133454    
133455 xla_ae_lines_pkg.SetLineDescription(
133456    p_ae_header_id => l_ae_header_id
133457   ,p_description  => Description_1 (
133458      p_application_id         => p_application_id
133459    , p_ae_header_id           => l_ae_header_id 
133460 , p_source_1 => p_source_1
133461    )
133462 );
133463 
133464 
133465    --
133466    -- call ADRs
133467    -- Bug 4922099
133468    --
133469    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
133470         (NVL(l_actual_upg_option, 'N') = 'O') OR
133471         (NVL(l_enc_upg_option, 'N') = 'O')
133472       )
133473    THEN
133474    NULL;
133475    --
133476    --
133477    
133478   l_ccid := AcctDerRule_33(
133479            p_application_id           => p_application_id
133480          , p_ae_header_id             => l_ae_header_id 
133481 , p_source_30 => p_source_30
133482          , x_transaction_coa_id       => l_adr_transaction_coa_id
133483          , x_accounting_coa_id        => l_adr_accounting_coa_id
133484          , x_value_type_code          => l_adr_value_type_code
133485          , p_side                     => 'NA'
133486    );
133487 
133488    xla_ae_lines_pkg.set_ccid(
133489     p_code_combination_id          => l_ccid
133490   , p_value_type_code              => l_adr_value_type_code
133491   , p_transaction_coa_id           => l_adr_transaction_coa_id
133492   , p_accounting_coa_id            => l_adr_accounting_coa_id
133493   , p_adr_code                     => 'AP_INVOICE_DIST'
133494   , p_adr_type_code                => 'S'
133495   , p_component_type               => l_component_type
133496   , p_component_code               => l_component_code
133497   , p_component_type_code          => l_component_type_code
133498   , p_component_appl_id            => l_component_appl_id
133499   , p_amb_context_code             => l_amb_context_code
133500   , p_side                         => 'NA'
133501   );
133502 
133503 
133504    --
133505    --
133506    END IF;
133507    --
133508    -- Bug 4922099
133509    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
133510           (NVL(l_enc_upg_option, 'N') = 'O')
133511         ) AND
133512         (l_bflow_method_code = 'PRIOR_ENTRY')
133513       )
133514    THEN
133515       IF
133516       --
133517       1 = 2
133518       --
133519       THEN
133520       xla_accounting_err_pkg.build_message
133521                                     (p_appli_s_name            => 'XLA'
133522                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
133523                                     ,p_token_1                 => 'LINE_NUMBER'
133524                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
133525                                     ,p_token_2                 => 'LINE_TYPE_NAME'
133526                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
133527                                                                              l_component_type
133528                                                                             ,l_component_code
133529                                                                             ,l_component_type_code
133530                                                                             ,l_component_appl_id
133531                                                                             ,l_amb_context_code
133532                                                                             ,l_entity_code
133533                                                                             ,l_event_class_code
133534                                                                            )
133535                                     ,p_token_3                 => 'OWNER'
133536                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
133537                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
133538                                                                           ,p_lookup_code    => l_component_type_code
133539                                                                          )
133540                                     ,p_token_4                 => 'PRODUCT_NAME'
133541                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
133542                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
133543                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
133544                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
133545                                     ,p_ae_header_id            =>  NULL
133546                                        );
133547 
133548         IF (C_LEVEL_ERROR>= g_log_level) THEN
133549                  trace
133550                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
133551                       ,p_level    => C_LEVEL_ERROR
133552                       ,p_module   => l_log_module);
133553         END IF;
133554       END IF;
133555    END IF;
133556    --
133557    --
133561    -- Prior Entry.  Currently, the following code is always generated.
133558    ------------------------------------------------------------------------------------------------
133559    -- 4219869 Business Flow
133560    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
133562    ------------------------------------------------------------------------------------------------
133563    XLA_AE_LINES_PKG.ValidateCurrentLine;
133564 
133565    ------------------------------------------------------------------------------------
133566    -- 4219869 Business Flow
133567    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
133568    ------------------------------------------------------------------------------------
133569    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
133570 
133571    ----------------------------------------------------------------------------------
133572    -- 4219869 Business Flow
133573    -- Update journal entry status -- Need to generate this within IF <condition>
133574    ----------------------------------------------------------------------------------
133575    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
133576          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
133577          ,p_balance_type_code => l_balance_type_code
133578          );
133579 
133580    -------------------------------------------------------------------------------------------
133581    -- 4262811 - Generate the Accrual Reversal lines
133582    -------------------------------------------------------------------------------------------
133583    BEGIN
133584       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
133585                               (g_array_event(p_event_id).array_value_num('header_index'));
133586       IF l_acc_rev_flag IS NULL THEN
133587          l_acc_rev_flag := 'N';
133588       END IF;
133589    EXCEPTION
133590       WHEN OTHERS THEN
133591          l_acc_rev_flag := 'N';
133592    END;
133593    --
133594    IF (l_acc_rev_flag = 'Y') THEN
133595 
133596        -- 4645092  ------------------------------------------------------------------------------
133597        -- To allow MPA report to determine if it should generate report process
133598        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
133599        ------------------------------------------------------------------------------------------
133600 
133601        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
133602        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
133603    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
133604    -- call ADRs
133605    -- Bug 4922099
133606    --
133607    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
133608         (NVL(l_actual_upg_option, 'N') = 'O') OR
133609         (NVL(l_enc_upg_option, 'N') = 'O')
133610       )
133611    THEN
133612    NULL;
133613    --
133614    --
133615    
133616   l_ccid := AcctDerRule_33(
133617            p_application_id           => p_application_id
133618          , p_ae_header_id             => l_ae_header_id 
133619 , p_source_30 => p_source_30
133620          , x_transaction_coa_id       => l_adr_transaction_coa_id
133621          , x_accounting_coa_id        => l_adr_accounting_coa_id
133622          , x_value_type_code          => l_adr_value_type_code
133623          , p_side                     => 'NA'
133624    );
133625 
133626    xla_ae_lines_pkg.set_ccid(
133627     p_code_combination_id          => l_ccid
133628   , p_value_type_code              => l_adr_value_type_code
133629   , p_transaction_coa_id           => l_adr_transaction_coa_id
133630   , p_accounting_coa_id            => l_adr_accounting_coa_id
133631   , p_adr_code                     => 'AP_INVOICE_DIST'
133632   , p_adr_type_code                => 'S'
133633   , p_component_type               => l_component_type
133634   , p_component_code               => l_component_code
133635   , p_component_type_code          => l_component_type_code
133636   , p_component_appl_id            => l_component_appl_id
133637   , p_amb_context_code             => l_amb_context_code
133638   , p_side                         => 'NA'
133639   );
133640 
133641 
133642    --
133643    --
133644    END IF;
133645 
133646        --
133647        -- Update the line information that should be overwritten
133648        --
133649        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
133650                                          p_header_num   => 1);
133651        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
133652 
133653        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
133654 
133655        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
133656           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
133657        END IF;
133658 
133659       --
133660       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
133661       --
133662       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
133663           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
133664       ELSE
133665           ---------------------------------------------------------------------------------------------------
133666           -- 4262811a Switch Sign
133670                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
133667           ---------------------------------------------------------------------------------------------------
133668           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
133669           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
133671           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
133672                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
133673           -- 5132302
133674           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
133675                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
133676 
133677       END IF;
133678 
133679       -- 4955764
133680       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
133681       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
133682 
133683 
133684       XLA_AE_LINES_PKG.ValidateCurrentLine;
133685       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
133686 
133687       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
133688                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
133689                ,p_balance_type_code => l_balance_type_code);
133690 
133691    END IF;
133692 
133693    -----------------------------------------------------------------------------------------
133694    -- 4262811 Multiperiod Accounting
133695    -----------------------------------------------------------------------------------------
133696      -- No MPA option is assigned.
133697 
133698 
133699 END IF;
133700 END IF;
133701 --
133702 
133703 --
133704 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
133705    trace
133706       (p_msg      => 'END of AcctLineType_216'
133707       ,p_level    => C_LEVEL_PROCEDURE
133708       ,p_module   => l_log_module);
133709 END IF;
133710 --
133711 EXCEPTION
133712   WHEN xla_exceptions_pkg.application_exception THEN
133713       RAISE;
133714   WHEN OTHERS THEN
133715        xla_exceptions_pkg.raise_message
133716            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_216');
133717 END AcctLineType_216;
133718 --
133719 
133720 ---------------------------------------
133721 --
133722 -- PRIVATE FUNCTION
133723 --         AcctLineType_217
133724 --
133725 ---------------------------------------
133726 PROCEDURE AcctLineType_217 (
133727   p_application_id        IN NUMBER
133728  ,p_event_id              IN NUMBER
133729  ,p_calculate_acctd_flag  IN VARCHAR2
133730  ,p_calculate_g_l_flag    IN VARCHAR2
133731  ,p_actual_flag           IN OUT VARCHAR2
133732  ,p_balance_type_code     OUT VARCHAR2
133733  ,p_gain_or_loss_ref      OUT VARCHAR2
133734  
133735 --Invoice Distribution Description
133736  , p_source_1            IN VARCHAR2
133737 --Invoice Distribution Ledger Amount
133738  , p_source_21            IN NUMBER
133739 --Invoice Distribution Account
133740  , p_source_30            IN NUMBER
133741 --Invoice Distribution Type
133742  , p_source_33            IN VARCHAR2
133743  , p_source_33_meaning    IN VARCHAR2
133744 --Accounting Reversal Indicator
133745  , p_source_53            IN VARCHAR2
133746 --Distribution Link Type
133747  , p_source_55            IN VARCHAR2
133748 --Allocation to Main Distribution Identifier
133749  , p_source_57            IN NUMBER
133750 --Invoice Identifier
133751  , p_source_58            IN NUMBER
133752 --Invoice Distribution Identifier
133753  , p_source_64            IN NUMBER
133754 --Payables Encumbrance Upgrade Credit Account
133755  , p_source_65            IN NUMBER
133756 --Payables Encumbrance Upgrade Credit Amount
133757  , p_source_66            IN NUMBER
133758 --Invoice Currency Code
133759  , p_source_67            IN VARCHAR2
133760 --Payables Encumbrance Upgrade Credit Base Amount
133761  , p_source_68            IN NUMBER
133762 --Payables Encumbrance Upgrade Debit Account
133763  , p_source_69            IN NUMBER
133764 --Payables Encumbrance Upgrade Debit Amount
133765  , p_source_70            IN NUMBER
133766 --Payables Encumbrance Upgrade Debit Base Amount
133767  , p_source_71            IN NUMBER
133768 --Payables Encumbrance Upgrade Option
133769  , p_source_72            IN VARCHAR2
133770 --Invoice Distribution Amount
133771  , p_source_73            IN NUMBER
133772 --Deferred Accounting End Date
133773  , p_source_77            IN DATE
133774 --Deferred Accounting Option
133775  , p_source_78            IN VARCHAR2
133776 --Deferred Accounting Start Date
133777  , p_source_79            IN DATE
133778 --Override Accounted Amount Indicator
133779  , p_source_80            IN VARCHAR2
133780  , p_source_80_meaning    IN VARCHAR2
133781 --Invoice Supplier Identifier
133782  , p_source_81            IN NUMBER
133783 --Invoice Supplier Site Identifier
133784  , p_source_82            IN NUMBER
133785 --Third Party Type
133786  , p_source_83            IN VARCHAR2
133787 --Parent Reversal Identifier
133788  , p_source_84            IN NUMBER
133789 --Invoice Distribution Tax Line Identifier
133790  , p_source_86            IN NUMBER
133791 --Invoice Distribution Tax Distribution Identifier from Tax
133792  , p_source_87            IN NUMBER
133793 --Invoice Distribution Summary Tax Line Identifier
133794  , p_source_88            IN NUMBER
133798  , p_source_90            IN NUMBER
133795 --Payables Upgrade Credit Encumbrance Type Identifier
133796  , p_source_89            IN NUMBER
133797 --Payables Upgrade Debit Encumbrance Type Identifier
133799 --Business Flow Accounts Payable Application Identifier
133800  , p_source_91            IN NUMBER
133801 --Business Flow Invoice Distribution Type
133802  , p_source_92            IN VARCHAR2
133803 --Business Flow Invoice Entity Code
133804  , p_source_93            IN VARCHAR2
133805 --Business Flow Invoice Distribution Identifier
133806  , p_source_94            IN NUMBER
133807 --Business Flow Invoice Identifier
133808  , p_source_95            IN NUMBER
133809 --Accrue on Receipt Option
133810  , p_source_96            IN VARCHAR2
133811  , p_source_96_meaning    IN VARCHAR2
133812 --Invoice Exchange Date
133813  , p_source_143            IN DATE
133814 --Invoice Exchange Rate
133815  , p_source_144            IN NUMBER
133816 --Invoice Exchange Rate Type
133817  , p_source_145            IN VARCHAR2
133818 )
133819 IS
133820 
133821 l_component_type              VARCHAR2(80);
133822 l_component_code              VARCHAR2(30);
133823 l_component_type_code         VARCHAR2(1);
133824 l_component_appl_id           INTEGER;
133825 l_amb_context_code            VARCHAR2(30);
133826 l_entity_code                 VARCHAR2(30);
133827 l_event_class_code            VARCHAR2(30);
133828 l_ae_header_id                NUMBER;
133829 l_event_type_code             VARCHAR2(30);
133830 l_line_definition_code        VARCHAR2(30);
133831 l_line_definition_owner_code  VARCHAR2(1);
133832 --
133833 -- adr variables
133834 l_segment                     VARCHAR2(30);
133835 l_ccid                        NUMBER;
133836 l_adr_transaction_coa_id      NUMBER;
133837 l_adr_accounting_coa_id       NUMBER;
133838 l_adr_flexfield_segment_code  VARCHAR2(30);
133839 l_adr_flex_value_set_id       NUMBER;
133840 l_adr_value_type_code         VARCHAR2(30);
133841 l_adr_value_combination_id    NUMBER;
133842 l_adr_value_segment_code      VARCHAR2(30);
133843 
133844 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
133845 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
133846 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
133847 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
133848 
133849 -- 4262811 Variables ------------------------------------------------------------------------------------------
133850 l_entered_amt_idx             NUMBER;
133851 l_accted_amt_idx              NUMBER;
133852 l_acc_rev_flag                VARCHAR2(1);
133853 l_accrual_line_num            NUMBER;
133854 l_tmp_amt                     NUMBER;
133855 l_acc_rev_natural_side_code   VARCHAR2(1);
133856 
133857 l_num_entries                 NUMBER;
133858 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
133859 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
133860 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
133861 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
133862 l_recog_line_1                NUMBER;
133863 l_recog_line_2                NUMBER;
133864 
133865 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
133866 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
133867 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
133868 
133869 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
133870 
133871 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
133872 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
133873 
133874 ---------------------------------------------------------------------------------------------------------------
133875 
133876 
133877 --
133878 -- bulk performance
133879 --
133880 l_balance_type_code           VARCHAR2(1);
133881 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
133882 l_log_module                  VARCHAR2(240);
133883 
133884 --
133885 -- Upgrade strategy
133886 --
133887 l_actual_upg_option           VARCHAR2(1);
133888 l_enc_upg_option           VARCHAR2(1);
133889 
133890 --
133891 BEGIN
133892 --
133893 IF g_log_enabled THEN
133894       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_217';
133895 END IF;
133896 --
133897 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
133898 
133899       trace
133900          (p_msg      => 'BEGIN of AcctLineType_217'
133901          ,p_level    => C_LEVEL_PROCEDURE
133902          ,p_module   => l_log_module);
133903 
133904 END IF;
133905 --
133906 l_component_type             := 'AMB_JLT';
133907 l_component_code             := 'AP_TAX_INV_PRICE_VAR_DM';
133908 l_component_type_code        := 'S';
133909 l_component_appl_id          :=  200;
133910 l_amb_context_code           := 'DEFAULT';
133911 l_entity_code                := 'AP_INVOICES';
133912 l_event_class_code           := 'DEBIT MEMOS';
133913 l_event_type_code            := 'DEBIT MEMOS_ALL';
133914 l_line_definition_owner_code := 'S';
133915 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
133916 --
133917 l_balance_type_code          := 'A';
133918 l_segment                     := NULL;
133919 l_ccid                        := NULL;
133920 l_adr_transaction_coa_id      := NULL;
133921 l_adr_accounting_coa_id       := NULL;
133922 l_adr_flexfield_segment_code  := NULL;
133923 l_adr_flex_value_set_id       := NULL;
133924 l_adr_value_type_code         := NULL;
133925 l_adr_value_combination_id    := NULL;
133929 l_bflow_class_code           := '';    -- 4219869 Business Flow
133926 l_adr_value_segment_code      := NULL;
133927 
133928 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
133930 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
133931 l_budgetary_control_flag     := 'N';
133932 
133933 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
133934 l_bflow_applied_to_amt       := NULL; -- 5132302
133935 l_entered_amt_idx            := NULL;          -- 4262811
133936 l_accted_amt_idx             := NULL;          -- 4262811
133937 l_acc_rev_flag               := NULL;          -- 4262811
133938 l_accrual_line_num           := NULL;          -- 4262811
133939 l_tmp_amt                    := NULL;          -- 4262811
133940 --
133941  
133942 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
133943     l_balance_type_code <> 'B' THEN
133944 IF NVL(p_source_33,'
133945 ') =  'TIPV' AND 
133946 NVL(p_source_96,'
133947 ') =  'Y'
133948  THEN 
133949 
133950    --
133951    XLA_AE_LINES_PKG.SetNewLine;
133952 
133953    p_balance_type_code          := l_balance_type_code;
133954    -- set the flag so later we will know whether the gain loss line needs to be created
133955    
133956    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
133957      p_actual_flag :='A';
133958    END IF;
133959 
133960    --
133961    -- bulk performance
133962    --
133963    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
133964                                       p_header_num   => 0); -- 4262811
133965    --
133966    -- set accounting line options
133967    --
133968    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
133969            p_natural_side_code          => 'D'
133970          , p_gain_or_loss_flag          => 'N'
133971          , p_gl_transfer_mode_code      => 'S'
133972          , p_acct_entry_type_code       => 'A'
133973          , p_switch_side_flag           => 'Y'
133974          , p_merge_duplicate_code       => 'A'
133975          );
133976    --
133977    l_acc_rev_natural_side_code := 'C';  -- 4262811
133978    -- 
133979    --
133980    -- set accounting line type info
133981    --
133982    xla_ae_lines_pkg.SetAcctLineType
133983       (p_component_type             => l_component_type
133984       ,p_event_type_code            => l_event_type_code
133985       ,p_line_definition_owner_code => l_line_definition_owner_code
133986       ,p_line_definition_code       => l_line_definition_code
133987       ,p_accounting_line_code       => l_component_code
133988       ,p_accounting_line_type_code  => l_component_type_code
133989       ,p_accounting_line_appl_id    => l_component_appl_id
133990       ,p_amb_context_code           => l_amb_context_code
133991       ,p_entity_code                => l_entity_code
133992       ,p_event_class_code           => l_event_class_code);
133993    --
133994    -- set accounting class
133995    --
133996    xla_ae_lines_pkg.SetAcctClass(
133997            p_accounting_class_code  => 'TIPV'
133998          , p_ae_header_id           => l_ae_header_id
133999          );
134000 
134001    --
134002    -- set rounding class
134003    --
134004    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
134005                       'TIPV';
134006 
134007    --
134008    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
134009    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
134010    --
134011    -- bulk performance
134012    --
134013    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
134014 
134015    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
134016       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
134017 
134018    -- 4955764
134019    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
134020       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
134021 
134022    -- 4458381 Public Sector Enh
134023    
134024    --
134025    -- set accounting attributes for the line type
134026    --
134027    l_entered_amt_idx := 23;
134028    l_accted_amt_idx  := 28;
134029    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
134030    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
134031    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
134032    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
134033    l_rec_acct_attrs.array_num_value(2)  := 
134034 xla_ae_sources_pkg.GetSystemSourceNum(
134035    p_source_code           => 'XLA_EVENT_APPL_ID'
134036  , p_source_type_code      => 'Y'
134037  , p_source_application_id =>  602
134038 );
134039    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
134040    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
134041    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
134042    l_rec_acct_attrs.array_char_value(4)  := 
134043 xla_ae_sources_pkg.GetSystemSourceChar(
134044    p_source_code           => 'XLA_ENTITY_CODE'
134045  , p_source_type_code      => 'Y'
134046  , p_source_application_id =>  602
134047 );
134048    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
134049    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
134050    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
134054    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
134051    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
134052    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
134053    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
134055    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
134056    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
134057    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
134058    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
134059    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
134060    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
134061    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
134062    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
134063    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
134064    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
134065    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
134066    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
134067    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
134068    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
134069    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
134070    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
134071    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
134072    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
134073    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
134074    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
134075    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
134076    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
134077    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
134078    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
134079    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
134080    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
134081    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
134082    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
134083    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
134084    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
134085    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
134086    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
134087    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
134088    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
134089    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
134090    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
134091    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
134092    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
134093    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
134094    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
134095    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
134096    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
134097    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
134098    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
134099    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
134100    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
134101    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
134102    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
134103    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
134104    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
134105    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
134106    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
134107    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
134108    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
134109    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
134110    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
134111    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
134112    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
134113    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
134114    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
134115    l_rec_acct_attrs.array_num_value(38)  := p_source_86;
134116    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
134117    l_rec_acct_attrs.array_num_value(39)  := p_source_87;
134118    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
134119    l_rec_acct_attrs.array_num_value(40)  := p_source_88;
134120    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
134121    l_rec_acct_attrs.array_num_value(41)  := p_source_89;
134122    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
134123    l_rec_acct_attrs.array_num_value(42)  := p_source_90;
134124 
134125    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
134126    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
134127 
134128    ---------------------------------------------------------------------------------------------------------------
134129    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
134130    ---------------------------------------------------------------------------------------------------------------
134131    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
134132 
134136    IF xla_accounting_cache_pkg.GetValueChar
134133    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
134134    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
134135 
134137          (p_source_code         => 'LEDGER_CATEGORY_CODE'
134138          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
134139    AND l_bflow_method_code = 'PRIOR_ENTRY'
134140 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
134141    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
134142          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
134143        )
134144    THEN
134145          xla_ae_lines_pkg.BflowUpgEntry
134146            (p_business_method_code    => l_bflow_method_code
134147            ,p_business_class_code     => l_bflow_class_code
134148            ,p_balance_type            => l_balance_type_code);
134149    ELSE
134150       NULL;
134151 -- No business flow processing for business flow method of NONE.
134152    END IF;
134153 
134154    --
134155    -- call analytical criteria
134156    --
134157    
134158    --
134159    -- call description
134160    --
134161    
134162 xla_ae_lines_pkg.SetLineDescription(
134163    p_ae_header_id => l_ae_header_id
134164   ,p_description  => Description_1 (
134165      p_application_id         => p_application_id
134166    , p_ae_header_id           => l_ae_header_id 
134167 , p_source_1 => p_source_1
134168    )
134169 );
134170 
134171 
134172    --
134173    -- call ADRs
134174    -- Bug 4922099
134175    --
134176    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
134177         (NVL(l_actual_upg_option, 'N') = 'O') OR
134178         (NVL(l_enc_upg_option, 'N') = 'O')
134179       )
134180    THEN
134181    NULL;
134182    --
134183    --
134184    
134185   l_ccid := AcctDerRule_33(
134186            p_application_id           => p_application_id
134187          , p_ae_header_id             => l_ae_header_id 
134188 , p_source_30 => p_source_30
134189          , x_transaction_coa_id       => l_adr_transaction_coa_id
134190          , x_accounting_coa_id        => l_adr_accounting_coa_id
134191          , x_value_type_code          => l_adr_value_type_code
134192          , p_side                     => 'NA'
134193    );
134194 
134195    xla_ae_lines_pkg.set_ccid(
134196     p_code_combination_id          => l_ccid
134197   , p_value_type_code              => l_adr_value_type_code
134198   , p_transaction_coa_id           => l_adr_transaction_coa_id
134199   , p_accounting_coa_id            => l_adr_accounting_coa_id
134200   , p_adr_code                     => 'AP_INVOICE_DIST'
134201   , p_adr_type_code                => 'S'
134202   , p_component_type               => l_component_type
134203   , p_component_code               => l_component_code
134204   , p_component_type_code          => l_component_type_code
134205   , p_component_appl_id            => l_component_appl_id
134206   , p_amb_context_code             => l_amb_context_code
134207   , p_side                         => 'NA'
134208   );
134209 
134210 
134211    --
134212    --
134213    END IF;
134214    --
134215    -- Bug 4922099
134216    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
134217           (NVL(l_enc_upg_option, 'N') = 'O')
134218         ) AND
134219         (l_bflow_method_code = 'PRIOR_ENTRY')
134220       )
134221    THEN
134222       IF
134223       --
134224       1 = 2
134225       --
134226       THEN
134227       xla_accounting_err_pkg.build_message
134228                                     (p_appli_s_name            => 'XLA'
134229                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
134230                                     ,p_token_1                 => 'LINE_NUMBER'
134231                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
134232                                     ,p_token_2                 => 'LINE_TYPE_NAME'
134233                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
134234                                                                              l_component_type
134235                                                                             ,l_component_code
134236                                                                             ,l_component_type_code
134237                                                                             ,l_component_appl_id
134238                                                                             ,l_amb_context_code
134239                                                                             ,l_entity_code
134240                                                                             ,l_event_class_code
134241                                                                            )
134242                                     ,p_token_3                 => 'OWNER'
134243                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
134244                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
134245                                                                           ,p_lookup_code    => l_component_type_code
134246                                                                          )
134247                                     ,p_token_4                 => 'PRODUCT_NAME'
134251                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
134248                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
134249                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
134250                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
134252                                     ,p_ae_header_id            =>  NULL
134253                                        );
134254 
134255         IF (C_LEVEL_ERROR>= g_log_level) THEN
134256                  trace
134257                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
134258                       ,p_level    => C_LEVEL_ERROR
134259                       ,p_module   => l_log_module);
134260         END IF;
134261       END IF;
134262    END IF;
134263    --
134264    --
134265    ------------------------------------------------------------------------------------------------
134266    -- 4219869 Business Flow
134267    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
134268    -- Prior Entry.  Currently, the following code is always generated.
134269    ------------------------------------------------------------------------------------------------
134270    XLA_AE_LINES_PKG.ValidateCurrentLine;
134271 
134272    ------------------------------------------------------------------------------------
134273    -- 4219869 Business Flow
134274    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
134275    ------------------------------------------------------------------------------------
134276    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
134277 
134278    ----------------------------------------------------------------------------------
134279    -- 4219869 Business Flow
134280    -- Update journal entry status -- Need to generate this within IF <condition>
134281    ----------------------------------------------------------------------------------
134282    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
134283          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
134284          ,p_balance_type_code => l_balance_type_code
134285          );
134286 
134287    -------------------------------------------------------------------------------------------
134288    -- 4262811 - Generate the Accrual Reversal lines
134289    -------------------------------------------------------------------------------------------
134290    BEGIN
134291       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
134292                               (g_array_event(p_event_id).array_value_num('header_index'));
134293       IF l_acc_rev_flag IS NULL THEN
134294          l_acc_rev_flag := 'N';
134295       END IF;
134296    EXCEPTION
134297       WHEN OTHERS THEN
134298          l_acc_rev_flag := 'N';
134299    END;
134300    --
134301    IF (l_acc_rev_flag = 'Y') THEN
134302 
134303        -- 4645092  ------------------------------------------------------------------------------
134304        -- To allow MPA report to determine if it should generate report process
134305        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
134306        ------------------------------------------------------------------------------------------
134307 
134308        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
134309        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
134310    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
134311    -- call ADRs
134312    -- Bug 4922099
134313    --
134314    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
134315         (NVL(l_actual_upg_option, 'N') = 'O') OR
134316         (NVL(l_enc_upg_option, 'N') = 'O')
134317       )
134318    THEN
134319    NULL;
134320    --
134321    --
134322    
134323   l_ccid := AcctDerRule_33(
134324            p_application_id           => p_application_id
134325          , p_ae_header_id             => l_ae_header_id 
134326 , p_source_30 => p_source_30
134327          , x_transaction_coa_id       => l_adr_transaction_coa_id
134328          , x_accounting_coa_id        => l_adr_accounting_coa_id
134329          , x_value_type_code          => l_adr_value_type_code
134330          , p_side                     => 'NA'
134331    );
134332 
134333    xla_ae_lines_pkg.set_ccid(
134334     p_code_combination_id          => l_ccid
134335   , p_value_type_code              => l_adr_value_type_code
134336   , p_transaction_coa_id           => l_adr_transaction_coa_id
134337   , p_accounting_coa_id            => l_adr_accounting_coa_id
134338   , p_adr_code                     => 'AP_INVOICE_DIST'
134339   , p_adr_type_code                => 'S'
134340   , p_component_type               => l_component_type
134341   , p_component_code               => l_component_code
134342   , p_component_type_code          => l_component_type_code
134343   , p_component_appl_id            => l_component_appl_id
134344   , p_amb_context_code             => l_amb_context_code
134345   , p_side                         => 'NA'
134346   );
134347 
134348 
134349    --
134350    --
134351    END IF;
134352 
134353        --
134354        -- Update the line information that should be overwritten
134355        --
134356        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
134357                                          p_header_num   => 1);
134358        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
134362        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
134359 
134360        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
134361 
134363           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
134364        END IF;
134365 
134366       --
134367       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
134368       --
134369       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
134370           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
134371       ELSE
134372           ---------------------------------------------------------------------------------------------------
134373           -- 4262811a Switch Sign
134374           ---------------------------------------------------------------------------------------------------
134375           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
134376           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
134377                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
134378           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
134379                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
134380           -- 5132302
134381           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
134382                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
134383 
134384       END IF;
134385 
134386       -- 4955764
134387       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
134388       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
134389 
134390 
134391       XLA_AE_LINES_PKG.ValidateCurrentLine;
134392       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
134393 
134394       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
134395                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
134396                ,p_balance_type_code => l_balance_type_code);
134397 
134398    END IF;
134399 
134400    -----------------------------------------------------------------------------------------
134401    -- 4262811 Multiperiod Accounting
134402    -----------------------------------------------------------------------------------------
134403      -- No MPA option is assigned.
134404 
134405 
134406 END IF;
134407 END IF;
134408 --
134409 
134410 --
134411 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
134412    trace
134413       (p_msg      => 'END of AcctLineType_217'
134414       ,p_level    => C_LEVEL_PROCEDURE
134415       ,p_module   => l_log_module);
134416 END IF;
134417 --
134418 EXCEPTION
134419   WHEN xla_exceptions_pkg.application_exception THEN
134420       RAISE;
134421   WHEN OTHERS THEN
134422        xla_exceptions_pkg.raise_message
134423            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_217');
134424 END AcctLineType_217;
134425 --
134426 
134427 ---------------------------------------
134428 --
134429 -- PRIVATE FUNCTION
134430 --         AcctLineType_218
134431 --
134432 ---------------------------------------
134433 PROCEDURE AcctLineType_218 (
134434   p_application_id        IN NUMBER
134435  ,p_event_id              IN NUMBER
134436  ,p_calculate_acctd_flag  IN VARCHAR2
134437  ,p_calculate_g_l_flag    IN VARCHAR2
134438  ,p_actual_flag           IN OUT VARCHAR2
134439  ,p_balance_type_code     OUT VARCHAR2
134440  ,p_gain_or_loss_ref      OUT VARCHAR2
134441  
134442 --Invoice Distribution Description
134443  , p_source_1            IN VARCHAR2
134444 --Invoice Distribution Ledger Amount
134445  , p_source_21            IN NUMBER
134446 --Invoice Distribution Account
134447  , p_source_30            IN NUMBER
134448 --Invoice Distribution Type
134449  , p_source_33            IN VARCHAR2
134450  , p_source_33_meaning    IN VARCHAR2
134451 --Accounting Reversal Indicator
134452  , p_source_53            IN VARCHAR2
134453 --Distribution Link Type
134454  , p_source_55            IN VARCHAR2
134455 --Allocation to Main Distribution Identifier
134456  , p_source_57            IN NUMBER
134457 --Invoice Identifier
134458  , p_source_58            IN NUMBER
134459 --Invoice Distribution Identifier
134460  , p_source_64            IN NUMBER
134461 --Payables Encumbrance Upgrade Credit Account
134462  , p_source_65            IN NUMBER
134463 --Payables Encumbrance Upgrade Credit Amount
134464  , p_source_66            IN NUMBER
134465 --Invoice Currency Code
134466  , p_source_67            IN VARCHAR2
134467 --Payables Encumbrance Upgrade Credit Base Amount
134468  , p_source_68            IN NUMBER
134469 --Payables Encumbrance Upgrade Debit Account
134470  , p_source_69            IN NUMBER
134471 --Payables Encumbrance Upgrade Debit Amount
134472  , p_source_70            IN NUMBER
134473 --Payables Encumbrance Upgrade Debit Base Amount
134474  , p_source_71            IN NUMBER
134475 --Payables Encumbrance Upgrade Option
134476  , p_source_72            IN VARCHAR2
134477 --Invoice Distribution Amount
134478  , p_source_73            IN NUMBER
134479 --Deferred Accounting End Date
134480  , p_source_77            IN DATE
134481 --Deferred Accounting Option
134485 --Override Accounted Amount Indicator
134482  , p_source_78            IN VARCHAR2
134483 --Deferred Accounting Start Date
134484  , p_source_79            IN DATE
134486  , p_source_80            IN VARCHAR2
134487  , p_source_80_meaning    IN VARCHAR2
134488 --Invoice Supplier Identifier
134489  , p_source_81            IN NUMBER
134490 --Invoice Supplier Site Identifier
134491  , p_source_82            IN NUMBER
134492 --Third Party Type
134493  , p_source_83            IN VARCHAR2
134494 --Parent Reversal Identifier
134495  , p_source_84            IN NUMBER
134496 --Invoice Distribution Statistical Amount
134497  , p_source_85            IN NUMBER
134498 --Invoice Distribution Tax Line Identifier
134499  , p_source_86            IN NUMBER
134500 --Invoice Distribution Tax Distribution Identifier from Tax
134501  , p_source_87            IN NUMBER
134502 --Invoice Distribution Summary Tax Line Identifier
134503  , p_source_88            IN NUMBER
134504 --Payables Upgrade Credit Encumbrance Type Identifier
134505  , p_source_89            IN NUMBER
134506 --Payables Upgrade Debit Encumbrance Type Identifier
134507  , p_source_90            IN NUMBER
134508 --Business Flow Accounts Payable Application Identifier
134509  , p_source_91            IN NUMBER
134510 --Business Flow Invoice Distribution Type
134511  , p_source_92            IN VARCHAR2
134512 --Business Flow Invoice Entity Code
134513  , p_source_93            IN VARCHAR2
134514 --Business Flow Invoice Distribution Identifier
134515  , p_source_94            IN NUMBER
134516 --Business Flow Invoice Identifier
134517  , p_source_95            IN NUMBER
134518 --Accrue on Receipt Option
134519  , p_source_96            IN VARCHAR2
134520  , p_source_96_meaning    IN VARCHAR2
134521 --Invoice Exchange Date
134522  , p_source_143            IN DATE
134523 --Invoice Exchange Rate
134524  , p_source_144            IN NUMBER
134525 --Invoice Exchange Rate Type
134526  , p_source_145            IN VARCHAR2
134527 )
134528 IS
134529 
134530 l_component_type              VARCHAR2(80);
134531 l_component_code              VARCHAR2(30);
134532 l_component_type_code         VARCHAR2(1);
134533 l_component_appl_id           INTEGER;
134534 l_amb_context_code            VARCHAR2(30);
134535 l_entity_code                 VARCHAR2(30);
134536 l_event_class_code            VARCHAR2(30);
134537 l_ae_header_id                NUMBER;
134538 l_event_type_code             VARCHAR2(30);
134539 l_line_definition_code        VARCHAR2(30);
134540 l_line_definition_owner_code  VARCHAR2(1);
134541 --
134542 -- adr variables
134543 l_segment                     VARCHAR2(30);
134544 l_ccid                        NUMBER;
134545 l_adr_transaction_coa_id      NUMBER;
134546 l_adr_accounting_coa_id       NUMBER;
134547 l_adr_flexfield_segment_code  VARCHAR2(30);
134548 l_adr_flex_value_set_id       NUMBER;
134549 l_adr_value_type_code         VARCHAR2(30);
134550 l_adr_value_combination_id    NUMBER;
134551 l_adr_value_segment_code      VARCHAR2(30);
134552 
134553 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
134554 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
134555 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
134556 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
134557 
134558 -- 4262811 Variables ------------------------------------------------------------------------------------------
134559 l_entered_amt_idx             NUMBER;
134560 l_accted_amt_idx              NUMBER;
134561 l_acc_rev_flag                VARCHAR2(1);
134562 l_accrual_line_num            NUMBER;
134563 l_tmp_amt                     NUMBER;
134564 l_acc_rev_natural_side_code   VARCHAR2(1);
134565 
134566 l_num_entries                 NUMBER;
134567 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
134568 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
134569 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
134570 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
134571 l_recog_line_1                NUMBER;
134572 l_recog_line_2                NUMBER;
134573 
134574 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
134575 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
134576 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
134577 
134578 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
134579 
134580 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
134581 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
134582 
134583 ---------------------------------------------------------------------------------------------------------------
134584 
134585 
134586 --
134587 -- bulk performance
134588 --
134589 l_balance_type_code           VARCHAR2(1);
134590 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
134591 l_log_module                  VARCHAR2(240);
134592 
134593 --
134594 -- Upgrade strategy
134595 --
134596 l_actual_upg_option           VARCHAR2(1);
134597 l_enc_upg_option           VARCHAR2(1);
134598 
134599 --
134600 BEGIN
134601 --
134602 IF g_log_enabled THEN
134603       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_218';
134604 END IF;
134605 --
134606 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
134607 
134608       trace
134609          (p_msg      => 'BEGIN of AcctLineType_218'
134613 END IF;
134610          ,p_level    => C_LEVEL_PROCEDURE
134611          ,p_module   => l_log_module);
134612 
134614 --
134615 l_component_type             := 'AMB_JLT';
134616 l_component_code             := 'AP_TAX_INV_PRICE_VAR_INV';
134617 l_component_type_code        := 'S';
134618 l_component_appl_id          :=  200;
134619 l_amb_context_code           := 'DEFAULT';
134620 l_entity_code                := 'AP_INVOICES';
134621 l_event_class_code           := 'INVOICES';
134622 l_event_type_code            := 'INVOICES_ALL';
134623 l_line_definition_owner_code := 'S';
134624 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
134625 --
134626 l_balance_type_code          := 'A';
134627 l_segment                     := NULL;
134628 l_ccid                        := NULL;
134629 l_adr_transaction_coa_id      := NULL;
134630 l_adr_accounting_coa_id       := NULL;
134631 l_adr_flexfield_segment_code  := NULL;
134632 l_adr_flex_value_set_id       := NULL;
134633 l_adr_value_type_code         := NULL;
134634 l_adr_value_combination_id    := NULL;
134635 l_adr_value_segment_code      := NULL;
134636 
134637 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
134638 l_bflow_class_code           := '';    -- 4219869 Business Flow
134639 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
134640 l_budgetary_control_flag     := 'N';
134641 
134642 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
134643 l_bflow_applied_to_amt       := NULL; -- 5132302
134644 l_entered_amt_idx            := NULL;          -- 4262811
134645 l_accted_amt_idx             := NULL;          -- 4262811
134646 l_acc_rev_flag               := NULL;          -- 4262811
134647 l_accrual_line_num           := NULL;          -- 4262811
134648 l_tmp_amt                    := NULL;          -- 4262811
134649 --
134650  
134651 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
134652     l_balance_type_code <> 'B' THEN
134653 IF NVL(p_source_33,'
134654 ') =  'TIPV' AND 
134655 NVL(p_source_96,'
134656 ') =  'Y'
134657  THEN 
134658 
134659    --
134660    XLA_AE_LINES_PKG.SetNewLine;
134661 
134662    p_balance_type_code          := l_balance_type_code;
134663    -- set the flag so later we will know whether the gain loss line needs to be created
134664    
134665    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
134666      p_actual_flag :='A';
134667    END IF;
134668 
134669    --
134670    -- bulk performance
134671    --
134672    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
134673                                       p_header_num   => 0); -- 4262811
134674    --
134675    -- set accounting line options
134676    --
134677    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
134678            p_natural_side_code          => 'D'
134679          , p_gain_or_loss_flag          => 'N'
134680          , p_gl_transfer_mode_code      => 'S'
134681          , p_acct_entry_type_code       => 'A'
134682          , p_switch_side_flag           => 'Y'
134683          , p_merge_duplicate_code       => 'A'
134684          );
134685    --
134686    l_acc_rev_natural_side_code := 'C';  -- 4262811
134687    -- 
134688    --
134689    -- set accounting line type info
134690    --
134691    xla_ae_lines_pkg.SetAcctLineType
134692       (p_component_type             => l_component_type
134693       ,p_event_type_code            => l_event_type_code
134694       ,p_line_definition_owner_code => l_line_definition_owner_code
134695       ,p_line_definition_code       => l_line_definition_code
134696       ,p_accounting_line_code       => l_component_code
134697       ,p_accounting_line_type_code  => l_component_type_code
134698       ,p_accounting_line_appl_id    => l_component_appl_id
134699       ,p_amb_context_code           => l_amb_context_code
134700       ,p_entity_code                => l_entity_code
134701       ,p_event_class_code           => l_event_class_code);
134702    --
134703    -- set accounting class
134704    --
134705    xla_ae_lines_pkg.SetAcctClass(
134706            p_accounting_class_code  => 'TIPV'
134707          , p_ae_header_id           => l_ae_header_id
134708          );
134709 
134710    --
134711    -- set rounding class
134712    --
134713    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
134714                       'TIPV';
134715 
134716    --
134717    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
134718    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
134719    --
134720    -- bulk performance
134721    --
134722    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
134723 
134724    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
134725       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
134726 
134727    -- 4955764
134728    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
134729       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
134730 
134731    -- 4458381 Public Sector Enh
134732    
134733    --
134734    -- set accounting attributes for the line type
134735    --
134736    l_entered_amt_idx := 24;
134737    l_accted_amt_idx  := 29;
134738    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
134739    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
134740    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
134744    p_source_code           => 'XLA_EVENT_APPL_ID'
134741    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
134742    l_rec_acct_attrs.array_num_value(2)  := 
134743 xla_ae_sources_pkg.GetSystemSourceNum(
134745  , p_source_type_code      => 'Y'
134746  , p_source_application_id =>  602
134747 );
134748    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
134749    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
134750    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
134751    l_rec_acct_attrs.array_char_value(4)  := 
134752 xla_ae_sources_pkg.GetSystemSourceChar(
134753    p_source_code           => 'XLA_ENTITY_CODE'
134754  , p_source_type_code      => 'Y'
134755  , p_source_application_id =>  602
134756 );
134757    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
134758    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
134759    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
134760    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
134761    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
134762    l_rec_acct_attrs.array_num_value(7)  := p_source_73;
134763    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
134764    l_rec_acct_attrs.array_num_value(8)  := p_source_91;
134765    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
134766    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
134767    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
134768    l_rec_acct_attrs.array_char_value(10)  := p_source_93;
134769    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
134770    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
134771    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
134772    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_95);
134773    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
134774    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_64);
134775    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
134776    l_rec_acct_attrs.array_char_value(14)  := p_source_55;
134777    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
134778    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
134779    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
134780    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
134781    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
134782    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
134783    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
134784    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
134785    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
134786    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
134787    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
134788    l_rec_acct_attrs.array_num_value(20)  := p_source_70;
134789    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
134790    l_rec_acct_attrs.array_char_value(21)  := p_source_67;
134791    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
134792    l_rec_acct_attrs.array_num_value(22)  := p_source_71;
134793    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
134794    l_rec_acct_attrs.array_char_value(23)  := p_source_72;
134795    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
134796    l_rec_acct_attrs.array_num_value(24)  := p_source_73;
134797    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
134798    l_rec_acct_attrs.array_char_value(25)  := p_source_67;
134799    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
134800    l_rec_acct_attrs.array_date_value(26)  := p_source_143;
134801    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
134802    l_rec_acct_attrs.array_num_value(27)  := p_source_144;
134803    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
134804    l_rec_acct_attrs.array_char_value(28)  := p_source_145;
134805    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
134806    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
134807    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
134808    l_rec_acct_attrs.array_date_value(30)  := p_source_77;
134809    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
134810    l_rec_acct_attrs.array_char_value(31)  := p_source_78;
134811    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
134812    l_rec_acct_attrs.array_date_value(32)  := p_source_79;
134813    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
134814    l_rec_acct_attrs.array_char_value(33)  := p_source_80;
134815    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
134816    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
134817    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
134818    l_rec_acct_attrs.array_num_value(35)  := p_source_82;
134819    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
134820    l_rec_acct_attrs.array_char_value(36)  := p_source_83;
134821    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
134822    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_84);
134823    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
134824    l_rec_acct_attrs.array_char_value(38)  := p_source_55;
134825    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
134826    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
134830    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
134827    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
134828    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
134829    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
134831    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
134832    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
134833    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
134834    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
134835    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
134836    l_rec_acct_attrs.array_num_value(44)  := p_source_90;
134837 
134838    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
134839    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
134840 
134841    ---------------------------------------------------------------------------------------------------------------
134842    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
134843    ---------------------------------------------------------------------------------------------------------------
134844    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
134845 
134846    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
134847    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
134848 
134849    IF xla_accounting_cache_pkg.GetValueChar
134850          (p_source_code         => 'LEDGER_CATEGORY_CODE'
134851          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
134852    AND l_bflow_method_code = 'PRIOR_ENTRY'
134853 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
134854    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
134855          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
134856        )
134857    THEN
134858          xla_ae_lines_pkg.BflowUpgEntry
134859            (p_business_method_code    => l_bflow_method_code
134860            ,p_business_class_code     => l_bflow_class_code
134861            ,p_balance_type            => l_balance_type_code);
134862    ELSE
134863       NULL;
134864 -- No business flow processing for business flow method of NONE.
134865    END IF;
134866 
134867    --
134868    -- call analytical criteria
134869    --
134870    
134871    --
134872    -- call description
134873    --
134874    
134875 xla_ae_lines_pkg.SetLineDescription(
134876    p_ae_header_id => l_ae_header_id
134877   ,p_description  => Description_1 (
134878      p_application_id         => p_application_id
134879    , p_ae_header_id           => l_ae_header_id 
134880 , p_source_1 => p_source_1
134881    )
134882 );
134883 
134884 
134885    --
134886    -- call ADRs
134887    -- Bug 4922099
134888    --
134889    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
134890         (NVL(l_actual_upg_option, 'N') = 'O') OR
134891         (NVL(l_enc_upg_option, 'N') = 'O')
134892       )
134893    THEN
134894    NULL;
134895    --
134896    --
134897    
134898   l_ccid := AcctDerRule_33(
134899            p_application_id           => p_application_id
134900          , p_ae_header_id             => l_ae_header_id 
134901 , p_source_30 => p_source_30
134902          , x_transaction_coa_id       => l_adr_transaction_coa_id
134903          , x_accounting_coa_id        => l_adr_accounting_coa_id
134904          , x_value_type_code          => l_adr_value_type_code
134905          , p_side                     => 'NA'
134906    );
134907 
134908    xla_ae_lines_pkg.set_ccid(
134909     p_code_combination_id          => l_ccid
134910   , p_value_type_code              => l_adr_value_type_code
134911   , p_transaction_coa_id           => l_adr_transaction_coa_id
134912   , p_accounting_coa_id            => l_adr_accounting_coa_id
134913   , p_adr_code                     => 'AP_INVOICE_DIST'
134914   , p_adr_type_code                => 'S'
134915   , p_component_type               => l_component_type
134916   , p_component_code               => l_component_code
134917   , p_component_type_code          => l_component_type_code
134918   , p_component_appl_id            => l_component_appl_id
134919   , p_amb_context_code             => l_amb_context_code
134920   , p_side                         => 'NA'
134921   );
134922 
134923 
134924    --
134925    --
134926    END IF;
134927    --
134928    -- Bug 4922099
134929    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
134930           (NVL(l_enc_upg_option, 'N') = 'O')
134931         ) AND
134932         (l_bflow_method_code = 'PRIOR_ENTRY')
134933       )
134934    THEN
134935       IF
134936       --
134937       1 = 2
134938       --
134939       THEN
134940       xla_accounting_err_pkg.build_message
134941                                     (p_appli_s_name            => 'XLA'
134942                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
134943                                     ,p_token_1                 => 'LINE_NUMBER'
134944                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
134945                                     ,p_token_2                 => 'LINE_TYPE_NAME'
134946                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
134950                                                                             ,l_component_appl_id
134947                                                                              l_component_type
134948                                                                             ,l_component_code
134949                                                                             ,l_component_type_code
134951                                                                             ,l_amb_context_code
134952                                                                             ,l_entity_code
134953                                                                             ,l_event_class_code
134954                                                                            )
134955                                     ,p_token_3                 => 'OWNER'
134956                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
134957                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
134958                                                                           ,p_lookup_code    => l_component_type_code
134959                                                                          )
134960                                     ,p_token_4                 => 'PRODUCT_NAME'
134961                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
134962                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
134963                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
134964                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
134965                                     ,p_ae_header_id            =>  NULL
134966                                        );
134967 
134968         IF (C_LEVEL_ERROR>= g_log_level) THEN
134969                  trace
134970                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
134971                       ,p_level    => C_LEVEL_ERROR
134972                       ,p_module   => l_log_module);
134973         END IF;
134974       END IF;
134975    END IF;
134976    --
134977    --
134978    ------------------------------------------------------------------------------------------------
134979    -- 4219869 Business Flow
134980    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
134981    -- Prior Entry.  Currently, the following code is always generated.
134982    ------------------------------------------------------------------------------------------------
134983    XLA_AE_LINES_PKG.ValidateCurrentLine;
134984 
134985    ------------------------------------------------------------------------------------
134986    -- 4219869 Business Flow
134987    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
134988    ------------------------------------------------------------------------------------
134989    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
134990 
134991    ----------------------------------------------------------------------------------
134992    -- 4219869 Business Flow
134993    -- Update journal entry status -- Need to generate this within IF <condition>
134994    ----------------------------------------------------------------------------------
134995    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
134996          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
134997          ,p_balance_type_code => l_balance_type_code
134998          );
134999 
135000    -------------------------------------------------------------------------------------------
135001    -- 4262811 - Generate the Accrual Reversal lines
135002    -------------------------------------------------------------------------------------------
135003    BEGIN
135004       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
135005                               (g_array_event(p_event_id).array_value_num('header_index'));
135006       IF l_acc_rev_flag IS NULL THEN
135007          l_acc_rev_flag := 'N';
135008       END IF;
135009    EXCEPTION
135010       WHEN OTHERS THEN
135011          l_acc_rev_flag := 'N';
135012    END;
135013    --
135014    IF (l_acc_rev_flag = 'Y') THEN
135015 
135016        -- 4645092  ------------------------------------------------------------------------------
135017        -- To allow MPA report to determine if it should generate report process
135018        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
135019        ------------------------------------------------------------------------------------------
135020 
135021        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
135022        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
135023    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
135024    -- call ADRs
135025    -- Bug 4922099
135026    --
135027    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
135028         (NVL(l_actual_upg_option, 'N') = 'O') OR
135029         (NVL(l_enc_upg_option, 'N') = 'O')
135030       )
135031    THEN
135032    NULL;
135033    --
135034    --
135035    
135036   l_ccid := AcctDerRule_33(
135037            p_application_id           => p_application_id
135038          , p_ae_header_id             => l_ae_header_id 
135039 , p_source_30 => p_source_30
135040          , x_transaction_coa_id       => l_adr_transaction_coa_id
135041          , x_accounting_coa_id        => l_adr_accounting_coa_id
135042          , x_value_type_code          => l_adr_value_type_code
135043          , p_side                     => 'NA'
135044    );
135045 
135049   , p_transaction_coa_id           => l_adr_transaction_coa_id
135046    xla_ae_lines_pkg.set_ccid(
135047     p_code_combination_id          => l_ccid
135048   , p_value_type_code              => l_adr_value_type_code
135050   , p_accounting_coa_id            => l_adr_accounting_coa_id
135051   , p_adr_code                     => 'AP_INVOICE_DIST'
135052   , p_adr_type_code                => 'S'
135053   , p_component_type               => l_component_type
135054   , p_component_code               => l_component_code
135055   , p_component_type_code          => l_component_type_code
135056   , p_component_appl_id            => l_component_appl_id
135057   , p_amb_context_code             => l_amb_context_code
135058   , p_side                         => 'NA'
135059   );
135060 
135061 
135062    --
135063    --
135064    END IF;
135065 
135066        --
135067        -- Update the line information that should be overwritten
135068        --
135069        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
135070                                          p_header_num   => 1);
135071        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
135072 
135073        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
135074 
135075        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
135076           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
135077        END IF;
135078 
135079       --
135080       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
135081       --
135082       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
135083           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
135084       ELSE
135085           ---------------------------------------------------------------------------------------------------
135086           -- 4262811a Switch Sign
135087           ---------------------------------------------------------------------------------------------------
135088           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
135089           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
135090                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
135091           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
135092                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
135093           -- 5132302
135094           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
135095                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
135096 
135097       END IF;
135098 
135099       -- 4955764
135100       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
135101       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
135102 
135103 
135104       XLA_AE_LINES_PKG.ValidateCurrentLine;
135105       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
135106 
135107       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
135108                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
135109                ,p_balance_type_code => l_balance_type_code);
135110 
135111    END IF;
135112 
135113    -----------------------------------------------------------------------------------------
135114    -- 4262811 Multiperiod Accounting
135115    -----------------------------------------------------------------------------------------
135116      -- No MPA option is assigned.
135117 
135118 
135119 END IF;
135120 END IF;
135121 --
135122 
135123 --
135124 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
135125    trace
135126       (p_msg      => 'END of AcctLineType_218'
135127       ,p_level    => C_LEVEL_PROCEDURE
135128       ,p_module   => l_log_module);
135129 END IF;
135130 --
135131 EXCEPTION
135132   WHEN xla_exceptions_pkg.application_exception THEN
135133       RAISE;
135134   WHEN OTHERS THEN
135135        xla_exceptions_pkg.raise_message
135136            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_218');
135137 END AcctLineType_218;
135138 --
135139 
135140 ---------------------------------------
135141 --
135142 -- PRIVATE FUNCTION
135143 --         AcctLineType_219
135144 --
135145 ---------------------------------------
135146 PROCEDURE AcctLineType_219 (
135147   p_application_id        IN NUMBER
135148  ,p_event_id              IN NUMBER
135149  ,p_calculate_acctd_flag  IN VARCHAR2
135150  ,p_calculate_g_l_flag    IN VARCHAR2
135151  ,p_actual_flag           IN OUT VARCHAR2
135152  ,p_balance_type_code     OUT VARCHAR2
135153  ,p_gain_or_loss_ref      OUT VARCHAR2
135154  
135155 --Invoice Distribution Description
135156  , p_source_1            IN VARCHAR2
135157 --Invoice Distribution Ledger Amount
135158  , p_source_21            IN NUMBER
135159 --Invoice Distribution Account
135160  , p_source_30            IN NUMBER
135161 --Invoice Distribution Type
135162  , p_source_33            IN VARCHAR2
135163  , p_source_33_meaning    IN VARCHAR2
135164 --Accounting Reversal Indicator
135165  , p_source_53            IN VARCHAR2
135166 --Distribution Link Type
135167  , p_source_55            IN VARCHAR2
135168 --Allocation to Main Distribution Identifier
135172 --Invoice Distribution Identifier
135169  , p_source_57            IN NUMBER
135170 --Invoice Identifier
135171  , p_source_58            IN NUMBER
135173  , p_source_64            IN NUMBER
135174 --Payables Encumbrance Upgrade Credit Account
135175  , p_source_65            IN NUMBER
135176 --Payables Encumbrance Upgrade Credit Amount
135177  , p_source_66            IN NUMBER
135178 --Invoice Currency Code
135179  , p_source_67            IN VARCHAR2
135180 --Payables Encumbrance Upgrade Credit Base Amount
135181  , p_source_68            IN NUMBER
135182 --Payables Encumbrance Upgrade Debit Account
135183  , p_source_69            IN NUMBER
135184 --Payables Encumbrance Upgrade Debit Amount
135185  , p_source_70            IN NUMBER
135186 --Payables Encumbrance Upgrade Debit Base Amount
135187  , p_source_71            IN NUMBER
135188 --Payables Encumbrance Upgrade Option
135189  , p_source_72            IN VARCHAR2
135190 --Invoice Distribution Amount
135191  , p_source_73            IN NUMBER
135192 --Deferred Accounting End Date
135193  , p_source_77            IN DATE
135194 --Deferred Accounting Option
135195  , p_source_78            IN VARCHAR2
135196 --Deferred Accounting Start Date
135197  , p_source_79            IN DATE
135198 --Override Accounted Amount Indicator
135199  , p_source_80            IN VARCHAR2
135200  , p_source_80_meaning    IN VARCHAR2
135201 --Invoice Supplier Identifier
135202  , p_source_81            IN NUMBER
135203 --Invoice Supplier Site Identifier
135204  , p_source_82            IN NUMBER
135205 --Third Party Type
135206  , p_source_83            IN VARCHAR2
135207 --Parent Reversal Identifier
135208  , p_source_84            IN NUMBER
135209 --Invoice Distribution Statistical Amount
135210  , p_source_85            IN NUMBER
135211 --Invoice Distribution Tax Line Identifier
135212  , p_source_86            IN NUMBER
135213 --Invoice Distribution Tax Distribution Identifier from Tax
135214  , p_source_87            IN NUMBER
135215 --Invoice Distribution Summary Tax Line Identifier
135216  , p_source_88            IN NUMBER
135217 --Payables Upgrade Credit Encumbrance Type Identifier
135218  , p_source_89            IN NUMBER
135219 --Payables Upgrade Debit Encumbrance Type Identifier
135220  , p_source_90            IN NUMBER
135221 --Business Flow Accounts Payable Application Identifier
135222  , p_source_91            IN NUMBER
135223 --Business Flow Invoice Distribution Type
135224  , p_source_92            IN VARCHAR2
135225 --Business Flow Invoice Entity Code
135226  , p_source_93            IN VARCHAR2
135227 --Business Flow Invoice Distribution Identifier
135228  , p_source_94            IN NUMBER
135229 --Business Flow Invoice Identifier
135230  , p_source_95            IN NUMBER
135231 --Accrue on Receipt Option
135232  , p_source_96            IN VARCHAR2
135233  , p_source_96_meaning    IN VARCHAR2
135234 --Invoice Exchange Date
135235  , p_source_143            IN DATE
135236 --Invoice Exchange Rate
135237  , p_source_144            IN NUMBER
135238 --Invoice Exchange Rate Type
135239  , p_source_145            IN VARCHAR2
135240 )
135241 IS
135242 
135243 l_component_type              VARCHAR2(80);
135244 l_component_code              VARCHAR2(30);
135245 l_component_type_code         VARCHAR2(1);
135246 l_component_appl_id           INTEGER;
135247 l_amb_context_code            VARCHAR2(30);
135248 l_entity_code                 VARCHAR2(30);
135249 l_event_class_code            VARCHAR2(30);
135250 l_ae_header_id                NUMBER;
135251 l_event_type_code             VARCHAR2(30);
135252 l_line_definition_code        VARCHAR2(30);
135253 l_line_definition_owner_code  VARCHAR2(1);
135254 --
135255 -- adr variables
135256 l_segment                     VARCHAR2(30);
135257 l_ccid                        NUMBER;
135258 l_adr_transaction_coa_id      NUMBER;
135259 l_adr_accounting_coa_id       NUMBER;
135260 l_adr_flexfield_segment_code  VARCHAR2(30);
135261 l_adr_flex_value_set_id       NUMBER;
135262 l_adr_value_type_code         VARCHAR2(30);
135263 l_adr_value_combination_id    NUMBER;
135264 l_adr_value_segment_code      VARCHAR2(30);
135265 
135266 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
135267 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
135268 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
135269 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
135270 
135271 -- 4262811 Variables ------------------------------------------------------------------------------------------
135272 l_entered_amt_idx             NUMBER;
135273 l_accted_amt_idx              NUMBER;
135274 l_acc_rev_flag                VARCHAR2(1);
135275 l_accrual_line_num            NUMBER;
135276 l_tmp_amt                     NUMBER;
135277 l_acc_rev_natural_side_code   VARCHAR2(1);
135278 
135279 l_num_entries                 NUMBER;
135280 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
135281 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
135282 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
135283 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
135284 l_recog_line_1                NUMBER;
135285 l_recog_line_2                NUMBER;
135286 
135287 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
135288 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
135289 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
135290 
135291 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
135292 
135296 ---------------------------------------------------------------------------------------------------------------
135293 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
135294 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
135295 
135297 
135298 
135299 --
135300 -- bulk performance
135301 --
135302 l_balance_type_code           VARCHAR2(1);
135303 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
135304 l_log_module                  VARCHAR2(240);
135305 
135306 --
135307 -- Upgrade strategy
135308 --
135309 l_actual_upg_option           VARCHAR2(1);
135310 l_enc_upg_option           VARCHAR2(1);
135311 
135312 --
135313 BEGIN
135314 --
135315 IF g_log_enabled THEN
135316       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_219';
135317 END IF;
135318 --
135319 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
135320 
135321       trace
135322          (p_msg      => 'BEGIN of AcctLineType_219'
135323          ,p_level    => C_LEVEL_PROCEDURE
135324          ,p_module   => l_log_module);
135325 
135326 END IF;
135327 --
135328 l_component_type             := 'AMB_JLT';
135329 l_component_code             := 'AP_TAX_INV_PRICE_VAR_PREPAY';
135330 l_component_type_code        := 'S';
135331 l_component_appl_id          :=  200;
135332 l_amb_context_code           := 'DEFAULT';
135333 l_entity_code                := 'AP_INVOICES';
135334 l_event_class_code           := 'PREPAYMENTS';
135335 l_event_type_code            := 'PREPAYMENTS_ALL';
135336 l_line_definition_owner_code := 'S';
135337 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
135338 --
135339 l_balance_type_code          := 'A';
135340 l_segment                     := NULL;
135341 l_ccid                        := NULL;
135342 l_adr_transaction_coa_id      := NULL;
135343 l_adr_accounting_coa_id       := NULL;
135344 l_adr_flexfield_segment_code  := NULL;
135345 l_adr_flex_value_set_id       := NULL;
135346 l_adr_value_type_code         := NULL;
135347 l_adr_value_combination_id    := NULL;
135348 l_adr_value_segment_code      := NULL;
135349 
135350 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
135351 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
135352 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
135353 l_budgetary_control_flag     := 'N';
135354 
135355 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
135356 l_bflow_applied_to_amt       := NULL; -- 5132302
135357 l_entered_amt_idx            := NULL;          -- 4262811
135358 l_accted_amt_idx             := NULL;          -- 4262811
135359 l_acc_rev_flag               := NULL;          -- 4262811
135360 l_accrual_line_num           := NULL;          -- 4262811
135361 l_tmp_amt                    := NULL;          -- 4262811
135362 --
135363  
135364 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
135365     l_balance_type_code <> 'B' THEN
135366 IF NVL(p_source_33,'
135367 ') =  'TIPV' AND 
135368 NVL(p_source_96,'
135369 ') =  'Y'
135370  THEN 
135371 
135372    --
135373    XLA_AE_LINES_PKG.SetNewLine;
135374 
135375    p_balance_type_code          := l_balance_type_code;
135376    -- set the flag so later we will know whether the gain loss line needs to be created
135377    
135378    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
135379      p_actual_flag :='A';
135380    END IF;
135381 
135382    --
135383    -- bulk performance
135384    --
135385    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
135386                                       p_header_num   => 0); -- 4262811
135387    --
135388    -- set accounting line options
135389    --
135390    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
135391            p_natural_side_code          => 'D'
135392          , p_gain_or_loss_flag          => 'N'
135393          , p_gl_transfer_mode_code      => 'S'
135394          , p_acct_entry_type_code       => 'A'
135395          , p_switch_side_flag           => 'Y'
135396          , p_merge_duplicate_code       => 'A'
135397          );
135398    --
135399    l_acc_rev_natural_side_code := 'C';  -- 4262811
135400    -- 
135401    --
135402    -- set accounting line type info
135403    --
135404    xla_ae_lines_pkg.SetAcctLineType
135405       (p_component_type             => l_component_type
135406       ,p_event_type_code            => l_event_type_code
135407       ,p_line_definition_owner_code => l_line_definition_owner_code
135408       ,p_line_definition_code       => l_line_definition_code
135409       ,p_accounting_line_code       => l_component_code
135410       ,p_accounting_line_type_code  => l_component_type_code
135411       ,p_accounting_line_appl_id    => l_component_appl_id
135412       ,p_amb_context_code           => l_amb_context_code
135413       ,p_entity_code                => l_entity_code
135414       ,p_event_class_code           => l_event_class_code);
135415    --
135416    -- set accounting class
135417    --
135418    xla_ae_lines_pkg.SetAcctClass(
135419            p_accounting_class_code  => 'TIPV'
135420          , p_ae_header_id           => l_ae_header_id
135421          );
135422 
135423    --
135424    -- set rounding class
135425    --
135426    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
135427                       'TIPV';
135428 
135429    --
135430    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
135434    --
135431    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
135432    --
135433    -- bulk performance
135435    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
135436 
135437    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
135438       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
135439 
135440    -- 4955764
135441    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
135442       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
135443 
135444    -- 4458381 Public Sector Enh
135445    
135446    --
135447    -- set accounting attributes for the line type
135448    --
135449    l_entered_amt_idx := 23;
135450    l_accted_amt_idx  := 28;
135451    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
135452    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
135453    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
135454    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
135455    l_rec_acct_attrs.array_num_value(2)  := 
135456 xla_ae_sources_pkg.GetSystemSourceNum(
135457    p_source_code           => 'XLA_EVENT_APPL_ID'
135458  , p_source_type_code      => 'Y'
135459  , p_source_application_id =>  602
135460 );
135461    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
135462    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
135463    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
135464    l_rec_acct_attrs.array_char_value(4)  := 
135465 xla_ae_sources_pkg.GetSystemSourceChar(
135466    p_source_code           => 'XLA_ENTITY_CODE'
135467  , p_source_type_code      => 'Y'
135468  , p_source_application_id =>  602
135469 );
135470    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
135471    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
135472    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
135473    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
135474    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
135475    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
135476    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
135477    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
135478    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
135479    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
135480    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
135481    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
135482    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
135483    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
135484    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
135485    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
135486    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
135487    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
135488    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
135489    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
135490    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
135491    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
135492    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
135493    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
135494    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
135495    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
135496    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
135497    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
135498    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
135499    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
135500    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
135501    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
135502    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
135503    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
135504    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
135505    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
135506    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
135507    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
135508    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
135509    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
135510    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
135511    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
135512    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
135513    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
135514    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
135515    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
135516    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
135517    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
135518    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
135519    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
135520    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
135521    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
135522    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
135523    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
135527    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
135524    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
135525    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
135526    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
135528    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
135529    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
135530    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
135531    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
135532    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
135533    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
135534    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
135535    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
135536    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
135537    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
135538    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
135539    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
135540    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
135541    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
135542    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
135543    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
135544    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
135545    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
135546    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
135547    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
135548 
135549    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
135550    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
135551 
135552    ---------------------------------------------------------------------------------------------------------------
135553    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
135554    ---------------------------------------------------------------------------------------------------------------
135555    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
135556 
135557    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
135558    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
135559 
135560    IF xla_accounting_cache_pkg.GetValueChar
135561          (p_source_code         => 'LEDGER_CATEGORY_CODE'
135562          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
135563    AND l_bflow_method_code = 'PRIOR_ENTRY'
135564 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
135565    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
135566          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
135567        )
135568    THEN
135569          xla_ae_lines_pkg.BflowUpgEntry
135570            (p_business_method_code    => l_bflow_method_code
135571            ,p_business_class_code     => l_bflow_class_code
135572            ,p_balance_type            => l_balance_type_code);
135573    ELSE
135574       NULL;
135575 -- No business flow processing for business flow method of NONE.
135576    END IF;
135577 
135578    --
135579    -- call analytical criteria
135580    --
135581    
135582    --
135583    -- call description
135584    --
135585    
135586 xla_ae_lines_pkg.SetLineDescription(
135587    p_ae_header_id => l_ae_header_id
135588   ,p_description  => Description_1 (
135589      p_application_id         => p_application_id
135590    , p_ae_header_id           => l_ae_header_id 
135591 , p_source_1 => p_source_1
135592    )
135593 );
135594 
135595 
135596    --
135597    -- call ADRs
135598    -- Bug 4922099
135599    --
135600    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
135601         (NVL(l_actual_upg_option, 'N') = 'O') OR
135602         (NVL(l_enc_upg_option, 'N') = 'O')
135603       )
135604    THEN
135605    NULL;
135606    --
135607    --
135608    
135609   l_ccid := AcctDerRule_33(
135610            p_application_id           => p_application_id
135611          , p_ae_header_id             => l_ae_header_id 
135612 , p_source_30 => p_source_30
135613          , x_transaction_coa_id       => l_adr_transaction_coa_id
135614          , x_accounting_coa_id        => l_adr_accounting_coa_id
135615          , x_value_type_code          => l_adr_value_type_code
135616          , p_side                     => 'NA'
135617    );
135618 
135619    xla_ae_lines_pkg.set_ccid(
135620     p_code_combination_id          => l_ccid
135621   , p_value_type_code              => l_adr_value_type_code
135622   , p_transaction_coa_id           => l_adr_transaction_coa_id
135623   , p_accounting_coa_id            => l_adr_accounting_coa_id
135624   , p_adr_code                     => 'AP_INVOICE_DIST'
135625   , p_adr_type_code                => 'S'
135626   , p_component_type               => l_component_type
135627   , p_component_code               => l_component_code
135628   , p_component_type_code          => l_component_type_code
135629   , p_component_appl_id            => l_component_appl_id
135630   , p_amb_context_code             => l_amb_context_code
135631   , p_side                         => 'NA'
135632   );
135633 
135634 
135635    --
135636    --
135637    END IF;
135641           (NVL(l_enc_upg_option, 'N') = 'O')
135638    --
135639    -- Bug 4922099
135640    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
135642         ) AND
135643         (l_bflow_method_code = 'PRIOR_ENTRY')
135644       )
135645    THEN
135646       IF
135647       --
135648       1 = 2
135649       --
135650       THEN
135651       xla_accounting_err_pkg.build_message
135652                                     (p_appli_s_name            => 'XLA'
135653                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
135654                                     ,p_token_1                 => 'LINE_NUMBER'
135655                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
135656                                     ,p_token_2                 => 'LINE_TYPE_NAME'
135657                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
135658                                                                              l_component_type
135659                                                                             ,l_component_code
135660                                                                             ,l_component_type_code
135661                                                                             ,l_component_appl_id
135662                                                                             ,l_amb_context_code
135663                                                                             ,l_entity_code
135664                                                                             ,l_event_class_code
135665                                                                            )
135666                                     ,p_token_3                 => 'OWNER'
135667                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
135668                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
135669                                                                           ,p_lookup_code    => l_component_type_code
135670                                                                          )
135671                                     ,p_token_4                 => 'PRODUCT_NAME'
135672                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
135673                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
135674                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
135675                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
135676                                     ,p_ae_header_id            =>  NULL
135677                                        );
135678 
135679         IF (C_LEVEL_ERROR>= g_log_level) THEN
135680                  trace
135681                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
135682                       ,p_level    => C_LEVEL_ERROR
135683                       ,p_module   => l_log_module);
135684         END IF;
135685       END IF;
135686    END IF;
135687    --
135688    --
135689    ------------------------------------------------------------------------------------------------
135690    -- 4219869 Business Flow
135691    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
135692    -- Prior Entry.  Currently, the following code is always generated.
135693    ------------------------------------------------------------------------------------------------
135694    XLA_AE_LINES_PKG.ValidateCurrentLine;
135695 
135696    ------------------------------------------------------------------------------------
135697    -- 4219869 Business Flow
135698    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
135699    ------------------------------------------------------------------------------------
135700    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
135701 
135702    ----------------------------------------------------------------------------------
135703    -- 4219869 Business Flow
135704    -- Update journal entry status -- Need to generate this within IF <condition>
135705    ----------------------------------------------------------------------------------
135706    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
135707          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
135708          ,p_balance_type_code => l_balance_type_code
135709          );
135710 
135711    -------------------------------------------------------------------------------------------
135712    -- 4262811 - Generate the Accrual Reversal lines
135713    -------------------------------------------------------------------------------------------
135714    BEGIN
135715       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
135716                               (g_array_event(p_event_id).array_value_num('header_index'));
135717       IF l_acc_rev_flag IS NULL THEN
135718          l_acc_rev_flag := 'N';
135719       END IF;
135720    EXCEPTION
135721       WHEN OTHERS THEN
135722          l_acc_rev_flag := 'N';
135723    END;
135724    --
135725    IF (l_acc_rev_flag = 'Y') THEN
135726 
135727        -- 4645092  ------------------------------------------------------------------------------
135728        -- To allow MPA report to determine if it should generate report process
135729        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
135730        ------------------------------------------------------------------------------------------
135731 
135732        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
135736    -- Bug 4922099
135733        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
135734    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
135735    -- call ADRs
135737    --
135738    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
135739         (NVL(l_actual_upg_option, 'N') = 'O') OR
135740         (NVL(l_enc_upg_option, 'N') = 'O')
135741       )
135742    THEN
135743    NULL;
135744    --
135745    --
135746    
135747   l_ccid := AcctDerRule_33(
135748            p_application_id           => p_application_id
135749          , p_ae_header_id             => l_ae_header_id 
135750 , p_source_30 => p_source_30
135751          , x_transaction_coa_id       => l_adr_transaction_coa_id
135752          , x_accounting_coa_id        => l_adr_accounting_coa_id
135753          , x_value_type_code          => l_adr_value_type_code
135754          , p_side                     => 'NA'
135755    );
135756 
135757    xla_ae_lines_pkg.set_ccid(
135758     p_code_combination_id          => l_ccid
135759   , p_value_type_code              => l_adr_value_type_code
135760   , p_transaction_coa_id           => l_adr_transaction_coa_id
135761   , p_accounting_coa_id            => l_adr_accounting_coa_id
135762   , p_adr_code                     => 'AP_INVOICE_DIST'
135763   , p_adr_type_code                => 'S'
135764   , p_component_type               => l_component_type
135765   , p_component_code               => l_component_code
135766   , p_component_type_code          => l_component_type_code
135767   , p_component_appl_id            => l_component_appl_id
135768   , p_amb_context_code             => l_amb_context_code
135769   , p_side                         => 'NA'
135770   );
135771 
135772 
135773    --
135774    --
135775    END IF;
135776 
135777        --
135778        -- Update the line information that should be overwritten
135779        --
135780        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
135781                                          p_header_num   => 1);
135782        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
135783 
135784        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
135785 
135786        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
135787           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
135788        END IF;
135789 
135790       --
135791       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
135792       --
135793       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
135794           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
135795       ELSE
135796           ---------------------------------------------------------------------------------------------------
135797           -- 4262811a Switch Sign
135798           ---------------------------------------------------------------------------------------------------
135799           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
135800           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
135801                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
135802           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
135803                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
135804           -- 5132302
135805           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
135806                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
135807 
135808       END IF;
135809 
135810       -- 4955764
135811       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
135812       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
135813 
135814 
135815       XLA_AE_LINES_PKG.ValidateCurrentLine;
135816       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
135817 
135818       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
135819                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
135820                ,p_balance_type_code => l_balance_type_code);
135821 
135822    END IF;
135823 
135824    -----------------------------------------------------------------------------------------
135825    -- 4262811 Multiperiod Accounting
135826    -----------------------------------------------------------------------------------------
135827      -- No MPA option is assigned.
135828 
135829 
135830 END IF;
135831 END IF;
135832 --
135833 
135834 --
135835 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
135836    trace
135837       (p_msg      => 'END of AcctLineType_219'
135838       ,p_level    => C_LEVEL_PROCEDURE
135839       ,p_module   => l_log_module);
135840 END IF;
135841 --
135842 EXCEPTION
135843   WHEN xla_exceptions_pkg.application_exception THEN
135844       RAISE;
135845   WHEN OTHERS THEN
135846        xla_exceptions_pkg.raise_message
135847            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_219');
135848 END AcctLineType_219;
135849 --
135850 
135851 ---------------------------------------
135852 --
135853 -- PRIVATE FUNCTION
135854 --         AcctLineType_220
135855 --
135856 ---------------------------------------
135860  ,p_calculate_acctd_flag  IN VARCHAR2
135857 PROCEDURE AcctLineType_220 (
135858   p_application_id        IN NUMBER
135859  ,p_event_id              IN NUMBER
135861  ,p_calculate_g_l_flag    IN VARCHAR2
135862  ,p_actual_flag           IN OUT VARCHAR2
135863  ,p_balance_type_code     OUT VARCHAR2
135864  ,p_gain_or_loss_ref      OUT VARCHAR2
135865  
135866 --Invoice Distribution Description
135867  , p_source_1            IN VARCHAR2
135868 --Invoice Distribution Ledger Amount
135869  , p_source_21            IN NUMBER
135870 --Invoice Distribution Account
135871  , p_source_30            IN NUMBER
135872 --Invoice Distribution Type
135873  , p_source_33            IN VARCHAR2
135874  , p_source_33_meaning    IN VARCHAR2
135875 --Accounting Reversal Indicator
135876  , p_source_53            IN VARCHAR2
135877 --Distribution Link Type
135878  , p_source_55            IN VARCHAR2
135879 --Allocation to Main Distribution Identifier
135880  , p_source_57            IN NUMBER
135881 --Invoice Identifier
135882  , p_source_58            IN NUMBER
135883 --Invoice Distribution Identifier
135884  , p_source_64            IN NUMBER
135885 --Payables Encumbrance Upgrade Credit Account
135886  , p_source_65            IN NUMBER
135887 --Payables Encumbrance Upgrade Credit Amount
135888  , p_source_66            IN NUMBER
135889 --Invoice Currency Code
135890  , p_source_67            IN VARCHAR2
135891 --Payables Encumbrance Upgrade Credit Base Amount
135892  , p_source_68            IN NUMBER
135893 --Payables Encumbrance Upgrade Debit Account
135894  , p_source_69            IN NUMBER
135895 --Payables Encumbrance Upgrade Debit Amount
135896  , p_source_70            IN NUMBER
135897 --Payables Encumbrance Upgrade Debit Base Amount
135898  , p_source_71            IN NUMBER
135899 --Payables Encumbrance Upgrade Option
135900  , p_source_72            IN VARCHAR2
135901 --Invoice Distribution Amount
135902  , p_source_73            IN NUMBER
135903 --Deferred Accounting End Date
135904  , p_source_77            IN DATE
135905 --Deferred Accounting Option
135906  , p_source_78            IN VARCHAR2
135907 --Deferred Accounting Start Date
135908  , p_source_79            IN DATE
135909 --Override Accounted Amount Indicator
135910  , p_source_80            IN VARCHAR2
135911  , p_source_80_meaning    IN VARCHAR2
135912 --Invoice Supplier Identifier
135913  , p_source_81            IN NUMBER
135914 --Invoice Supplier Site Identifier
135915  , p_source_82            IN NUMBER
135916 --Third Party Type
135917  , p_source_83            IN VARCHAR2
135918 --Parent Reversal Identifier
135919  , p_source_84            IN NUMBER
135920 --Invoice Distribution Statistical Amount
135921  , p_source_85            IN NUMBER
135922 --Invoice Distribution Tax Line Identifier
135923  , p_source_86            IN NUMBER
135924 --Invoice Distribution Tax Distribution Identifier from Tax
135925  , p_source_87            IN NUMBER
135926 --Invoice Distribution Summary Tax Line Identifier
135927  , p_source_88            IN NUMBER
135928 --Payables Upgrade Credit Encumbrance Type Identifier
135929  , p_source_89            IN NUMBER
135930 --Payables Upgrade Debit Encumbrance Type Identifier
135931  , p_source_90            IN NUMBER
135932 --Business Flow Accounts Payable Application Identifier
135933  , p_source_91            IN NUMBER
135934 --Business Flow Invoice Distribution Type
135935  , p_source_92            IN VARCHAR2
135936 --Business Flow Invoice Entity Code
135937  , p_source_93            IN VARCHAR2
135938 --Business Flow Invoice Distribution Identifier
135939  , p_source_94            IN NUMBER
135940 --Business Flow Invoice Identifier
135941  , p_source_95            IN NUMBER
135942 --Accrue on Receipt Option
135943  , p_source_96            IN VARCHAR2
135944  , p_source_96_meaning    IN VARCHAR2
135945 --Invoice Exchange Date
135946  , p_source_143            IN DATE
135947 --Invoice Exchange Rate
135948  , p_source_144            IN NUMBER
135949 --Invoice Exchange Rate Type
135950  , p_source_145            IN VARCHAR2
135951 )
135952 IS
135953 
135954 l_component_type              VARCHAR2(80);
135955 l_component_code              VARCHAR2(30);
135956 l_component_type_code         VARCHAR2(1);
135957 l_component_appl_id           INTEGER;
135958 l_amb_context_code            VARCHAR2(30);
135959 l_entity_code                 VARCHAR2(30);
135960 l_event_class_code            VARCHAR2(30);
135961 l_ae_header_id                NUMBER;
135962 l_event_type_code             VARCHAR2(30);
135963 l_line_definition_code        VARCHAR2(30);
135964 l_line_definition_owner_code  VARCHAR2(1);
135965 --
135966 -- adr variables
135967 l_segment                     VARCHAR2(30);
135968 l_ccid                        NUMBER;
135969 l_adr_transaction_coa_id      NUMBER;
135970 l_adr_accounting_coa_id       NUMBER;
135971 l_adr_flexfield_segment_code  VARCHAR2(30);
135972 l_adr_flex_value_set_id       NUMBER;
135973 l_adr_value_type_code         VARCHAR2(30);
135974 l_adr_value_combination_id    NUMBER;
135975 l_adr_value_segment_code      VARCHAR2(30);
135976 
135977 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
135978 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
135979 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
135980 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
135981 
135982 -- 4262811 Variables ------------------------------------------------------------------------------------------
135983 l_entered_amt_idx             NUMBER;
135984 l_accted_amt_idx              NUMBER;
135988 l_acc_rev_natural_side_code   VARCHAR2(1);
135985 l_acc_rev_flag                VARCHAR2(1);
135986 l_accrual_line_num            NUMBER;
135987 l_tmp_amt                     NUMBER;
135989 
135990 l_num_entries                 NUMBER;
135991 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
135992 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
135993 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
135994 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
135995 l_recog_line_1                NUMBER;
135996 l_recog_line_2                NUMBER;
135997 
135998 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
135999 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
136000 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
136001 
136002 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
136003 
136004 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
136005 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
136006 
136007 ---------------------------------------------------------------------------------------------------------------
136008 
136009 
136010 --
136011 -- bulk performance
136012 --
136013 l_balance_type_code           VARCHAR2(1);
136014 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
136015 l_log_module                  VARCHAR2(240);
136016 
136017 --
136018 -- Upgrade strategy
136019 --
136020 l_actual_upg_option           VARCHAR2(1);
136021 l_enc_upg_option           VARCHAR2(1);
136022 
136023 --
136024 BEGIN
136025 --
136026 IF g_log_enabled THEN
136027       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_220';
136028 END IF;
136029 --
136030 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
136031 
136032       trace
136033          (p_msg      => 'BEGIN of AcctLineType_220'
136034          ,p_level    => C_LEVEL_PROCEDURE
136035          ,p_module   => l_log_module);
136036 
136037 END IF;
136038 --
136039 l_component_type             := 'AMB_JLT';
136040 l_component_code             := 'AP_TAX_RATE_VAR_CM';
136041 l_component_type_code        := 'S';
136042 l_component_appl_id          :=  200;
136043 l_amb_context_code           := 'DEFAULT';
136044 l_entity_code                := 'AP_INVOICES';
136045 l_event_class_code           := 'CREDIT MEMOS';
136046 l_event_type_code            := 'CREDIT MEMOS_ALL';
136047 l_line_definition_owner_code := 'S';
136048 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
136049 --
136050 l_balance_type_code          := 'A';
136051 l_segment                     := NULL;
136052 l_ccid                        := NULL;
136053 l_adr_transaction_coa_id      := NULL;
136054 l_adr_accounting_coa_id       := NULL;
136055 l_adr_flexfield_segment_code  := NULL;
136056 l_adr_flex_value_set_id       := NULL;
136057 l_adr_value_type_code         := NULL;
136058 l_adr_value_combination_id    := NULL;
136059 l_adr_value_segment_code      := NULL;
136060 
136061 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
136062 l_bflow_class_code           := '';    -- 4219869 Business Flow
136063 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
136064 l_budgetary_control_flag     := 'N';
136065 
136066 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
136067 l_bflow_applied_to_amt       := NULL; -- 5132302
136068 l_entered_amt_idx            := NULL;          -- 4262811
136069 l_accted_amt_idx             := NULL;          -- 4262811
136070 l_acc_rev_flag               := NULL;          -- 4262811
136071 l_accrual_line_num           := NULL;          -- 4262811
136072 l_tmp_amt                    := NULL;          -- 4262811
136073 --
136074  
136075 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
136076     l_balance_type_code <> 'B' THEN
136077 IF NVL(p_source_33,'
136078 ') =  'TRV' AND 
136079 NVL(p_source_96,'
136080 ') =  'Y'
136081  THEN 
136082 
136083    --
136084    XLA_AE_LINES_PKG.SetNewLine;
136085 
136086    p_balance_type_code          := l_balance_type_code;
136087    -- set the flag so later we will know whether the gain loss line needs to be created
136088    
136089    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
136090      p_actual_flag :='A';
136091    END IF;
136092 
136093    --
136094    -- bulk performance
136095    --
136096    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
136097                                       p_header_num   => 0); -- 4262811
136098    --
136099    -- set accounting line options
136100    --
136101    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
136102            p_natural_side_code          => 'D'
136103          , p_gain_or_loss_flag          => 'N'
136104          , p_gl_transfer_mode_code      => 'S'
136105          , p_acct_entry_type_code       => 'A'
136106          , p_switch_side_flag           => 'Y'
136107          , p_merge_duplicate_code       => 'A'
136108          );
136109    --
136110    l_acc_rev_natural_side_code := 'C';  -- 4262811
136111    -- 
136112    --
136113    -- set accounting line type info
136114    --
136115    xla_ae_lines_pkg.SetAcctLineType
136116       (p_component_type             => l_component_type
136117       ,p_event_type_code            => l_event_type_code
136118       ,p_line_definition_owner_code => l_line_definition_owner_code
136122       ,p_accounting_line_appl_id    => l_component_appl_id
136119       ,p_line_definition_code       => l_line_definition_code
136120       ,p_accounting_line_code       => l_component_code
136121       ,p_accounting_line_type_code  => l_component_type_code
136123       ,p_amb_context_code           => l_amb_context_code
136124       ,p_entity_code                => l_entity_code
136125       ,p_event_class_code           => l_event_class_code);
136126    --
136127    -- set accounting class
136128    --
136129    xla_ae_lines_pkg.SetAcctClass(
136130            p_accounting_class_code  => 'TRV'
136131          , p_ae_header_id           => l_ae_header_id
136132          );
136133 
136134    --
136135    -- set rounding class
136136    --
136137    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
136138                       'TRV';
136139 
136140    --
136141    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
136142    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
136143    --
136144    -- bulk performance
136145    --
136146    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
136147 
136148    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
136149       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
136150 
136151    -- 4955764
136152    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
136153       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
136154 
136155    -- 4458381 Public Sector Enh
136156    
136157    --
136158    -- set accounting attributes for the line type
136159    --
136160    l_entered_amt_idx := 23;
136161    l_accted_amt_idx  := 28;
136162    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
136163    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
136164    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
136165    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
136166    l_rec_acct_attrs.array_num_value(2)  := 
136167 xla_ae_sources_pkg.GetSystemSourceNum(
136168    p_source_code           => 'XLA_EVENT_APPL_ID'
136169  , p_source_type_code      => 'Y'
136170  , p_source_application_id =>  602
136171 );
136172    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
136173    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
136174    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
136175    l_rec_acct_attrs.array_char_value(4)  := 
136176 xla_ae_sources_pkg.GetSystemSourceChar(
136177    p_source_code           => 'XLA_ENTITY_CODE'
136178  , p_source_type_code      => 'Y'
136179  , p_source_application_id =>  602
136180 );
136181    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
136182    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
136183    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
136184    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
136185    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
136186    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
136187    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
136188    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
136189    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
136190    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
136191    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
136192    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
136193    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
136194    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
136195    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
136196    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
136197    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
136198    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
136199    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
136200    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
136201    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
136202    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
136203    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
136204    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
136205    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
136206    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
136207    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
136208    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
136209    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
136210    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
136211    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
136212    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
136213    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
136214    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
136215    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
136216    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
136217    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
136218    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
136222    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
136219    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
136220    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
136221    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
136223    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
136224    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
136225    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
136226    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
136227    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
136228    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
136229    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
136230    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
136231    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
136232    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
136233    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
136234    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
136235    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
136236    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
136237    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
136238    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
136239    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
136240    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
136241    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
136242    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
136243    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
136244    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
136245    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
136246    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
136247    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
136248    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
136249    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
136250    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
136251    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
136252    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
136253    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
136254    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
136255    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
136256    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
136257    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
136258    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
136259 
136260    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
136261    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
136262 
136263    ---------------------------------------------------------------------------------------------------------------
136264    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
136265    ---------------------------------------------------------------------------------------------------------------
136266    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
136267 
136268    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
136269    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
136270 
136271    IF xla_accounting_cache_pkg.GetValueChar
136272          (p_source_code         => 'LEDGER_CATEGORY_CODE'
136273          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
136274    AND l_bflow_method_code = 'PRIOR_ENTRY'
136275 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
136276    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
136277          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
136278        )
136279    THEN
136280          xla_ae_lines_pkg.BflowUpgEntry
136281            (p_business_method_code    => l_bflow_method_code
136282            ,p_business_class_code     => l_bflow_class_code
136283            ,p_balance_type            => l_balance_type_code);
136284    ELSE
136285       NULL;
136286 -- No business flow processing for business flow method of NONE.
136287    END IF;
136288 
136289    --
136290    -- call analytical criteria
136291    --
136292    
136293    --
136294    -- call description
136295    --
136296    
136297 xla_ae_lines_pkg.SetLineDescription(
136298    p_ae_header_id => l_ae_header_id
136299   ,p_description  => Description_1 (
136300      p_application_id         => p_application_id
136301    , p_ae_header_id           => l_ae_header_id 
136302 , p_source_1 => p_source_1
136303    )
136304 );
136305 
136306 
136307    --
136308    -- call ADRs
136309    -- Bug 4922099
136310    --
136311    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
136312         (NVL(l_actual_upg_option, 'N') = 'O') OR
136313         (NVL(l_enc_upg_option, 'N') = 'O')
136314       )
136315    THEN
136316    NULL;
136317    --
136318    --
136319    
136320   l_ccid := AcctDerRule_33(
136321            p_application_id           => p_application_id
136322          , p_ae_header_id             => l_ae_header_id 
136323 , p_source_30 => p_source_30
136324          , x_transaction_coa_id       => l_adr_transaction_coa_id
136328    );
136325          , x_accounting_coa_id        => l_adr_accounting_coa_id
136326          , x_value_type_code          => l_adr_value_type_code
136327          , p_side                     => 'NA'
136329 
136330    xla_ae_lines_pkg.set_ccid(
136331     p_code_combination_id          => l_ccid
136332   , p_value_type_code              => l_adr_value_type_code
136333   , p_transaction_coa_id           => l_adr_transaction_coa_id
136334   , p_accounting_coa_id            => l_adr_accounting_coa_id
136335   , p_adr_code                     => 'AP_INVOICE_DIST'
136336   , p_adr_type_code                => 'S'
136337   , p_component_type               => l_component_type
136338   , p_component_code               => l_component_code
136339   , p_component_type_code          => l_component_type_code
136340   , p_component_appl_id            => l_component_appl_id
136341   , p_amb_context_code             => l_amb_context_code
136342   , p_side                         => 'NA'
136343   );
136344 
136345 
136346    --
136347    --
136348    END IF;
136349    --
136350    -- Bug 4922099
136351    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
136352           (NVL(l_enc_upg_option, 'N') = 'O')
136353         ) AND
136354         (l_bflow_method_code = 'PRIOR_ENTRY')
136355       )
136356    THEN
136357       IF
136358       --
136359       1 = 2
136360       --
136361       THEN
136362       xla_accounting_err_pkg.build_message
136363                                     (p_appli_s_name            => 'XLA'
136364                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
136365                                     ,p_token_1                 => 'LINE_NUMBER'
136366                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
136367                                     ,p_token_2                 => 'LINE_TYPE_NAME'
136368                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
136369                                                                              l_component_type
136370                                                                             ,l_component_code
136371                                                                             ,l_component_type_code
136372                                                                             ,l_component_appl_id
136373                                                                             ,l_amb_context_code
136374                                                                             ,l_entity_code
136375                                                                             ,l_event_class_code
136376                                                                            )
136377                                     ,p_token_3                 => 'OWNER'
136378                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
136379                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
136380                                                                           ,p_lookup_code    => l_component_type_code
136381                                                                          )
136382                                     ,p_token_4                 => 'PRODUCT_NAME'
136383                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
136384                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
136385                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
136386                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
136387                                     ,p_ae_header_id            =>  NULL
136388                                        );
136389 
136390         IF (C_LEVEL_ERROR>= g_log_level) THEN
136391                  trace
136392                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
136393                       ,p_level    => C_LEVEL_ERROR
136394                       ,p_module   => l_log_module);
136395         END IF;
136396       END IF;
136397    END IF;
136398    --
136399    --
136400    ------------------------------------------------------------------------------------------------
136401    -- 4219869 Business Flow
136402    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
136403    -- Prior Entry.  Currently, the following code is always generated.
136404    ------------------------------------------------------------------------------------------------
136405    XLA_AE_LINES_PKG.ValidateCurrentLine;
136406 
136407    ------------------------------------------------------------------------------------
136408    -- 4219869 Business Flow
136409    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
136410    ------------------------------------------------------------------------------------
136411    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
136412 
136413    ----------------------------------------------------------------------------------
136414    -- 4219869 Business Flow
136415    -- Update journal entry status -- Need to generate this within IF <condition>
136416    ----------------------------------------------------------------------------------
136417    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
136418          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
136419          ,p_balance_type_code => l_balance_type_code
136420          );
136421 
136422    -------------------------------------------------------------------------------------------
136426       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
136423    -- 4262811 - Generate the Accrual Reversal lines
136424    -------------------------------------------------------------------------------------------
136425    BEGIN
136427                               (g_array_event(p_event_id).array_value_num('header_index'));
136428       IF l_acc_rev_flag IS NULL THEN
136429          l_acc_rev_flag := 'N';
136430       END IF;
136431    EXCEPTION
136432       WHEN OTHERS THEN
136433          l_acc_rev_flag := 'N';
136434    END;
136435    --
136436    IF (l_acc_rev_flag = 'Y') THEN
136437 
136438        -- 4645092  ------------------------------------------------------------------------------
136439        -- To allow MPA report to determine if it should generate report process
136440        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
136441        ------------------------------------------------------------------------------------------
136442 
136443        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
136444        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
136445    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
136446    -- call ADRs
136447    -- Bug 4922099
136448    --
136449    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
136450         (NVL(l_actual_upg_option, 'N') = 'O') OR
136451         (NVL(l_enc_upg_option, 'N') = 'O')
136452       )
136453    THEN
136454    NULL;
136455    --
136456    --
136457    
136458   l_ccid := AcctDerRule_33(
136459            p_application_id           => p_application_id
136460          , p_ae_header_id             => l_ae_header_id 
136461 , p_source_30 => p_source_30
136462          , x_transaction_coa_id       => l_adr_transaction_coa_id
136463          , x_accounting_coa_id        => l_adr_accounting_coa_id
136464          , x_value_type_code          => l_adr_value_type_code
136465          , p_side                     => 'NA'
136466    );
136467 
136468    xla_ae_lines_pkg.set_ccid(
136469     p_code_combination_id          => l_ccid
136470   , p_value_type_code              => l_adr_value_type_code
136471   , p_transaction_coa_id           => l_adr_transaction_coa_id
136472   , p_accounting_coa_id            => l_adr_accounting_coa_id
136473   , p_adr_code                     => 'AP_INVOICE_DIST'
136474   , p_adr_type_code                => 'S'
136475   , p_component_type               => l_component_type
136476   , p_component_code               => l_component_code
136477   , p_component_type_code          => l_component_type_code
136478   , p_component_appl_id            => l_component_appl_id
136479   , p_amb_context_code             => l_amb_context_code
136480   , p_side                         => 'NA'
136481   );
136482 
136483 
136484    --
136485    --
136486    END IF;
136487 
136488        --
136489        -- Update the line information that should be overwritten
136490        --
136491        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
136492                                          p_header_num   => 1);
136493        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
136494 
136495        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
136496 
136497        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
136498           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
136499        END IF;
136500 
136501       --
136502       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
136503       --
136504       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
136505           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
136506       ELSE
136507           ---------------------------------------------------------------------------------------------------
136508           -- 4262811a Switch Sign
136509           ---------------------------------------------------------------------------------------------------
136510           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
136511           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
136512                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
136513           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
136514                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
136515           -- 5132302
136516           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
136517                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
136518 
136519       END IF;
136520 
136521       -- 4955764
136522       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
136523       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
136524 
136525 
136526       XLA_AE_LINES_PKG.ValidateCurrentLine;
136527       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
136528 
136529       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
136530                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
136531                ,p_balance_type_code => l_balance_type_code);
136532 
136533    END IF;
136534 
136538      -- No MPA option is assigned.
136535    -----------------------------------------------------------------------------------------
136536    -- 4262811 Multiperiod Accounting
136537    -----------------------------------------------------------------------------------------
136539 
136540 
136541 END IF;
136542 END IF;
136543 --
136544 
136545 --
136546 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
136547    trace
136548       (p_msg      => 'END of AcctLineType_220'
136549       ,p_level    => C_LEVEL_PROCEDURE
136550       ,p_module   => l_log_module);
136551 END IF;
136552 --
136553 EXCEPTION
136554   WHEN xla_exceptions_pkg.application_exception THEN
136555       RAISE;
136556   WHEN OTHERS THEN
136557        xla_exceptions_pkg.raise_message
136558            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_220');
136559 END AcctLineType_220;
136560 --
136561 
136562 ---------------------------------------
136563 --
136564 -- PRIVATE FUNCTION
136565 --         AcctLineType_221
136566 --
136567 ---------------------------------------
136568 PROCEDURE AcctLineType_221 (
136569   p_application_id        IN NUMBER
136570  ,p_event_id              IN NUMBER
136571  ,p_calculate_acctd_flag  IN VARCHAR2
136572  ,p_calculate_g_l_flag    IN VARCHAR2
136573  ,p_actual_flag           IN OUT VARCHAR2
136574  ,p_balance_type_code     OUT VARCHAR2
136575  ,p_gain_or_loss_ref      OUT VARCHAR2
136576  
136577 --Invoice Distribution Description
136578  , p_source_1            IN VARCHAR2
136579 --Invoice Distribution Ledger Amount
136580  , p_source_21            IN NUMBER
136581 --Invoice Distribution Account
136582  , p_source_30            IN NUMBER
136583 --Invoice Distribution Type
136584  , p_source_33            IN VARCHAR2
136585  , p_source_33_meaning    IN VARCHAR2
136586 --Accounting Reversal Indicator
136587  , p_source_53            IN VARCHAR2
136588 --Distribution Link Type
136589  , p_source_55            IN VARCHAR2
136590 --Allocation to Main Distribution Identifier
136591  , p_source_57            IN NUMBER
136592 --Invoice Identifier
136593  , p_source_58            IN NUMBER
136594 --Invoice Distribution Identifier
136595  , p_source_64            IN NUMBER
136596 --Payables Encumbrance Upgrade Credit Account
136597  , p_source_65            IN NUMBER
136598 --Payables Encumbrance Upgrade Credit Amount
136599  , p_source_66            IN NUMBER
136600 --Invoice Currency Code
136601  , p_source_67            IN VARCHAR2
136602 --Payables Encumbrance Upgrade Credit Base Amount
136603  , p_source_68            IN NUMBER
136604 --Payables Encumbrance Upgrade Debit Account
136605  , p_source_69            IN NUMBER
136606 --Payables Encumbrance Upgrade Debit Amount
136607  , p_source_70            IN NUMBER
136608 --Payables Encumbrance Upgrade Debit Base Amount
136609  , p_source_71            IN NUMBER
136610 --Payables Encumbrance Upgrade Option
136611  , p_source_72            IN VARCHAR2
136612 --Invoice Distribution Amount
136613  , p_source_73            IN NUMBER
136614 --Deferred Accounting End Date
136615  , p_source_77            IN DATE
136616 --Deferred Accounting Option
136617  , p_source_78            IN VARCHAR2
136618 --Deferred Accounting Start Date
136619  , p_source_79            IN DATE
136620 --Override Accounted Amount Indicator
136621  , p_source_80            IN VARCHAR2
136622  , p_source_80_meaning    IN VARCHAR2
136623 --Invoice Supplier Identifier
136624  , p_source_81            IN NUMBER
136625 --Invoice Supplier Site Identifier
136626  , p_source_82            IN NUMBER
136627 --Third Party Type
136628  , p_source_83            IN VARCHAR2
136629 --Parent Reversal Identifier
136630  , p_source_84            IN NUMBER
136631 --Invoice Distribution Tax Line Identifier
136632  , p_source_86            IN NUMBER
136633 --Invoice Distribution Tax Distribution Identifier from Tax
136634  , p_source_87            IN NUMBER
136635 --Invoice Distribution Summary Tax Line Identifier
136636  , p_source_88            IN NUMBER
136637 --Payables Upgrade Credit Encumbrance Type Identifier
136638  , p_source_89            IN NUMBER
136639 --Payables Upgrade Debit Encumbrance Type Identifier
136640  , p_source_90            IN NUMBER
136641 --Business Flow Accounts Payable Application Identifier
136642  , p_source_91            IN NUMBER
136643 --Business Flow Invoice Distribution Type
136644  , p_source_92            IN VARCHAR2
136645 --Business Flow Invoice Entity Code
136646  , p_source_93            IN VARCHAR2
136647 --Business Flow Invoice Distribution Identifier
136648  , p_source_94            IN NUMBER
136649 --Business Flow Invoice Identifier
136650  , p_source_95            IN NUMBER
136651 --Accrue on Receipt Option
136652  , p_source_96            IN VARCHAR2
136653  , p_source_96_meaning    IN VARCHAR2
136654 --Invoice Exchange Date
136655  , p_source_143            IN DATE
136656 --Invoice Exchange Rate
136657  , p_source_144            IN NUMBER
136658 --Invoice Exchange Rate Type
136659  , p_source_145            IN VARCHAR2
136660 )
136661 IS
136662 
136663 l_component_type              VARCHAR2(80);
136664 l_component_code              VARCHAR2(30);
136665 l_component_type_code         VARCHAR2(1);
136666 l_component_appl_id           INTEGER;
136667 l_amb_context_code            VARCHAR2(30);
136668 l_entity_code                 VARCHAR2(30);
136669 l_event_class_code            VARCHAR2(30);
136670 l_ae_header_id                NUMBER;
136671 l_event_type_code             VARCHAR2(30);
136672 l_line_definition_code        VARCHAR2(30);
136676 l_segment                     VARCHAR2(30);
136673 l_line_definition_owner_code  VARCHAR2(1);
136674 --
136675 -- adr variables
136677 l_ccid                        NUMBER;
136678 l_adr_transaction_coa_id      NUMBER;
136679 l_adr_accounting_coa_id       NUMBER;
136680 l_adr_flexfield_segment_code  VARCHAR2(30);
136681 l_adr_flex_value_set_id       NUMBER;
136682 l_adr_value_type_code         VARCHAR2(30);
136683 l_adr_value_combination_id    NUMBER;
136684 l_adr_value_segment_code      VARCHAR2(30);
136685 
136686 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
136687 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
136688 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
136689 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
136690 
136691 -- 4262811 Variables ------------------------------------------------------------------------------------------
136692 l_entered_amt_idx             NUMBER;
136693 l_accted_amt_idx              NUMBER;
136694 l_acc_rev_flag                VARCHAR2(1);
136695 l_accrual_line_num            NUMBER;
136696 l_tmp_amt                     NUMBER;
136697 l_acc_rev_natural_side_code   VARCHAR2(1);
136698 
136699 l_num_entries                 NUMBER;
136700 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
136701 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
136702 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
136703 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
136704 l_recog_line_1                NUMBER;
136705 l_recog_line_2                NUMBER;
136706 
136707 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
136708 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
136709 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
136710 
136711 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
136712 
136713 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
136714 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
136715 
136716 ---------------------------------------------------------------------------------------------------------------
136717 
136718 
136719 --
136720 -- bulk performance
136721 --
136722 l_balance_type_code           VARCHAR2(1);
136723 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
136724 l_log_module                  VARCHAR2(240);
136725 
136726 --
136727 -- Upgrade strategy
136728 --
136729 l_actual_upg_option           VARCHAR2(1);
136730 l_enc_upg_option           VARCHAR2(1);
136731 
136732 --
136733 BEGIN
136734 --
136735 IF g_log_enabled THEN
136736       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_221';
136737 END IF;
136738 --
136739 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
136740 
136741       trace
136742          (p_msg      => 'BEGIN of AcctLineType_221'
136743          ,p_level    => C_LEVEL_PROCEDURE
136744          ,p_module   => l_log_module);
136745 
136746 END IF;
136747 --
136748 l_component_type             := 'AMB_JLT';
136749 l_component_code             := 'AP_TAX_RATE_VAR_DM';
136750 l_component_type_code        := 'S';
136751 l_component_appl_id          :=  200;
136752 l_amb_context_code           := 'DEFAULT';
136753 l_entity_code                := 'AP_INVOICES';
136754 l_event_class_code           := 'DEBIT MEMOS';
136755 l_event_type_code            := 'DEBIT MEMOS_ALL';
136756 l_line_definition_owner_code := 'S';
136757 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
136758 --
136759 l_balance_type_code          := 'A';
136760 l_segment                     := NULL;
136761 l_ccid                        := NULL;
136762 l_adr_transaction_coa_id      := NULL;
136763 l_adr_accounting_coa_id       := NULL;
136764 l_adr_flexfield_segment_code  := NULL;
136765 l_adr_flex_value_set_id       := NULL;
136766 l_adr_value_type_code         := NULL;
136767 l_adr_value_combination_id    := NULL;
136768 l_adr_value_segment_code      := NULL;
136769 
136770 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
136771 l_bflow_class_code           := '';    -- 4219869 Business Flow
136772 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
136773 l_budgetary_control_flag     := 'N';
136774 
136775 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
136776 l_bflow_applied_to_amt       := NULL; -- 5132302
136777 l_entered_amt_idx            := NULL;          -- 4262811
136778 l_accted_amt_idx             := NULL;          -- 4262811
136779 l_acc_rev_flag               := NULL;          -- 4262811
136780 l_accrual_line_num           := NULL;          -- 4262811
136781 l_tmp_amt                    := NULL;          -- 4262811
136782 --
136783  
136784 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
136785     l_balance_type_code <> 'B' THEN
136786 IF NVL(p_source_33,'
136787 ') =  'TRV' AND 
136788 NVL(p_source_96,'
136789 ') =  'Y'
136790  THEN 
136791 
136792    --
136793    XLA_AE_LINES_PKG.SetNewLine;
136794 
136795    p_balance_type_code          := l_balance_type_code;
136796    -- set the flag so later we will know whether the gain loss line needs to be created
136797    
136798    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
136799      p_actual_flag :='A';
136800    END IF;
136801 
136802    --
136803    -- bulk performance
136804    --
136808    -- set accounting line options
136805    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
136806                                       p_header_num   => 0); -- 4262811
136807    --
136809    --
136810    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
136811            p_natural_side_code          => 'D'
136812          , p_gain_or_loss_flag          => 'N'
136813          , p_gl_transfer_mode_code      => 'S'
136814          , p_acct_entry_type_code       => 'A'
136815          , p_switch_side_flag           => 'Y'
136816          , p_merge_duplicate_code       => 'A'
136817          );
136818    --
136819    l_acc_rev_natural_side_code := 'C';  -- 4262811
136820    -- 
136821    --
136822    -- set accounting line type info
136823    --
136824    xla_ae_lines_pkg.SetAcctLineType
136825       (p_component_type             => l_component_type
136826       ,p_event_type_code            => l_event_type_code
136827       ,p_line_definition_owner_code => l_line_definition_owner_code
136828       ,p_line_definition_code       => l_line_definition_code
136829       ,p_accounting_line_code       => l_component_code
136830       ,p_accounting_line_type_code  => l_component_type_code
136831       ,p_accounting_line_appl_id    => l_component_appl_id
136832       ,p_amb_context_code           => l_amb_context_code
136833       ,p_entity_code                => l_entity_code
136834       ,p_event_class_code           => l_event_class_code);
136835    --
136836    -- set accounting class
136837    --
136838    xla_ae_lines_pkg.SetAcctClass(
136839            p_accounting_class_code  => 'TRV'
136840          , p_ae_header_id           => l_ae_header_id
136841          );
136842 
136843    --
136844    -- set rounding class
136845    --
136846    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
136847                       'TRV';
136848 
136849    --
136850    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
136851    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
136852    --
136853    -- bulk performance
136854    --
136855    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
136856 
136857    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
136858       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
136859 
136860    -- 4955764
136861    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
136862       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
136863 
136864    -- 4458381 Public Sector Enh
136865    
136866    --
136867    -- set accounting attributes for the line type
136868    --
136869    l_entered_amt_idx := 23;
136870    l_accted_amt_idx  := 28;
136871    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
136872    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
136873    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
136874    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
136875    l_rec_acct_attrs.array_num_value(2)  := 
136876 xla_ae_sources_pkg.GetSystemSourceNum(
136877    p_source_code           => 'XLA_EVENT_APPL_ID'
136878  , p_source_type_code      => 'Y'
136879  , p_source_application_id =>  602
136880 );
136881    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
136882    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
136883    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
136884    l_rec_acct_attrs.array_char_value(4)  := 
136885 xla_ae_sources_pkg.GetSystemSourceChar(
136886    p_source_code           => 'XLA_ENTITY_CODE'
136887  , p_source_type_code      => 'Y'
136888  , p_source_application_id =>  602
136889 );
136890    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
136891    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
136892    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
136893    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
136894    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
136895    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
136896    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
136897    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
136898    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
136899    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
136900    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
136901    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
136902    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
136903    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
136904    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
136905    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
136906    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
136907    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
136908    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
136909    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
136910    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
136911    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
136912    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
136916    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
136913    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
136914    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
136915    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
136917    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
136918    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
136919    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
136920    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
136921    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
136922    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
136923    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
136924    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
136925    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
136926    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
136927    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
136928    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
136929    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
136930    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
136931    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
136932    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
136933    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
136934    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
136935    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
136936    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
136937    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
136938    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
136939    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
136940    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
136941    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
136942    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
136943    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
136944    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
136945    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
136946    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
136947    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
136948    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
136949    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
136950    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
136951    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
136952    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
136953    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
136954    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
136955    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
136956    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
136957    l_rec_acct_attrs.array_num_value(38)  := p_source_86;
136958    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
136959    l_rec_acct_attrs.array_num_value(39)  := p_source_87;
136960    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
136961    l_rec_acct_attrs.array_num_value(40)  := p_source_88;
136962    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
136963    l_rec_acct_attrs.array_num_value(41)  := p_source_89;
136964    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
136965    l_rec_acct_attrs.array_num_value(42)  := p_source_90;
136966 
136967    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
136968    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
136969 
136970    ---------------------------------------------------------------------------------------------------------------
136971    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
136972    ---------------------------------------------------------------------------------------------------------------
136973    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
136974 
136975    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
136976    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
136977 
136978    IF xla_accounting_cache_pkg.GetValueChar
136979          (p_source_code         => 'LEDGER_CATEGORY_CODE'
136980          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
136981    AND l_bflow_method_code = 'PRIOR_ENTRY'
136982 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
136983    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
136984          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
136985        )
136986    THEN
136987          xla_ae_lines_pkg.BflowUpgEntry
136988            (p_business_method_code    => l_bflow_method_code
136989            ,p_business_class_code     => l_bflow_class_code
136990            ,p_balance_type            => l_balance_type_code);
136991    ELSE
136992       NULL;
136993 -- No business flow processing for business flow method of NONE.
136994    END IF;
136995 
136996    --
136997    -- call analytical criteria
136998    --
136999    
137000    --
137001    -- call description
137002    --
137003    
137004 xla_ae_lines_pkg.SetLineDescription(
137005    p_ae_header_id => l_ae_header_id
137006   ,p_description  => Description_1 (
137010    )
137007      p_application_id         => p_application_id
137008    , p_ae_header_id           => l_ae_header_id 
137009 , p_source_1 => p_source_1
137011 );
137012 
137013 
137014    --
137015    -- call ADRs
137016    -- Bug 4922099
137017    --
137018    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
137019         (NVL(l_actual_upg_option, 'N') = 'O') OR
137020         (NVL(l_enc_upg_option, 'N') = 'O')
137021       )
137022    THEN
137023    NULL;
137024    --
137025    --
137026    
137027   l_ccid := AcctDerRule_33(
137028            p_application_id           => p_application_id
137029          , p_ae_header_id             => l_ae_header_id 
137030 , p_source_30 => p_source_30
137031          , x_transaction_coa_id       => l_adr_transaction_coa_id
137032          , x_accounting_coa_id        => l_adr_accounting_coa_id
137033          , x_value_type_code          => l_adr_value_type_code
137034          , p_side                     => 'NA'
137035    );
137036 
137037    xla_ae_lines_pkg.set_ccid(
137038     p_code_combination_id          => l_ccid
137039   , p_value_type_code              => l_adr_value_type_code
137040   , p_transaction_coa_id           => l_adr_transaction_coa_id
137041   , p_accounting_coa_id            => l_adr_accounting_coa_id
137042   , p_adr_code                     => 'AP_INVOICE_DIST'
137043   , p_adr_type_code                => 'S'
137044   , p_component_type               => l_component_type
137045   , p_component_code               => l_component_code
137046   , p_component_type_code          => l_component_type_code
137047   , p_component_appl_id            => l_component_appl_id
137048   , p_amb_context_code             => l_amb_context_code
137049   , p_side                         => 'NA'
137050   );
137051 
137052 
137053    --
137054    --
137055    END IF;
137056    --
137057    -- Bug 4922099
137058    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
137059           (NVL(l_enc_upg_option, 'N') = 'O')
137060         ) AND
137061         (l_bflow_method_code = 'PRIOR_ENTRY')
137062       )
137063    THEN
137064       IF
137065       --
137066       1 = 2
137067       --
137068       THEN
137069       xla_accounting_err_pkg.build_message
137070                                     (p_appli_s_name            => 'XLA'
137071                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
137072                                     ,p_token_1                 => 'LINE_NUMBER'
137073                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
137074                                     ,p_token_2                 => 'LINE_TYPE_NAME'
137075                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
137076                                                                              l_component_type
137077                                                                             ,l_component_code
137078                                                                             ,l_component_type_code
137079                                                                             ,l_component_appl_id
137080                                                                             ,l_amb_context_code
137081                                                                             ,l_entity_code
137082                                                                             ,l_event_class_code
137083                                                                            )
137084                                     ,p_token_3                 => 'OWNER'
137085                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
137086                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
137087                                                                           ,p_lookup_code    => l_component_type_code
137088                                                                          )
137089                                     ,p_token_4                 => 'PRODUCT_NAME'
137090                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
137091                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
137092                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
137093                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
137094                                     ,p_ae_header_id            =>  NULL
137095                                        );
137096 
137097         IF (C_LEVEL_ERROR>= g_log_level) THEN
137098                  trace
137099                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
137100                       ,p_level    => C_LEVEL_ERROR
137101                       ,p_module   => l_log_module);
137102         END IF;
137103       END IF;
137104    END IF;
137105    --
137106    --
137107    ------------------------------------------------------------------------------------------------
137108    -- 4219869 Business Flow
137109    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
137110    -- Prior Entry.  Currently, the following code is always generated.
137111    ------------------------------------------------------------------------------------------------
137112    XLA_AE_LINES_PKG.ValidateCurrentLine;
137113 
137114    ------------------------------------------------------------------------------------
137115    -- 4219869 Business Flow
137119 
137116    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
137117    ------------------------------------------------------------------------------------
137118    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
137120    ----------------------------------------------------------------------------------
137121    -- 4219869 Business Flow
137122    -- Update journal entry status -- Need to generate this within IF <condition>
137123    ----------------------------------------------------------------------------------
137124    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
137125          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
137126          ,p_balance_type_code => l_balance_type_code
137127          );
137128 
137129    -------------------------------------------------------------------------------------------
137130    -- 4262811 - Generate the Accrual Reversal lines
137131    -------------------------------------------------------------------------------------------
137132    BEGIN
137133       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
137134                               (g_array_event(p_event_id).array_value_num('header_index'));
137135       IF l_acc_rev_flag IS NULL THEN
137136          l_acc_rev_flag := 'N';
137137       END IF;
137138    EXCEPTION
137139       WHEN OTHERS THEN
137140          l_acc_rev_flag := 'N';
137141    END;
137142    --
137143    IF (l_acc_rev_flag = 'Y') THEN
137144 
137145        -- 4645092  ------------------------------------------------------------------------------
137146        -- To allow MPA report to determine if it should generate report process
137147        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
137148        ------------------------------------------------------------------------------------------
137149 
137150        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
137151        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
137152    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
137153    -- call ADRs
137154    -- Bug 4922099
137155    --
137156    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
137157         (NVL(l_actual_upg_option, 'N') = 'O') OR
137158         (NVL(l_enc_upg_option, 'N') = 'O')
137159       )
137160    THEN
137161    NULL;
137162    --
137163    --
137164    
137165   l_ccid := AcctDerRule_33(
137166            p_application_id           => p_application_id
137167          , p_ae_header_id             => l_ae_header_id 
137168 , p_source_30 => p_source_30
137169          , x_transaction_coa_id       => l_adr_transaction_coa_id
137170          , x_accounting_coa_id        => l_adr_accounting_coa_id
137171          , x_value_type_code          => l_adr_value_type_code
137172          , p_side                     => 'NA'
137173    );
137174 
137175    xla_ae_lines_pkg.set_ccid(
137176     p_code_combination_id          => l_ccid
137177   , p_value_type_code              => l_adr_value_type_code
137178   , p_transaction_coa_id           => l_adr_transaction_coa_id
137179   , p_accounting_coa_id            => l_adr_accounting_coa_id
137180   , p_adr_code                     => 'AP_INVOICE_DIST'
137181   , p_adr_type_code                => 'S'
137182   , p_component_type               => l_component_type
137183   , p_component_code               => l_component_code
137184   , p_component_type_code          => l_component_type_code
137185   , p_component_appl_id            => l_component_appl_id
137186   , p_amb_context_code             => l_amb_context_code
137187   , p_side                         => 'NA'
137188   );
137189 
137190 
137191    --
137192    --
137193    END IF;
137194 
137195        --
137196        -- Update the line information that should be overwritten
137197        --
137198        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
137199                                          p_header_num   => 1);
137200        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
137201 
137202        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
137203 
137204        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
137205           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
137206        END IF;
137207 
137208       --
137209       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
137210       --
137211       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
137212           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
137213       ELSE
137214           ---------------------------------------------------------------------------------------------------
137215           -- 4262811a Switch Sign
137216           ---------------------------------------------------------------------------------------------------
137217           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
137218           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
137219                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
137220           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
137221                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
137222           -- 5132302
137223           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
137227 
137224                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
137225 
137226       END IF;
137228       -- 4955764
137229       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
137230       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
137231 
137232 
137233       XLA_AE_LINES_PKG.ValidateCurrentLine;
137234       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
137235 
137236       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
137237                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
137238                ,p_balance_type_code => l_balance_type_code);
137239 
137240    END IF;
137241 
137242    -----------------------------------------------------------------------------------------
137243    -- 4262811 Multiperiod Accounting
137244    -----------------------------------------------------------------------------------------
137245      -- No MPA option is assigned.
137246 
137247 
137248 END IF;
137249 END IF;
137250 --
137251 
137252 --
137253 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
137254    trace
137255       (p_msg      => 'END of AcctLineType_221'
137256       ,p_level    => C_LEVEL_PROCEDURE
137257       ,p_module   => l_log_module);
137258 END IF;
137259 --
137260 EXCEPTION
137261   WHEN xla_exceptions_pkg.application_exception THEN
137262       RAISE;
137263   WHEN OTHERS THEN
137264        xla_exceptions_pkg.raise_message
137265            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_221');
137266 END AcctLineType_221;
137267 --
137268 
137269 ---------------------------------------
137270 --
137271 -- PRIVATE FUNCTION
137272 --         AcctLineType_222
137273 --
137274 ---------------------------------------
137275 PROCEDURE AcctLineType_222 (
137276   p_application_id        IN NUMBER
137277  ,p_event_id              IN NUMBER
137278  ,p_calculate_acctd_flag  IN VARCHAR2
137279  ,p_calculate_g_l_flag    IN VARCHAR2
137280  ,p_actual_flag           IN OUT VARCHAR2
137281  ,p_balance_type_code     OUT VARCHAR2
137282  ,p_gain_or_loss_ref      OUT VARCHAR2
137283  
137284 --Invoice Distribution Description
137285  , p_source_1            IN VARCHAR2
137286 --Invoice Distribution Ledger Amount
137287  , p_source_21            IN NUMBER
137288 --Invoice Distribution Account
137289  , p_source_30            IN NUMBER
137290 --Invoice Distribution Type
137291  , p_source_33            IN VARCHAR2
137292  , p_source_33_meaning    IN VARCHAR2
137293 --Accounting Reversal Indicator
137294  , p_source_53            IN VARCHAR2
137295 --Distribution Link Type
137296  , p_source_55            IN VARCHAR2
137297 --Allocation to Main Distribution Identifier
137298  , p_source_57            IN NUMBER
137299 --Invoice Identifier
137300  , p_source_58            IN NUMBER
137301 --Invoice Distribution Identifier
137302  , p_source_64            IN NUMBER
137303 --Payables Encumbrance Upgrade Credit Account
137304  , p_source_65            IN NUMBER
137305 --Payables Encumbrance Upgrade Credit Amount
137306  , p_source_66            IN NUMBER
137307 --Invoice Currency Code
137308  , p_source_67            IN VARCHAR2
137309 --Payables Encumbrance Upgrade Credit Base Amount
137310  , p_source_68            IN NUMBER
137311 --Payables Encumbrance Upgrade Debit Account
137312  , p_source_69            IN NUMBER
137313 --Payables Encumbrance Upgrade Debit Amount
137314  , p_source_70            IN NUMBER
137315 --Payables Encumbrance Upgrade Debit Base Amount
137316  , p_source_71            IN NUMBER
137317 --Payables Encumbrance Upgrade Option
137318  , p_source_72            IN VARCHAR2
137319 --Invoice Distribution Amount
137320  , p_source_73            IN NUMBER
137321 --Deferred Accounting End Date
137322  , p_source_77            IN DATE
137323 --Deferred Accounting Option
137324  , p_source_78            IN VARCHAR2
137325 --Deferred Accounting Start Date
137326  , p_source_79            IN DATE
137327 --Override Accounted Amount Indicator
137328  , p_source_80            IN VARCHAR2
137329  , p_source_80_meaning    IN VARCHAR2
137330 --Invoice Supplier Identifier
137331  , p_source_81            IN NUMBER
137332 --Invoice Supplier Site Identifier
137333  , p_source_82            IN NUMBER
137334 --Third Party Type
137335  , p_source_83            IN VARCHAR2
137336 --Parent Reversal Identifier
137337  , p_source_84            IN NUMBER
137338 --Invoice Distribution Statistical Amount
137339  , p_source_85            IN NUMBER
137340 --Invoice Distribution Tax Line Identifier
137341  , p_source_86            IN NUMBER
137342 --Invoice Distribution Tax Distribution Identifier from Tax
137343  , p_source_87            IN NUMBER
137344 --Invoice Distribution Summary Tax Line Identifier
137345  , p_source_88            IN NUMBER
137346 --Payables Upgrade Credit Encumbrance Type Identifier
137347  , p_source_89            IN NUMBER
137348 --Payables Upgrade Debit Encumbrance Type Identifier
137349  , p_source_90            IN NUMBER
137350 --Business Flow Accounts Payable Application Identifier
137351  , p_source_91            IN NUMBER
137352 --Business Flow Invoice Distribution Type
137353  , p_source_92            IN VARCHAR2
137354 --Business Flow Invoice Entity Code
137355  , p_source_93            IN VARCHAR2
137356 --Business Flow Invoice Distribution Identifier
137357  , p_source_94            IN NUMBER
137361  , p_source_96            IN VARCHAR2
137358 --Business Flow Invoice Identifier
137359  , p_source_95            IN NUMBER
137360 --Accrue on Receipt Option
137362  , p_source_96_meaning    IN VARCHAR2
137363 --Invoice Exchange Date
137364  , p_source_143            IN DATE
137365 --Invoice Exchange Rate
137366  , p_source_144            IN NUMBER
137367 --Invoice Exchange Rate Type
137368  , p_source_145            IN VARCHAR2
137369 )
137370 IS
137371 
137372 l_component_type              VARCHAR2(80);
137373 l_component_code              VARCHAR2(30);
137374 l_component_type_code         VARCHAR2(1);
137375 l_component_appl_id           INTEGER;
137376 l_amb_context_code            VARCHAR2(30);
137377 l_entity_code                 VARCHAR2(30);
137378 l_event_class_code            VARCHAR2(30);
137379 l_ae_header_id                NUMBER;
137380 l_event_type_code             VARCHAR2(30);
137381 l_line_definition_code        VARCHAR2(30);
137382 l_line_definition_owner_code  VARCHAR2(1);
137383 --
137384 -- adr variables
137385 l_segment                     VARCHAR2(30);
137386 l_ccid                        NUMBER;
137387 l_adr_transaction_coa_id      NUMBER;
137388 l_adr_accounting_coa_id       NUMBER;
137389 l_adr_flexfield_segment_code  VARCHAR2(30);
137390 l_adr_flex_value_set_id       NUMBER;
137391 l_adr_value_type_code         VARCHAR2(30);
137392 l_adr_value_combination_id    NUMBER;
137393 l_adr_value_segment_code      VARCHAR2(30);
137394 
137395 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
137396 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
137397 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
137398 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
137399 
137400 -- 4262811 Variables ------------------------------------------------------------------------------------------
137401 l_entered_amt_idx             NUMBER;
137402 l_accted_amt_idx              NUMBER;
137403 l_acc_rev_flag                VARCHAR2(1);
137404 l_accrual_line_num            NUMBER;
137405 l_tmp_amt                     NUMBER;
137406 l_acc_rev_natural_side_code   VARCHAR2(1);
137407 
137408 l_num_entries                 NUMBER;
137409 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
137410 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
137411 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
137412 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
137413 l_recog_line_1                NUMBER;
137414 l_recog_line_2                NUMBER;
137415 
137416 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
137417 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
137418 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
137419 
137420 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
137421 
137422 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
137423 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
137424 
137425 ---------------------------------------------------------------------------------------------------------------
137426 
137427 
137428 --
137429 -- bulk performance
137430 --
137431 l_balance_type_code           VARCHAR2(1);
137432 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
137433 l_log_module                  VARCHAR2(240);
137434 
137435 --
137436 -- Upgrade strategy
137437 --
137438 l_actual_upg_option           VARCHAR2(1);
137439 l_enc_upg_option           VARCHAR2(1);
137440 
137441 --
137442 BEGIN
137443 --
137444 IF g_log_enabled THEN
137445       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_222';
137446 END IF;
137447 --
137448 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
137449 
137450       trace
137451          (p_msg      => 'BEGIN of AcctLineType_222'
137452          ,p_level    => C_LEVEL_PROCEDURE
137453          ,p_module   => l_log_module);
137454 
137455 END IF;
137456 --
137457 l_component_type             := 'AMB_JLT';
137458 l_component_code             := 'AP_TAX_RATE_VAR_INV';
137459 l_component_type_code        := 'S';
137460 l_component_appl_id          :=  200;
137461 l_amb_context_code           := 'DEFAULT';
137462 l_entity_code                := 'AP_INVOICES';
137463 l_event_class_code           := 'INVOICES';
137464 l_event_type_code            := 'INVOICES_ALL';
137465 l_line_definition_owner_code := 'S';
137466 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
137467 --
137468 l_balance_type_code          := 'A';
137469 l_segment                     := NULL;
137470 l_ccid                        := NULL;
137471 l_adr_transaction_coa_id      := NULL;
137472 l_adr_accounting_coa_id       := NULL;
137473 l_adr_flexfield_segment_code  := NULL;
137474 l_adr_flex_value_set_id       := NULL;
137475 l_adr_value_type_code         := NULL;
137476 l_adr_value_combination_id    := NULL;
137477 l_adr_value_segment_code      := NULL;
137478 
137479 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
137480 l_bflow_class_code           := '';    -- 4219869 Business Flow
137481 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
137482 l_budgetary_control_flag     := 'N';
137483 
137484 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
137485 l_bflow_applied_to_amt       := NULL; -- 5132302
137486 l_entered_amt_idx            := NULL;          -- 4262811
137487 l_accted_amt_idx             := NULL;          -- 4262811
137488 l_acc_rev_flag               := NULL;          -- 4262811
137492  
137489 l_accrual_line_num           := NULL;          -- 4262811
137490 l_tmp_amt                    := NULL;          -- 4262811
137491 --
137493 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
137494     l_balance_type_code <> 'B' THEN
137495 IF NVL(p_source_33,'
137496 ') =  'TRV' AND 
137497 NVL(p_source_96,'
137498 ') =  'Y'
137499  THEN 
137500 
137501    --
137502    XLA_AE_LINES_PKG.SetNewLine;
137503 
137504    p_balance_type_code          := l_balance_type_code;
137505    -- set the flag so later we will know whether the gain loss line needs to be created
137506    
137507    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
137508      p_actual_flag :='A';
137509    END IF;
137510 
137511    --
137512    -- bulk performance
137513    --
137514    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
137515                                       p_header_num   => 0); -- 4262811
137516    --
137517    -- set accounting line options
137518    --
137519    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
137520            p_natural_side_code          => 'D'
137521          , p_gain_or_loss_flag          => 'N'
137522          , p_gl_transfer_mode_code      => 'S'
137523          , p_acct_entry_type_code       => 'A'
137524          , p_switch_side_flag           => 'Y'
137525          , p_merge_duplicate_code       => 'A'
137526          );
137527    --
137528    l_acc_rev_natural_side_code := 'C';  -- 4262811
137529    -- 
137530    --
137531    -- set accounting line type info
137532    --
137533    xla_ae_lines_pkg.SetAcctLineType
137534       (p_component_type             => l_component_type
137535       ,p_event_type_code            => l_event_type_code
137536       ,p_line_definition_owner_code => l_line_definition_owner_code
137537       ,p_line_definition_code       => l_line_definition_code
137538       ,p_accounting_line_code       => l_component_code
137539       ,p_accounting_line_type_code  => l_component_type_code
137540       ,p_accounting_line_appl_id    => l_component_appl_id
137541       ,p_amb_context_code           => l_amb_context_code
137542       ,p_entity_code                => l_entity_code
137543       ,p_event_class_code           => l_event_class_code);
137544    --
137545    -- set accounting class
137546    --
137547    xla_ae_lines_pkg.SetAcctClass(
137548            p_accounting_class_code  => 'TRV'
137549          , p_ae_header_id           => l_ae_header_id
137550          );
137551 
137552    --
137553    -- set rounding class
137554    --
137555    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
137556                       'TRV';
137557 
137558    --
137559    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
137560    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
137561    --
137562    -- bulk performance
137563    --
137564    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
137565 
137566    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
137567       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
137568 
137569    -- 4955764
137570    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
137571       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
137572 
137573    -- 4458381 Public Sector Enh
137574    
137575    --
137576    -- set accounting attributes for the line type
137577    --
137578    l_entered_amt_idx := 24;
137579    l_accted_amt_idx  := 29;
137580    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
137581    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
137582    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
137583    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
137584    l_rec_acct_attrs.array_num_value(2)  := 
137585 xla_ae_sources_pkg.GetSystemSourceNum(
137586    p_source_code           => 'XLA_EVENT_APPL_ID'
137587  , p_source_type_code      => 'Y'
137588  , p_source_application_id =>  602
137589 );
137590    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
137591    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
137592    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
137593    l_rec_acct_attrs.array_char_value(4)  := 
137594 xla_ae_sources_pkg.GetSystemSourceChar(
137595    p_source_code           => 'XLA_ENTITY_CODE'
137596  , p_source_type_code      => 'Y'
137597  , p_source_application_id =>  602
137598 );
137599    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
137600    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
137601    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
137602    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
137603    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
137604    l_rec_acct_attrs.array_num_value(7)  := p_source_73;
137605    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
137606    l_rec_acct_attrs.array_num_value(8)  := p_source_91;
137607    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
137608    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
137609    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
137613    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
137610    l_rec_acct_attrs.array_char_value(10)  := p_source_93;
137611    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
137612    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
137614    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_95);
137615    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
137616    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_64);
137617    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
137618    l_rec_acct_attrs.array_char_value(14)  := p_source_55;
137619    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
137620    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
137621    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
137622    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
137623    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
137624    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
137625    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
137626    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
137627    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
137628    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
137629    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
137630    l_rec_acct_attrs.array_num_value(20)  := p_source_70;
137631    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
137632    l_rec_acct_attrs.array_char_value(21)  := p_source_67;
137633    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
137634    l_rec_acct_attrs.array_num_value(22)  := p_source_71;
137635    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
137636    l_rec_acct_attrs.array_char_value(23)  := p_source_72;
137637    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
137638    l_rec_acct_attrs.array_num_value(24)  := p_source_73;
137639    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
137640    l_rec_acct_attrs.array_char_value(25)  := p_source_67;
137641    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
137642    l_rec_acct_attrs.array_date_value(26)  := p_source_143;
137643    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
137644    l_rec_acct_attrs.array_num_value(27)  := p_source_144;
137645    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
137646    l_rec_acct_attrs.array_char_value(28)  := p_source_145;
137647    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
137648    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
137649    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
137650    l_rec_acct_attrs.array_date_value(30)  := p_source_77;
137651    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
137652    l_rec_acct_attrs.array_char_value(31)  := p_source_78;
137653    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
137654    l_rec_acct_attrs.array_date_value(32)  := p_source_79;
137655    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
137656    l_rec_acct_attrs.array_char_value(33)  := p_source_80;
137657    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
137658    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
137659    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
137660    l_rec_acct_attrs.array_num_value(35)  := p_source_82;
137661    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
137662    l_rec_acct_attrs.array_char_value(36)  := p_source_83;
137663    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
137664    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_84);
137665    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
137666    l_rec_acct_attrs.array_char_value(38)  := p_source_55;
137667    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
137668    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
137669    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
137670    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
137671    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
137672    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
137673    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
137674    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
137675    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
137676    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
137677    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
137678    l_rec_acct_attrs.array_num_value(44)  := p_source_90;
137679 
137680    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
137681    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
137682 
137683    ---------------------------------------------------------------------------------------------------------------
137684    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
137685    ---------------------------------------------------------------------------------------------------------------
137686    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
137687 
137688    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
137689    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
137690 
137691    IF xla_accounting_cache_pkg.GetValueChar
137695 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
137692          (p_source_code         => 'LEDGER_CATEGORY_CODE'
137693          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
137694    AND l_bflow_method_code = 'PRIOR_ENTRY'
137696    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
137697          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
137698        )
137699    THEN
137700          xla_ae_lines_pkg.BflowUpgEntry
137701            (p_business_method_code    => l_bflow_method_code
137702            ,p_business_class_code     => l_bflow_class_code
137703            ,p_balance_type            => l_balance_type_code);
137704    ELSE
137705       NULL;
137706 -- No business flow processing for business flow method of NONE.
137707    END IF;
137708 
137709    --
137710    -- call analytical criteria
137711    --
137712    
137713    --
137714    -- call description
137715    --
137716    
137717 xla_ae_lines_pkg.SetLineDescription(
137718    p_ae_header_id => l_ae_header_id
137719   ,p_description  => Description_1 (
137720      p_application_id         => p_application_id
137721    , p_ae_header_id           => l_ae_header_id 
137722 , p_source_1 => p_source_1
137723    )
137724 );
137725 
137726 
137727    --
137728    -- call ADRs
137729    -- Bug 4922099
137730    --
137731    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
137732         (NVL(l_actual_upg_option, 'N') = 'O') OR
137733         (NVL(l_enc_upg_option, 'N') = 'O')
137734       )
137735    THEN
137736    NULL;
137737    --
137738    --
137739    
137740   l_ccid := AcctDerRule_33(
137741            p_application_id           => p_application_id
137742          , p_ae_header_id             => l_ae_header_id 
137743 , p_source_30 => p_source_30
137744          , x_transaction_coa_id       => l_adr_transaction_coa_id
137745          , x_accounting_coa_id        => l_adr_accounting_coa_id
137746          , x_value_type_code          => l_adr_value_type_code
137747          , p_side                     => 'NA'
137748    );
137749 
137750    xla_ae_lines_pkg.set_ccid(
137751     p_code_combination_id          => l_ccid
137752   , p_value_type_code              => l_adr_value_type_code
137753   , p_transaction_coa_id           => l_adr_transaction_coa_id
137754   , p_accounting_coa_id            => l_adr_accounting_coa_id
137755   , p_adr_code                     => 'AP_INVOICE_DIST'
137756   , p_adr_type_code                => 'S'
137757   , p_component_type               => l_component_type
137758   , p_component_code               => l_component_code
137759   , p_component_type_code          => l_component_type_code
137760   , p_component_appl_id            => l_component_appl_id
137761   , p_amb_context_code             => l_amb_context_code
137762   , p_side                         => 'NA'
137763   );
137764 
137765 
137766    --
137767    --
137768    END IF;
137769    --
137770    -- Bug 4922099
137771    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
137772           (NVL(l_enc_upg_option, 'N') = 'O')
137773         ) AND
137774         (l_bflow_method_code = 'PRIOR_ENTRY')
137775       )
137776    THEN
137777       IF
137778       --
137779       1 = 2
137780       --
137781       THEN
137782       xla_accounting_err_pkg.build_message
137783                                     (p_appli_s_name            => 'XLA'
137784                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
137785                                     ,p_token_1                 => 'LINE_NUMBER'
137786                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
137787                                     ,p_token_2                 => 'LINE_TYPE_NAME'
137788                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
137789                                                                              l_component_type
137790                                                                             ,l_component_code
137791                                                                             ,l_component_type_code
137792                                                                             ,l_component_appl_id
137793                                                                             ,l_amb_context_code
137794                                                                             ,l_entity_code
137795                                                                             ,l_event_class_code
137796                                                                            )
137797                                     ,p_token_3                 => 'OWNER'
137798                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
137799                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
137800                                                                           ,p_lookup_code    => l_component_type_code
137801                                                                          )
137802                                     ,p_token_4                 => 'PRODUCT_NAME'
137803                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
137804                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
137805                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
137809 
137806                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
137807                                     ,p_ae_header_id            =>  NULL
137808                                        );
137810         IF (C_LEVEL_ERROR>= g_log_level) THEN
137811                  trace
137812                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
137813                       ,p_level    => C_LEVEL_ERROR
137814                       ,p_module   => l_log_module);
137815         END IF;
137816       END IF;
137817    END IF;
137818    --
137819    --
137820    ------------------------------------------------------------------------------------------------
137821    -- 4219869 Business Flow
137822    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
137823    -- Prior Entry.  Currently, the following code is always generated.
137824    ------------------------------------------------------------------------------------------------
137825    XLA_AE_LINES_PKG.ValidateCurrentLine;
137826 
137827    ------------------------------------------------------------------------------------
137828    -- 4219869 Business Flow
137829    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
137830    ------------------------------------------------------------------------------------
137831    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
137832 
137833    ----------------------------------------------------------------------------------
137834    -- 4219869 Business Flow
137835    -- Update journal entry status -- Need to generate this within IF <condition>
137836    ----------------------------------------------------------------------------------
137837    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
137838          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
137839          ,p_balance_type_code => l_balance_type_code
137840          );
137841 
137842    -------------------------------------------------------------------------------------------
137843    -- 4262811 - Generate the Accrual Reversal lines
137844    -------------------------------------------------------------------------------------------
137845    BEGIN
137846       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
137847                               (g_array_event(p_event_id).array_value_num('header_index'));
137848       IF l_acc_rev_flag IS NULL THEN
137849          l_acc_rev_flag := 'N';
137850       END IF;
137851    EXCEPTION
137852       WHEN OTHERS THEN
137853          l_acc_rev_flag := 'N';
137854    END;
137855    --
137856    IF (l_acc_rev_flag = 'Y') THEN
137857 
137858        -- 4645092  ------------------------------------------------------------------------------
137859        -- To allow MPA report to determine if it should generate report process
137860        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
137861        ------------------------------------------------------------------------------------------
137862 
137863        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
137864        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
137865    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
137866    -- call ADRs
137867    -- Bug 4922099
137868    --
137869    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
137870         (NVL(l_actual_upg_option, 'N') = 'O') OR
137871         (NVL(l_enc_upg_option, 'N') = 'O')
137872       )
137873    THEN
137874    NULL;
137875    --
137876    --
137877    
137878   l_ccid := AcctDerRule_33(
137879            p_application_id           => p_application_id
137880          , p_ae_header_id             => l_ae_header_id 
137881 , p_source_30 => p_source_30
137882          , x_transaction_coa_id       => l_adr_transaction_coa_id
137883          , x_accounting_coa_id        => l_adr_accounting_coa_id
137884          , x_value_type_code          => l_adr_value_type_code
137885          , p_side                     => 'NA'
137886    );
137887 
137888    xla_ae_lines_pkg.set_ccid(
137889     p_code_combination_id          => l_ccid
137890   , p_value_type_code              => l_adr_value_type_code
137891   , p_transaction_coa_id           => l_adr_transaction_coa_id
137892   , p_accounting_coa_id            => l_adr_accounting_coa_id
137893   , p_adr_code                     => 'AP_INVOICE_DIST'
137894   , p_adr_type_code                => 'S'
137895   , p_component_type               => l_component_type
137896   , p_component_code               => l_component_code
137897   , p_component_type_code          => l_component_type_code
137898   , p_component_appl_id            => l_component_appl_id
137899   , p_amb_context_code             => l_amb_context_code
137900   , p_side                         => 'NA'
137901   );
137902 
137903 
137904    --
137905    --
137906    END IF;
137907 
137908        --
137909        -- Update the line information that should be overwritten
137910        --
137911        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
137912                                          p_header_num   => 1);
137913        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
137914 
137915        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
137916 
137917        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
137918           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
137919        END IF;
137920 
137924       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
137921       --
137922       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
137923       --
137925           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
137926       ELSE
137927           ---------------------------------------------------------------------------------------------------
137928           -- 4262811a Switch Sign
137929           ---------------------------------------------------------------------------------------------------
137930           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
137931           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
137932                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
137933           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
137934                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
137935           -- 5132302
137936           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
137937                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
137938 
137939       END IF;
137940 
137941       -- 4955764
137942       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
137943       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
137944 
137945 
137946       XLA_AE_LINES_PKG.ValidateCurrentLine;
137947       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
137948 
137949       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
137950                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
137951                ,p_balance_type_code => l_balance_type_code);
137952 
137953    END IF;
137954 
137955    -----------------------------------------------------------------------------------------
137956    -- 4262811 Multiperiod Accounting
137957    -----------------------------------------------------------------------------------------
137958      -- No MPA option is assigned.
137959 
137960 
137961 END IF;
137962 END IF;
137963 --
137964 
137965 --
137966 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
137967    trace
137968       (p_msg      => 'END of AcctLineType_222'
137969       ,p_level    => C_LEVEL_PROCEDURE
137970       ,p_module   => l_log_module);
137971 END IF;
137972 --
137973 EXCEPTION
137974   WHEN xla_exceptions_pkg.application_exception THEN
137975       RAISE;
137976   WHEN OTHERS THEN
137977        xla_exceptions_pkg.raise_message
137978            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_222');
137979 END AcctLineType_222;
137980 --
137981 
137982 ---------------------------------------
137983 --
137984 -- PRIVATE FUNCTION
137985 --         AcctLineType_223
137986 --
137987 ---------------------------------------
137988 PROCEDURE AcctLineType_223 (
137989   p_application_id        IN NUMBER
137990  ,p_event_id              IN NUMBER
137991  ,p_calculate_acctd_flag  IN VARCHAR2
137992  ,p_calculate_g_l_flag    IN VARCHAR2
137993  ,p_actual_flag           IN OUT VARCHAR2
137994  ,p_balance_type_code     OUT VARCHAR2
137995  ,p_gain_or_loss_ref      OUT VARCHAR2
137996  
137997 --Invoice Distribution Description
137998  , p_source_1            IN VARCHAR2
137999 --Invoice Distribution Ledger Amount
138000  , p_source_21            IN NUMBER
138001 --Invoice Distribution Account
138002  , p_source_30            IN NUMBER
138003 --Invoice Distribution Type
138004  , p_source_33            IN VARCHAR2
138005  , p_source_33_meaning    IN VARCHAR2
138006 --Accounting Reversal Indicator
138007  , p_source_53            IN VARCHAR2
138008 --Distribution Link Type
138009  , p_source_55            IN VARCHAR2
138010 --Allocation to Main Distribution Identifier
138011  , p_source_57            IN NUMBER
138012 --Invoice Identifier
138013  , p_source_58            IN NUMBER
138014 --Invoice Distribution Identifier
138015  , p_source_64            IN NUMBER
138016 --Payables Encumbrance Upgrade Credit Account
138017  , p_source_65            IN NUMBER
138018 --Payables Encumbrance Upgrade Credit Amount
138019  , p_source_66            IN NUMBER
138020 --Invoice Currency Code
138021  , p_source_67            IN VARCHAR2
138022 --Payables Encumbrance Upgrade Credit Base Amount
138023  , p_source_68            IN NUMBER
138024 --Payables Encumbrance Upgrade Debit Account
138025  , p_source_69            IN NUMBER
138026 --Payables Encumbrance Upgrade Debit Amount
138027  , p_source_70            IN NUMBER
138028 --Payables Encumbrance Upgrade Debit Base Amount
138029  , p_source_71            IN NUMBER
138030 --Payables Encumbrance Upgrade Option
138031  , p_source_72            IN VARCHAR2
138032 --Invoice Distribution Amount
138033  , p_source_73            IN NUMBER
138034 --Deferred Accounting End Date
138035  , p_source_77            IN DATE
138036 --Deferred Accounting Option
138037  , p_source_78            IN VARCHAR2
138038 --Deferred Accounting Start Date
138039  , p_source_79            IN DATE
138040 --Override Accounted Amount Indicator
138041  , p_source_80            IN VARCHAR2
138042  , p_source_80_meaning    IN VARCHAR2
138043 --Invoice Supplier Identifier
138044  , p_source_81            IN NUMBER
138045 --Invoice Supplier Site Identifier
138046  , p_source_82            IN NUMBER
138050  , p_source_84            IN NUMBER
138047 --Third Party Type
138048  , p_source_83            IN VARCHAR2
138049 --Parent Reversal Identifier
138051 --Invoice Distribution Statistical Amount
138052  , p_source_85            IN NUMBER
138053 --Invoice Distribution Tax Line Identifier
138054  , p_source_86            IN NUMBER
138055 --Invoice Distribution Tax Distribution Identifier from Tax
138056  , p_source_87            IN NUMBER
138057 --Invoice Distribution Summary Tax Line Identifier
138058  , p_source_88            IN NUMBER
138059 --Payables Upgrade Credit Encumbrance Type Identifier
138060  , p_source_89            IN NUMBER
138061 --Payables Upgrade Debit Encumbrance Type Identifier
138062  , p_source_90            IN NUMBER
138063 --Business Flow Accounts Payable Application Identifier
138064  , p_source_91            IN NUMBER
138065 --Business Flow Invoice Distribution Type
138066  , p_source_92            IN VARCHAR2
138067 --Business Flow Invoice Entity Code
138068  , p_source_93            IN VARCHAR2
138069 --Business Flow Invoice Distribution Identifier
138070  , p_source_94            IN NUMBER
138071 --Business Flow Invoice Identifier
138072  , p_source_95            IN NUMBER
138073 --Accrue on Receipt Option
138074  , p_source_96            IN VARCHAR2
138075  , p_source_96_meaning    IN VARCHAR2
138076 --Invoice Exchange Date
138077  , p_source_143            IN DATE
138078 --Invoice Exchange Rate
138079  , p_source_144            IN NUMBER
138080 --Invoice Exchange Rate Type
138081  , p_source_145            IN VARCHAR2
138082 )
138083 IS
138084 
138085 l_component_type              VARCHAR2(80);
138086 l_component_code              VARCHAR2(30);
138087 l_component_type_code         VARCHAR2(1);
138088 l_component_appl_id           INTEGER;
138089 l_amb_context_code            VARCHAR2(30);
138090 l_entity_code                 VARCHAR2(30);
138091 l_event_class_code            VARCHAR2(30);
138092 l_ae_header_id                NUMBER;
138093 l_event_type_code             VARCHAR2(30);
138094 l_line_definition_code        VARCHAR2(30);
138095 l_line_definition_owner_code  VARCHAR2(1);
138096 --
138097 -- adr variables
138098 l_segment                     VARCHAR2(30);
138099 l_ccid                        NUMBER;
138100 l_adr_transaction_coa_id      NUMBER;
138101 l_adr_accounting_coa_id       NUMBER;
138102 l_adr_flexfield_segment_code  VARCHAR2(30);
138103 l_adr_flex_value_set_id       NUMBER;
138104 l_adr_value_type_code         VARCHAR2(30);
138105 l_adr_value_combination_id    NUMBER;
138106 l_adr_value_segment_code      VARCHAR2(30);
138107 
138108 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
138109 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
138110 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
138111 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
138112 
138113 -- 4262811 Variables ------------------------------------------------------------------------------------------
138114 l_entered_amt_idx             NUMBER;
138115 l_accted_amt_idx              NUMBER;
138116 l_acc_rev_flag                VARCHAR2(1);
138117 l_accrual_line_num            NUMBER;
138118 l_tmp_amt                     NUMBER;
138119 l_acc_rev_natural_side_code   VARCHAR2(1);
138120 
138121 l_num_entries                 NUMBER;
138122 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
138123 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
138124 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
138125 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
138126 l_recog_line_1                NUMBER;
138127 l_recog_line_2                NUMBER;
138128 
138129 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
138130 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
138131 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
138132 
138133 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
138134 
138135 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
138136 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
138137 
138138 ---------------------------------------------------------------------------------------------------------------
138139 
138140 
138141 --
138142 -- bulk performance
138143 --
138144 l_balance_type_code           VARCHAR2(1);
138145 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
138146 l_log_module                  VARCHAR2(240);
138147 
138148 --
138149 -- Upgrade strategy
138150 --
138151 l_actual_upg_option           VARCHAR2(1);
138152 l_enc_upg_option           VARCHAR2(1);
138153 
138154 --
138155 BEGIN
138156 --
138157 IF g_log_enabled THEN
138158       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_223';
138159 END IF;
138160 --
138161 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
138162 
138163       trace
138164          (p_msg      => 'BEGIN of AcctLineType_223'
138165          ,p_level    => C_LEVEL_PROCEDURE
138166          ,p_module   => l_log_module);
138167 
138168 END IF;
138169 --
138170 l_component_type             := 'AMB_JLT';
138171 l_component_code             := 'AP_TAX_RATE_VAR_PREPAY';
138172 l_component_type_code        := 'S';
138173 l_component_appl_id          :=  200;
138174 l_amb_context_code           := 'DEFAULT';
138175 l_entity_code                := 'AP_INVOICES';
138176 l_event_class_code           := 'PREPAYMENTS';
138180 --
138177 l_event_type_code            := 'PREPAYMENTS_ALL';
138178 l_line_definition_owner_code := 'S';
138179 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
138181 l_balance_type_code          := 'A';
138182 l_segment                     := NULL;
138183 l_ccid                        := NULL;
138184 l_adr_transaction_coa_id      := NULL;
138185 l_adr_accounting_coa_id       := NULL;
138186 l_adr_flexfield_segment_code  := NULL;
138187 l_adr_flex_value_set_id       := NULL;
138188 l_adr_value_type_code         := NULL;
138189 l_adr_value_combination_id    := NULL;
138190 l_adr_value_segment_code      := NULL;
138191 
138192 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
138193 l_bflow_class_code           := 'AP_PREPAY';    -- 4219869 Business Flow
138194 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
138195 l_budgetary_control_flag     := 'N';
138196 
138197 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
138198 l_bflow_applied_to_amt       := NULL; -- 5132302
138199 l_entered_amt_idx            := NULL;          -- 4262811
138200 l_accted_amt_idx             := NULL;          -- 4262811
138201 l_acc_rev_flag               := NULL;          -- 4262811
138202 l_accrual_line_num           := NULL;          -- 4262811
138203 l_tmp_amt                    := NULL;          -- 4262811
138204 --
138205  
138206 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
138207     l_balance_type_code <> 'B' THEN
138208 IF NVL(p_source_33,'
138209 ') =  'TRV' AND 
138210 NVL(p_source_96,'
138211 ') =  'Y'
138212  THEN 
138213 
138214    --
138215    XLA_AE_LINES_PKG.SetNewLine;
138216 
138217    p_balance_type_code          := l_balance_type_code;
138218    -- set the flag so later we will know whether the gain loss line needs to be created
138219    
138220    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
138221      p_actual_flag :='A';
138222    END IF;
138223 
138224    --
138225    -- bulk performance
138226    --
138227    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
138228                                       p_header_num   => 0); -- 4262811
138229    --
138230    -- set accounting line options
138231    --
138232    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
138233            p_natural_side_code          => 'D'
138234          , p_gain_or_loss_flag          => 'N'
138235          , p_gl_transfer_mode_code      => 'S'
138236          , p_acct_entry_type_code       => 'A'
138237          , p_switch_side_flag           => 'Y'
138238          , p_merge_duplicate_code       => 'A'
138239          );
138240    --
138241    l_acc_rev_natural_side_code := 'C';  -- 4262811
138242    -- 
138243    --
138244    -- set accounting line type info
138245    --
138246    xla_ae_lines_pkg.SetAcctLineType
138247       (p_component_type             => l_component_type
138248       ,p_event_type_code            => l_event_type_code
138249       ,p_line_definition_owner_code => l_line_definition_owner_code
138250       ,p_line_definition_code       => l_line_definition_code
138251       ,p_accounting_line_code       => l_component_code
138252       ,p_accounting_line_type_code  => l_component_type_code
138253       ,p_accounting_line_appl_id    => l_component_appl_id
138254       ,p_amb_context_code           => l_amb_context_code
138255       ,p_entity_code                => l_entity_code
138256       ,p_event_class_code           => l_event_class_code);
138257    --
138258    -- set accounting class
138259    --
138260    xla_ae_lines_pkg.SetAcctClass(
138261            p_accounting_class_code  => 'TRV'
138262          , p_ae_header_id           => l_ae_header_id
138263          );
138264 
138265    --
138266    -- set rounding class
138267    --
138268    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
138269                       'TRV';
138270 
138271    --
138272    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
138273    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
138274    --
138275    -- bulk performance
138276    --
138277    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
138278 
138279    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
138280       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
138281 
138282    -- 4955764
138283    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
138284       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
138285 
138286    -- 4458381 Public Sector Enh
138287    
138288    --
138289    -- set accounting attributes for the line type
138290    --
138291    l_entered_amt_idx := 23;
138292    l_accted_amt_idx  := 28;
138293    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
138294    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
138295    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
138296    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
138297    l_rec_acct_attrs.array_num_value(2)  := 
138298 xla_ae_sources_pkg.GetSystemSourceNum(
138299    p_source_code           => 'XLA_EVENT_APPL_ID'
138300  , p_source_type_code      => 'Y'
138301  , p_source_application_id =>  602
138302 );
138303    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
138304    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
138308    p_source_code           => 'XLA_ENTITY_CODE'
138305    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
138306    l_rec_acct_attrs.array_char_value(4)  := 
138307 xla_ae_sources_pkg.GetSystemSourceChar(
138309  , p_source_type_code      => 'Y'
138310  , p_source_application_id =>  602
138311 );
138312    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
138313    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
138314    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
138315    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
138316    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
138317    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
138318    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
138319    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
138320    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
138321    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
138322    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
138323    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
138324    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
138325    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
138326    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
138327    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
138328    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
138329    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
138330    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
138331    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
138332    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
138333    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
138334    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
138335    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
138336    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
138337    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
138338    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
138339    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
138340    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
138341    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
138342    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
138343    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
138344    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
138345    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
138346    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
138347    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
138348    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
138349    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
138350    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
138351    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
138352    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
138353    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
138354    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
138355    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
138356    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
138357    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
138358    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
138359    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
138360    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
138361    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
138362    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
138363    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
138364    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
138365    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
138366    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
138367    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
138368    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
138369    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
138370    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
138371    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
138372    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
138373    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
138374    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
138375    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
138376    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
138377    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
138378    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
138379    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
138380    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
138381    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
138382    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
138383    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
138384    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
138385    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
138386    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
138387    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
138388    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
138389    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
138390 
138394    ---------------------------------------------------------------------------------------------------------------
138391    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
138392    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
138393 
138395    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
138396    ---------------------------------------------------------------------------------------------------------------
138397    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
138398 
138399    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
138400    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
138401 
138402    IF xla_accounting_cache_pkg.GetValueChar
138403          (p_source_code         => 'LEDGER_CATEGORY_CODE'
138404          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
138405    AND l_bflow_method_code = 'PRIOR_ENTRY'
138406 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
138407    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
138408          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
138409        )
138410    THEN
138411          xla_ae_lines_pkg.BflowUpgEntry
138412            (p_business_method_code    => l_bflow_method_code
138413            ,p_business_class_code     => l_bflow_class_code
138414            ,p_balance_type            => l_balance_type_code);
138415    ELSE
138416       NULL;
138417 -- No business flow processing for business flow method of NONE.
138418    END IF;
138419 
138420    --
138421    -- call analytical criteria
138422    --
138423    
138424    --
138425    -- call description
138426    --
138427    
138428 xla_ae_lines_pkg.SetLineDescription(
138429    p_ae_header_id => l_ae_header_id
138430   ,p_description  => Description_1 (
138431      p_application_id         => p_application_id
138432    , p_ae_header_id           => l_ae_header_id 
138433 , p_source_1 => p_source_1
138434    )
138435 );
138436 
138437 
138438    --
138439    -- call ADRs
138440    -- Bug 4922099
138441    --
138442    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
138443         (NVL(l_actual_upg_option, 'N') = 'O') OR
138444         (NVL(l_enc_upg_option, 'N') = 'O')
138445       )
138446    THEN
138447    NULL;
138448    --
138449    --
138450    
138451   l_ccid := AcctDerRule_33(
138452            p_application_id           => p_application_id
138453          , p_ae_header_id             => l_ae_header_id 
138454 , p_source_30 => p_source_30
138455          , x_transaction_coa_id       => l_adr_transaction_coa_id
138456          , x_accounting_coa_id        => l_adr_accounting_coa_id
138457          , x_value_type_code          => l_adr_value_type_code
138458          , p_side                     => 'NA'
138459    );
138460 
138461    xla_ae_lines_pkg.set_ccid(
138462     p_code_combination_id          => l_ccid
138463   , p_value_type_code              => l_adr_value_type_code
138464   , p_transaction_coa_id           => l_adr_transaction_coa_id
138465   , p_accounting_coa_id            => l_adr_accounting_coa_id
138466   , p_adr_code                     => 'AP_INVOICE_DIST'
138467   , p_adr_type_code                => 'S'
138468   , p_component_type               => l_component_type
138469   , p_component_code               => l_component_code
138470   , p_component_type_code          => l_component_type_code
138471   , p_component_appl_id            => l_component_appl_id
138472   , p_amb_context_code             => l_amb_context_code
138473   , p_side                         => 'NA'
138474   );
138475 
138476 
138477    --
138478    --
138479    END IF;
138480    --
138481    -- Bug 4922099
138482    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
138483           (NVL(l_enc_upg_option, 'N') = 'O')
138484         ) AND
138485         (l_bflow_method_code = 'PRIOR_ENTRY')
138486       )
138487    THEN
138488       IF
138489       --
138490       1 = 2
138491       --
138492       THEN
138493       xla_accounting_err_pkg.build_message
138494                                     (p_appli_s_name            => 'XLA'
138495                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
138496                                     ,p_token_1                 => 'LINE_NUMBER'
138497                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
138498                                     ,p_token_2                 => 'LINE_TYPE_NAME'
138499                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
138500                                                                              l_component_type
138501                                                                             ,l_component_code
138502                                                                             ,l_component_type_code
138503                                                                             ,l_component_appl_id
138504                                                                             ,l_amb_context_code
138505                                                                             ,l_entity_code
138506                                                                             ,l_event_class_code
138507                                                                            )
138511                                                                           ,p_lookup_code    => l_component_type_code
138508                                     ,p_token_3                 => 'OWNER'
138509                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
138510                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
138512                                                                          )
138513                                     ,p_token_4                 => 'PRODUCT_NAME'
138514                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
138515                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
138516                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
138517                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
138518                                     ,p_ae_header_id            =>  NULL
138519                                        );
138520 
138521         IF (C_LEVEL_ERROR>= g_log_level) THEN
138522                  trace
138523                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
138524                       ,p_level    => C_LEVEL_ERROR
138525                       ,p_module   => l_log_module);
138526         END IF;
138527       END IF;
138528    END IF;
138529    --
138530    --
138531    ------------------------------------------------------------------------------------------------
138532    -- 4219869 Business Flow
138533    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
138534    -- Prior Entry.  Currently, the following code is always generated.
138535    ------------------------------------------------------------------------------------------------
138536    XLA_AE_LINES_PKG.ValidateCurrentLine;
138537 
138538    ------------------------------------------------------------------------------------
138539    -- 4219869 Business Flow
138540    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
138541    ------------------------------------------------------------------------------------
138542    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
138543 
138544    ----------------------------------------------------------------------------------
138545    -- 4219869 Business Flow
138546    -- Update journal entry status -- Need to generate this within IF <condition>
138547    ----------------------------------------------------------------------------------
138548    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
138549          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
138550          ,p_balance_type_code => l_balance_type_code
138551          );
138552 
138553    -------------------------------------------------------------------------------------------
138554    -- 4262811 - Generate the Accrual Reversal lines
138555    -------------------------------------------------------------------------------------------
138556    BEGIN
138557       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
138558                               (g_array_event(p_event_id).array_value_num('header_index'));
138559       IF l_acc_rev_flag IS NULL THEN
138560          l_acc_rev_flag := 'N';
138561       END IF;
138562    EXCEPTION
138563       WHEN OTHERS THEN
138564          l_acc_rev_flag := 'N';
138565    END;
138566    --
138567    IF (l_acc_rev_flag = 'Y') THEN
138568 
138569        -- 4645092  ------------------------------------------------------------------------------
138570        -- To allow MPA report to determine if it should generate report process
138571        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
138572        ------------------------------------------------------------------------------------------
138573 
138574        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
138575        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
138576    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
138577    -- call ADRs
138578    -- Bug 4922099
138579    --
138580    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
138581         (NVL(l_actual_upg_option, 'N') = 'O') OR
138582         (NVL(l_enc_upg_option, 'N') = 'O')
138583       )
138584    THEN
138585    NULL;
138586    --
138587    --
138588    
138589   l_ccid := AcctDerRule_33(
138590            p_application_id           => p_application_id
138591          , p_ae_header_id             => l_ae_header_id 
138592 , p_source_30 => p_source_30
138593          , x_transaction_coa_id       => l_adr_transaction_coa_id
138594          , x_accounting_coa_id        => l_adr_accounting_coa_id
138595          , x_value_type_code          => l_adr_value_type_code
138596          , p_side                     => 'NA'
138597    );
138598 
138599    xla_ae_lines_pkg.set_ccid(
138600     p_code_combination_id          => l_ccid
138601   , p_value_type_code              => l_adr_value_type_code
138602   , p_transaction_coa_id           => l_adr_transaction_coa_id
138603   , p_accounting_coa_id            => l_adr_accounting_coa_id
138604   , p_adr_code                     => 'AP_INVOICE_DIST'
138605   , p_adr_type_code                => 'S'
138606   , p_component_type               => l_component_type
138607   , p_component_code               => l_component_code
138608   , p_component_type_code          => l_component_type_code
138612   );
138609   , p_component_appl_id            => l_component_appl_id
138610   , p_amb_context_code             => l_amb_context_code
138611   , p_side                         => 'NA'
138613 
138614 
138615    --
138616    --
138617    END IF;
138618 
138619        --
138620        -- Update the line information that should be overwritten
138621        --
138622        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
138623                                          p_header_num   => 1);
138624        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
138625 
138626        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
138627 
138628        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
138629           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
138630        END IF;
138631 
138632       --
138633       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
138634       --
138635       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
138636           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
138637       ELSE
138638           ---------------------------------------------------------------------------------------------------
138639           -- 4262811a Switch Sign
138640           ---------------------------------------------------------------------------------------------------
138641           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
138642           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
138643                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
138644           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
138645                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
138646           -- 5132302
138647           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
138648                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
138649 
138650       END IF;
138651 
138652       -- 4955764
138653       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
138654       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
138655 
138656 
138657       XLA_AE_LINES_PKG.ValidateCurrentLine;
138658       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
138659 
138660       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
138661                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
138662                ,p_balance_type_code => l_balance_type_code);
138663 
138664    END IF;
138665 
138666    -----------------------------------------------------------------------------------------
138667    -- 4262811 Multiperiod Accounting
138668    -----------------------------------------------------------------------------------------
138669      -- No MPA option is assigned.
138670 
138671 
138672 END IF;
138673 END IF;
138674 --
138675 
138676 --
138677 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
138678    trace
138679       (p_msg      => 'END of AcctLineType_223'
138680       ,p_level    => C_LEVEL_PROCEDURE
138681       ,p_module   => l_log_module);
138682 END IF;
138683 --
138684 EXCEPTION
138685   WHEN xla_exceptions_pkg.application_exception THEN
138686       RAISE;
138687   WHEN OTHERS THEN
138688        xla_exceptions_pkg.raise_message
138689            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_223');
138690 END AcctLineType_223;
138691 --
138692 
138693 ---------------------------------------
138694 --
138695 -- PRIVATE FUNCTION
138696 --         AcctLineType_224
138697 --
138698 ---------------------------------------
138699 PROCEDURE AcctLineType_224 (
138700   p_application_id        IN NUMBER
138701  ,p_event_id              IN NUMBER
138702  ,p_calculate_acctd_flag  IN VARCHAR2
138703  ,p_calculate_g_l_flag    IN VARCHAR2
138704  ,p_actual_flag           IN OUT VARCHAR2
138705  ,p_balance_type_code     OUT VARCHAR2
138706  ,p_gain_or_loss_ref      OUT VARCHAR2
138707  
138708 --Payment Currency Code
138709  , p_source_13            IN VARCHAR2
138710 --Automatic Offsets Value
138711  , p_source_15            IN VARCHAR2
138712  , p_source_15_meaning    IN VARCHAR2
138713 --Invoice Distribution Account
138714  , p_source_30            IN NUMBER
138715 --Withholding Related Distribution Account
138716  , p_source_43            IN NUMBER
138717 --Accounting Reversal Indicator
138718  , p_source_53            IN VARCHAR2
138719 --Distribution Link Type
138720  , p_source_55            IN VARCHAR2
138721 --Override Accounted Amount Indicator
138722  , p_source_80            IN VARCHAR2
138723  , p_source_80_meaning    IN VARCHAR2
138724 --Third Party Type
138725  , p_source_83            IN VARCHAR2
138726 --Invoice Distribution Tax Line Identifier
138727  , p_source_86            IN NUMBER
138728 --Invoice Distribution Summary Tax Line Identifier
138729  , p_source_88            IN NUMBER
138730 --Business Flow Accounts Payable Application Identifier
138731  , p_source_91            IN NUMBER
138732 --When to Account for Payment Option
138733  , p_source_97            IN VARCHAR2
138734 --Payment Distribution Type
138738  , p_source_99            IN NUMBER
138735  , p_source_98            IN VARCHAR2
138736  , p_source_98_meaning    IN VARCHAR2
138737 --Payment Distribution Amount
138739 --Business Flow Payment Distribution Type
138740  , p_source_100            IN VARCHAR2
138741 --Business Flow Payment Entity Code
138742  , p_source_101            IN VARCHAR2
138743 --Business Flow Payment Distribution Identifier
138744  , p_source_102            IN NUMBER
138745 --Business Flow Payment Identifier
138746  , p_source_103            IN NUMBER
138747 --Payment Distribution Identifier
138748  , p_source_104            IN NUMBER
138749 --Payment Supplier Identifier
138750  , p_source_110            IN NUMBER
138751 --Payment Supplier Site Identifier
138752  , p_source_111            IN NUMBER
138753 --Payment Distribution Reversed Identifier
138754  , p_source_112            IN NUMBER
138755 --Payment Distribution (Invoice Rate) Ledger Amount
138756  , p_source_116            IN NUMBER
138757 --Invoice Exchange Date
138758  , p_source_143            IN DATE
138759 --Invoice Exchange Rate
138760  , p_source_144            IN NUMBER
138761 --Invoice Exchange Rate Type
138762  , p_source_145            IN VARCHAR2
138763 --Withholding at Payment Indicator
138764  , p_source_164            IN VARCHAR2
138765  , p_source_164_meaning    IN VARCHAR2
138766 )
138767 IS
138768 
138769 l_component_type              VARCHAR2(80);
138770 l_component_code              VARCHAR2(30);
138771 l_component_type_code         VARCHAR2(1);
138772 l_component_appl_id           INTEGER;
138773 l_amb_context_code            VARCHAR2(30);
138774 l_entity_code                 VARCHAR2(30);
138775 l_event_class_code            VARCHAR2(30);
138776 l_ae_header_id                NUMBER;
138777 l_event_type_code             VARCHAR2(30);
138778 l_line_definition_code        VARCHAR2(30);
138779 l_line_definition_owner_code  VARCHAR2(1);
138780 --
138781 -- adr variables
138782 l_segment                     VARCHAR2(30);
138783 l_ccid                        NUMBER;
138784 l_adr_transaction_coa_id      NUMBER;
138785 l_adr_accounting_coa_id       NUMBER;
138786 l_adr_flexfield_segment_code  VARCHAR2(30);
138787 l_adr_flex_value_set_id       NUMBER;
138788 l_adr_value_type_code         VARCHAR2(30);
138789 l_adr_value_combination_id    NUMBER;
138790 l_adr_value_segment_code      VARCHAR2(30);
138791 
138792 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
138793 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
138794 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
138795 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
138796 
138797 -- 4262811 Variables ------------------------------------------------------------------------------------------
138798 l_entered_amt_idx             NUMBER;
138799 l_accted_amt_idx              NUMBER;
138800 l_acc_rev_flag                VARCHAR2(1);
138801 l_accrual_line_num            NUMBER;
138802 l_tmp_amt                     NUMBER;
138803 l_acc_rev_natural_side_code   VARCHAR2(1);
138804 
138805 l_num_entries                 NUMBER;
138806 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
138807 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
138808 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
138809 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
138810 l_recog_line_1                NUMBER;
138811 l_recog_line_2                NUMBER;
138812 
138813 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
138814 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
138815 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
138816 
138817 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
138818 
138819 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
138820 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
138821 
138822 ---------------------------------------------------------------------------------------------------------------
138823 
138824 
138825 --
138826 -- bulk performance
138827 --
138828 l_balance_type_code           VARCHAR2(1);
138829 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
138830 l_log_module                  VARCHAR2(240);
138831 
138832 --
138833 -- Upgrade strategy
138834 --
138835 l_actual_upg_option           VARCHAR2(1);
138836 l_enc_upg_option           VARCHAR2(1);
138837 
138838 --
138839 BEGIN
138840 --
138841 IF g_log_enabled THEN
138842       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_224';
138843 END IF;
138844 --
138845 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
138846 
138847       trace
138848          (p_msg      => 'BEGIN of AcctLineType_224'
138849          ,p_level    => C_LEVEL_PROCEDURE
138850          ,p_module   => l_log_module);
138851 
138852 END IF;
138853 --
138854 l_component_type             := 'AMB_JLT';
138855 l_component_code             := 'AP_WITHHOLD_TAX_ACCR_CLEAR';
138856 l_component_type_code        := 'S';
138857 l_component_appl_id          :=  200;
138858 l_amb_context_code           := 'DEFAULT';
138859 l_entity_code                := 'AP_PAYMENTS';
138860 l_event_class_code           := 'RECONCILED PAYMENTS';
138861 l_event_type_code            := 'RECONCILED PAYMENTS_ALL';
138862 l_line_definition_owner_code := 'S';
138863 l_line_definition_code       := 'ACCRUAL_RECONCILED PAYMENTS_A4';
138864 --
138865 l_balance_type_code          := 'A';
138869 l_adr_accounting_coa_id       := NULL;
138866 l_segment                     := NULL;
138867 l_ccid                        := NULL;
138868 l_adr_transaction_coa_id      := NULL;
138870 l_adr_flexfield_segment_code  := NULL;
138871 l_adr_flex_value_set_id       := NULL;
138872 l_adr_value_type_code         := NULL;
138873 l_adr_value_combination_id    := NULL;
138874 l_adr_value_segment_code      := NULL;
138875 
138876 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
138877 l_bflow_class_code           := '';    -- 4219869 Business Flow
138878 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
138879 l_budgetary_control_flag     := 'N';
138880 
138881 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
138882 l_bflow_applied_to_amt       := NULL; -- 5132302
138883 l_entered_amt_idx            := NULL;          -- 4262811
138884 l_accted_amt_idx             := NULL;          -- 4262811
138885 l_acc_rev_flag               := NULL;          -- 4262811
138886 l_accrual_line_num           := NULL;          -- 4262811
138887 l_tmp_amt                    := NULL;          -- 4262811
138888 --
138889  
138890 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
138891     l_balance_type_code <> 'B' THEN
138892 IF NVL(p_source_97,'
138893 ') =  'CLEAR_CLEAR' AND 
138894 NVL(p_source_98,'
138895 ') =  'AWT' AND 
138896 NVL(p_source_164,'
138897 ') =  'Y'
138898  THEN 
138899 
138900    --
138901    XLA_AE_LINES_PKG.SetNewLine;
138902 
138903    p_balance_type_code          := l_balance_type_code;
138904    -- set the flag so later we will know whether the gain loss line needs to be created
138905    
138906    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
138907      p_actual_flag :='A';
138908    END IF;
138909 
138910    --
138911    -- bulk performance
138912    --
138913    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
138914                                       p_header_num   => 0); -- 4262811
138915    --
138916    -- set accounting line options
138917    --
138918    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
138919            p_natural_side_code          => 'C'
138920          , p_gain_or_loss_flag          => 'N'
138921          , p_gl_transfer_mode_code      => 'S'
138922          , p_acct_entry_type_code       => 'A'
138923          , p_switch_side_flag           => 'Y'
138924          , p_merge_duplicate_code       => 'A'
138925          );
138926    --
138927    l_acc_rev_natural_side_code := 'D';  -- 4262811
138928    -- 
138929    --
138930    -- set accounting line type info
138931    --
138932    xla_ae_lines_pkg.SetAcctLineType
138933       (p_component_type             => l_component_type
138934       ,p_event_type_code            => l_event_type_code
138935       ,p_line_definition_owner_code => l_line_definition_owner_code
138936       ,p_line_definition_code       => l_line_definition_code
138937       ,p_accounting_line_code       => l_component_code
138938       ,p_accounting_line_type_code  => l_component_type_code
138939       ,p_accounting_line_appl_id    => l_component_appl_id
138940       ,p_amb_context_code           => l_amb_context_code
138941       ,p_entity_code                => l_entity_code
138942       ,p_event_class_code           => l_event_class_code);
138943    --
138944    -- set accounting class
138945    --
138946    xla_ae_lines_pkg.SetAcctClass(
138947            p_accounting_class_code  => 'AWT'
138948          , p_ae_header_id           => l_ae_header_id
138949          );
138950 
138951    --
138952    -- set rounding class
138953    --
138954    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
138955                       'AWT';
138956 
138957    --
138958    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
138959    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
138960    --
138961    -- bulk performance
138962    --
138963    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
138964 
138965    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
138966       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
138967 
138968    -- 4955764
138969    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
138970       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
138971 
138972    -- 4458381 Public Sector Enh
138973    
138974    --
138975    -- set accounting attributes for the line type
138976    --
138977    l_entered_amt_idx := 10;
138978    l_accted_amt_idx  := 15;
138979    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
138980    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
138981    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
138982    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
138983    l_rec_acct_attrs.array_num_value(2)  := p_source_99;
138984    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
138985    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
138986    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
138987    l_rec_acct_attrs.array_char_value(4)  := p_source_100;
138988    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
138989    l_rec_acct_attrs.array_char_value(5)  := p_source_101;
138993    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_103);
138990    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
138991    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_102);
138992    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
138994    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
138995    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
138996    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
138997    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
138998    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
138999    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
139000    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
139001    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
139002    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
139003    l_rec_acct_attrs.array_date_value(12)  := p_source_143;
139004    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
139005    l_rec_acct_attrs.array_num_value(13)  := p_source_144;
139006    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
139007    l_rec_acct_attrs.array_char_value(14)  := p_source_145;
139008    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
139009    l_rec_acct_attrs.array_num_value(15)  := p_source_116;
139010    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
139011    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
139012    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
139013    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
139014    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
139015    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
139016    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
139017    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
139018    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
139019    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
139020    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
139021    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
139022    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
139023    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
139024    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
139025    l_rec_acct_attrs.array_num_value(23)  := p_source_86;
139026    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
139027    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
139028 
139029    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
139030    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
139031 
139032    ---------------------------------------------------------------------------------------------------------------
139033    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
139034    ---------------------------------------------------------------------------------------------------------------
139035    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
139036 
139037    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
139038    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
139039 
139040    IF xla_accounting_cache_pkg.GetValueChar
139041          (p_source_code         => 'LEDGER_CATEGORY_CODE'
139042          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
139043    AND l_bflow_method_code = 'PRIOR_ENTRY'
139044 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
139045    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
139046          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
139047        )
139048    THEN
139049          xla_ae_lines_pkg.BflowUpgEntry
139050            (p_business_method_code    => l_bflow_method_code
139051            ,p_business_class_code     => l_bflow_class_code
139052            ,p_balance_type            => l_balance_type_code);
139053    ELSE
139054       NULL;
139055 -- No business flow processing for business flow method of NONE.
139056    END IF;
139057 
139058    --
139059    -- call analytical criteria
139060    --
139061    
139062    --
139063    -- call description
139064    --
139065    -- No description or it is inherited.
139066    --
139067    -- call ADRs
139068    -- Bug 4922099
139069    --
139070    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
139071         (NVL(l_actual_upg_option, 'N') = 'O') OR
139072         (NVL(l_enc_upg_option, 'N') = 'O')
139073       )
139074    THEN
139075    NULL;
139076    --
139077    --
139078    
139079   l_ccid := AcctDerRule_46(
139080            p_application_id           => p_application_id
139081          , p_ae_header_id             => l_ae_header_id 
139082 , p_source_15 => p_source_15
139083 , p_source_15_meaning => p_source_15_meaning
139084 , p_source_30 => p_source_30
139085 , p_source_43 => p_source_43
139086          , x_transaction_coa_id       => l_adr_transaction_coa_id
139087          , x_accounting_coa_id        => l_adr_accounting_coa_id
139088          , x_value_type_code          => l_adr_value_type_code
139089          , p_side                     => 'NA'
139090    );
139091 
139092    xla_ae_lines_pkg.set_ccid(
139093     p_code_combination_id          => l_ccid
139094   , p_value_type_code              => l_adr_value_type_code
139098   , p_adr_type_code                => 'S'
139095   , p_transaction_coa_id           => l_adr_transaction_coa_id
139096   , p_accounting_coa_id            => l_adr_accounting_coa_id
139097   , p_adr_code                     => 'AP_WH_DIST_ACCT'
139099   , p_component_type               => l_component_type
139100   , p_component_code               => l_component_code
139101   , p_component_type_code          => l_component_type_code
139102   , p_component_appl_id            => l_component_appl_id
139103   , p_amb_context_code             => l_amb_context_code
139104   , p_side                         => 'NA'
139105   );
139106 
139107 
139108    l_segment := AcctDerRule_14(
139109            p_application_id           => p_application_id
139110          , p_ae_header_id             => l_ae_header_id 
139111 , p_source_15 => p_source_15
139112 , p_source_15_meaning => p_source_15_meaning
139113 , p_source_30 => p_source_30
139114          , x_transaction_coa_id       => l_adr_transaction_coa_id
139115          , x_accounting_coa_id        => l_adr_accounting_coa_id
139116          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
139117          , x_flex_value_set_id        => l_adr_flex_value_set_id
139118          , x_value_type_code          => l_adr_value_type_code
139119          , x_value_combination_id     => l_adr_value_combination_id
139120          , x_value_segment_code       => l_adr_value_segment_code
139121          , p_side                     => 'NA'
139122          , p_override_seg_flag        => 'Y'
139123    );
139124 
139125    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
139126 
139127       xla_ae_lines_pkg.set_segment(
139128           p_to_segment_code         => 'GL_ACCOUNT'
139129         , p_segment_value           => l_segment
139130         , p_from_segment_code       => l_adr_value_segment_code
139131         , p_from_combination_id     => l_adr_value_combination_id
139132         , p_value_type_code         => l_adr_value_type_code
139133         , p_transaction_coa_id      => l_adr_transaction_coa_id
139134         , p_accounting_coa_id       => l_adr_accounting_coa_id
139135         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
139136         , p_flex_value_set_id       => l_adr_flex_value_set_id
139137         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
139138         , p_adr_type_code           => 'S'
139139         , p_component_type          => l_component_type
139140         , p_component_code          => l_component_code
139141         , p_component_type_code     => l_component_type_code
139142         , p_component_appl_id       => l_component_appl_id
139143         , p_amb_context_code        => l_amb_context_code
139144         , p_entity_code             => 'AP_PAYMENTS'
139145         , p_event_class_code        => 'RECONCILED PAYMENTS'
139146         , p_side                    => 'NA'
139147         );
139148 
139149   END IF;
139150 
139151    l_segment := AcctDerRule_25(
139152            p_application_id           => p_application_id
139153          , p_ae_header_id             => l_ae_header_id 
139154 , p_source_15 => p_source_15
139155 , p_source_15_meaning => p_source_15_meaning
139156 , p_source_43 => p_source_43
139157          , x_transaction_coa_id       => l_adr_transaction_coa_id
139158          , x_accounting_coa_id        => l_adr_accounting_coa_id
139159          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
139160          , x_flex_value_set_id        => l_adr_flex_value_set_id
139161          , x_value_type_code          => l_adr_value_type_code
139162          , x_value_combination_id     => l_adr_value_combination_id
139163          , x_value_segment_code       => l_adr_value_segment_code
139164          , p_side                     => 'NA'
139165          , p_override_seg_flag        => 'Y'
139166    );
139167 
139168    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
139169 
139170       xla_ae_lines_pkg.set_segment(
139171           p_to_segment_code         => 'GL_BALANCING'
139172         , p_segment_value           => l_segment
139173         , p_from_segment_code       => l_adr_value_segment_code
139174         , p_from_combination_id     => l_adr_value_combination_id
139175         , p_value_type_code         => l_adr_value_type_code
139176         , p_transaction_coa_id      => l_adr_transaction_coa_id
139177         , p_accounting_coa_id       => l_adr_accounting_coa_id
139178         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
139179         , p_flex_value_set_id       => l_adr_flex_value_set_id
139180         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
139181         , p_adr_type_code           => 'S'
139182         , p_component_type          => l_component_type
139183         , p_component_code          => l_component_code
139184         , p_component_type_code     => l_component_type_code
139185         , p_component_appl_id       => l_component_appl_id
139186         , p_amb_context_code        => l_amb_context_code
139187         , p_entity_code             => 'AP_PAYMENTS'
139188         , p_event_class_code        => 'RECONCILED PAYMENTS'
139189         , p_side                    => 'NA'
139190         );
139191 
139192   END IF;
139193 
139194    --
139195    --
139196    END IF;
139197    --
139198    -- Bug 4922099
139199    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
139200           (NVL(l_enc_upg_option, 'N') = 'O')
139201         ) AND
139202         (l_bflow_method_code = 'PRIOR_ENTRY')
139203       )
139204    THEN
139205       IF
139206       --
139207       1 = 2
139208       --
139209       THEN
139210       xla_accounting_err_pkg.build_message
139214                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
139211                                     (p_appli_s_name            => 'XLA'
139212                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
139213                                     ,p_token_1                 => 'LINE_NUMBER'
139215                                     ,p_token_2                 => 'LINE_TYPE_NAME'
139216                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
139217                                                                              l_component_type
139218                                                                             ,l_component_code
139219                                                                             ,l_component_type_code
139220                                                                             ,l_component_appl_id
139221                                                                             ,l_amb_context_code
139222                                                                             ,l_entity_code
139223                                                                             ,l_event_class_code
139224                                                                            )
139225                                     ,p_token_3                 => 'OWNER'
139226                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
139227                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
139228                                                                           ,p_lookup_code    => l_component_type_code
139229                                                                          )
139230                                     ,p_token_4                 => 'PRODUCT_NAME'
139231                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
139232                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
139233                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
139234                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
139235                                     ,p_ae_header_id            =>  NULL
139236                                        );
139237 
139238         IF (C_LEVEL_ERROR>= g_log_level) THEN
139239                  trace
139240                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
139241                       ,p_level    => C_LEVEL_ERROR
139242                       ,p_module   => l_log_module);
139243         END IF;
139244       END IF;
139245    END IF;
139246    --
139247    --
139248    ------------------------------------------------------------------------------------------------
139249    -- 4219869 Business Flow
139250    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
139251    -- Prior Entry.  Currently, the following code is always generated.
139252    ------------------------------------------------------------------------------------------------
139253    XLA_AE_LINES_PKG.ValidateCurrentLine;
139254 
139255    ------------------------------------------------------------------------------------
139256    -- 4219869 Business Flow
139257    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
139258    ------------------------------------------------------------------------------------
139259    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
139260 
139261    ----------------------------------------------------------------------------------
139262    -- 4219869 Business Flow
139263    -- Update journal entry status -- Need to generate this within IF <condition>
139264    ----------------------------------------------------------------------------------
139265    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
139266          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
139267          ,p_balance_type_code => l_balance_type_code
139268          );
139269 
139270    -------------------------------------------------------------------------------------------
139271    -- 4262811 - Generate the Accrual Reversal lines
139272    -------------------------------------------------------------------------------------------
139273    BEGIN
139274       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
139275                               (g_array_event(p_event_id).array_value_num('header_index'));
139276       IF l_acc_rev_flag IS NULL THEN
139277          l_acc_rev_flag := 'N';
139278       END IF;
139279    EXCEPTION
139280       WHEN OTHERS THEN
139281          l_acc_rev_flag := 'N';
139282    END;
139283    --
139284    IF (l_acc_rev_flag = 'Y') THEN
139285 
139286        -- 4645092  ------------------------------------------------------------------------------
139287        -- To allow MPA report to determine if it should generate report process
139288        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
139289        ------------------------------------------------------------------------------------------
139290 
139291        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
139292        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
139293    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
139294    -- call ADRs
139295    -- Bug 4922099
139296    --
139297    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
139301    THEN
139298         (NVL(l_actual_upg_option, 'N') = 'O') OR
139299         (NVL(l_enc_upg_option, 'N') = 'O')
139300       )
139302    NULL;
139303    --
139304    --
139305    
139306   l_ccid := AcctDerRule_46(
139307            p_application_id           => p_application_id
139308          , p_ae_header_id             => l_ae_header_id 
139309 , p_source_15 => p_source_15
139310 , p_source_15_meaning => p_source_15_meaning
139311 , p_source_30 => p_source_30
139312 , p_source_43 => p_source_43
139313          , x_transaction_coa_id       => l_adr_transaction_coa_id
139314          , x_accounting_coa_id        => l_adr_accounting_coa_id
139315          , x_value_type_code          => l_adr_value_type_code
139316          , p_side                     => 'NA'
139317    );
139318 
139319    xla_ae_lines_pkg.set_ccid(
139320     p_code_combination_id          => l_ccid
139321   , p_value_type_code              => l_adr_value_type_code
139322   , p_transaction_coa_id           => l_adr_transaction_coa_id
139323   , p_accounting_coa_id            => l_adr_accounting_coa_id
139324   , p_adr_code                     => 'AP_WH_DIST_ACCT'
139325   , p_adr_type_code                => 'S'
139326   , p_component_type               => l_component_type
139327   , p_component_code               => l_component_code
139328   , p_component_type_code          => l_component_type_code
139329   , p_component_appl_id            => l_component_appl_id
139330   , p_amb_context_code             => l_amb_context_code
139331   , p_side                         => 'NA'
139332   );
139333 
139334 
139335    l_segment := AcctDerRule_14(
139336            p_application_id           => p_application_id
139337          , p_ae_header_id             => l_ae_header_id 
139338 , p_source_15 => p_source_15
139339 , p_source_15_meaning => p_source_15_meaning
139340 , p_source_30 => p_source_30
139341          , x_transaction_coa_id       => l_adr_transaction_coa_id
139342          , x_accounting_coa_id        => l_adr_accounting_coa_id
139343          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
139344          , x_flex_value_set_id        => l_adr_flex_value_set_id
139345          , x_value_type_code          => l_adr_value_type_code
139346          , x_value_combination_id     => l_adr_value_combination_id
139347          , x_value_segment_code       => l_adr_value_segment_code
139348          , p_side                     => 'NA'
139349          , p_override_seg_flag        => 'Y'
139350    );
139351 
139352    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
139353 
139354       xla_ae_lines_pkg.set_segment(
139355           p_to_segment_code         => 'GL_ACCOUNT'
139356         , p_segment_value           => l_segment
139357         , p_from_segment_code       => l_adr_value_segment_code
139358         , p_from_combination_id     => l_adr_value_combination_id
139359         , p_value_type_code         => l_adr_value_type_code
139360         , p_transaction_coa_id      => l_adr_transaction_coa_id
139361         , p_accounting_coa_id       => l_adr_accounting_coa_id
139362         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
139363         , p_flex_value_set_id       => l_adr_flex_value_set_id
139364         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
139365         , p_adr_type_code           => 'S'
139366         , p_component_type          => l_component_type
139367         , p_component_code          => l_component_code
139368         , p_component_type_code     => l_component_type_code
139369         , p_component_appl_id       => l_component_appl_id
139370         , p_amb_context_code        => l_amb_context_code
139371         , p_entity_code             => 'AP_PAYMENTS'
139372         , p_event_class_code        => 'RECONCILED PAYMENTS'
139373         , p_side                    => 'NA'
139374         );
139375 
139376   END IF;
139377 
139378    l_segment := AcctDerRule_25(
139379            p_application_id           => p_application_id
139380          , p_ae_header_id             => l_ae_header_id 
139381 , p_source_15 => p_source_15
139382 , p_source_15_meaning => p_source_15_meaning
139383 , p_source_43 => p_source_43
139384          , x_transaction_coa_id       => l_adr_transaction_coa_id
139385          , x_accounting_coa_id        => l_adr_accounting_coa_id
139386          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
139387          , x_flex_value_set_id        => l_adr_flex_value_set_id
139388          , x_value_type_code          => l_adr_value_type_code
139389          , x_value_combination_id     => l_adr_value_combination_id
139390          , x_value_segment_code       => l_adr_value_segment_code
139391          , p_side                     => 'NA'
139392          , p_override_seg_flag        => 'Y'
139393    );
139394 
139395    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
139396 
139397       xla_ae_lines_pkg.set_segment(
139398           p_to_segment_code         => 'GL_BALANCING'
139399         , p_segment_value           => l_segment
139400         , p_from_segment_code       => l_adr_value_segment_code
139401         , p_from_combination_id     => l_adr_value_combination_id
139402         , p_value_type_code         => l_adr_value_type_code
139403         , p_transaction_coa_id      => l_adr_transaction_coa_id
139404         , p_accounting_coa_id       => l_adr_accounting_coa_id
139405         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
139406         , p_flex_value_set_id       => l_adr_flex_value_set_id
139407         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
139411         , p_component_type_code     => l_component_type_code
139408         , p_adr_type_code           => 'S'
139409         , p_component_type          => l_component_type
139410         , p_component_code          => l_component_code
139412         , p_component_appl_id       => l_component_appl_id
139413         , p_amb_context_code        => l_amb_context_code
139414         , p_entity_code             => 'AP_PAYMENTS'
139415         , p_event_class_code        => 'RECONCILED PAYMENTS'
139416         , p_side                    => 'NA'
139417         );
139418 
139419   END IF;
139420 
139421    --
139422    --
139423    END IF;
139424 
139425        --
139426        -- Update the line information that should be overwritten
139427        --
139428        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
139429                                          p_header_num   => 1);
139430        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
139431 
139432        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
139433 
139434        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
139435           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
139436        END IF;
139437 
139438       --
139439       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
139440       --
139441       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
139442           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
139443       ELSE
139444           ---------------------------------------------------------------------------------------------------
139445           -- 4262811a Switch Sign
139446           ---------------------------------------------------------------------------------------------------
139447           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
139448           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
139449                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
139450           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
139451                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
139452           -- 5132302
139453           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
139454                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
139455 
139456       END IF;
139457 
139458       -- 4955764
139459       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
139460       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
139461 
139462 
139463       XLA_AE_LINES_PKG.ValidateCurrentLine;
139464       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
139465 
139466       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
139467                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
139468                ,p_balance_type_code => l_balance_type_code);
139469 
139470    END IF;
139471 
139472    -----------------------------------------------------------------------------------------
139473    -- 4262811 Multiperiod Accounting
139474    -----------------------------------------------------------------------------------------
139475      -- No MPA option is assigned.
139476 
139477 
139478 END IF;
139479 END IF;
139480 --
139481 
139482 --
139483 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
139484    trace
139485       (p_msg      => 'END of AcctLineType_224'
139486       ,p_level    => C_LEVEL_PROCEDURE
139487       ,p_module   => l_log_module);
139488 END IF;
139489 --
139490 EXCEPTION
139491   WHEN xla_exceptions_pkg.application_exception THEN
139492       RAISE;
139493   WHEN OTHERS THEN
139494        xla_exceptions_pkg.raise_message
139495            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_224');
139496 END AcctLineType_224;
139497 --
139498 
139499 ---------------------------------------
139500 --
139501 -- PRIVATE FUNCTION
139502 --         AcctLineType_225
139503 --
139504 ---------------------------------------
139505 PROCEDURE AcctLineType_225 (
139506   p_application_id        IN NUMBER
139507  ,p_event_id              IN NUMBER
139508  ,p_calculate_acctd_flag  IN VARCHAR2
139509  ,p_calculate_g_l_flag    IN VARCHAR2
139510  ,p_actual_flag           IN OUT VARCHAR2
139511  ,p_balance_type_code     OUT VARCHAR2
139512  ,p_gain_or_loss_ref      OUT VARCHAR2
139513  
139514 --Payment Currency Code
139515  , p_source_13            IN VARCHAR2
139516 --Automatic Offsets Value
139517  , p_source_15            IN VARCHAR2
139518  , p_source_15_meaning    IN VARCHAR2
139519 --Invoice Distribution Account
139520  , p_source_30            IN NUMBER
139521 --Withholding Related Distribution Account
139522  , p_source_43            IN NUMBER
139523 --Accounting Reversal Indicator
139524  , p_source_53            IN VARCHAR2
139525 --Distribution Link Type
139526  , p_source_55            IN VARCHAR2
139527 --Override Accounted Amount Indicator
139528  , p_source_80            IN VARCHAR2
139529  , p_source_80_meaning    IN VARCHAR2
139530 --Third Party Type
139531  , p_source_83            IN VARCHAR2
139535  , p_source_87            IN NUMBER
139532 --Invoice Distribution Tax Line Identifier
139533  , p_source_86            IN NUMBER
139534 --Invoice Distribution Tax Distribution Identifier from Tax
139536 --Invoice Distribution Summary Tax Line Identifier
139537  , p_source_88            IN NUMBER
139538 --Business Flow Accounts Payable Application Identifier
139539  , p_source_91            IN NUMBER
139540 --Business Flow Invoice Distribution Type
139541  , p_source_92            IN VARCHAR2
139542 --Business Flow Invoice Entity Code
139543  , p_source_93            IN VARCHAR2
139544 --Business Flow Invoice Distribution Identifier
139545  , p_source_94            IN NUMBER
139546 --Business Flow Invoice Identifier
139547  , p_source_95            IN NUMBER
139548 --When to Account for Payment Option
139549  , p_source_97            IN VARCHAR2
139550 --Payment Distribution Type
139551  , p_source_98            IN VARCHAR2
139552  , p_source_98_meaning    IN VARCHAR2
139553 --Payment Distribution Amount
139554  , p_source_99            IN NUMBER
139555 --Payment Distribution Identifier
139556  , p_source_104            IN NUMBER
139557 --Payment Supplier Identifier
139558  , p_source_110            IN NUMBER
139559 --Payment Supplier Site Identifier
139560  , p_source_111            IN NUMBER
139561 --Payment Distribution Reversed Identifier
139562  , p_source_112            IN NUMBER
139563 --Payment Distribution (Invoice Rate) Ledger Amount
139564  , p_source_116            IN NUMBER
139565 --Payment Type
139566  , p_source_122            IN VARCHAR2
139567  , p_source_122_meaning    IN VARCHAR2
139568 --Payment Processing Type
139569  , p_source_123            IN VARCHAR2
139570 --Invoice Distribution Amount of the Payment Distribution
139571  , p_source_124            IN NUMBER
139572 --Invoice Exchange Date
139573  , p_source_143            IN DATE
139574 --Invoice Exchange Rate
139575  , p_source_144            IN NUMBER
139576 --Invoice Exchange Rate Type
139577  , p_source_145            IN VARCHAR2
139578 --Withholding at Payment Indicator
139579  , p_source_164            IN VARCHAR2
139580  , p_source_164_meaning    IN VARCHAR2
139581 )
139582 IS
139583 
139584 l_component_type              VARCHAR2(80);
139585 l_component_code              VARCHAR2(30);
139586 l_component_type_code         VARCHAR2(1);
139587 l_component_appl_id           INTEGER;
139588 l_amb_context_code            VARCHAR2(30);
139589 l_entity_code                 VARCHAR2(30);
139590 l_event_class_code            VARCHAR2(30);
139591 l_ae_header_id                NUMBER;
139592 l_event_type_code             VARCHAR2(30);
139593 l_line_definition_code        VARCHAR2(30);
139594 l_line_definition_owner_code  VARCHAR2(1);
139595 --
139596 -- adr variables
139597 l_segment                     VARCHAR2(30);
139598 l_ccid                        NUMBER;
139599 l_adr_transaction_coa_id      NUMBER;
139600 l_adr_accounting_coa_id       NUMBER;
139601 l_adr_flexfield_segment_code  VARCHAR2(30);
139602 l_adr_flex_value_set_id       NUMBER;
139603 l_adr_value_type_code         VARCHAR2(30);
139604 l_adr_value_combination_id    NUMBER;
139605 l_adr_value_segment_code      VARCHAR2(30);
139606 
139607 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
139608 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
139609 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
139610 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
139611 
139612 -- 4262811 Variables ------------------------------------------------------------------------------------------
139613 l_entered_amt_idx             NUMBER;
139614 l_accted_amt_idx              NUMBER;
139615 l_acc_rev_flag                VARCHAR2(1);
139616 l_accrual_line_num            NUMBER;
139617 l_tmp_amt                     NUMBER;
139618 l_acc_rev_natural_side_code   VARCHAR2(1);
139619 
139620 l_num_entries                 NUMBER;
139621 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
139622 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
139623 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
139624 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
139625 l_recog_line_1                NUMBER;
139626 l_recog_line_2                NUMBER;
139627 
139628 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
139629 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
139630 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
139631 
139632 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
139633 
139634 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
139635 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
139636 
139637 ---------------------------------------------------------------------------------------------------------------
139638 
139639 
139640 --
139641 -- bulk performance
139642 --
139643 l_balance_type_code           VARCHAR2(1);
139644 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
139645 l_log_module                  VARCHAR2(240);
139646 
139647 --
139648 -- Upgrade strategy
139649 --
139650 l_actual_upg_option           VARCHAR2(1);
139651 l_enc_upg_option           VARCHAR2(1);
139652 
139653 --
139654 BEGIN
139655 --
139656 IF g_log_enabled THEN
139657       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_225';
139658 END IF;
139659 --
139660 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
139661 
139665          ,p_module   => l_log_module);
139662       trace
139663          (p_msg      => 'BEGIN of AcctLineType_225'
139664          ,p_level    => C_LEVEL_PROCEDURE
139666 
139667 END IF;
139668 --
139669 l_component_type             := 'AMB_JLT';
139670 l_component_code             := 'AP_WITHHOLD_TAX_ACCR_PMT';
139671 l_component_type_code        := 'S';
139672 l_component_appl_id          :=  200;
139673 l_amb_context_code           := 'DEFAULT';
139674 l_entity_code                := 'AP_PAYMENTS';
139675 l_event_class_code           := 'PAYMENTS';
139676 l_event_type_code            := 'PAYMENTS_ALL';
139677 l_line_definition_owner_code := 'S';
139678 l_line_definition_code       := 'ACCRUAL_PAYMENTS_ALL';
139679 --
139680 l_balance_type_code          := 'A';
139681 l_segment                     := NULL;
139682 l_ccid                        := NULL;
139683 l_adr_transaction_coa_id      := NULL;
139684 l_adr_accounting_coa_id       := NULL;
139685 l_adr_flexfield_segment_code  := NULL;
139686 l_adr_flex_value_set_id       := NULL;
139687 l_adr_value_type_code         := NULL;
139688 l_adr_value_combination_id    := NULL;
139689 l_adr_value_segment_code      := NULL;
139690 
139691 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
139692 l_bflow_class_code           := '';    -- 4219869 Business Flow
139693 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
139694 l_budgetary_control_flag     := 'N';
139695 
139696 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
139697 l_bflow_applied_to_amt       := NULL; -- 5132302
139698 l_entered_amt_idx            := NULL;          -- 4262811
139699 l_accted_amt_idx             := NULL;          -- 4262811
139700 l_acc_rev_flag               := NULL;          -- 4262811
139701 l_accrual_line_num           := NULL;          -- 4262811
139702 l_tmp_amt                    := NULL;          -- 4262811
139703 --
139704  
139705 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
139706     l_balance_type_code <> 'B' THEN
139707 IF NVL(p_source_97,'
139708 ') <>  'CLEAR_CLEAR' AND 
139709 NVL(p_source_98,'
139710 ') =  'AWT' AND 
139711 NVL(p_source_164,'
139712 ') =  'Y' AND 
139713 NVL(p_source_122,'
139714 ') <>  'R' AND 
139715 NVL(p_source_123,'
139716 ') <>  'PAYMENTCARD'
139717  THEN 
139718 
139719    --
139720    XLA_AE_LINES_PKG.SetNewLine;
139721 
139722    p_balance_type_code          := l_balance_type_code;
139723    -- set the flag so later we will know whether the gain loss line needs to be created
139724    
139725    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
139726      p_actual_flag :='A';
139727    END IF;
139728 
139729    --
139730    -- bulk performance
139731    --
139732    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
139733                                       p_header_num   => 0); -- 4262811
139734    --
139735    -- set accounting line options
139736    --
139737    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
139738            p_natural_side_code          => 'C'
139739          , p_gain_or_loss_flag          => 'N'
139740          , p_gl_transfer_mode_code      => 'S'
139741          , p_acct_entry_type_code       => 'A'
139742          , p_switch_side_flag           => 'Y'
139743          , p_merge_duplicate_code       => 'A'
139744          );
139745    --
139746    l_acc_rev_natural_side_code := 'D';  -- 4262811
139747    -- 
139748    --
139749    -- set accounting line type info
139750    --
139751    xla_ae_lines_pkg.SetAcctLineType
139752       (p_component_type             => l_component_type
139753       ,p_event_type_code            => l_event_type_code
139754       ,p_line_definition_owner_code => l_line_definition_owner_code
139755       ,p_line_definition_code       => l_line_definition_code
139756       ,p_accounting_line_code       => l_component_code
139757       ,p_accounting_line_type_code  => l_component_type_code
139758       ,p_accounting_line_appl_id    => l_component_appl_id
139759       ,p_amb_context_code           => l_amb_context_code
139760       ,p_entity_code                => l_entity_code
139761       ,p_event_class_code           => l_event_class_code);
139762    --
139763    -- set accounting class
139764    --
139765    xla_ae_lines_pkg.SetAcctClass(
139766            p_accounting_class_code  => 'AWT'
139767          , p_ae_header_id           => l_ae_header_id
139768          );
139769 
139770    --
139771    -- set rounding class
139772    --
139773    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
139774                       'AWT';
139775 
139776    --
139777    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
139778    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
139779    --
139780    -- bulk performance
139781    --
139782    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
139783 
139784    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
139785       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
139786 
139787    -- 4955764
139788    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
139789       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
139790 
139791    -- 4458381 Public Sector Enh
139792    
139793    --
139797    l_accted_amt_idx  := 15;
139794    -- set accounting attributes for the line type
139795    --
139796    l_entered_amt_idx := 10;
139798    l_bflow_applied_to_amt_idx  := 2;  -- 5132302
139799    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
139800    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
139801    l_rec_acct_attrs.array_acct_attr_code(2) := 'APPLIED_TO_AMOUNT';
139802    l_rec_acct_attrs.array_num_value(2)  := p_source_124;
139803    l_rec_acct_attrs.array_acct_attr_code(3) := 'APPLIED_TO_APPLICATION_ID';
139804    l_rec_acct_attrs.array_num_value(3)  := p_source_91;
139805    l_rec_acct_attrs.array_acct_attr_code(4) := 'APPLIED_TO_DISTRIBUTION_TYPE';
139806    l_rec_acct_attrs.array_char_value(4)  := p_source_92;
139807    l_rec_acct_attrs.array_acct_attr_code(5) := 'APPLIED_TO_ENTITY_CODE';
139808    l_rec_acct_attrs.array_char_value(5)  := p_source_93;
139809    l_rec_acct_attrs.array_acct_attr_code(6) := 'APPLIED_TO_FIRST_DIST_ID';
139810    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_94);
139811    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
139812    l_rec_acct_attrs.array_num_value(7)  :=  to_char(p_source_95);
139813    l_rec_acct_attrs.array_acct_attr_code(8) := 'DISTRIBUTION_IDENTIFIER_1';
139814    l_rec_acct_attrs.array_num_value(8)  :=  to_char(p_source_104);
139815    l_rec_acct_attrs.array_acct_attr_code(9) := 'DISTRIBUTION_TYPE';
139816    l_rec_acct_attrs.array_char_value(9)  := p_source_55;
139817    l_rec_acct_attrs.array_acct_attr_code(10) := 'ENTERED_CURRENCY_AMOUNT';
139818    l_rec_acct_attrs.array_num_value(10)  := p_source_99;
139819    l_rec_acct_attrs.array_acct_attr_code(11) := 'ENTERED_CURRENCY_CODE';
139820    l_rec_acct_attrs.array_char_value(11)  := p_source_13;
139821    l_rec_acct_attrs.array_acct_attr_code(12) := 'EXCHANGE_DATE';
139822    l_rec_acct_attrs.array_date_value(12)  := p_source_143;
139823    l_rec_acct_attrs.array_acct_attr_code(13) := 'EXCHANGE_RATE';
139824    l_rec_acct_attrs.array_num_value(13)  := p_source_144;
139825    l_rec_acct_attrs.array_acct_attr_code(14) := 'EXCHANGE_RATE_TYPE';
139826    l_rec_acct_attrs.array_char_value(14)  := p_source_145;
139827    l_rec_acct_attrs.array_acct_attr_code(15) := 'LEDGER_AMOUNT';
139828    l_rec_acct_attrs.array_num_value(15)  := p_source_116;
139829    l_rec_acct_attrs.array_acct_attr_code(16) := 'OVERRIDE_ACCTD_AMT_FLAG';
139830    l_rec_acct_attrs.array_char_value(16)  := p_source_80;
139831    l_rec_acct_attrs.array_acct_attr_code(17) := 'PARTY_ID';
139832    l_rec_acct_attrs.array_num_value(17)  := p_source_110;
139833    l_rec_acct_attrs.array_acct_attr_code(18) := 'PARTY_SITE_ID';
139834    l_rec_acct_attrs.array_num_value(18)  := p_source_111;
139835    l_rec_acct_attrs.array_acct_attr_code(19) := 'PARTY_TYPE';
139836    l_rec_acct_attrs.array_char_value(19)  := p_source_83;
139837    l_rec_acct_attrs.array_acct_attr_code(20) := 'REVERSED_DISTRIBUTION_ID1';
139838    l_rec_acct_attrs.array_num_value(20)  :=  to_char(p_source_112);
139839    l_rec_acct_attrs.array_acct_attr_code(21) := 'REVERSED_DISTRIBUTION_TYPE';
139840    l_rec_acct_attrs.array_char_value(21)  := p_source_55;
139841    l_rec_acct_attrs.array_acct_attr_code(22) := 'TAX_LINE_REF_ID';
139842    l_rec_acct_attrs.array_num_value(22)  := p_source_86;
139843    l_rec_acct_attrs.array_acct_attr_code(23) := 'TAX_REC_NREC_DIST_REF_ID';
139844    l_rec_acct_attrs.array_num_value(23)  := p_source_87;
139845    l_rec_acct_attrs.array_acct_attr_code(24) := 'TAX_SUMMARY_LINE_REF_ID';
139846    l_rec_acct_attrs.array_num_value(24)  := p_source_88;
139847 
139848    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
139849    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
139850 
139851    ---------------------------------------------------------------------------------------------------------------
139852    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
139853    ---------------------------------------------------------------------------------------------------------------
139854    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
139855 
139856    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
139857    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
139858 
139859    IF xla_accounting_cache_pkg.GetValueChar
139860          (p_source_code         => 'LEDGER_CATEGORY_CODE'
139861          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
139862    AND l_bflow_method_code = 'PRIOR_ENTRY'
139863 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
139864    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
139865          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
139866        )
139867    THEN
139868          xla_ae_lines_pkg.BflowUpgEntry
139869            (p_business_method_code    => l_bflow_method_code
139870            ,p_business_class_code     => l_bflow_class_code
139871            ,p_balance_type            => l_balance_type_code);
139872    ELSE
139873       NULL;
139874 -- No business flow processing for business flow method of NONE.
139875    END IF;
139876 
139877    --
139878    -- call analytical criteria
139879    --
139880    
139881    --
139882    -- call description
139883    --
139884    -- No description or it is inherited.
139885    --
139886    -- call ADRs
139887    -- Bug 4922099
139888    --
139889    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
139890         (NVL(l_actual_upg_option, 'N') = 'O') OR
139891         (NVL(l_enc_upg_option, 'N') = 'O')
139895    --
139892       )
139893    THEN
139894    NULL;
139896    --
139897    
139898   l_ccid := AcctDerRule_46(
139899            p_application_id           => p_application_id
139900          , p_ae_header_id             => l_ae_header_id 
139901 , p_source_15 => p_source_15
139902 , p_source_15_meaning => p_source_15_meaning
139903 , p_source_30 => p_source_30
139904 , p_source_43 => p_source_43
139905          , x_transaction_coa_id       => l_adr_transaction_coa_id
139906          , x_accounting_coa_id        => l_adr_accounting_coa_id
139907          , x_value_type_code          => l_adr_value_type_code
139908          , p_side                     => 'NA'
139909    );
139910 
139911    xla_ae_lines_pkg.set_ccid(
139912     p_code_combination_id          => l_ccid
139913   , p_value_type_code              => l_adr_value_type_code
139914   , p_transaction_coa_id           => l_adr_transaction_coa_id
139915   , p_accounting_coa_id            => l_adr_accounting_coa_id
139916   , p_adr_code                     => 'AP_WH_DIST_ACCT'
139917   , p_adr_type_code                => 'S'
139918   , p_component_type               => l_component_type
139919   , p_component_code               => l_component_code
139920   , p_component_type_code          => l_component_type_code
139921   , p_component_appl_id            => l_component_appl_id
139922   , p_amb_context_code             => l_amb_context_code
139923   , p_side                         => 'NA'
139924   );
139925 
139926 
139927    l_segment := AcctDerRule_14(
139928            p_application_id           => p_application_id
139929          , p_ae_header_id             => l_ae_header_id 
139930 , p_source_15 => p_source_15
139931 , p_source_15_meaning => p_source_15_meaning
139932 , p_source_30 => p_source_30
139933          , x_transaction_coa_id       => l_adr_transaction_coa_id
139934          , x_accounting_coa_id        => l_adr_accounting_coa_id
139935          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
139936          , x_flex_value_set_id        => l_adr_flex_value_set_id
139937          , x_value_type_code          => l_adr_value_type_code
139938          , x_value_combination_id     => l_adr_value_combination_id
139939          , x_value_segment_code       => l_adr_value_segment_code
139940          , p_side                     => 'NA'
139941          , p_override_seg_flag        => 'Y'
139942    );
139943 
139944    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
139945 
139946       xla_ae_lines_pkg.set_segment(
139947           p_to_segment_code         => 'GL_ACCOUNT'
139948         , p_segment_value           => l_segment
139949         , p_from_segment_code       => l_adr_value_segment_code
139950         , p_from_combination_id     => l_adr_value_combination_id
139951         , p_value_type_code         => l_adr_value_type_code
139952         , p_transaction_coa_id      => l_adr_transaction_coa_id
139953         , p_accounting_coa_id       => l_adr_accounting_coa_id
139954         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
139955         , p_flex_value_set_id       => l_adr_flex_value_set_id
139956         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
139957         , p_adr_type_code           => 'S'
139958         , p_component_type          => l_component_type
139959         , p_component_code          => l_component_code
139960         , p_component_type_code     => l_component_type_code
139961         , p_component_appl_id       => l_component_appl_id
139962         , p_amb_context_code        => l_amb_context_code
139963         , p_entity_code             => 'AP_PAYMENTS'
139964         , p_event_class_code        => 'PAYMENTS'
139965         , p_side                    => 'NA'
139966         );
139967 
139968   END IF;
139969 
139970    l_segment := AcctDerRule_25(
139971            p_application_id           => p_application_id
139972          , p_ae_header_id             => l_ae_header_id 
139973 , p_source_15 => p_source_15
139974 , p_source_15_meaning => p_source_15_meaning
139975 , p_source_43 => p_source_43
139976          , x_transaction_coa_id       => l_adr_transaction_coa_id
139977          , x_accounting_coa_id        => l_adr_accounting_coa_id
139978          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
139979          , x_flex_value_set_id        => l_adr_flex_value_set_id
139980          , x_value_type_code          => l_adr_value_type_code
139981          , x_value_combination_id     => l_adr_value_combination_id
139982          , x_value_segment_code       => l_adr_value_segment_code
139983          , p_side                     => 'NA'
139984          , p_override_seg_flag        => 'Y'
139985    );
139986 
139987    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
139988 
139989       xla_ae_lines_pkg.set_segment(
139990           p_to_segment_code         => 'GL_BALANCING'
139991         , p_segment_value           => l_segment
139992         , p_from_segment_code       => l_adr_value_segment_code
139993         , p_from_combination_id     => l_adr_value_combination_id
139994         , p_value_type_code         => l_adr_value_type_code
139995         , p_transaction_coa_id      => l_adr_transaction_coa_id
139996         , p_accounting_coa_id       => l_adr_accounting_coa_id
139997         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
139998         , p_flex_value_set_id       => l_adr_flex_value_set_id
139999         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
140000         , p_adr_type_code           => 'S'
140001         , p_component_type          => l_component_type
140002         , p_component_code          => l_component_code
140003         , p_component_type_code     => l_component_type_code
140007         , p_event_class_code        => 'PAYMENTS'
140004         , p_component_appl_id       => l_component_appl_id
140005         , p_amb_context_code        => l_amb_context_code
140006         , p_entity_code             => 'AP_PAYMENTS'
140008         , p_side                    => 'NA'
140009         );
140010 
140011   END IF;
140012 
140013    --
140014    --
140015    END IF;
140016    --
140017    -- Bug 4922099
140018    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
140019           (NVL(l_enc_upg_option, 'N') = 'O')
140020         ) AND
140021         (l_bflow_method_code = 'PRIOR_ENTRY')
140022       )
140023    THEN
140024       IF
140025       --
140026       1 = 2
140027       --
140028       THEN
140029       xla_accounting_err_pkg.build_message
140030                                     (p_appli_s_name            => 'XLA'
140031                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
140032                                     ,p_token_1                 => 'LINE_NUMBER'
140033                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
140034                                     ,p_token_2                 => 'LINE_TYPE_NAME'
140035                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
140036                                                                              l_component_type
140037                                                                             ,l_component_code
140038                                                                             ,l_component_type_code
140039                                                                             ,l_component_appl_id
140040                                                                             ,l_amb_context_code
140041                                                                             ,l_entity_code
140042                                                                             ,l_event_class_code
140043                                                                            )
140044                                     ,p_token_3                 => 'OWNER'
140045                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
140046                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
140047                                                                           ,p_lookup_code    => l_component_type_code
140048                                                                          )
140049                                     ,p_token_4                 => 'PRODUCT_NAME'
140050                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
140051                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
140052                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
140053                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
140054                                     ,p_ae_header_id            =>  NULL
140055                                        );
140056 
140057         IF (C_LEVEL_ERROR>= g_log_level) THEN
140058                  trace
140059                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
140060                       ,p_level    => C_LEVEL_ERROR
140061                       ,p_module   => l_log_module);
140062         END IF;
140063       END IF;
140064    END IF;
140065    --
140066    --
140067    ------------------------------------------------------------------------------------------------
140068    -- 4219869 Business Flow
140069    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
140070    -- Prior Entry.  Currently, the following code is always generated.
140071    ------------------------------------------------------------------------------------------------
140072    XLA_AE_LINES_PKG.ValidateCurrentLine;
140073 
140074    ------------------------------------------------------------------------------------
140075    -- 4219869 Business Flow
140076    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
140077    ------------------------------------------------------------------------------------
140078    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
140079 
140080    ----------------------------------------------------------------------------------
140081    -- 4219869 Business Flow
140082    -- Update journal entry status -- Need to generate this within IF <condition>
140083    ----------------------------------------------------------------------------------
140084    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
140085          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
140086          ,p_balance_type_code => l_balance_type_code
140087          );
140088 
140089    -------------------------------------------------------------------------------------------
140090    -- 4262811 - Generate the Accrual Reversal lines
140091    -------------------------------------------------------------------------------------------
140092    BEGIN
140093       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
140094                               (g_array_event(p_event_id).array_value_num('header_index'));
140095       IF l_acc_rev_flag IS NULL THEN
140096          l_acc_rev_flag := 'N';
140097       END IF;
140098    EXCEPTION
140099       WHEN OTHERS THEN
140100          l_acc_rev_flag := 'N';
140101    END;
140102    --
140106        -- To allow MPA report to determine if it should generate report process
140103    IF (l_acc_rev_flag = 'Y') THEN
140104 
140105        -- 4645092  ------------------------------------------------------------------------------
140107        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
140108        ------------------------------------------------------------------------------------------
140109 
140110        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
140111        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
140112    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
140113    -- call ADRs
140114    -- Bug 4922099
140115    --
140116    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
140117         (NVL(l_actual_upg_option, 'N') = 'O') OR
140118         (NVL(l_enc_upg_option, 'N') = 'O')
140119       )
140120    THEN
140121    NULL;
140122    --
140123    --
140124    
140125   l_ccid := AcctDerRule_46(
140126            p_application_id           => p_application_id
140127          , p_ae_header_id             => l_ae_header_id 
140128 , p_source_15 => p_source_15
140129 , p_source_15_meaning => p_source_15_meaning
140130 , p_source_30 => p_source_30
140131 , p_source_43 => p_source_43
140132          , x_transaction_coa_id       => l_adr_transaction_coa_id
140133          , x_accounting_coa_id        => l_adr_accounting_coa_id
140134          , x_value_type_code          => l_adr_value_type_code
140135          , p_side                     => 'NA'
140136    );
140137 
140138    xla_ae_lines_pkg.set_ccid(
140139     p_code_combination_id          => l_ccid
140140   , p_value_type_code              => l_adr_value_type_code
140141   , p_transaction_coa_id           => l_adr_transaction_coa_id
140142   , p_accounting_coa_id            => l_adr_accounting_coa_id
140143   , p_adr_code                     => 'AP_WH_DIST_ACCT'
140144   , p_adr_type_code                => 'S'
140145   , p_component_type               => l_component_type
140146   , p_component_code               => l_component_code
140147   , p_component_type_code          => l_component_type_code
140148   , p_component_appl_id            => l_component_appl_id
140149   , p_amb_context_code             => l_amb_context_code
140150   , p_side                         => 'NA'
140151   );
140152 
140153 
140154    l_segment := AcctDerRule_14(
140155            p_application_id           => p_application_id
140156          , p_ae_header_id             => l_ae_header_id 
140157 , p_source_15 => p_source_15
140158 , p_source_15_meaning => p_source_15_meaning
140159 , p_source_30 => p_source_30
140160          , x_transaction_coa_id       => l_adr_transaction_coa_id
140161          , x_accounting_coa_id        => l_adr_accounting_coa_id
140162          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
140163          , x_flex_value_set_id        => l_adr_flex_value_set_id
140164          , x_value_type_code          => l_adr_value_type_code
140165          , x_value_combination_id     => l_adr_value_combination_id
140166          , x_value_segment_code       => l_adr_value_segment_code
140167          , p_side                     => 'NA'
140168          , p_override_seg_flag        => 'Y'
140169    );
140170 
140171    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
140172 
140173       xla_ae_lines_pkg.set_segment(
140174           p_to_segment_code         => 'GL_ACCOUNT'
140175         , p_segment_value           => l_segment
140176         , p_from_segment_code       => l_adr_value_segment_code
140177         , p_from_combination_id     => l_adr_value_combination_id
140178         , p_value_type_code         => l_adr_value_type_code
140179         , p_transaction_coa_id      => l_adr_transaction_coa_id
140180         , p_accounting_coa_id       => l_adr_accounting_coa_id
140181         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
140182         , p_flex_value_set_id       => l_adr_flex_value_set_id
140183         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
140184         , p_adr_type_code           => 'S'
140185         , p_component_type          => l_component_type
140186         , p_component_code          => l_component_code
140187         , p_component_type_code     => l_component_type_code
140188         , p_component_appl_id       => l_component_appl_id
140189         , p_amb_context_code        => l_amb_context_code
140190         , p_entity_code             => 'AP_PAYMENTS'
140191         , p_event_class_code        => 'PAYMENTS'
140192         , p_side                    => 'NA'
140193         );
140194 
140195   END IF;
140196 
140197    l_segment := AcctDerRule_25(
140198            p_application_id           => p_application_id
140199          , p_ae_header_id             => l_ae_header_id 
140200 , p_source_15 => p_source_15
140201 , p_source_15_meaning => p_source_15_meaning
140202 , p_source_43 => p_source_43
140203          , x_transaction_coa_id       => l_adr_transaction_coa_id
140204          , x_accounting_coa_id        => l_adr_accounting_coa_id
140205          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
140206          , x_flex_value_set_id        => l_adr_flex_value_set_id
140207          , x_value_type_code          => l_adr_value_type_code
140208          , x_value_combination_id     => l_adr_value_combination_id
140209          , x_value_segment_code       => l_adr_value_segment_code
140210          , p_side                     => 'NA'
140211          , p_override_seg_flag        => 'Y'
140212    );
140213 
140214    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
140215 
140219         , p_from_segment_code       => l_adr_value_segment_code
140216       xla_ae_lines_pkg.set_segment(
140217           p_to_segment_code         => 'GL_BALANCING'
140218         , p_segment_value           => l_segment
140220         , p_from_combination_id     => l_adr_value_combination_id
140221         , p_value_type_code         => l_adr_value_type_code
140222         , p_transaction_coa_id      => l_adr_transaction_coa_id
140223         , p_accounting_coa_id       => l_adr_accounting_coa_id
140224         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
140225         , p_flex_value_set_id       => l_adr_flex_value_set_id
140226         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
140227         , p_adr_type_code           => 'S'
140228         , p_component_type          => l_component_type
140229         , p_component_code          => l_component_code
140230         , p_component_type_code     => l_component_type_code
140231         , p_component_appl_id       => l_component_appl_id
140232         , p_amb_context_code        => l_amb_context_code
140233         , p_entity_code             => 'AP_PAYMENTS'
140234         , p_event_class_code        => 'PAYMENTS'
140235         , p_side                    => 'NA'
140236         );
140237 
140238   END IF;
140239 
140240    --
140241    --
140242    END IF;
140243 
140244        --
140245        -- Update the line information that should be overwritten
140246        --
140247        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
140248                                          p_header_num   => 1);
140249        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
140250 
140251        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
140252 
140253        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
140254           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
140255        END IF;
140256 
140257       --
140258       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
140259       --
140260       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
140261           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
140262       ELSE
140263           ---------------------------------------------------------------------------------------------------
140264           -- 4262811a Switch Sign
140265           ---------------------------------------------------------------------------------------------------
140266           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
140267           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
140268                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
140269           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
140270                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
140271           -- 5132302
140272           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
140273                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
140274 
140275       END IF;
140276 
140277       -- 4955764
140278       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
140279       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
140280 
140281 
140282       XLA_AE_LINES_PKG.ValidateCurrentLine;
140283       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
140284 
140285       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
140286                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
140287                ,p_balance_type_code => l_balance_type_code);
140288 
140289    END IF;
140290 
140291    -----------------------------------------------------------------------------------------
140292    -- 4262811 Multiperiod Accounting
140293    -----------------------------------------------------------------------------------------
140294      -- No MPA option is assigned.
140295 
140296 
140297 END IF;
140298 END IF;
140299 --
140300 
140301 --
140302 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
140303    trace
140304       (p_msg      => 'END of AcctLineType_225'
140305       ,p_level    => C_LEVEL_PROCEDURE
140306       ,p_module   => l_log_module);
140307 END IF;
140308 --
140309 EXCEPTION
140310   WHEN xla_exceptions_pkg.application_exception THEN
140311       RAISE;
140312   WHEN OTHERS THEN
140313        xla_exceptions_pkg.raise_message
140314            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_225');
140315 END AcctLineType_225;
140316 --
140317 
140318 ---------------------------------------
140319 --
140320 -- PRIVATE FUNCTION
140321 --         AcctLineType_226
140322 --
140323 ---------------------------------------
140324 PROCEDURE AcctLineType_226 (
140325   p_application_id        IN NUMBER
140326  ,p_event_id              IN NUMBER
140327  ,p_calculate_acctd_flag  IN VARCHAR2
140328  ,p_calculate_g_l_flag    IN VARCHAR2
140329  ,p_actual_flag           IN OUT VARCHAR2
140330  ,p_balance_type_code     OUT VARCHAR2
140331  ,p_gain_or_loss_ref      OUT VARCHAR2
140332  
140333 --Invoice Distribution Description
140337  , p_source_15_meaning    IN VARCHAR2
140334  , p_source_1            IN VARCHAR2
140335 --Automatic Offsets Value
140336  , p_source_15            IN VARCHAR2
140338 --Invoice Distribution Ledger Amount
140339  , p_source_21            IN NUMBER
140340 --Invoice Distribution Account
140341  , p_source_30            IN NUMBER
140342 --Invoice Distribution Type
140343  , p_source_33            IN VARCHAR2
140344  , p_source_33_meaning    IN VARCHAR2
140345 --Withholding Related Distribution Account
140346  , p_source_43            IN NUMBER
140347 --Accounting Reversal Indicator
140348  , p_source_53            IN VARCHAR2
140349 --Distribution Link Type
140350  , p_source_55            IN VARCHAR2
140351 --Allocation to Main Distribution Identifier
140352  , p_source_57            IN NUMBER
140353 --Invoice Identifier
140354  , p_source_58            IN NUMBER
140355 --Invoice Distribution Identifier
140356  , p_source_64            IN NUMBER
140357 --Payables Encumbrance Upgrade Credit Account
140358  , p_source_65            IN NUMBER
140359 --Payables Encumbrance Upgrade Credit Amount
140360  , p_source_66            IN NUMBER
140361 --Invoice Currency Code
140362  , p_source_67            IN VARCHAR2
140363 --Payables Encumbrance Upgrade Credit Base Amount
140364  , p_source_68            IN NUMBER
140365 --Payables Encumbrance Upgrade Debit Account
140366  , p_source_69            IN NUMBER
140367 --Payables Encumbrance Upgrade Debit Amount
140368  , p_source_70            IN NUMBER
140369 --Payables Encumbrance Upgrade Debit Base Amount
140370  , p_source_71            IN NUMBER
140371 --Payables Encumbrance Upgrade Option
140372  , p_source_72            IN VARCHAR2
140373 --Invoice Distribution Amount
140374  , p_source_73            IN NUMBER
140375 --Deferred Accounting End Date
140376  , p_source_77            IN DATE
140377 --Deferred Accounting Option
140378  , p_source_78            IN VARCHAR2
140379 --Deferred Accounting Start Date
140380  , p_source_79            IN DATE
140381 --Override Accounted Amount Indicator
140382  , p_source_80            IN VARCHAR2
140383  , p_source_80_meaning    IN VARCHAR2
140384 --Invoice Supplier Identifier
140385  , p_source_81            IN NUMBER
140386 --Invoice Supplier Site Identifier
140387  , p_source_82            IN NUMBER
140388 --Third Party Type
140389  , p_source_83            IN VARCHAR2
140390 --Parent Reversal Identifier
140391  , p_source_84            IN NUMBER
140392 --Invoice Distribution Statistical Amount
140393  , p_source_85            IN NUMBER
140394 --Invoice Distribution Tax Line Identifier
140395  , p_source_86            IN NUMBER
140396 --Invoice Distribution Tax Distribution Identifier from Tax
140397  , p_source_87            IN NUMBER
140398 --Invoice Distribution Summary Tax Line Identifier
140399  , p_source_88            IN NUMBER
140400 --Payables Upgrade Credit Encumbrance Type Identifier
140401  , p_source_89            IN NUMBER
140402 --Payables Upgrade Debit Encumbrance Type Identifier
140403  , p_source_90            IN NUMBER
140404 --Business Flow Accounts Payable Application Identifier
140405  , p_source_91            IN NUMBER
140406 --Business Flow Invoice Distribution Type
140407  , p_source_92            IN VARCHAR2
140408 --Business Flow Invoice Entity Code
140409  , p_source_93            IN VARCHAR2
140410 --Business Flow Invoice Distribution Identifier
140411  , p_source_94            IN NUMBER
140412 --Business Flow Invoice Identifier
140413  , p_source_95            IN NUMBER
140414 --Invoice Exchange Date
140415  , p_source_143            IN DATE
140416 --Invoice Exchange Rate
140417  , p_source_144            IN NUMBER
140418 --Invoice Exchange Rate Type
140419  , p_source_145            IN VARCHAR2
140420 )
140421 IS
140422 
140423 l_component_type              VARCHAR2(80);
140424 l_component_code              VARCHAR2(30);
140425 l_component_type_code         VARCHAR2(1);
140426 l_component_appl_id           INTEGER;
140427 l_amb_context_code            VARCHAR2(30);
140428 l_entity_code                 VARCHAR2(30);
140429 l_event_class_code            VARCHAR2(30);
140430 l_ae_header_id                NUMBER;
140431 l_event_type_code             VARCHAR2(30);
140432 l_line_definition_code        VARCHAR2(30);
140433 l_line_definition_owner_code  VARCHAR2(1);
140434 --
140435 -- adr variables
140436 l_segment                     VARCHAR2(30);
140437 l_ccid                        NUMBER;
140438 l_adr_transaction_coa_id      NUMBER;
140439 l_adr_accounting_coa_id       NUMBER;
140440 l_adr_flexfield_segment_code  VARCHAR2(30);
140441 l_adr_flex_value_set_id       NUMBER;
140442 l_adr_value_type_code         VARCHAR2(30);
140443 l_adr_value_combination_id    NUMBER;
140444 l_adr_value_segment_code      VARCHAR2(30);
140445 
140446 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
140447 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
140448 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
140449 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
140450 
140451 -- 4262811 Variables ------------------------------------------------------------------------------------------
140452 l_entered_amt_idx             NUMBER;
140453 l_accted_amt_idx              NUMBER;
140454 l_acc_rev_flag                VARCHAR2(1);
140455 l_accrual_line_num            NUMBER;
140456 l_tmp_amt                     NUMBER;
140457 l_acc_rev_natural_side_code   VARCHAR2(1);
140458 
140459 l_num_entries                 NUMBER;
140460 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
140464 l_recog_line_1                NUMBER;
140461 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
140462 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
140463 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
140465 l_recog_line_2                NUMBER;
140466 
140467 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
140468 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
140469 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
140470 
140471 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
140472 
140473 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
140474 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
140475 
140476 ---------------------------------------------------------------------------------------------------------------
140477 
140478 
140479 --
140480 -- bulk performance
140481 --
140482 l_balance_type_code           VARCHAR2(1);
140483 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
140484 l_log_module                  VARCHAR2(240);
140485 
140486 --
140487 -- Upgrade strategy
140488 --
140489 l_actual_upg_option           VARCHAR2(1);
140490 l_enc_upg_option           VARCHAR2(1);
140491 
140492 --
140493 BEGIN
140494 --
140495 IF g_log_enabled THEN
140496       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_226';
140497 END IF;
140498 --
140499 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
140500 
140501       trace
140502          (p_msg      => 'BEGIN of AcctLineType_226'
140503          ,p_level    => C_LEVEL_PROCEDURE
140504          ,p_module   => l_log_module);
140505 
140506 END IF;
140507 --
140508 l_component_type             := 'AMB_JLT';
140509 l_component_code             := 'AP_WITHHOLD_TAX_CM';
140510 l_component_type_code        := 'S';
140511 l_component_appl_id          :=  200;
140512 l_amb_context_code           := 'DEFAULT';
140513 l_entity_code                := 'AP_INVOICES';
140514 l_event_class_code           := 'CREDIT MEMOS';
140515 l_event_type_code            := 'CREDIT MEMOS_ALL';
140516 l_line_definition_owner_code := 'S';
140517 l_line_definition_code       := 'ACCRUAL_CREDIT MEMOS_ALL';
140518 --
140519 l_balance_type_code          := 'A';
140520 l_segment                     := NULL;
140521 l_ccid                        := NULL;
140522 l_adr_transaction_coa_id      := NULL;
140523 l_adr_accounting_coa_id       := NULL;
140524 l_adr_flexfield_segment_code  := NULL;
140525 l_adr_flex_value_set_id       := NULL;
140526 l_adr_value_type_code         := NULL;
140527 l_adr_value_combination_id    := NULL;
140528 l_adr_value_segment_code      := NULL;
140529 
140530 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
140531 l_bflow_class_code           := '';    -- 4219869 Business Flow
140532 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
140533 l_budgetary_control_flag     := 'N';
140534 
140535 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
140536 l_bflow_applied_to_amt       := NULL; -- 5132302
140537 l_entered_amt_idx            := NULL;          -- 4262811
140538 l_accted_amt_idx             := NULL;          -- 4262811
140539 l_acc_rev_flag               := NULL;          -- 4262811
140540 l_accrual_line_num           := NULL;          -- 4262811
140541 l_tmp_amt                    := NULL;          -- 4262811
140542 --
140543  
140544 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
140545     l_balance_type_code <> 'B' THEN
140546 IF NVL(p_source_33,'
140547 ') =  'AWT'
140548  THEN 
140549 
140550    --
140551    XLA_AE_LINES_PKG.SetNewLine;
140552 
140553    p_balance_type_code          := l_balance_type_code;
140554    -- set the flag so later we will know whether the gain loss line needs to be created
140555    
140556    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
140557      p_actual_flag :='A';
140558    END IF;
140559 
140560    --
140561    -- bulk performance
140562    --
140563    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
140564                                       p_header_num   => 0); -- 4262811
140565    --
140566    -- set accounting line options
140567    --
140568    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
140569            p_natural_side_code          => 'D'
140570          , p_gain_or_loss_flag          => 'N'
140571          , p_gl_transfer_mode_code      => 'S'
140572          , p_acct_entry_type_code       => 'A'
140573          , p_switch_side_flag           => 'Y'
140574          , p_merge_duplicate_code       => 'A'
140575          );
140576    --
140577    l_acc_rev_natural_side_code := 'C';  -- 4262811
140578    -- 
140579    --
140580    -- set accounting line type info
140581    --
140582    xla_ae_lines_pkg.SetAcctLineType
140583       (p_component_type             => l_component_type
140584       ,p_event_type_code            => l_event_type_code
140585       ,p_line_definition_owner_code => l_line_definition_owner_code
140586       ,p_line_definition_code       => l_line_definition_code
140587       ,p_accounting_line_code       => l_component_code
140588       ,p_accounting_line_type_code  => l_component_type_code
140589       ,p_accounting_line_appl_id    => l_component_appl_id
140590       ,p_amb_context_code           => l_amb_context_code
140591       ,p_entity_code                => l_entity_code
140595    --
140592       ,p_event_class_code           => l_event_class_code);
140593    --
140594    -- set accounting class
140596    xla_ae_lines_pkg.SetAcctClass(
140597            p_accounting_class_code  => 'AWT'
140598          , p_ae_header_id           => l_ae_header_id
140599          );
140600 
140601    --
140602    -- set rounding class
140603    --
140604    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
140605                       'AWT';
140606 
140607    --
140608    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
140609    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
140610    --
140611    -- bulk performance
140612    --
140613    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
140614 
140615    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
140616       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
140617 
140618    -- 4955764
140619    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
140620       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
140621 
140622    -- 4458381 Public Sector Enh
140623    
140624    --
140625    -- set accounting attributes for the line type
140626    --
140627    l_entered_amt_idx := 23;
140628    l_accted_amt_idx  := 28;
140629    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
140630    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
140631    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
140632    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
140633    l_rec_acct_attrs.array_num_value(2)  := 
140634 xla_ae_sources_pkg.GetSystemSourceNum(
140635    p_source_code           => 'XLA_EVENT_APPL_ID'
140636  , p_source_type_code      => 'Y'
140637  , p_source_application_id =>  602
140638 );
140639    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
140640    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
140641    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
140642    l_rec_acct_attrs.array_char_value(4)  := 
140643 xla_ae_sources_pkg.GetSystemSourceChar(
140644    p_source_code           => 'XLA_ENTITY_CODE'
140645  , p_source_type_code      => 'Y'
140646  , p_source_application_id =>  602
140647 );
140648    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
140649    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
140650    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
140651    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
140652    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
140653    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
140654    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
140655    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
140656    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
140657    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
140658    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
140659    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
140660    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
140661    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
140662    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
140663    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
140664    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
140665    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
140666    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
140667    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
140668    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
140669    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
140670    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
140671    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
140672    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
140673    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
140674    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
140675    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
140676    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
140677    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
140678    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
140679    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
140680    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
140681    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
140682    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
140683    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
140684    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
140685    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
140686    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
140687    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
140688    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
140689    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
140690    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
140691    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
140692    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
140696    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
140693    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
140694    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
140695    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
140697    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
140698    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
140699    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
140700    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
140701    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
140702    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
140703    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
140704    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
140705    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
140706    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
140707    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
140708    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
140709    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
140710    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
140711    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
140712    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
140713    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
140714    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
140715    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
140716    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
140717    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
140718    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
140719    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
140720    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
140721    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
140722    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
140723    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
140724    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
140725    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
140726 
140727    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
140728    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
140729 
140730    ---------------------------------------------------------------------------------------------------------------
140731    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
140732    ---------------------------------------------------------------------------------------------------------------
140733    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
140734 
140735    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
140736    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
140737 
140738    IF xla_accounting_cache_pkg.GetValueChar
140739          (p_source_code         => 'LEDGER_CATEGORY_CODE'
140740          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
140741    AND l_bflow_method_code = 'PRIOR_ENTRY'
140742 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
140743    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
140744          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
140745        )
140746    THEN
140747          xla_ae_lines_pkg.BflowUpgEntry
140748            (p_business_method_code    => l_bflow_method_code
140749            ,p_business_class_code     => l_bflow_class_code
140750            ,p_balance_type            => l_balance_type_code);
140751    ELSE
140752       NULL;
140753 -- No business flow processing for business flow method of NONE.
140754    END IF;
140755 
140756    --
140757    -- call analytical criteria
140758    --
140759    
140760    --
140761    -- call description
140762    --
140763    
140764 xla_ae_lines_pkg.SetLineDescription(
140765    p_ae_header_id => l_ae_header_id
140766   ,p_description  => Description_1 (
140767      p_application_id         => p_application_id
140768    , p_ae_header_id           => l_ae_header_id 
140769 , p_source_1 => p_source_1
140770    )
140771 );
140772 
140773 
140774    --
140775    -- call ADRs
140776    -- Bug 4922099
140777    --
140778    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
140779         (NVL(l_actual_upg_option, 'N') = 'O') OR
140780         (NVL(l_enc_upg_option, 'N') = 'O')
140781       )
140782    THEN
140783    NULL;
140784    --
140785    --
140786    
140787   l_ccid := AcctDerRule_46(
140788            p_application_id           => p_application_id
140789          , p_ae_header_id             => l_ae_header_id 
140790 , p_source_15 => p_source_15
140791 , p_source_15_meaning => p_source_15_meaning
140792 , p_source_30 => p_source_30
140793 , p_source_43 => p_source_43
140794          , x_transaction_coa_id       => l_adr_transaction_coa_id
140795          , x_accounting_coa_id        => l_adr_accounting_coa_id
140796          , x_value_type_code          => l_adr_value_type_code
140797          , p_side                     => 'NA'
140798    );
140799 
140800    xla_ae_lines_pkg.set_ccid(
140801     p_code_combination_id          => l_ccid
140802   , p_value_type_code              => l_adr_value_type_code
140803   , p_transaction_coa_id           => l_adr_transaction_coa_id
140807   , p_component_type               => l_component_type
140804   , p_accounting_coa_id            => l_adr_accounting_coa_id
140805   , p_adr_code                     => 'AP_WH_DIST_ACCT'
140806   , p_adr_type_code                => 'S'
140808   , p_component_code               => l_component_code
140809   , p_component_type_code          => l_component_type_code
140810   , p_component_appl_id            => l_component_appl_id
140811   , p_amb_context_code             => l_amb_context_code
140812   , p_side                         => 'NA'
140813   );
140814 
140815 
140816    l_segment := AcctDerRule_14(
140817            p_application_id           => p_application_id
140818          , p_ae_header_id             => l_ae_header_id 
140819 , p_source_15 => p_source_15
140820 , p_source_15_meaning => p_source_15_meaning
140821 , p_source_30 => p_source_30
140822          , x_transaction_coa_id       => l_adr_transaction_coa_id
140823          , x_accounting_coa_id        => l_adr_accounting_coa_id
140824          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
140825          , x_flex_value_set_id        => l_adr_flex_value_set_id
140826          , x_value_type_code          => l_adr_value_type_code
140827          , x_value_combination_id     => l_adr_value_combination_id
140828          , x_value_segment_code       => l_adr_value_segment_code
140829          , p_side                     => 'NA'
140830          , p_override_seg_flag        => 'Y'
140831    );
140832 
140833    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
140834 
140835       xla_ae_lines_pkg.set_segment(
140836           p_to_segment_code         => 'GL_ACCOUNT'
140837         , p_segment_value           => l_segment
140838         , p_from_segment_code       => l_adr_value_segment_code
140839         , p_from_combination_id     => l_adr_value_combination_id
140840         , p_value_type_code         => l_adr_value_type_code
140841         , p_transaction_coa_id      => l_adr_transaction_coa_id
140842         , p_accounting_coa_id       => l_adr_accounting_coa_id
140843         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
140844         , p_flex_value_set_id       => l_adr_flex_value_set_id
140845         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
140846         , p_adr_type_code           => 'S'
140847         , p_component_type          => l_component_type
140848         , p_component_code          => l_component_code
140849         , p_component_type_code     => l_component_type_code
140850         , p_component_appl_id       => l_component_appl_id
140851         , p_amb_context_code        => l_amb_context_code
140852         , p_entity_code             => 'AP_INVOICES'
140853         , p_event_class_code        => 'CREDIT MEMOS'
140854         , p_side                    => 'NA'
140855         );
140856 
140857   END IF;
140858 
140859    l_segment := AcctDerRule_25(
140860            p_application_id           => p_application_id
140861          , p_ae_header_id             => l_ae_header_id 
140862 , p_source_15 => p_source_15
140863 , p_source_15_meaning => p_source_15_meaning
140864 , p_source_43 => p_source_43
140865          , x_transaction_coa_id       => l_adr_transaction_coa_id
140866          , x_accounting_coa_id        => l_adr_accounting_coa_id
140867          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
140868          , x_flex_value_set_id        => l_adr_flex_value_set_id
140869          , x_value_type_code          => l_adr_value_type_code
140870          , x_value_combination_id     => l_adr_value_combination_id
140871          , x_value_segment_code       => l_adr_value_segment_code
140872          , p_side                     => 'NA'
140873          , p_override_seg_flag        => 'Y'
140874    );
140875 
140876    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
140877 
140878       xla_ae_lines_pkg.set_segment(
140879           p_to_segment_code         => 'GL_BALANCING'
140880         , p_segment_value           => l_segment
140881         , p_from_segment_code       => l_adr_value_segment_code
140882         , p_from_combination_id     => l_adr_value_combination_id
140883         , p_value_type_code         => l_adr_value_type_code
140884         , p_transaction_coa_id      => l_adr_transaction_coa_id
140885         , p_accounting_coa_id       => l_adr_accounting_coa_id
140886         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
140887         , p_flex_value_set_id       => l_adr_flex_value_set_id
140888         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
140889         , p_adr_type_code           => 'S'
140890         , p_component_type          => l_component_type
140891         , p_component_code          => l_component_code
140892         , p_component_type_code     => l_component_type_code
140893         , p_component_appl_id       => l_component_appl_id
140894         , p_amb_context_code        => l_amb_context_code
140895         , p_entity_code             => 'AP_INVOICES'
140896         , p_event_class_code        => 'CREDIT MEMOS'
140897         , p_side                    => 'NA'
140898         );
140899 
140900   END IF;
140901 
140902    --
140903    --
140904    END IF;
140905    --
140906    -- Bug 4922099
140907    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
140908           (NVL(l_enc_upg_option, 'N') = 'O')
140909         ) AND
140910         (l_bflow_method_code = 'PRIOR_ENTRY')
140911       )
140912    THEN
140913       IF
140914       --
140915       1 = 2
140916       --
140917       THEN
140918       xla_accounting_err_pkg.build_message
140922                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
140919                                     (p_appli_s_name            => 'XLA'
140920                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
140921                                     ,p_token_1                 => 'LINE_NUMBER'
140923                                     ,p_token_2                 => 'LINE_TYPE_NAME'
140924                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
140925                                                                              l_component_type
140926                                                                             ,l_component_code
140927                                                                             ,l_component_type_code
140928                                                                             ,l_component_appl_id
140929                                                                             ,l_amb_context_code
140930                                                                             ,l_entity_code
140931                                                                             ,l_event_class_code
140932                                                                            )
140933                                     ,p_token_3                 => 'OWNER'
140934                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
140935                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
140936                                                                           ,p_lookup_code    => l_component_type_code
140937                                                                          )
140938                                     ,p_token_4                 => 'PRODUCT_NAME'
140939                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
140940                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
140941                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
140942                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
140943                                     ,p_ae_header_id            =>  NULL
140944                                        );
140945 
140946         IF (C_LEVEL_ERROR>= g_log_level) THEN
140947                  trace
140948                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
140949                       ,p_level    => C_LEVEL_ERROR
140950                       ,p_module   => l_log_module);
140951         END IF;
140952       END IF;
140953    END IF;
140954    --
140955    --
140956    ------------------------------------------------------------------------------------------------
140957    -- 4219869 Business Flow
140958    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
140959    -- Prior Entry.  Currently, the following code is always generated.
140960    ------------------------------------------------------------------------------------------------
140961    XLA_AE_LINES_PKG.ValidateCurrentLine;
140962 
140963    ------------------------------------------------------------------------------------
140964    -- 4219869 Business Flow
140965    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
140966    ------------------------------------------------------------------------------------
140967    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
140968 
140969    ----------------------------------------------------------------------------------
140970    -- 4219869 Business Flow
140971    -- Update journal entry status -- Need to generate this within IF <condition>
140972    ----------------------------------------------------------------------------------
140973    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
140974          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
140975          ,p_balance_type_code => l_balance_type_code
140976          );
140977 
140978    -------------------------------------------------------------------------------------------
140979    -- 4262811 - Generate the Accrual Reversal lines
140980    -------------------------------------------------------------------------------------------
140981    BEGIN
140982       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
140983                               (g_array_event(p_event_id).array_value_num('header_index'));
140984       IF l_acc_rev_flag IS NULL THEN
140985          l_acc_rev_flag := 'N';
140986       END IF;
140987    EXCEPTION
140988       WHEN OTHERS THEN
140989          l_acc_rev_flag := 'N';
140990    END;
140991    --
140992    IF (l_acc_rev_flag = 'Y') THEN
140993 
140994        -- 4645092  ------------------------------------------------------------------------------
140995        -- To allow MPA report to determine if it should generate report process
140996        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
140997        ------------------------------------------------------------------------------------------
140998 
140999        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
141000        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
141001    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
141002    -- call ADRs
141003    -- Bug 4922099
141004    --
141005    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
141006         (NVL(l_actual_upg_option, 'N') = 'O') OR
141010    NULL;
141007         (NVL(l_enc_upg_option, 'N') = 'O')
141008       )
141009    THEN
141011    --
141012    --
141013    
141014   l_ccid := AcctDerRule_46(
141015            p_application_id           => p_application_id
141016          , p_ae_header_id             => l_ae_header_id 
141017 , p_source_15 => p_source_15
141018 , p_source_15_meaning => p_source_15_meaning
141019 , p_source_30 => p_source_30
141020 , p_source_43 => p_source_43
141021          , x_transaction_coa_id       => l_adr_transaction_coa_id
141022          , x_accounting_coa_id        => l_adr_accounting_coa_id
141023          , x_value_type_code          => l_adr_value_type_code
141024          , p_side                     => 'NA'
141025    );
141026 
141027    xla_ae_lines_pkg.set_ccid(
141028     p_code_combination_id          => l_ccid
141029   , p_value_type_code              => l_adr_value_type_code
141030   , p_transaction_coa_id           => l_adr_transaction_coa_id
141031   , p_accounting_coa_id            => l_adr_accounting_coa_id
141032   , p_adr_code                     => 'AP_WH_DIST_ACCT'
141033   , p_adr_type_code                => 'S'
141034   , p_component_type               => l_component_type
141035   , p_component_code               => l_component_code
141036   , p_component_type_code          => l_component_type_code
141037   , p_component_appl_id            => l_component_appl_id
141038   , p_amb_context_code             => l_amb_context_code
141039   , p_side                         => 'NA'
141040   );
141041 
141042 
141043    l_segment := AcctDerRule_14(
141044            p_application_id           => p_application_id
141045          , p_ae_header_id             => l_ae_header_id 
141046 , p_source_15 => p_source_15
141047 , p_source_15_meaning => p_source_15_meaning
141048 , p_source_30 => p_source_30
141049          , x_transaction_coa_id       => l_adr_transaction_coa_id
141050          , x_accounting_coa_id        => l_adr_accounting_coa_id
141051          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
141052          , x_flex_value_set_id        => l_adr_flex_value_set_id
141053          , x_value_type_code          => l_adr_value_type_code
141054          , x_value_combination_id     => l_adr_value_combination_id
141055          , x_value_segment_code       => l_adr_value_segment_code
141056          , p_side                     => 'NA'
141057          , p_override_seg_flag        => 'Y'
141058    );
141059 
141060    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
141061 
141062       xla_ae_lines_pkg.set_segment(
141063           p_to_segment_code         => 'GL_ACCOUNT'
141064         , p_segment_value           => l_segment
141065         , p_from_segment_code       => l_adr_value_segment_code
141066         , p_from_combination_id     => l_adr_value_combination_id
141067         , p_value_type_code         => l_adr_value_type_code
141068         , p_transaction_coa_id      => l_adr_transaction_coa_id
141069         , p_accounting_coa_id       => l_adr_accounting_coa_id
141070         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
141071         , p_flex_value_set_id       => l_adr_flex_value_set_id
141072         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
141073         , p_adr_type_code           => 'S'
141074         , p_component_type          => l_component_type
141075         , p_component_code          => l_component_code
141076         , p_component_type_code     => l_component_type_code
141077         , p_component_appl_id       => l_component_appl_id
141078         , p_amb_context_code        => l_amb_context_code
141079         , p_entity_code             => 'AP_INVOICES'
141080         , p_event_class_code        => 'CREDIT MEMOS'
141081         , p_side                    => 'NA'
141082         );
141083 
141084   END IF;
141085 
141086    l_segment := AcctDerRule_25(
141087            p_application_id           => p_application_id
141088          , p_ae_header_id             => l_ae_header_id 
141089 , p_source_15 => p_source_15
141090 , p_source_15_meaning => p_source_15_meaning
141091 , p_source_43 => p_source_43
141092          , x_transaction_coa_id       => l_adr_transaction_coa_id
141093          , x_accounting_coa_id        => l_adr_accounting_coa_id
141094          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
141095          , x_flex_value_set_id        => l_adr_flex_value_set_id
141096          , x_value_type_code          => l_adr_value_type_code
141097          , x_value_combination_id     => l_adr_value_combination_id
141098          , x_value_segment_code       => l_adr_value_segment_code
141099          , p_side                     => 'NA'
141100          , p_override_seg_flag        => 'Y'
141101    );
141102 
141103    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
141104 
141105       xla_ae_lines_pkg.set_segment(
141106           p_to_segment_code         => 'GL_BALANCING'
141107         , p_segment_value           => l_segment
141108         , p_from_segment_code       => l_adr_value_segment_code
141109         , p_from_combination_id     => l_adr_value_combination_id
141110         , p_value_type_code         => l_adr_value_type_code
141111         , p_transaction_coa_id      => l_adr_transaction_coa_id
141112         , p_accounting_coa_id       => l_adr_accounting_coa_id
141113         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
141114         , p_flex_value_set_id       => l_adr_flex_value_set_id
141115         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
141116         , p_adr_type_code           => 'S'
141117         , p_component_type          => l_component_type
141121         , p_amb_context_code        => l_amb_context_code
141118         , p_component_code          => l_component_code
141119         , p_component_type_code     => l_component_type_code
141120         , p_component_appl_id       => l_component_appl_id
141122         , p_entity_code             => 'AP_INVOICES'
141123         , p_event_class_code        => 'CREDIT MEMOS'
141124         , p_side                    => 'NA'
141125         );
141126 
141127   END IF;
141128 
141129    --
141130    --
141131    END IF;
141132 
141133        --
141134        -- Update the line information that should be overwritten
141135        --
141136        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
141137                                          p_header_num   => 1);
141138        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
141139 
141140        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
141141 
141142        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
141143           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
141144        END IF;
141145 
141146       --
141147       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
141148       --
141149       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
141150           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
141151       ELSE
141152           ---------------------------------------------------------------------------------------------------
141153           -- 4262811a Switch Sign
141154           ---------------------------------------------------------------------------------------------------
141155           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
141156           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
141157                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
141158           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
141159                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
141160           -- 5132302
141161           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
141162                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
141163 
141164       END IF;
141165 
141166       -- 4955764
141167       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
141168       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
141169 
141170 
141171       XLA_AE_LINES_PKG.ValidateCurrentLine;
141172       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
141173 
141174       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
141175                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
141176                ,p_balance_type_code => l_balance_type_code);
141177 
141178    END IF;
141179 
141180    -----------------------------------------------------------------------------------------
141181    -- 4262811 Multiperiod Accounting
141182    -----------------------------------------------------------------------------------------
141183      -- No MPA option is assigned.
141184 
141185 
141186 END IF;
141187 END IF;
141188 --
141189 
141190 --
141191 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
141192    trace
141193       (p_msg      => 'END of AcctLineType_226'
141194       ,p_level    => C_LEVEL_PROCEDURE
141195       ,p_module   => l_log_module);
141196 END IF;
141197 --
141198 EXCEPTION
141199   WHEN xla_exceptions_pkg.application_exception THEN
141200       RAISE;
141201   WHEN OTHERS THEN
141202        xla_exceptions_pkg.raise_message
141203            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_226');
141204 END AcctLineType_226;
141205 --
141206 
141207 ---------------------------------------
141208 --
141209 -- PRIVATE FUNCTION
141210 --         AcctLineType_227
141211 --
141212 ---------------------------------------
141213 PROCEDURE AcctLineType_227 (
141214   p_application_id        IN NUMBER
141215  ,p_event_id              IN NUMBER
141216  ,p_calculate_acctd_flag  IN VARCHAR2
141217  ,p_calculate_g_l_flag    IN VARCHAR2
141218  ,p_actual_flag           IN OUT VARCHAR2
141219  ,p_balance_type_code     OUT VARCHAR2
141220  ,p_gain_or_loss_ref      OUT VARCHAR2
141221  
141222 --Invoice Distribution Description
141223  , p_source_1            IN VARCHAR2
141224 --Automatic Offsets Value
141225  , p_source_15            IN VARCHAR2
141226  , p_source_15_meaning    IN VARCHAR2
141227 --Invoice Distribution Ledger Amount
141228  , p_source_21            IN NUMBER
141229 --Invoice Distribution Account
141230  , p_source_30            IN NUMBER
141231 --Invoice Distribution Type
141232  , p_source_33            IN VARCHAR2
141233  , p_source_33_meaning    IN VARCHAR2
141234 --Withholding Related Distribution Account
141235  , p_source_43            IN NUMBER
141236 --Accounting Reversal Indicator
141237  , p_source_53            IN VARCHAR2
141238 --Distribution Link Type
141239  , p_source_55            IN VARCHAR2
141240 --Allocation to Main Distribution Identifier
141241  , p_source_57            IN NUMBER
141242 --Invoice Identifier
141246 --Payables Encumbrance Upgrade Credit Account
141243  , p_source_58            IN NUMBER
141244 --Invoice Distribution Identifier
141245  , p_source_64            IN NUMBER
141247  , p_source_65            IN NUMBER
141248 --Payables Encumbrance Upgrade Credit Amount
141249  , p_source_66            IN NUMBER
141250 --Invoice Currency Code
141251  , p_source_67            IN VARCHAR2
141252 --Payables Encumbrance Upgrade Credit Base Amount
141253  , p_source_68            IN NUMBER
141254 --Payables Encumbrance Upgrade Debit Account
141255  , p_source_69            IN NUMBER
141256 --Payables Encumbrance Upgrade Debit Amount
141257  , p_source_70            IN NUMBER
141258 --Payables Encumbrance Upgrade Debit Base Amount
141259  , p_source_71            IN NUMBER
141260 --Payables Encumbrance Upgrade Option
141261  , p_source_72            IN VARCHAR2
141262 --Invoice Distribution Amount
141263  , p_source_73            IN NUMBER
141264 --Deferred Accounting End Date
141265  , p_source_77            IN DATE
141266 --Deferred Accounting Option
141267  , p_source_78            IN VARCHAR2
141268 --Deferred Accounting Start Date
141269  , p_source_79            IN DATE
141270 --Override Accounted Amount Indicator
141271  , p_source_80            IN VARCHAR2
141272  , p_source_80_meaning    IN VARCHAR2
141273 --Invoice Supplier Identifier
141274  , p_source_81            IN NUMBER
141275 --Invoice Supplier Site Identifier
141276  , p_source_82            IN NUMBER
141277 --Third Party Type
141278  , p_source_83            IN VARCHAR2
141279 --Parent Reversal Identifier
141280  , p_source_84            IN NUMBER
141281 --Invoice Distribution Tax Line Identifier
141282  , p_source_86            IN NUMBER
141283 --Invoice Distribution Tax Distribution Identifier from Tax
141284  , p_source_87            IN NUMBER
141285 --Invoice Distribution Summary Tax Line Identifier
141286  , p_source_88            IN NUMBER
141287 --Payables Upgrade Credit Encumbrance Type Identifier
141288  , p_source_89            IN NUMBER
141289 --Payables Upgrade Debit Encumbrance Type Identifier
141290  , p_source_90            IN NUMBER
141291 --Business Flow Accounts Payable Application Identifier
141292  , p_source_91            IN NUMBER
141293 --Business Flow Invoice Distribution Type
141294  , p_source_92            IN VARCHAR2
141295 --Business Flow Invoice Entity Code
141296  , p_source_93            IN VARCHAR2
141297 --Business Flow Invoice Distribution Identifier
141298  , p_source_94            IN NUMBER
141299 --Business Flow Invoice Identifier
141300  , p_source_95            IN NUMBER
141301 --Invoice Exchange Date
141302  , p_source_143            IN DATE
141303 --Invoice Exchange Rate
141304  , p_source_144            IN NUMBER
141305 --Invoice Exchange Rate Type
141306  , p_source_145            IN VARCHAR2
141307 )
141308 IS
141309 
141310 l_component_type              VARCHAR2(80);
141311 l_component_code              VARCHAR2(30);
141312 l_component_type_code         VARCHAR2(1);
141313 l_component_appl_id           INTEGER;
141314 l_amb_context_code            VARCHAR2(30);
141315 l_entity_code                 VARCHAR2(30);
141316 l_event_class_code            VARCHAR2(30);
141317 l_ae_header_id                NUMBER;
141318 l_event_type_code             VARCHAR2(30);
141319 l_line_definition_code        VARCHAR2(30);
141320 l_line_definition_owner_code  VARCHAR2(1);
141321 --
141322 -- adr variables
141323 l_segment                     VARCHAR2(30);
141324 l_ccid                        NUMBER;
141325 l_adr_transaction_coa_id      NUMBER;
141326 l_adr_accounting_coa_id       NUMBER;
141327 l_adr_flexfield_segment_code  VARCHAR2(30);
141328 l_adr_flex_value_set_id       NUMBER;
141329 l_adr_value_type_code         VARCHAR2(30);
141330 l_adr_value_combination_id    NUMBER;
141331 l_adr_value_segment_code      VARCHAR2(30);
141332 
141333 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
141334 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
141335 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
141336 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
141337 
141338 -- 4262811 Variables ------------------------------------------------------------------------------------------
141339 l_entered_amt_idx             NUMBER;
141340 l_accted_amt_idx              NUMBER;
141341 l_acc_rev_flag                VARCHAR2(1);
141342 l_accrual_line_num            NUMBER;
141343 l_tmp_amt                     NUMBER;
141344 l_acc_rev_natural_side_code   VARCHAR2(1);
141345 
141346 l_num_entries                 NUMBER;
141347 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
141348 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
141349 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
141350 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
141351 l_recog_line_1                NUMBER;
141352 l_recog_line_2                NUMBER;
141353 
141354 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
141355 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
141356 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
141357 
141358 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
141359 
141360 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
141361 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
141362 
141363 ---------------------------------------------------------------------------------------------------------------
141367 -- bulk performance
141364 
141365 
141366 --
141368 --
141369 l_balance_type_code           VARCHAR2(1);
141370 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
141371 l_log_module                  VARCHAR2(240);
141372 
141373 --
141374 -- Upgrade strategy
141375 --
141376 l_actual_upg_option           VARCHAR2(1);
141377 l_enc_upg_option           VARCHAR2(1);
141378 
141379 --
141380 BEGIN
141381 --
141382 IF g_log_enabled THEN
141383       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_227';
141384 END IF;
141385 --
141386 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
141387 
141388       trace
141389          (p_msg      => 'BEGIN of AcctLineType_227'
141390          ,p_level    => C_LEVEL_PROCEDURE
141391          ,p_module   => l_log_module);
141392 
141393 END IF;
141394 --
141395 l_component_type             := 'AMB_JLT';
141396 l_component_code             := 'AP_WITHHOLD_TAX_DM';
141397 l_component_type_code        := 'S';
141398 l_component_appl_id          :=  200;
141399 l_amb_context_code           := 'DEFAULT';
141400 l_entity_code                := 'AP_INVOICES';
141401 l_event_class_code           := 'DEBIT MEMOS';
141402 l_event_type_code            := 'DEBIT MEMOS_ALL';
141403 l_line_definition_owner_code := 'S';
141404 l_line_definition_code       := 'ACCRUAL_DEBIT MEMOS_ALL';
141405 --
141406 l_balance_type_code          := 'A';
141407 l_segment                     := NULL;
141408 l_ccid                        := NULL;
141409 l_adr_transaction_coa_id      := NULL;
141410 l_adr_accounting_coa_id       := NULL;
141411 l_adr_flexfield_segment_code  := NULL;
141412 l_adr_flex_value_set_id       := NULL;
141413 l_adr_value_type_code         := NULL;
141414 l_adr_value_combination_id    := NULL;
141415 l_adr_value_segment_code      := NULL;
141416 
141417 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
141418 l_bflow_class_code           := '';    -- 4219869 Business Flow
141419 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
141420 l_budgetary_control_flag     := 'N';
141421 
141422 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
141423 l_bflow_applied_to_amt       := NULL; -- 5132302
141424 l_entered_amt_idx            := NULL;          -- 4262811
141425 l_accted_amt_idx             := NULL;          -- 4262811
141426 l_acc_rev_flag               := NULL;          -- 4262811
141427 l_accrual_line_num           := NULL;          -- 4262811
141428 l_tmp_amt                    := NULL;          -- 4262811
141429 --
141430  
141431 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
141432     l_balance_type_code <> 'B' THEN
141433 IF NVL(p_source_33,'
141434 ') =  'AWT'
141435  THEN 
141436 
141437    --
141438    XLA_AE_LINES_PKG.SetNewLine;
141439 
141440    p_balance_type_code          := l_balance_type_code;
141441    -- set the flag so later we will know whether the gain loss line needs to be created
141442    
141443    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
141444      p_actual_flag :='A';
141445    END IF;
141446 
141447    --
141448    -- bulk performance
141449    --
141450    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
141451                                       p_header_num   => 0); -- 4262811
141452    --
141453    -- set accounting line options
141454    --
141455    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
141456            p_natural_side_code          => 'D'
141457          , p_gain_or_loss_flag          => 'N'
141458          , p_gl_transfer_mode_code      => 'S'
141459          , p_acct_entry_type_code       => 'A'
141460          , p_switch_side_flag           => 'Y'
141461          , p_merge_duplicate_code       => 'A'
141462          );
141463    --
141464    l_acc_rev_natural_side_code := 'C';  -- 4262811
141465    -- 
141466    --
141467    -- set accounting line type info
141468    --
141469    xla_ae_lines_pkg.SetAcctLineType
141470       (p_component_type             => l_component_type
141471       ,p_event_type_code            => l_event_type_code
141472       ,p_line_definition_owner_code => l_line_definition_owner_code
141473       ,p_line_definition_code       => l_line_definition_code
141474       ,p_accounting_line_code       => l_component_code
141475       ,p_accounting_line_type_code  => l_component_type_code
141476       ,p_accounting_line_appl_id    => l_component_appl_id
141477       ,p_amb_context_code           => l_amb_context_code
141478       ,p_entity_code                => l_entity_code
141479       ,p_event_class_code           => l_event_class_code);
141480    --
141481    -- set accounting class
141482    --
141483    xla_ae_lines_pkg.SetAcctClass(
141484            p_accounting_class_code  => 'AWT'
141485          , p_ae_header_id           => l_ae_header_id
141486          );
141487 
141488    --
141489    -- set rounding class
141490    --
141491    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
141492                       'AWT';
141493 
141494    --
141495    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
141496    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
141497    --
141498    -- bulk performance
141499    --
141500    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
141501 
141505    -- 4955764
141502    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
141503       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
141504 
141506    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
141507       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
141508 
141509    -- 4458381 Public Sector Enh
141510    
141511    --
141512    -- set accounting attributes for the line type
141513    --
141514    l_entered_amt_idx := 23;
141515    l_accted_amt_idx  := 28;
141516    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
141517    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
141518    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
141519    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
141520    l_rec_acct_attrs.array_num_value(2)  := 
141521 xla_ae_sources_pkg.GetSystemSourceNum(
141522    p_source_code           => 'XLA_EVENT_APPL_ID'
141523  , p_source_type_code      => 'Y'
141524  , p_source_application_id =>  602
141525 );
141526    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
141527    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
141528    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
141529    l_rec_acct_attrs.array_char_value(4)  := 
141530 xla_ae_sources_pkg.GetSystemSourceChar(
141531    p_source_code           => 'XLA_ENTITY_CODE'
141532  , p_source_type_code      => 'Y'
141533  , p_source_application_id =>  602
141534 );
141535    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
141536    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
141537    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
141538    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
141539    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
141540    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
141541    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
141542    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
141543    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
141544    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
141545    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
141546    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
141547    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
141548    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
141549    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
141550    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
141551    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
141552    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
141553    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
141554    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
141555    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
141556    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
141557    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
141558    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
141559    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
141560    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
141561    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
141562    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
141563    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
141564    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
141565    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
141566    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
141567    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
141568    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
141569    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
141570    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
141571    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
141572    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
141573    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
141574    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
141575    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
141576    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
141577    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
141578    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
141579    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
141580    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
141581    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
141582    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
141583    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
141584    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
141585    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
141586    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
141587    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
141588    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
141589    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
141590    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
141591    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
141592    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
141593    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
141594    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
141598    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
141595    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
141596    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
141597    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
141599    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
141600    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
141601    l_rec_acct_attrs.array_acct_attr_code(38) := 'TAX_LINE_REF_ID';
141602    l_rec_acct_attrs.array_num_value(38)  := p_source_86;
141603    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_REC_NREC_DIST_REF_ID';
141604    l_rec_acct_attrs.array_num_value(39)  := p_source_87;
141605    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_SUMMARY_LINE_REF_ID';
141606    l_rec_acct_attrs.array_num_value(40)  := p_source_88;
141607    l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
141608    l_rec_acct_attrs.array_num_value(41)  := p_source_89;
141609    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
141610    l_rec_acct_attrs.array_num_value(42)  := p_source_90;
141611 
141612    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
141613    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
141614 
141615    ---------------------------------------------------------------------------------------------------------------
141616    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
141617    ---------------------------------------------------------------------------------------------------------------
141618    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
141619 
141620    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
141621    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
141622 
141623    IF xla_accounting_cache_pkg.GetValueChar
141624          (p_source_code         => 'LEDGER_CATEGORY_CODE'
141625          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
141626    AND l_bflow_method_code = 'PRIOR_ENTRY'
141627 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
141628    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
141629          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
141630        )
141631    THEN
141632          xla_ae_lines_pkg.BflowUpgEntry
141633            (p_business_method_code    => l_bflow_method_code
141634            ,p_business_class_code     => l_bflow_class_code
141635            ,p_balance_type            => l_balance_type_code);
141636    ELSE
141637       NULL;
141638 -- No business flow processing for business flow method of NONE.
141639    END IF;
141640 
141641    --
141642    -- call analytical criteria
141643    --
141644    
141645    --
141646    -- call description
141647    --
141648    
141649 xla_ae_lines_pkg.SetLineDescription(
141650    p_ae_header_id => l_ae_header_id
141651   ,p_description  => Description_1 (
141652      p_application_id         => p_application_id
141653    , p_ae_header_id           => l_ae_header_id 
141654 , p_source_1 => p_source_1
141655    )
141656 );
141657 
141658 
141659    --
141660    -- call ADRs
141661    -- Bug 4922099
141662    --
141663    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
141664         (NVL(l_actual_upg_option, 'N') = 'O') OR
141665         (NVL(l_enc_upg_option, 'N') = 'O')
141666       )
141667    THEN
141668    NULL;
141669    --
141670    --
141671    
141672   l_ccid := AcctDerRule_46(
141673            p_application_id           => p_application_id
141674          , p_ae_header_id             => l_ae_header_id 
141675 , p_source_15 => p_source_15
141676 , p_source_15_meaning => p_source_15_meaning
141677 , p_source_30 => p_source_30
141678 , p_source_43 => p_source_43
141679          , x_transaction_coa_id       => l_adr_transaction_coa_id
141680          , x_accounting_coa_id        => l_adr_accounting_coa_id
141681          , x_value_type_code          => l_adr_value_type_code
141682          , p_side                     => 'NA'
141683    );
141684 
141685    xla_ae_lines_pkg.set_ccid(
141686     p_code_combination_id          => l_ccid
141687   , p_value_type_code              => l_adr_value_type_code
141688   , p_transaction_coa_id           => l_adr_transaction_coa_id
141689   , p_accounting_coa_id            => l_adr_accounting_coa_id
141690   , p_adr_code                     => 'AP_WH_DIST_ACCT'
141691   , p_adr_type_code                => 'S'
141692   , p_component_type               => l_component_type
141693   , p_component_code               => l_component_code
141694   , p_component_type_code          => l_component_type_code
141695   , p_component_appl_id            => l_component_appl_id
141696   , p_amb_context_code             => l_amb_context_code
141697   , p_side                         => 'NA'
141698   );
141699 
141700 
141701    l_segment := AcctDerRule_14(
141702            p_application_id           => p_application_id
141703          , p_ae_header_id             => l_ae_header_id 
141704 , p_source_15 => p_source_15
141705 , p_source_15_meaning => p_source_15_meaning
141706 , p_source_30 => p_source_30
141707          , x_transaction_coa_id       => l_adr_transaction_coa_id
141708          , x_accounting_coa_id        => l_adr_accounting_coa_id
141709          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
141713          , x_value_segment_code       => l_adr_value_segment_code
141710          , x_flex_value_set_id        => l_adr_flex_value_set_id
141711          , x_value_type_code          => l_adr_value_type_code
141712          , x_value_combination_id     => l_adr_value_combination_id
141714          , p_side                     => 'NA'
141715          , p_override_seg_flag        => 'Y'
141716    );
141717 
141718    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
141719 
141720       xla_ae_lines_pkg.set_segment(
141721           p_to_segment_code         => 'GL_ACCOUNT'
141722         , p_segment_value           => l_segment
141723         , p_from_segment_code       => l_adr_value_segment_code
141724         , p_from_combination_id     => l_adr_value_combination_id
141725         , p_value_type_code         => l_adr_value_type_code
141726         , p_transaction_coa_id      => l_adr_transaction_coa_id
141727         , p_accounting_coa_id       => l_adr_accounting_coa_id
141728         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
141729         , p_flex_value_set_id       => l_adr_flex_value_set_id
141730         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
141731         , p_adr_type_code           => 'S'
141732         , p_component_type          => l_component_type
141733         , p_component_code          => l_component_code
141734         , p_component_type_code     => l_component_type_code
141735         , p_component_appl_id       => l_component_appl_id
141736         , p_amb_context_code        => l_amb_context_code
141737         , p_entity_code             => 'AP_INVOICES'
141738         , p_event_class_code        => 'DEBIT MEMOS'
141739         , p_side                    => 'NA'
141740         );
141741 
141742   END IF;
141743 
141744    l_segment := AcctDerRule_25(
141745            p_application_id           => p_application_id
141746          , p_ae_header_id             => l_ae_header_id 
141747 , p_source_15 => p_source_15
141748 , p_source_15_meaning => p_source_15_meaning
141749 , p_source_43 => p_source_43
141750          , x_transaction_coa_id       => l_adr_transaction_coa_id
141751          , x_accounting_coa_id        => l_adr_accounting_coa_id
141752          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
141753          , x_flex_value_set_id        => l_adr_flex_value_set_id
141754          , x_value_type_code          => l_adr_value_type_code
141755          , x_value_combination_id     => l_adr_value_combination_id
141756          , x_value_segment_code       => l_adr_value_segment_code
141757          , p_side                     => 'NA'
141758          , p_override_seg_flag        => 'Y'
141759    );
141760 
141761    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
141762 
141763       xla_ae_lines_pkg.set_segment(
141764           p_to_segment_code         => 'GL_BALANCING'
141765         , p_segment_value           => l_segment
141766         , p_from_segment_code       => l_adr_value_segment_code
141767         , p_from_combination_id     => l_adr_value_combination_id
141768         , p_value_type_code         => l_adr_value_type_code
141769         , p_transaction_coa_id      => l_adr_transaction_coa_id
141770         , p_accounting_coa_id       => l_adr_accounting_coa_id
141771         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
141772         , p_flex_value_set_id       => l_adr_flex_value_set_id
141773         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
141774         , p_adr_type_code           => 'S'
141775         , p_component_type          => l_component_type
141776         , p_component_code          => l_component_code
141777         , p_component_type_code     => l_component_type_code
141778         , p_component_appl_id       => l_component_appl_id
141779         , p_amb_context_code        => l_amb_context_code
141780         , p_entity_code             => 'AP_INVOICES'
141781         , p_event_class_code        => 'DEBIT MEMOS'
141782         , p_side                    => 'NA'
141783         );
141784 
141785   END IF;
141786 
141787    --
141788    --
141789    END IF;
141790    --
141791    -- Bug 4922099
141792    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
141793           (NVL(l_enc_upg_option, 'N') = 'O')
141794         ) AND
141795         (l_bflow_method_code = 'PRIOR_ENTRY')
141796       )
141797    THEN
141798       IF
141799       --
141800       1 = 2
141801       --
141802       THEN
141803       xla_accounting_err_pkg.build_message
141804                                     (p_appli_s_name            => 'XLA'
141805                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
141806                                     ,p_token_1                 => 'LINE_NUMBER'
141807                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
141808                                     ,p_token_2                 => 'LINE_TYPE_NAME'
141809                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
141810                                                                              l_component_type
141811                                                                             ,l_component_code
141812                                                                             ,l_component_type_code
141813                                                                             ,l_component_appl_id
141814                                                                             ,l_amb_context_code
141815                                                                             ,l_entity_code
141819                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
141816                                                                             ,l_event_class_code
141817                                                                            )
141818                                     ,p_token_3                 => 'OWNER'
141820                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
141821                                                                           ,p_lookup_code    => l_component_type_code
141822                                                                          )
141823                                     ,p_token_4                 => 'PRODUCT_NAME'
141824                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
141825                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
141826                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
141827                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
141828                                     ,p_ae_header_id            =>  NULL
141829                                        );
141830 
141831         IF (C_LEVEL_ERROR>= g_log_level) THEN
141832                  trace
141833                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
141834                       ,p_level    => C_LEVEL_ERROR
141835                       ,p_module   => l_log_module);
141836         END IF;
141837       END IF;
141838    END IF;
141839    --
141840    --
141841    ------------------------------------------------------------------------------------------------
141842    -- 4219869 Business Flow
141843    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
141844    -- Prior Entry.  Currently, the following code is always generated.
141845    ------------------------------------------------------------------------------------------------
141846    XLA_AE_LINES_PKG.ValidateCurrentLine;
141847 
141848    ------------------------------------------------------------------------------------
141849    -- 4219869 Business Flow
141850    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
141851    ------------------------------------------------------------------------------------
141852    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
141853 
141854    ----------------------------------------------------------------------------------
141855    -- 4219869 Business Flow
141856    -- Update journal entry status -- Need to generate this within IF <condition>
141857    ----------------------------------------------------------------------------------
141858    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
141859          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
141860          ,p_balance_type_code => l_balance_type_code
141861          );
141862 
141863    -------------------------------------------------------------------------------------------
141864    -- 4262811 - Generate the Accrual Reversal lines
141865    -------------------------------------------------------------------------------------------
141866    BEGIN
141867       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
141868                               (g_array_event(p_event_id).array_value_num('header_index'));
141869       IF l_acc_rev_flag IS NULL THEN
141870          l_acc_rev_flag := 'N';
141871       END IF;
141872    EXCEPTION
141873       WHEN OTHERS THEN
141874          l_acc_rev_flag := 'N';
141875    END;
141876    --
141877    IF (l_acc_rev_flag = 'Y') THEN
141878 
141879        -- 4645092  ------------------------------------------------------------------------------
141880        -- To allow MPA report to determine if it should generate report process
141881        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
141882        ------------------------------------------------------------------------------------------
141883 
141884        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
141885        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
141886    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
141887    -- call ADRs
141888    -- Bug 4922099
141889    --
141890    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
141891         (NVL(l_actual_upg_option, 'N') = 'O') OR
141892         (NVL(l_enc_upg_option, 'N') = 'O')
141893       )
141894    THEN
141895    NULL;
141896    --
141897    --
141898    
141899   l_ccid := AcctDerRule_46(
141900            p_application_id           => p_application_id
141901          , p_ae_header_id             => l_ae_header_id 
141902 , p_source_15 => p_source_15
141903 , p_source_15_meaning => p_source_15_meaning
141904 , p_source_30 => p_source_30
141905 , p_source_43 => p_source_43
141906          , x_transaction_coa_id       => l_adr_transaction_coa_id
141907          , x_accounting_coa_id        => l_adr_accounting_coa_id
141908          , x_value_type_code          => l_adr_value_type_code
141909          , p_side                     => 'NA'
141910    );
141911 
141912    xla_ae_lines_pkg.set_ccid(
141913     p_code_combination_id          => l_ccid
141914   , p_value_type_code              => l_adr_value_type_code
141915   , p_transaction_coa_id           => l_adr_transaction_coa_id
141916   , p_accounting_coa_id            => l_adr_accounting_coa_id
141917   , p_adr_code                     => 'AP_WH_DIST_ACCT'
141921   , p_component_type_code          => l_component_type_code
141918   , p_adr_type_code                => 'S'
141919   , p_component_type               => l_component_type
141920   , p_component_code               => l_component_code
141922   , p_component_appl_id            => l_component_appl_id
141923   , p_amb_context_code             => l_amb_context_code
141924   , p_side                         => 'NA'
141925   );
141926 
141927 
141928    l_segment := AcctDerRule_14(
141929            p_application_id           => p_application_id
141930          , p_ae_header_id             => l_ae_header_id 
141931 , p_source_15 => p_source_15
141932 , p_source_15_meaning => p_source_15_meaning
141933 , p_source_30 => p_source_30
141934          , x_transaction_coa_id       => l_adr_transaction_coa_id
141935          , x_accounting_coa_id        => l_adr_accounting_coa_id
141936          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
141937          , x_flex_value_set_id        => l_adr_flex_value_set_id
141938          , x_value_type_code          => l_adr_value_type_code
141939          , x_value_combination_id     => l_adr_value_combination_id
141940          , x_value_segment_code       => l_adr_value_segment_code
141941          , p_side                     => 'NA'
141942          , p_override_seg_flag        => 'Y'
141943    );
141944 
141945    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
141946 
141947       xla_ae_lines_pkg.set_segment(
141948           p_to_segment_code         => 'GL_ACCOUNT'
141949         , p_segment_value           => l_segment
141950         , p_from_segment_code       => l_adr_value_segment_code
141951         , p_from_combination_id     => l_adr_value_combination_id
141952         , p_value_type_code         => l_adr_value_type_code
141953         , p_transaction_coa_id      => l_adr_transaction_coa_id
141954         , p_accounting_coa_id       => l_adr_accounting_coa_id
141955         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
141956         , p_flex_value_set_id       => l_adr_flex_value_set_id
141957         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
141958         , p_adr_type_code           => 'S'
141959         , p_component_type          => l_component_type
141960         , p_component_code          => l_component_code
141961         , p_component_type_code     => l_component_type_code
141962         , p_component_appl_id       => l_component_appl_id
141963         , p_amb_context_code        => l_amb_context_code
141964         , p_entity_code             => 'AP_INVOICES'
141965         , p_event_class_code        => 'DEBIT MEMOS'
141966         , p_side                    => 'NA'
141967         );
141968 
141969   END IF;
141970 
141971    l_segment := AcctDerRule_25(
141972            p_application_id           => p_application_id
141973          , p_ae_header_id             => l_ae_header_id 
141974 , p_source_15 => p_source_15
141975 , p_source_15_meaning => p_source_15_meaning
141976 , p_source_43 => p_source_43
141977          , x_transaction_coa_id       => l_adr_transaction_coa_id
141978          , x_accounting_coa_id        => l_adr_accounting_coa_id
141979          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
141980          , x_flex_value_set_id        => l_adr_flex_value_set_id
141981          , x_value_type_code          => l_adr_value_type_code
141982          , x_value_combination_id     => l_adr_value_combination_id
141983          , x_value_segment_code       => l_adr_value_segment_code
141984          , p_side                     => 'NA'
141985          , p_override_seg_flag        => 'Y'
141986    );
141987 
141988    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
141989 
141990       xla_ae_lines_pkg.set_segment(
141991           p_to_segment_code         => 'GL_BALANCING'
141992         , p_segment_value           => l_segment
141993         , p_from_segment_code       => l_adr_value_segment_code
141994         , p_from_combination_id     => l_adr_value_combination_id
141995         , p_value_type_code         => l_adr_value_type_code
141996         , p_transaction_coa_id      => l_adr_transaction_coa_id
141997         , p_accounting_coa_id       => l_adr_accounting_coa_id
141998         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
141999         , p_flex_value_set_id       => l_adr_flex_value_set_id
142000         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
142001         , p_adr_type_code           => 'S'
142002         , p_component_type          => l_component_type
142003         , p_component_code          => l_component_code
142004         , p_component_type_code     => l_component_type_code
142005         , p_component_appl_id       => l_component_appl_id
142006         , p_amb_context_code        => l_amb_context_code
142007         , p_entity_code             => 'AP_INVOICES'
142008         , p_event_class_code        => 'DEBIT MEMOS'
142009         , p_side                    => 'NA'
142010         );
142011 
142012   END IF;
142013 
142014    --
142015    --
142016    END IF;
142017 
142018        --
142019        -- Update the line information that should be overwritten
142020        --
142021        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
142022                                          p_header_num   => 1);
142023        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
142024 
142025        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
142026 
142027        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
142028           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
142032       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
142029        END IF;
142030 
142031       --
142033       --
142034       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
142035           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
142036       ELSE
142037           ---------------------------------------------------------------------------------------------------
142038           -- 4262811a Switch Sign
142039           ---------------------------------------------------------------------------------------------------
142040           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
142041           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
142042                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
142043           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
142044                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
142045           -- 5132302
142046           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
142047                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
142048 
142049       END IF;
142050 
142051       -- 4955764
142052       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
142053       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
142054 
142055 
142056       XLA_AE_LINES_PKG.ValidateCurrentLine;
142057       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
142058 
142059       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
142060                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
142061                ,p_balance_type_code => l_balance_type_code);
142062 
142063    END IF;
142064 
142065    -----------------------------------------------------------------------------------------
142066    -- 4262811 Multiperiod Accounting
142067    -----------------------------------------------------------------------------------------
142068      -- No MPA option is assigned.
142069 
142070 
142071 END IF;
142072 END IF;
142073 --
142074 
142075 --
142076 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
142077    trace
142078       (p_msg      => 'END of AcctLineType_227'
142079       ,p_level    => C_LEVEL_PROCEDURE
142080       ,p_module   => l_log_module);
142081 END IF;
142082 --
142083 EXCEPTION
142084   WHEN xla_exceptions_pkg.application_exception THEN
142085       RAISE;
142086   WHEN OTHERS THEN
142087        xla_exceptions_pkg.raise_message
142088            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_227');
142089 END AcctLineType_227;
142090 --
142091 
142092 ---------------------------------------
142093 --
142094 -- PRIVATE FUNCTION
142095 --         AcctLineType_228
142096 --
142097 ---------------------------------------
142098 PROCEDURE AcctLineType_228 (
142099   p_application_id        IN NUMBER
142100  ,p_event_id              IN NUMBER
142101  ,p_calculate_acctd_flag  IN VARCHAR2
142102  ,p_calculate_g_l_flag    IN VARCHAR2
142103  ,p_actual_flag           IN OUT VARCHAR2
142104  ,p_balance_type_code     OUT VARCHAR2
142105  ,p_gain_or_loss_ref      OUT VARCHAR2
142106  
142107 --Invoice Distribution Description
142108  , p_source_1            IN VARCHAR2
142109 --Automatic Offsets Value
142110  , p_source_15            IN VARCHAR2
142111  , p_source_15_meaning    IN VARCHAR2
142112 --Invoice Distribution Ledger Amount
142113  , p_source_21            IN NUMBER
142114 --Invoice Distribution Account
142115  , p_source_30            IN NUMBER
142116 --Invoice Distribution Type
142117  , p_source_33            IN VARCHAR2
142118  , p_source_33_meaning    IN VARCHAR2
142119 --Withholding Related Distribution Account
142120  , p_source_43            IN NUMBER
142121 --Accounting Reversal Indicator
142122  , p_source_53            IN VARCHAR2
142123 --Distribution Link Type
142124  , p_source_55            IN VARCHAR2
142125 --Allocation to Main Distribution Identifier
142126  , p_source_57            IN NUMBER
142127 --Invoice Identifier
142128  , p_source_58            IN NUMBER
142129 --Invoice Distribution Identifier
142130  , p_source_64            IN NUMBER
142131 --Payables Encumbrance Upgrade Credit Account
142132  , p_source_65            IN NUMBER
142133 --Payables Encumbrance Upgrade Credit Amount
142134  , p_source_66            IN NUMBER
142135 --Invoice Currency Code
142136  , p_source_67            IN VARCHAR2
142137 --Payables Encumbrance Upgrade Credit Base Amount
142138  , p_source_68            IN NUMBER
142139 --Payables Encumbrance Upgrade Debit Account
142140  , p_source_69            IN NUMBER
142141 --Payables Encumbrance Upgrade Debit Amount
142142  , p_source_70            IN NUMBER
142143 --Payables Encumbrance Upgrade Debit Base Amount
142144  , p_source_71            IN NUMBER
142145 --Payables Encumbrance Upgrade Option
142146  , p_source_72            IN VARCHAR2
142147 --Invoice Distribution Amount
142148  , p_source_73            IN NUMBER
142149 --Deferred Accounting End Date
142150  , p_source_77            IN DATE
142151 --Deferred Accounting Option
142152  , p_source_78            IN VARCHAR2
142153 --Deferred Accounting Start Date
142157  , p_source_80_meaning    IN VARCHAR2
142154  , p_source_79            IN DATE
142155 --Override Accounted Amount Indicator
142156  , p_source_80            IN VARCHAR2
142158 --Invoice Supplier Identifier
142159  , p_source_81            IN NUMBER
142160 --Invoice Supplier Site Identifier
142161  , p_source_82            IN NUMBER
142162 --Third Party Type
142163  , p_source_83            IN VARCHAR2
142164 --Parent Reversal Identifier
142165  , p_source_84            IN NUMBER
142166 --Invoice Distribution Statistical Amount
142167  , p_source_85            IN NUMBER
142168 --Invoice Distribution Tax Line Identifier
142169  , p_source_86            IN NUMBER
142170 --Invoice Distribution Tax Distribution Identifier from Tax
142171  , p_source_87            IN NUMBER
142172 --Invoice Distribution Summary Tax Line Identifier
142173  , p_source_88            IN NUMBER
142174 --Payables Upgrade Credit Encumbrance Type Identifier
142175  , p_source_89            IN NUMBER
142176 --Payables Upgrade Debit Encumbrance Type Identifier
142177  , p_source_90            IN NUMBER
142178 --Business Flow Accounts Payable Application Identifier
142179  , p_source_91            IN NUMBER
142180 --Business Flow Invoice Distribution Type
142181  , p_source_92            IN VARCHAR2
142182 --Business Flow Invoice Entity Code
142183  , p_source_93            IN VARCHAR2
142184 --Business Flow Invoice Distribution Identifier
142185  , p_source_94            IN NUMBER
142186 --Business Flow Invoice Identifier
142187  , p_source_95            IN NUMBER
142188 --Invoice Exchange Date
142189  , p_source_143            IN DATE
142190 --Invoice Exchange Rate
142191  , p_source_144            IN NUMBER
142192 --Invoice Exchange Rate Type
142193  , p_source_145            IN VARCHAR2
142194 )
142195 IS
142196 
142197 l_component_type              VARCHAR2(80);
142198 l_component_code              VARCHAR2(30);
142199 l_component_type_code         VARCHAR2(1);
142200 l_component_appl_id           INTEGER;
142201 l_amb_context_code            VARCHAR2(30);
142202 l_entity_code                 VARCHAR2(30);
142203 l_event_class_code            VARCHAR2(30);
142204 l_ae_header_id                NUMBER;
142205 l_event_type_code             VARCHAR2(30);
142206 l_line_definition_code        VARCHAR2(30);
142207 l_line_definition_owner_code  VARCHAR2(1);
142208 --
142209 -- adr variables
142210 l_segment                     VARCHAR2(30);
142211 l_ccid                        NUMBER;
142212 l_adr_transaction_coa_id      NUMBER;
142213 l_adr_accounting_coa_id       NUMBER;
142214 l_adr_flexfield_segment_code  VARCHAR2(30);
142215 l_adr_flex_value_set_id       NUMBER;
142216 l_adr_value_type_code         VARCHAR2(30);
142217 l_adr_value_combination_id    NUMBER;
142218 l_adr_value_segment_code      VARCHAR2(30);
142219 
142220 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
142221 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
142222 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
142223 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
142224 
142225 -- 4262811 Variables ------------------------------------------------------------------------------------------
142226 l_entered_amt_idx             NUMBER;
142227 l_accted_amt_idx              NUMBER;
142228 l_acc_rev_flag                VARCHAR2(1);
142229 l_accrual_line_num            NUMBER;
142230 l_tmp_amt                     NUMBER;
142231 l_acc_rev_natural_side_code   VARCHAR2(1);
142232 
142233 l_num_entries                 NUMBER;
142234 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
142235 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
142236 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
142237 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
142238 l_recog_line_1                NUMBER;
142239 l_recog_line_2                NUMBER;
142240 
142241 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
142242 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
142243 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
142244 
142245 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
142246 
142247 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
142248 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
142249 
142250 ---------------------------------------------------------------------------------------------------------------
142251 
142252 
142253 --
142254 -- bulk performance
142255 --
142256 l_balance_type_code           VARCHAR2(1);
142257 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
142258 l_log_module                  VARCHAR2(240);
142259 
142260 --
142261 -- Upgrade strategy
142262 --
142263 l_actual_upg_option           VARCHAR2(1);
142264 l_enc_upg_option           VARCHAR2(1);
142265 
142266 --
142267 BEGIN
142268 --
142269 IF g_log_enabled THEN
142270       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_228';
142271 END IF;
142272 --
142273 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
142274 
142275       trace
142276          (p_msg      => 'BEGIN of AcctLineType_228'
142277          ,p_level    => C_LEVEL_PROCEDURE
142278          ,p_module   => l_log_module);
142279 
142280 END IF;
142281 --
142282 l_component_type             := 'AMB_JLT';
142286 l_amb_context_code           := 'DEFAULT';
142283 l_component_code             := 'AP_WITHHOLD_TAX_INV';
142284 l_component_type_code        := 'S';
142285 l_component_appl_id          :=  200;
142287 l_entity_code                := 'AP_INVOICES';
142288 l_event_class_code           := 'INVOICES';
142289 l_event_type_code            := 'INVOICES_ALL';
142290 l_line_definition_owner_code := 'S';
142291 l_line_definition_code       := 'ACCRUAL_INVOICES_ALL';
142292 --
142293 l_balance_type_code          := 'A';
142294 l_segment                     := NULL;
142295 l_ccid                        := NULL;
142296 l_adr_transaction_coa_id      := NULL;
142297 l_adr_accounting_coa_id       := NULL;
142298 l_adr_flexfield_segment_code  := NULL;
142299 l_adr_flex_value_set_id       := NULL;
142300 l_adr_value_type_code         := NULL;
142301 l_adr_value_combination_id    := NULL;
142302 l_adr_value_segment_code      := NULL;
142303 
142304 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
142305 l_bflow_class_code           := '';    -- 4219869 Business Flow
142306 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
142307 l_budgetary_control_flag     := 'N';
142308 
142309 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
142310 l_bflow_applied_to_amt       := NULL; -- 5132302
142311 l_entered_amt_idx            := NULL;          -- 4262811
142312 l_accted_amt_idx             := NULL;          -- 4262811
142313 l_acc_rev_flag               := NULL;          -- 4262811
142314 l_accrual_line_num           := NULL;          -- 4262811
142315 l_tmp_amt                    := NULL;          -- 4262811
142316 --
142317  
142318 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
142319     l_balance_type_code <> 'B' THEN
142320 IF NVL(p_source_33,'
142321 ') =  'AWT'
142322  THEN 
142323 
142324    --
142325    XLA_AE_LINES_PKG.SetNewLine;
142326 
142327    p_balance_type_code          := l_balance_type_code;
142328    -- set the flag so later we will know whether the gain loss line needs to be created
142329    
142330    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
142331      p_actual_flag :='A';
142332    END IF;
142333 
142334    --
142335    -- bulk performance
142336    --
142337    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
142338                                       p_header_num   => 0); -- 4262811
142339    --
142340    -- set accounting line options
142341    --
142342    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
142343            p_natural_side_code          => 'D'
142344          , p_gain_or_loss_flag          => 'N'
142345          , p_gl_transfer_mode_code      => 'S'
142346          , p_acct_entry_type_code       => 'A'
142347          , p_switch_side_flag           => 'Y'
142348          , p_merge_duplicate_code       => 'A'
142349          );
142350    --
142351    l_acc_rev_natural_side_code := 'C';  -- 4262811
142352    -- 
142353    --
142354    -- set accounting line type info
142355    --
142356    xla_ae_lines_pkg.SetAcctLineType
142357       (p_component_type             => l_component_type
142358       ,p_event_type_code            => l_event_type_code
142359       ,p_line_definition_owner_code => l_line_definition_owner_code
142360       ,p_line_definition_code       => l_line_definition_code
142361       ,p_accounting_line_code       => l_component_code
142362       ,p_accounting_line_type_code  => l_component_type_code
142363       ,p_accounting_line_appl_id    => l_component_appl_id
142364       ,p_amb_context_code           => l_amb_context_code
142365       ,p_entity_code                => l_entity_code
142366       ,p_event_class_code           => l_event_class_code);
142367    --
142368    -- set accounting class
142369    --
142370    xla_ae_lines_pkg.SetAcctClass(
142371            p_accounting_class_code  => 'AWT'
142372          , p_ae_header_id           => l_ae_header_id
142373          );
142374 
142375    --
142376    -- set rounding class
142377    --
142378    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
142379                       'AWT';
142380 
142381    --
142382    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
142383    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
142384    --
142385    -- bulk performance
142386    --
142387    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
142388 
142389    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
142390       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
142391 
142392    -- 4955764
142393    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
142394       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
142395 
142396    -- 4458381 Public Sector Enh
142397    
142398    --
142399    -- set accounting attributes for the line type
142400    --
142401    l_entered_amt_idx := 24;
142402    l_accted_amt_idx  := 29;
142403    l_bflow_applied_to_amt_idx  := 7;  -- 5132302
142404    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
142405    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
142406    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
142407    l_rec_acct_attrs.array_num_value(2)  := 
142408 xla_ae_sources_pkg.GetSystemSourceNum(
142409    p_source_code           => 'XLA_EVENT_APPL_ID'
142410  , p_source_type_code      => 'Y'
142414    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
142411  , p_source_application_id =>  602
142412 );
142413    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
142415    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
142416    l_rec_acct_attrs.array_char_value(4)  := 
142417 xla_ae_sources_pkg.GetSystemSourceChar(
142418    p_source_code           => 'XLA_ENTITY_CODE'
142419  , p_source_type_code      => 'Y'
142420  , p_source_application_id =>  602
142421 );
142422    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
142423    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
142424    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
142425    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
142426    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_AMOUNT';
142427    l_rec_acct_attrs.array_num_value(7)  := p_source_73;
142428    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_APPLICATION_ID';
142429    l_rec_acct_attrs.array_num_value(8)  := p_source_91;
142430    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_DISTRIBUTION_TYPE';
142431    l_rec_acct_attrs.array_char_value(9)  := p_source_92;
142432    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_ENTITY_CODE';
142433    l_rec_acct_attrs.array_char_value(10)  := p_source_93;
142434    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_DIST_ID';
142435    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_94);
142436    l_rec_acct_attrs.array_acct_attr_code(12) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
142437    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_95);
142438    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_IDENTIFIER_1';
142439    l_rec_acct_attrs.array_num_value(13)  :=  to_char(p_source_64);
142440    l_rec_acct_attrs.array_acct_attr_code(14) := 'DISTRIBUTION_TYPE';
142441    l_rec_acct_attrs.array_char_value(14)  := p_source_55;
142442    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_CCID';
142443    l_rec_acct_attrs.array_num_value(15)  := p_source_65;
142444    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_AMT';
142445    l_rec_acct_attrs.array_num_value(16)  := p_source_66;
142446    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_ENTERED_CURR';
142447    l_rec_acct_attrs.array_char_value(17)  := p_source_67;
142448    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_CR_LEDGER_AMT';
142449    l_rec_acct_attrs.array_num_value(18)  := p_source_68;
142450    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_CCID';
142451    l_rec_acct_attrs.array_num_value(19)  := p_source_69;
142452    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_AMT';
142453    l_rec_acct_attrs.array_num_value(20)  := p_source_70;
142454    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_ENTERED_CURR';
142455    l_rec_acct_attrs.array_char_value(21)  := p_source_67;
142456    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_DR_LEDGER_AMT';
142457    l_rec_acct_attrs.array_num_value(22)  := p_source_71;
142458    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_OPTION';
142459    l_rec_acct_attrs.array_char_value(23)  := p_source_72;
142460    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_AMOUNT';
142461    l_rec_acct_attrs.array_num_value(24)  := p_source_73;
142462    l_rec_acct_attrs.array_acct_attr_code(25) := 'ENTERED_CURRENCY_CODE';
142463    l_rec_acct_attrs.array_char_value(25)  := p_source_67;
142464    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_DATE';
142465    l_rec_acct_attrs.array_date_value(26)  := p_source_143;
142466    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE';
142467    l_rec_acct_attrs.array_num_value(27)  := p_source_144;
142468    l_rec_acct_attrs.array_acct_attr_code(28) := 'EXCHANGE_RATE_TYPE';
142469    l_rec_acct_attrs.array_char_value(28)  := p_source_145;
142470    l_rec_acct_attrs.array_acct_attr_code(29) := 'LEDGER_AMOUNT';
142471    l_rec_acct_attrs.array_num_value(29)  := p_source_21;
142472    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_END_DATE';
142473    l_rec_acct_attrs.array_date_value(30)  := p_source_77;
142474    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_OPTION';
142475    l_rec_acct_attrs.array_char_value(31)  := p_source_78;
142476    l_rec_acct_attrs.array_acct_attr_code(32) := 'MULTIPERIOD_START_DATE';
142477    l_rec_acct_attrs.array_date_value(32)  := p_source_79;
142478    l_rec_acct_attrs.array_acct_attr_code(33) := 'OVERRIDE_ACCTD_AMT_FLAG';
142479    l_rec_acct_attrs.array_char_value(33)  := p_source_80;
142480    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_ID';
142481    l_rec_acct_attrs.array_num_value(34)  := p_source_81;
142482    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_SITE_ID';
142483    l_rec_acct_attrs.array_num_value(35)  := p_source_82;
142484    l_rec_acct_attrs.array_acct_attr_code(36) := 'PARTY_TYPE';
142485    l_rec_acct_attrs.array_char_value(36)  := p_source_83;
142486    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_ID1';
142487    l_rec_acct_attrs.array_num_value(37)  :=  to_char(p_source_84);
142488    l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_TYPE';
142489    l_rec_acct_attrs.array_char_value(38)  := p_source_55;
142490    l_rec_acct_attrs.array_acct_attr_code(39) := 'STATISTICAL_AMOUNT';
142491    l_rec_acct_attrs.array_num_value(39)  := p_source_85;
142492    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_LINE_REF_ID';
142493    l_rec_acct_attrs.array_num_value(40)  := p_source_86;
142494    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_REC_NREC_DIST_REF_ID';
142495    l_rec_acct_attrs.array_num_value(41)  := p_source_87;
142496    l_rec_acct_attrs.array_acct_attr_code(42) := 'TAX_SUMMARY_LINE_REF_ID';
142500    l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_DR_ENC_TYPE_ID';
142497    l_rec_acct_attrs.array_num_value(42)  := p_source_88;
142498    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_CR_ENC_TYPE_ID';
142499    l_rec_acct_attrs.array_num_value(43)  := p_source_89;
142501    l_rec_acct_attrs.array_num_value(44)  := p_source_90;
142502 
142503    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
142504    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
142505 
142506    ---------------------------------------------------------------------------------------------------------------
142507    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
142508    ---------------------------------------------------------------------------------------------------------------
142509    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
142510 
142511    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
142512    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
142513 
142514    IF xla_accounting_cache_pkg.GetValueChar
142515          (p_source_code         => 'LEDGER_CATEGORY_CODE'
142516          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
142517    AND l_bflow_method_code = 'PRIOR_ENTRY'
142518 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
142519    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
142520          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
142521        )
142522    THEN
142523          xla_ae_lines_pkg.BflowUpgEntry
142524            (p_business_method_code    => l_bflow_method_code
142525            ,p_business_class_code     => l_bflow_class_code
142526            ,p_balance_type            => l_balance_type_code);
142527    ELSE
142528       NULL;
142529 -- No business flow processing for business flow method of NONE.
142530    END IF;
142531 
142532    --
142533    -- call analytical criteria
142534    --
142535    
142536    --
142537    -- call description
142538    --
142539    
142540 xla_ae_lines_pkg.SetLineDescription(
142541    p_ae_header_id => l_ae_header_id
142542   ,p_description  => Description_1 (
142543      p_application_id         => p_application_id
142544    , p_ae_header_id           => l_ae_header_id 
142545 , p_source_1 => p_source_1
142546    )
142547 );
142548 
142549 
142550    --
142551    -- call ADRs
142552    -- Bug 4922099
142553    --
142554    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
142555         (NVL(l_actual_upg_option, 'N') = 'O') OR
142556         (NVL(l_enc_upg_option, 'N') = 'O')
142557       )
142558    THEN
142559    NULL;
142560    --
142561    --
142562    
142563   l_ccid := AcctDerRule_46(
142564            p_application_id           => p_application_id
142565          , p_ae_header_id             => l_ae_header_id 
142566 , p_source_15 => p_source_15
142567 , p_source_15_meaning => p_source_15_meaning
142568 , p_source_30 => p_source_30
142569 , p_source_43 => p_source_43
142570          , x_transaction_coa_id       => l_adr_transaction_coa_id
142571          , x_accounting_coa_id        => l_adr_accounting_coa_id
142572          , x_value_type_code          => l_adr_value_type_code
142573          , p_side                     => 'NA'
142574    );
142575 
142576    xla_ae_lines_pkg.set_ccid(
142577     p_code_combination_id          => l_ccid
142578   , p_value_type_code              => l_adr_value_type_code
142579   , p_transaction_coa_id           => l_adr_transaction_coa_id
142580   , p_accounting_coa_id            => l_adr_accounting_coa_id
142581   , p_adr_code                     => 'AP_WH_DIST_ACCT'
142582   , p_adr_type_code                => 'S'
142583   , p_component_type               => l_component_type
142584   , p_component_code               => l_component_code
142585   , p_component_type_code          => l_component_type_code
142586   , p_component_appl_id            => l_component_appl_id
142587   , p_amb_context_code             => l_amb_context_code
142588   , p_side                         => 'NA'
142589   );
142590 
142591 
142592    l_segment := AcctDerRule_14(
142593            p_application_id           => p_application_id
142594          , p_ae_header_id             => l_ae_header_id 
142595 , p_source_15 => p_source_15
142596 , p_source_15_meaning => p_source_15_meaning
142597 , p_source_30 => p_source_30
142598          , x_transaction_coa_id       => l_adr_transaction_coa_id
142599          , x_accounting_coa_id        => l_adr_accounting_coa_id
142600          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
142601          , x_flex_value_set_id        => l_adr_flex_value_set_id
142602          , x_value_type_code          => l_adr_value_type_code
142603          , x_value_combination_id     => l_adr_value_combination_id
142604          , x_value_segment_code       => l_adr_value_segment_code
142605          , p_side                     => 'NA'
142606          , p_override_seg_flag        => 'Y'
142607    );
142608 
142609    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
142610 
142611       xla_ae_lines_pkg.set_segment(
142612           p_to_segment_code         => 'GL_ACCOUNT'
142613         , p_segment_value           => l_segment
142614         , p_from_segment_code       => l_adr_value_segment_code
142615         , p_from_combination_id     => l_adr_value_combination_id
142619         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
142616         , p_value_type_code         => l_adr_value_type_code
142617         , p_transaction_coa_id      => l_adr_transaction_coa_id
142618         , p_accounting_coa_id       => l_adr_accounting_coa_id
142620         , p_flex_value_set_id       => l_adr_flex_value_set_id
142621         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
142622         , p_adr_type_code           => 'S'
142623         , p_component_type          => l_component_type
142624         , p_component_code          => l_component_code
142625         , p_component_type_code     => l_component_type_code
142626         , p_component_appl_id       => l_component_appl_id
142627         , p_amb_context_code        => l_amb_context_code
142628         , p_entity_code             => 'AP_INVOICES'
142629         , p_event_class_code        => 'INVOICES'
142630         , p_side                    => 'NA'
142631         );
142632 
142633   END IF;
142634 
142635    l_segment := AcctDerRule_25(
142636            p_application_id           => p_application_id
142637          , p_ae_header_id             => l_ae_header_id 
142638 , p_source_15 => p_source_15
142639 , p_source_15_meaning => p_source_15_meaning
142640 , p_source_43 => p_source_43
142641          , x_transaction_coa_id       => l_adr_transaction_coa_id
142642          , x_accounting_coa_id        => l_adr_accounting_coa_id
142643          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
142644          , x_flex_value_set_id        => l_adr_flex_value_set_id
142645          , x_value_type_code          => l_adr_value_type_code
142646          , x_value_combination_id     => l_adr_value_combination_id
142647          , x_value_segment_code       => l_adr_value_segment_code
142648          , p_side                     => 'NA'
142649          , p_override_seg_flag        => 'Y'
142650    );
142651 
142652    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
142653 
142654       xla_ae_lines_pkg.set_segment(
142655           p_to_segment_code         => 'GL_BALANCING'
142656         , p_segment_value           => l_segment
142657         , p_from_segment_code       => l_adr_value_segment_code
142658         , p_from_combination_id     => l_adr_value_combination_id
142659         , p_value_type_code         => l_adr_value_type_code
142660         , p_transaction_coa_id      => l_adr_transaction_coa_id
142661         , p_accounting_coa_id       => l_adr_accounting_coa_id
142662         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
142663         , p_flex_value_set_id       => l_adr_flex_value_set_id
142664         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
142665         , p_adr_type_code           => 'S'
142666         , p_component_type          => l_component_type
142667         , p_component_code          => l_component_code
142668         , p_component_type_code     => l_component_type_code
142669         , p_component_appl_id       => l_component_appl_id
142670         , p_amb_context_code        => l_amb_context_code
142671         , p_entity_code             => 'AP_INVOICES'
142672         , p_event_class_code        => 'INVOICES'
142673         , p_side                    => 'NA'
142674         );
142675 
142676   END IF;
142677 
142678    --
142679    --
142680    END IF;
142681    --
142682    -- Bug 4922099
142683    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
142684           (NVL(l_enc_upg_option, 'N') = 'O')
142685         ) AND
142686         (l_bflow_method_code = 'PRIOR_ENTRY')
142687       )
142688    THEN
142689       IF
142690       --
142691       1 = 2
142692       --
142693       THEN
142694       xla_accounting_err_pkg.build_message
142695                                     (p_appli_s_name            => 'XLA'
142696                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
142697                                     ,p_token_1                 => 'LINE_NUMBER'
142698                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
142699                                     ,p_token_2                 => 'LINE_TYPE_NAME'
142700                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
142701                                                                              l_component_type
142702                                                                             ,l_component_code
142703                                                                             ,l_component_type_code
142704                                                                             ,l_component_appl_id
142705                                                                             ,l_amb_context_code
142706                                                                             ,l_entity_code
142707                                                                             ,l_event_class_code
142708                                                                            )
142709                                     ,p_token_3                 => 'OWNER'
142710                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
142711                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
142712                                                                           ,p_lookup_code    => l_component_type_code
142713                                                                          )
142714                                     ,p_token_4                 => 'PRODUCT_NAME'
142718                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
142715                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
142716                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
142717                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
142719                                     ,p_ae_header_id            =>  NULL
142720                                        );
142721 
142722         IF (C_LEVEL_ERROR>= g_log_level) THEN
142723                  trace
142724                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
142725                       ,p_level    => C_LEVEL_ERROR
142726                       ,p_module   => l_log_module);
142727         END IF;
142728       END IF;
142729    END IF;
142730    --
142731    --
142732    ------------------------------------------------------------------------------------------------
142733    -- 4219869 Business Flow
142734    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
142735    -- Prior Entry.  Currently, the following code is always generated.
142736    ------------------------------------------------------------------------------------------------
142737    XLA_AE_LINES_PKG.ValidateCurrentLine;
142738 
142739    ------------------------------------------------------------------------------------
142740    -- 4219869 Business Flow
142741    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
142742    ------------------------------------------------------------------------------------
142743    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
142744 
142745    ----------------------------------------------------------------------------------
142746    -- 4219869 Business Flow
142747    -- Update journal entry status -- Need to generate this within IF <condition>
142748    ----------------------------------------------------------------------------------
142749    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
142750          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
142751          ,p_balance_type_code => l_balance_type_code
142752          );
142753 
142754    -------------------------------------------------------------------------------------------
142755    -- 4262811 - Generate the Accrual Reversal lines
142756    -------------------------------------------------------------------------------------------
142757    BEGIN
142758       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
142759                               (g_array_event(p_event_id).array_value_num('header_index'));
142760       IF l_acc_rev_flag IS NULL THEN
142761          l_acc_rev_flag := 'N';
142762       END IF;
142763    EXCEPTION
142764       WHEN OTHERS THEN
142765          l_acc_rev_flag := 'N';
142766    END;
142767    --
142768    IF (l_acc_rev_flag = 'Y') THEN
142769 
142770        -- 4645092  ------------------------------------------------------------------------------
142771        -- To allow MPA report to determine if it should generate report process
142772        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
142773        ------------------------------------------------------------------------------------------
142774 
142775        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
142776        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
142777    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
142778    -- call ADRs
142779    -- Bug 4922099
142780    --
142781    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
142782         (NVL(l_actual_upg_option, 'N') = 'O') OR
142783         (NVL(l_enc_upg_option, 'N') = 'O')
142784       )
142785    THEN
142786    NULL;
142787    --
142788    --
142789    
142790   l_ccid := AcctDerRule_46(
142791            p_application_id           => p_application_id
142792          , p_ae_header_id             => l_ae_header_id 
142793 , p_source_15 => p_source_15
142794 , p_source_15_meaning => p_source_15_meaning
142795 , p_source_30 => p_source_30
142796 , p_source_43 => p_source_43
142797          , x_transaction_coa_id       => l_adr_transaction_coa_id
142798          , x_accounting_coa_id        => l_adr_accounting_coa_id
142799          , x_value_type_code          => l_adr_value_type_code
142800          , p_side                     => 'NA'
142801    );
142802 
142803    xla_ae_lines_pkg.set_ccid(
142804     p_code_combination_id          => l_ccid
142805   , p_value_type_code              => l_adr_value_type_code
142806   , p_transaction_coa_id           => l_adr_transaction_coa_id
142807   , p_accounting_coa_id            => l_adr_accounting_coa_id
142808   , p_adr_code                     => 'AP_WH_DIST_ACCT'
142809   , p_adr_type_code                => 'S'
142810   , p_component_type               => l_component_type
142811   , p_component_code               => l_component_code
142812   , p_component_type_code          => l_component_type_code
142813   , p_component_appl_id            => l_component_appl_id
142814   , p_amb_context_code             => l_amb_context_code
142815   , p_side                         => 'NA'
142816   );
142817 
142818 
142819    l_segment := AcctDerRule_14(
142820            p_application_id           => p_application_id
142821          , p_ae_header_id             => l_ae_header_id 
142822 , p_source_15 => p_source_15
142823 , p_source_15_meaning => p_source_15_meaning
142824 , p_source_30 => p_source_30
142825          , x_transaction_coa_id       => l_adr_transaction_coa_id
142829          , x_value_type_code          => l_adr_value_type_code
142826          , x_accounting_coa_id        => l_adr_accounting_coa_id
142827          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
142828          , x_flex_value_set_id        => l_adr_flex_value_set_id
142830          , x_value_combination_id     => l_adr_value_combination_id
142831          , x_value_segment_code       => l_adr_value_segment_code
142832          , p_side                     => 'NA'
142833          , p_override_seg_flag        => 'Y'
142834    );
142835 
142836    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
142837 
142838       xla_ae_lines_pkg.set_segment(
142839           p_to_segment_code         => 'GL_ACCOUNT'
142840         , p_segment_value           => l_segment
142841         , p_from_segment_code       => l_adr_value_segment_code
142842         , p_from_combination_id     => l_adr_value_combination_id
142843         , p_value_type_code         => l_adr_value_type_code
142844         , p_transaction_coa_id      => l_adr_transaction_coa_id
142845         , p_accounting_coa_id       => l_adr_accounting_coa_id
142846         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
142847         , p_flex_value_set_id       => l_adr_flex_value_set_id
142848         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
142849         , p_adr_type_code           => 'S'
142850         , p_component_type          => l_component_type
142851         , p_component_code          => l_component_code
142852         , p_component_type_code     => l_component_type_code
142853         , p_component_appl_id       => l_component_appl_id
142854         , p_amb_context_code        => l_amb_context_code
142855         , p_entity_code             => 'AP_INVOICES'
142856         , p_event_class_code        => 'INVOICES'
142857         , p_side                    => 'NA'
142858         );
142859 
142860   END IF;
142861 
142862    l_segment := AcctDerRule_25(
142863            p_application_id           => p_application_id
142864          , p_ae_header_id             => l_ae_header_id 
142865 , p_source_15 => p_source_15
142866 , p_source_15_meaning => p_source_15_meaning
142867 , p_source_43 => p_source_43
142868          , x_transaction_coa_id       => l_adr_transaction_coa_id
142869          , x_accounting_coa_id        => l_adr_accounting_coa_id
142870          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
142871          , x_flex_value_set_id        => l_adr_flex_value_set_id
142872          , x_value_type_code          => l_adr_value_type_code
142873          , x_value_combination_id     => l_adr_value_combination_id
142874          , x_value_segment_code       => l_adr_value_segment_code
142875          , p_side                     => 'NA'
142876          , p_override_seg_flag        => 'Y'
142877    );
142878 
142879    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
142880 
142881       xla_ae_lines_pkg.set_segment(
142882           p_to_segment_code         => 'GL_BALANCING'
142883         , p_segment_value           => l_segment
142884         , p_from_segment_code       => l_adr_value_segment_code
142885         , p_from_combination_id     => l_adr_value_combination_id
142886         , p_value_type_code         => l_adr_value_type_code
142887         , p_transaction_coa_id      => l_adr_transaction_coa_id
142888         , p_accounting_coa_id       => l_adr_accounting_coa_id
142889         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
142890         , p_flex_value_set_id       => l_adr_flex_value_set_id
142891         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
142892         , p_adr_type_code           => 'S'
142893         , p_component_type          => l_component_type
142894         , p_component_code          => l_component_code
142895         , p_component_type_code     => l_component_type_code
142896         , p_component_appl_id       => l_component_appl_id
142897         , p_amb_context_code        => l_amb_context_code
142898         , p_entity_code             => 'AP_INVOICES'
142899         , p_event_class_code        => 'INVOICES'
142900         , p_side                    => 'NA'
142901         );
142902 
142903   END IF;
142904 
142905    --
142906    --
142907    END IF;
142908 
142909        --
142910        -- Update the line information that should be overwritten
142911        --
142912        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
142913                                          p_header_num   => 1);
142914        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
142915 
142916        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
142917 
142918        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
142919           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
142920        END IF;
142921 
142922       --
142923       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
142924       --
142925       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
142926           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
142927       ELSE
142928           ---------------------------------------------------------------------------------------------------
142929           -- 4262811a Switch Sign
142930           ---------------------------------------------------------------------------------------------------
142934           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
142931           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
142932           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
142933                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
142935                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
142936           -- 5132302
142937           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
142938                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
142939 
142940       END IF;
142941 
142942       -- 4955764
142943       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
142944       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
142945 
142946 
142947       XLA_AE_LINES_PKG.ValidateCurrentLine;
142948       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
142949 
142950       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
142951                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
142952                ,p_balance_type_code => l_balance_type_code);
142953 
142954    END IF;
142955 
142956    -----------------------------------------------------------------------------------------
142957    -- 4262811 Multiperiod Accounting
142958    -----------------------------------------------------------------------------------------
142959      -- No MPA option is assigned.
142960 
142961 
142962 END IF;
142963 END IF;
142964 --
142965 
142966 --
142967 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
142968    trace
142969       (p_msg      => 'END of AcctLineType_228'
142970       ,p_level    => C_LEVEL_PROCEDURE
142971       ,p_module   => l_log_module);
142972 END IF;
142973 --
142974 EXCEPTION
142975   WHEN xla_exceptions_pkg.application_exception THEN
142976       RAISE;
142977   WHEN OTHERS THEN
142978        xla_exceptions_pkg.raise_message
142979            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_228');
142980 END AcctLineType_228;
142981 --
142982 
142983 ---------------------------------------
142984 --
142985 -- PRIVATE FUNCTION
142986 --         AcctLineType_229
142987 --
142988 ---------------------------------------
142989 PROCEDURE AcctLineType_229 (
142990   p_application_id        IN NUMBER
142991  ,p_event_id              IN NUMBER
142992  ,p_calculate_acctd_flag  IN VARCHAR2
142993  ,p_calculate_g_l_flag    IN VARCHAR2
142994  ,p_actual_flag           IN OUT VARCHAR2
142995  ,p_balance_type_code     OUT VARCHAR2
142996  ,p_gain_or_loss_ref      OUT VARCHAR2
142997  
142998 --Invoice Distribution Description
142999  , p_source_1            IN VARCHAR2
143000 --Automatic Offsets Value
143001  , p_source_15            IN VARCHAR2
143002  , p_source_15_meaning    IN VARCHAR2
143003 --Invoice Distribution Ledger Amount
143004  , p_source_21            IN NUMBER
143005 --Invoice Distribution Account
143006  , p_source_30            IN NUMBER
143007 --Invoice Distribution Type
143008  , p_source_33            IN VARCHAR2
143009  , p_source_33_meaning    IN VARCHAR2
143010 --Withholding Related Distribution Account
143011  , p_source_43            IN NUMBER
143012 --Accounting Reversal Indicator
143013  , p_source_53            IN VARCHAR2
143014 --Distribution Link Type
143015  , p_source_55            IN VARCHAR2
143016 --Allocation to Main Distribution Identifier
143017  , p_source_57            IN NUMBER
143018 --Invoice Identifier
143019  , p_source_58            IN NUMBER
143020 --Invoice Distribution Identifier
143021  , p_source_64            IN NUMBER
143022 --Payables Encumbrance Upgrade Credit Account
143023  , p_source_65            IN NUMBER
143024 --Payables Encumbrance Upgrade Credit Amount
143025  , p_source_66            IN NUMBER
143026 --Invoice Currency Code
143027  , p_source_67            IN VARCHAR2
143028 --Payables Encumbrance Upgrade Credit Base Amount
143029  , p_source_68            IN NUMBER
143030 --Payables Encumbrance Upgrade Debit Account
143031  , p_source_69            IN NUMBER
143032 --Payables Encumbrance Upgrade Debit Amount
143033  , p_source_70            IN NUMBER
143034 --Payables Encumbrance Upgrade Debit Base Amount
143035  , p_source_71            IN NUMBER
143036 --Payables Encumbrance Upgrade Option
143037  , p_source_72            IN VARCHAR2
143038 --Invoice Distribution Amount
143039  , p_source_73            IN NUMBER
143040 --Deferred Accounting End Date
143041  , p_source_77            IN DATE
143042 --Deferred Accounting Option
143043  , p_source_78            IN VARCHAR2
143044 --Deferred Accounting Start Date
143045  , p_source_79            IN DATE
143046 --Override Accounted Amount Indicator
143047  , p_source_80            IN VARCHAR2
143048  , p_source_80_meaning    IN VARCHAR2
143049 --Invoice Supplier Identifier
143050  , p_source_81            IN NUMBER
143051 --Invoice Supplier Site Identifier
143052  , p_source_82            IN NUMBER
143053 --Third Party Type
143054  , p_source_83            IN VARCHAR2
143055 --Parent Reversal Identifier
143056  , p_source_84            IN NUMBER
143057 --Invoice Distribution Statistical Amount
143058  , p_source_85            IN NUMBER
143059 --Invoice Distribution Tax Line Identifier
143063 --Invoice Distribution Summary Tax Line Identifier
143060  , p_source_86            IN NUMBER
143061 --Invoice Distribution Tax Distribution Identifier from Tax
143062  , p_source_87            IN NUMBER
143064  , p_source_88            IN NUMBER
143065 --Payables Upgrade Credit Encumbrance Type Identifier
143066  , p_source_89            IN NUMBER
143067 --Payables Upgrade Debit Encumbrance Type Identifier
143068  , p_source_90            IN NUMBER
143069 --Business Flow Accounts Payable Application Identifier
143070  , p_source_91            IN NUMBER
143071 --Business Flow Invoice Distribution Type
143072  , p_source_92            IN VARCHAR2
143073 --Business Flow Invoice Entity Code
143074  , p_source_93            IN VARCHAR2
143075 --Business Flow Invoice Distribution Identifier
143076  , p_source_94            IN NUMBER
143077 --Business Flow Invoice Identifier
143078  , p_source_95            IN NUMBER
143079 --Invoice Exchange Date
143080  , p_source_143            IN DATE
143081 --Invoice Exchange Rate
143082  , p_source_144            IN NUMBER
143083 --Invoice Exchange Rate Type
143084  , p_source_145            IN VARCHAR2
143085 )
143086 IS
143087 
143088 l_component_type              VARCHAR2(80);
143089 l_component_code              VARCHAR2(30);
143090 l_component_type_code         VARCHAR2(1);
143091 l_component_appl_id           INTEGER;
143092 l_amb_context_code            VARCHAR2(30);
143093 l_entity_code                 VARCHAR2(30);
143094 l_event_class_code            VARCHAR2(30);
143095 l_ae_header_id                NUMBER;
143096 l_event_type_code             VARCHAR2(30);
143097 l_line_definition_code        VARCHAR2(30);
143098 l_line_definition_owner_code  VARCHAR2(1);
143099 --
143100 -- adr variables
143101 l_segment                     VARCHAR2(30);
143102 l_ccid                        NUMBER;
143103 l_adr_transaction_coa_id      NUMBER;
143104 l_adr_accounting_coa_id       NUMBER;
143105 l_adr_flexfield_segment_code  VARCHAR2(30);
143106 l_adr_flex_value_set_id       NUMBER;
143107 l_adr_value_type_code         VARCHAR2(30);
143108 l_adr_value_combination_id    NUMBER;
143109 l_adr_value_segment_code      VARCHAR2(30);
143110 
143111 l_bflow_method_code           VARCHAR2(30);  -- 4219869 Business Flow
143112 l_bflow_class_code            VARCHAR2(30);  -- 4219869 Business Flow
143113 l_inherit_desc_flag           VARCHAR2(1);   -- 4219869 Business Flow
143114 l_budgetary_control_flag      VARCHAR2(1);   -- 4458381 Public Sector Enh
143115 
143116 -- 4262811 Variables ------------------------------------------------------------------------------------------
143117 l_entered_amt_idx             NUMBER;
143118 l_accted_amt_idx              NUMBER;
143119 l_acc_rev_flag                VARCHAR2(1);
143120 l_accrual_line_num            NUMBER;
143121 l_tmp_amt                     NUMBER;
143122 l_acc_rev_natural_side_code   VARCHAR2(1);
143123 
143124 l_num_entries                 NUMBER;
143125 l_gl_dates                    xla_ae_journal_entry_pkg.t_array_date;
143126 l_accted_amts                 xla_ae_journal_entry_pkg.t_array_num;
143127 l_entered_amts                xla_ae_journal_entry_pkg.t_array_num;
143128 l_period_names                xla_ae_journal_entry_pkg.t_array_V15L;
143129 l_recog_line_1                NUMBER;
143130 l_recog_line_2                NUMBER;
143131 
143132 l_bflow_applied_to_amt_idx    NUMBER;                                -- 5132302
143133 l_bflow_applied_to_amt        NUMBER;                                -- 5132302
143134 l_bflow_applied_to_amts       xla_ae_journal_entry_pkg.t_array_num;  -- 5132302
143135 
143136 l_event_id                    NUMBER;  -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
143137 
143138 --l_rounding_ccy                VARCHAR2(15); -- To handle MPA rounding  4262811b
143139 l_same_currency               BOOLEAN;        -- To handle MPA rounding  4262811b
143140 
143141 ---------------------------------------------------------------------------------------------------------------
143142 
143143 
143144 --
143145 -- bulk performance
143146 --
143147 l_balance_type_code           VARCHAR2(1);
143148 l_rec_acct_attrs              XLA_AE_LINES_PKG.t_rec_acct_attrs;
143149 l_log_module                  VARCHAR2(240);
143150 
143151 --
143152 -- Upgrade strategy
143153 --
143154 l_actual_upg_option           VARCHAR2(1);
143155 l_enc_upg_option           VARCHAR2(1);
143156 
143157 --
143158 BEGIN
143159 --
143160 IF g_log_enabled THEN
143161       l_log_module := C_DEFAULT_MODULE||'.AcctLineType_229';
143162 END IF;
143163 --
143164 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
143165 
143166       trace
143167          (p_msg      => 'BEGIN of AcctLineType_229'
143168          ,p_level    => C_LEVEL_PROCEDURE
143169          ,p_module   => l_log_module);
143170 
143171 END IF;
143172 --
143173 l_component_type             := 'AMB_JLT';
143174 l_component_code             := 'AP_WITHHOLD_TAX_PREPAY';
143175 l_component_type_code        := 'S';
143176 l_component_appl_id          :=  200;
143177 l_amb_context_code           := 'DEFAULT';
143178 l_entity_code                := 'AP_INVOICES';
143179 l_event_class_code           := 'PREPAYMENTS';
143180 l_event_type_code            := 'PREPAYMENTS_ALL';
143181 l_line_definition_owner_code := 'S';
143182 l_line_definition_code       := 'ACCRUAL_PREPAYMENTS_ALL';
143183 --
143184 l_balance_type_code          := 'A';
143185 l_segment                     := NULL;
143186 l_ccid                        := NULL;
143187 l_adr_transaction_coa_id      := NULL;
143188 l_adr_accounting_coa_id       := NULL;
143189 l_adr_flexfield_segment_code  := NULL;
143193 l_adr_value_segment_code      := NULL;
143190 l_adr_flex_value_set_id       := NULL;
143191 l_adr_value_type_code         := NULL;
143192 l_adr_value_combination_id    := NULL;
143194 
143195 l_bflow_method_code          := 'NONE';   -- 4219869 Business Flow
143196 l_bflow_class_code           := '';    -- 4219869 Business Flow
143197 l_inherit_desc_flag          := 'N';   -- 4219869 Business Flow
143198 l_budgetary_control_flag     := 'N';
143199 
143200 l_bflow_applied_to_amt_idx   := NULL; -- 5132302
143201 l_bflow_applied_to_amt       := NULL; -- 5132302
143202 l_entered_amt_idx            := NULL;          -- 4262811
143203 l_accted_amt_idx             := NULL;          -- 4262811
143204 l_acc_rev_flag               := NULL;          -- 4262811
143205 l_accrual_line_num           := NULL;          -- 4262811
143206 l_tmp_amt                    := NULL;          -- 4262811
143207 --
143208  
143209 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
143210     l_balance_type_code <> 'B' THEN
143211 IF NVL(p_source_33,'
143212 ') =  'AWT'
143213  THEN 
143214 
143215    --
143216    XLA_AE_LINES_PKG.SetNewLine;
143217 
143218    p_balance_type_code          := l_balance_type_code;
143219    -- set the flag so later we will know whether the gain loss line needs to be created
143220    
143221    IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
143222      p_actual_flag :='A';
143223    END IF;
143224 
143225    --
143226    -- bulk performance
143227    --
143228    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
143229                                       p_header_num   => 0); -- 4262811
143230    --
143231    -- set accounting line options
143232    --
143233    l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
143234            p_natural_side_code          => 'D'
143235          , p_gain_or_loss_flag          => 'N'
143236          , p_gl_transfer_mode_code      => 'S'
143237          , p_acct_entry_type_code       => 'A'
143238          , p_switch_side_flag           => 'Y'
143239          , p_merge_duplicate_code       => 'A'
143240          );
143241    --
143242    l_acc_rev_natural_side_code := 'C';  -- 4262811
143243    -- 
143244    --
143245    -- set accounting line type info
143246    --
143247    xla_ae_lines_pkg.SetAcctLineType
143248       (p_component_type             => l_component_type
143249       ,p_event_type_code            => l_event_type_code
143250       ,p_line_definition_owner_code => l_line_definition_owner_code
143251       ,p_line_definition_code       => l_line_definition_code
143252       ,p_accounting_line_code       => l_component_code
143253       ,p_accounting_line_type_code  => l_component_type_code
143254       ,p_accounting_line_appl_id    => l_component_appl_id
143255       ,p_amb_context_code           => l_amb_context_code
143256       ,p_entity_code                => l_entity_code
143257       ,p_event_class_code           => l_event_class_code);
143258    --
143259    -- set accounting class
143260    --
143261    xla_ae_lines_pkg.SetAcctClass(
143262            p_accounting_class_code  => 'AWT'
143263          , p_ae_header_id           => l_ae_header_id
143264          );
143265 
143266    --
143267    -- set rounding class
143268    --
143269    XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
143270                       'AWT';
143271 
143272    --
143273    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
143274    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
143275    --
143276    -- bulk performance
143277    --
143278    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
143279 
143280    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
143281       XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
143282 
143283    -- 4955764
143284    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
143285       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
143286 
143287    -- 4458381 Public Sector Enh
143288    
143289    --
143290    -- set accounting attributes for the line type
143291    --
143292    l_entered_amt_idx := 23;
143293    l_accted_amt_idx  := 28;
143294    l_bflow_applied_to_amt_idx  := NULL;  -- 5132302
143295    l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
143296    l_rec_acct_attrs.array_char_value(1)  := p_source_53;
143297    l_rec_acct_attrs.array_acct_attr_code(2) := 'ALLOC_TO_APPLICATION_ID';
143298    l_rec_acct_attrs.array_num_value(2)  := 
143299 xla_ae_sources_pkg.GetSystemSourceNum(
143300    p_source_code           => 'XLA_EVENT_APPL_ID'
143301  , p_source_type_code      => 'Y'
143302  , p_source_application_id =>  602
143303 );
143304    l_rec_acct_attrs.array_acct_attr_code(3) := 'ALLOC_TO_DISTRIBUTION_TYPE';
143305    l_rec_acct_attrs.array_char_value(3)  := p_source_55;
143306    l_rec_acct_attrs.array_acct_attr_code(4) := 'ALLOC_TO_ENTITY_CODE';
143307    l_rec_acct_attrs.array_char_value(4)  := 
143308 xla_ae_sources_pkg.GetSystemSourceChar(
143309    p_source_code           => 'XLA_ENTITY_CODE'
143310  , p_source_type_code      => 'Y'
143311  , p_source_application_id =>  602
143312 );
143313    l_rec_acct_attrs.array_acct_attr_code(5) := 'ALLOC_TO_FIRST_DIST_ID';
143317    l_rec_acct_attrs.array_acct_attr_code(7) := 'APPLIED_TO_APPLICATION_ID';
143314    l_rec_acct_attrs.array_num_value(5)  :=  to_char(p_source_57);
143315    l_rec_acct_attrs.array_acct_attr_code(6) := 'ALLOC_TO_FIRST_SYS_TRAN_ID';
143316    l_rec_acct_attrs.array_num_value(6)  :=  to_char(p_source_58);
143318    l_rec_acct_attrs.array_num_value(7)  := p_source_91;
143319    l_rec_acct_attrs.array_acct_attr_code(8) := 'APPLIED_TO_DISTRIBUTION_TYPE';
143320    l_rec_acct_attrs.array_char_value(8)  := p_source_92;
143321    l_rec_acct_attrs.array_acct_attr_code(9) := 'APPLIED_TO_ENTITY_CODE';
143322    l_rec_acct_attrs.array_char_value(9)  := p_source_93;
143323    l_rec_acct_attrs.array_acct_attr_code(10) := 'APPLIED_TO_FIRST_DIST_ID';
143324    l_rec_acct_attrs.array_num_value(10)  :=  to_char(p_source_94);
143325    l_rec_acct_attrs.array_acct_attr_code(11) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
143326    l_rec_acct_attrs.array_num_value(11)  :=  to_char(p_source_95);
143327    l_rec_acct_attrs.array_acct_attr_code(12) := 'DISTRIBUTION_IDENTIFIER_1';
143328    l_rec_acct_attrs.array_num_value(12)  :=  to_char(p_source_64);
143329    l_rec_acct_attrs.array_acct_attr_code(13) := 'DISTRIBUTION_TYPE';
143330    l_rec_acct_attrs.array_char_value(13)  := p_source_55;
143331    l_rec_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_CR_CCID';
143332    l_rec_acct_attrs.array_num_value(14)  := p_source_65;
143333    l_rec_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_CR_ENTERED_AMT';
143334    l_rec_acct_attrs.array_num_value(15)  := p_source_66;
143335    l_rec_acct_attrs.array_acct_attr_code(16) := 'ENC_UPG_CR_ENTERED_CURR';
143336    l_rec_acct_attrs.array_char_value(16)  := p_source_67;
143337    l_rec_acct_attrs.array_acct_attr_code(17) := 'ENC_UPG_CR_LEDGER_AMT';
143338    l_rec_acct_attrs.array_num_value(17)  := p_source_68;
143339    l_rec_acct_attrs.array_acct_attr_code(18) := 'ENC_UPG_DR_CCID';
143340    l_rec_acct_attrs.array_num_value(18)  := p_source_69;
143341    l_rec_acct_attrs.array_acct_attr_code(19) := 'ENC_UPG_DR_ENTERED_AMT';
143342    l_rec_acct_attrs.array_num_value(19)  := p_source_70;
143343    l_rec_acct_attrs.array_acct_attr_code(20) := 'ENC_UPG_DR_ENTERED_CURR';
143344    l_rec_acct_attrs.array_char_value(20)  := p_source_67;
143345    l_rec_acct_attrs.array_acct_attr_code(21) := 'ENC_UPG_DR_LEDGER_AMT';
143346    l_rec_acct_attrs.array_num_value(21)  := p_source_71;
143347    l_rec_acct_attrs.array_acct_attr_code(22) := 'ENC_UPG_OPTION';
143348    l_rec_acct_attrs.array_char_value(22)  := p_source_72;
143349    l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_AMOUNT';
143350    l_rec_acct_attrs.array_num_value(23)  := p_source_73;
143351    l_rec_acct_attrs.array_acct_attr_code(24) := 'ENTERED_CURRENCY_CODE';
143352    l_rec_acct_attrs.array_char_value(24)  := p_source_67;
143353    l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_DATE';
143354    l_rec_acct_attrs.array_date_value(25)  := p_source_143;
143355    l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE';
143356    l_rec_acct_attrs.array_num_value(26)  := p_source_144;
143357    l_rec_acct_attrs.array_acct_attr_code(27) := 'EXCHANGE_RATE_TYPE';
143358    l_rec_acct_attrs.array_char_value(27)  := p_source_145;
143359    l_rec_acct_attrs.array_acct_attr_code(28) := 'LEDGER_AMOUNT';
143360    l_rec_acct_attrs.array_num_value(28)  := p_source_21;
143361    l_rec_acct_attrs.array_acct_attr_code(29) := 'MULTIPERIOD_END_DATE';
143362    l_rec_acct_attrs.array_date_value(29)  := p_source_77;
143363    l_rec_acct_attrs.array_acct_attr_code(30) := 'MULTIPERIOD_OPTION';
143364    l_rec_acct_attrs.array_char_value(30)  := p_source_78;
143365    l_rec_acct_attrs.array_acct_attr_code(31) := 'MULTIPERIOD_START_DATE';
143366    l_rec_acct_attrs.array_date_value(31)  := p_source_79;
143367    l_rec_acct_attrs.array_acct_attr_code(32) := 'OVERRIDE_ACCTD_AMT_FLAG';
143368    l_rec_acct_attrs.array_char_value(32)  := p_source_80;
143369    l_rec_acct_attrs.array_acct_attr_code(33) := 'PARTY_ID';
143370    l_rec_acct_attrs.array_num_value(33)  := p_source_81;
143371    l_rec_acct_attrs.array_acct_attr_code(34) := 'PARTY_SITE_ID';
143372    l_rec_acct_attrs.array_num_value(34)  := p_source_82;
143373    l_rec_acct_attrs.array_acct_attr_code(35) := 'PARTY_TYPE';
143374    l_rec_acct_attrs.array_char_value(35)  := p_source_83;
143375    l_rec_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID1';
143376    l_rec_acct_attrs.array_num_value(36)  :=  to_char(p_source_84);
143377    l_rec_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
143378    l_rec_acct_attrs.array_char_value(37)  := p_source_55;
143379    l_rec_acct_attrs.array_acct_attr_code(38) := 'STATISTICAL_AMOUNT';
143380    l_rec_acct_attrs.array_num_value(38)  := p_source_85;
143381    l_rec_acct_attrs.array_acct_attr_code(39) := 'TAX_LINE_REF_ID';
143382    l_rec_acct_attrs.array_num_value(39)  := p_source_86;
143383    l_rec_acct_attrs.array_acct_attr_code(40) := 'TAX_REC_NREC_DIST_REF_ID';
143384    l_rec_acct_attrs.array_num_value(40)  := p_source_87;
143385    l_rec_acct_attrs.array_acct_attr_code(41) := 'TAX_SUMMARY_LINE_REF_ID';
143386    l_rec_acct_attrs.array_num_value(41)  := p_source_88;
143387    l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_CR_ENC_TYPE_ID';
143388    l_rec_acct_attrs.array_num_value(42)  := p_source_89;
143389    l_rec_acct_attrs.array_acct_attr_code(43) := 'UPG_DR_ENC_TYPE_ID';
143390    l_rec_acct_attrs.array_num_value(43)  := p_source_90;
143391 
143392    XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
143393    p_gain_or_loss_ref  := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
143394 
143395    ---------------------------------------------------------------------------------------------------------------
143399 
143396    -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
143397    ---------------------------------------------------------------------------------------------------------------
143398    XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
143400    l_actual_upg_option  := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
143401    l_enc_upg_option     := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
143402 
143403    IF xla_accounting_cache_pkg.GetValueChar
143404          (p_source_code         => 'LEDGER_CATEGORY_CODE'
143405          ,p_target_ledger_id    => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
143406    AND l_bflow_method_code = 'PRIOR_ENTRY'
143407 --   AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
143408    AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
143409          (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
143410        )
143411    THEN
143412          xla_ae_lines_pkg.BflowUpgEntry
143413            (p_business_method_code    => l_bflow_method_code
143414            ,p_business_class_code     => l_bflow_class_code
143415            ,p_balance_type            => l_balance_type_code);
143416    ELSE
143417       NULL;
143418 -- No business flow processing for business flow method of NONE.
143419    END IF;
143420 
143421    --
143422    -- call analytical criteria
143423    --
143424    
143425    --
143426    -- call description
143427    --
143428    
143429 xla_ae_lines_pkg.SetLineDescription(
143430    p_ae_header_id => l_ae_header_id
143431   ,p_description  => Description_1 (
143432      p_application_id         => p_application_id
143433    , p_ae_header_id           => l_ae_header_id 
143434 , p_source_1 => p_source_1
143435    )
143436 );
143437 
143438 
143439    --
143440    -- call ADRs
143441    -- Bug 4922099
143442    --
143443    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
143444         (NVL(l_actual_upg_option, 'N') = 'O') OR
143445         (NVL(l_enc_upg_option, 'N') = 'O')
143446       )
143447    THEN
143448    NULL;
143449    --
143450    --
143451    
143452   l_ccid := AcctDerRule_46(
143453            p_application_id           => p_application_id
143454          , p_ae_header_id             => l_ae_header_id 
143455 , p_source_15 => p_source_15
143456 , p_source_15_meaning => p_source_15_meaning
143457 , p_source_30 => p_source_30
143458 , p_source_43 => p_source_43
143459          , x_transaction_coa_id       => l_adr_transaction_coa_id
143460          , x_accounting_coa_id        => l_adr_accounting_coa_id
143461          , x_value_type_code          => l_adr_value_type_code
143462          , p_side                     => 'NA'
143463    );
143464 
143465    xla_ae_lines_pkg.set_ccid(
143466     p_code_combination_id          => l_ccid
143467   , p_value_type_code              => l_adr_value_type_code
143468   , p_transaction_coa_id           => l_adr_transaction_coa_id
143469   , p_accounting_coa_id            => l_adr_accounting_coa_id
143470   , p_adr_code                     => 'AP_WH_DIST_ACCT'
143471   , p_adr_type_code                => 'S'
143472   , p_component_type               => l_component_type
143473   , p_component_code               => l_component_code
143474   , p_component_type_code          => l_component_type_code
143475   , p_component_appl_id            => l_component_appl_id
143476   , p_amb_context_code             => l_amb_context_code
143477   , p_side                         => 'NA'
143478   );
143479 
143480 
143481    l_segment := AcctDerRule_14(
143482            p_application_id           => p_application_id
143483          , p_ae_header_id             => l_ae_header_id 
143484 , p_source_15 => p_source_15
143485 , p_source_15_meaning => p_source_15_meaning
143486 , p_source_30 => p_source_30
143487          , x_transaction_coa_id       => l_adr_transaction_coa_id
143488          , x_accounting_coa_id        => l_adr_accounting_coa_id
143489          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
143490          , x_flex_value_set_id        => l_adr_flex_value_set_id
143491          , x_value_type_code          => l_adr_value_type_code
143492          , x_value_combination_id     => l_adr_value_combination_id
143493          , x_value_segment_code       => l_adr_value_segment_code
143494          , p_side                     => 'NA'
143495          , p_override_seg_flag        => 'Y'
143496    );
143497 
143498    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
143499 
143500       xla_ae_lines_pkg.set_segment(
143501           p_to_segment_code         => 'GL_ACCOUNT'
143502         , p_segment_value           => l_segment
143503         , p_from_segment_code       => l_adr_value_segment_code
143504         , p_from_combination_id     => l_adr_value_combination_id
143505         , p_value_type_code         => l_adr_value_type_code
143506         , p_transaction_coa_id      => l_adr_transaction_coa_id
143507         , p_accounting_coa_id       => l_adr_accounting_coa_id
143508         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
143509         , p_flex_value_set_id       => l_adr_flex_value_set_id
143510         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
143511         , p_adr_type_code           => 'S'
143512         , p_component_type          => l_component_type
143513         , p_component_code          => l_component_code
143514         , p_component_type_code     => l_component_type_code
143518         , p_event_class_code        => 'PREPAYMENTS'
143515         , p_component_appl_id       => l_component_appl_id
143516         , p_amb_context_code        => l_amb_context_code
143517         , p_entity_code             => 'AP_INVOICES'
143519         , p_side                    => 'NA'
143520         );
143521 
143522   END IF;
143523 
143524    l_segment := AcctDerRule_25(
143525            p_application_id           => p_application_id
143526          , p_ae_header_id             => l_ae_header_id 
143527 , p_source_15 => p_source_15
143528 , p_source_15_meaning => p_source_15_meaning
143529 , p_source_43 => p_source_43
143530          , x_transaction_coa_id       => l_adr_transaction_coa_id
143531          , x_accounting_coa_id        => l_adr_accounting_coa_id
143532          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
143533          , x_flex_value_set_id        => l_adr_flex_value_set_id
143534          , x_value_type_code          => l_adr_value_type_code
143535          , x_value_combination_id     => l_adr_value_combination_id
143536          , x_value_segment_code       => l_adr_value_segment_code
143537          , p_side                     => 'NA'
143538          , p_override_seg_flag        => 'Y'
143539    );
143540 
143541    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
143542 
143543       xla_ae_lines_pkg.set_segment(
143544           p_to_segment_code         => 'GL_BALANCING'
143545         , p_segment_value           => l_segment
143546         , p_from_segment_code       => l_adr_value_segment_code
143547         , p_from_combination_id     => l_adr_value_combination_id
143548         , p_value_type_code         => l_adr_value_type_code
143549         , p_transaction_coa_id      => l_adr_transaction_coa_id
143550         , p_accounting_coa_id       => l_adr_accounting_coa_id
143551         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
143552         , p_flex_value_set_id       => l_adr_flex_value_set_id
143553         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
143554         , p_adr_type_code           => 'S'
143555         , p_component_type          => l_component_type
143556         , p_component_code          => l_component_code
143557         , p_component_type_code     => l_component_type_code
143558         , p_component_appl_id       => l_component_appl_id
143559         , p_amb_context_code        => l_amb_context_code
143560         , p_entity_code             => 'AP_INVOICES'
143561         , p_event_class_code        => 'PREPAYMENTS'
143562         , p_side                    => 'NA'
143563         );
143564 
143565   END IF;
143566 
143567    --
143568    --
143569    END IF;
143570    --
143571    -- Bug 4922099
143572    IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
143573           (NVL(l_enc_upg_option, 'N') = 'O')
143574         ) AND
143575         (l_bflow_method_code = 'PRIOR_ENTRY')
143576       )
143577    THEN
143578       IF
143579       --
143580       1 = 2
143581       --
143582       THEN
143583       xla_accounting_err_pkg.build_message
143584                                     (p_appli_s_name            => 'XLA'
143585                                     ,p_msg_name                => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
143586                                     ,p_token_1                 => 'LINE_NUMBER'
143587                                     ,p_value_1                 => XLA_AE_LINES_PKG.g_LineNumber
143588                                     ,p_token_2                 => 'LINE_TYPE_NAME'
143589                                     ,p_value_2                 => XLA_AE_SOURCES_PKG.GetComponentName (
143590                                                                              l_component_type
143591                                                                             ,l_component_code
143592                                                                             ,l_component_type_code
143593                                                                             ,l_component_appl_id
143594                                                                             ,l_amb_context_code
143595                                                                             ,l_entity_code
143596                                                                             ,l_event_class_code
143597                                                                            )
143598                                     ,p_token_3                 => 'OWNER'
143599                                     ,p_value_3                 => xla_lookups_pkg.get_meaning(
143600                                                                           p_lookup_type     => 'XLA_OWNER_TYPE'
143601                                                                           ,p_lookup_code    => l_component_type_code
143602                                                                          )
143603                                     ,p_token_4                 => 'PRODUCT_NAME'
143604                                     ,p_value_4                 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
143605                                     ,p_entity_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
143606                                     ,p_event_id                => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
143607                                     ,p_ledger_id               => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
143608                                     ,p_ae_header_id            =>  NULL
143609                                        );
143610 
143611         IF (C_LEVEL_ERROR>= g_log_level) THEN
143612                  trace
143613                       (p_msg      => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
143614                       ,p_level    => C_LEVEL_ERROR
143618    END IF;
143615                       ,p_module   => l_log_module);
143616         END IF;
143617       END IF;
143619    --
143620    --
143621    ------------------------------------------------------------------------------------------------
143622    -- 4219869 Business Flow
143623    -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
143624    -- Prior Entry.  Currently, the following code is always generated.
143625    ------------------------------------------------------------------------------------------------
143626    XLA_AE_LINES_PKG.ValidateCurrentLine;
143627 
143628    ------------------------------------------------------------------------------------
143629    -- 4219869 Business Flow
143630    -- Populated credit and debit amounts -- Need to generate this within IF <condition>
143631    ------------------------------------------------------------------------------------
143632    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
143633 
143634    ----------------------------------------------------------------------------------
143635    -- 4219869 Business Flow
143636    -- Update journal entry status -- Need to generate this within IF <condition>
143637    ----------------------------------------------------------------------------------
143638    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
143639          (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
143640          ,p_balance_type_code => l_balance_type_code
143641          );
143642 
143643    -------------------------------------------------------------------------------------------
143644    -- 4262811 - Generate the Accrual Reversal lines
143645    -------------------------------------------------------------------------------------------
143646    BEGIN
143647       l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
143648                               (g_array_event(p_event_id).array_value_num('header_index'));
143649       IF l_acc_rev_flag IS NULL THEN
143650          l_acc_rev_flag := 'N';
143651       END IF;
143652    EXCEPTION
143653       WHEN OTHERS THEN
143654          l_acc_rev_flag := 'N';
143655    END;
143656    --
143657    IF (l_acc_rev_flag = 'Y') THEN
143658 
143659        -- 4645092  ------------------------------------------------------------------------------
143660        -- To allow MPA report to determine if it should generate report process
143661        XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
143662        ------------------------------------------------------------------------------------------
143663 
143664        l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
143665        XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
143666    -- added call to set_ccid to execute mapping  for secondary accrual reversal entries bug 7444204
143667    -- call ADRs
143668    -- Bug 4922099
143669    --
143670    IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
143671         (NVL(l_actual_upg_option, 'N') = 'O') OR
143672         (NVL(l_enc_upg_option, 'N') = 'O')
143673       )
143674    THEN
143675    NULL;
143676    --
143677    --
143678    
143679   l_ccid := AcctDerRule_46(
143680            p_application_id           => p_application_id
143681          , p_ae_header_id             => l_ae_header_id 
143682 , p_source_15 => p_source_15
143683 , p_source_15_meaning => p_source_15_meaning
143684 , p_source_30 => p_source_30
143685 , p_source_43 => p_source_43
143686          , x_transaction_coa_id       => l_adr_transaction_coa_id
143687          , x_accounting_coa_id        => l_adr_accounting_coa_id
143688          , x_value_type_code          => l_adr_value_type_code
143689          , p_side                     => 'NA'
143690    );
143691 
143692    xla_ae_lines_pkg.set_ccid(
143693     p_code_combination_id          => l_ccid
143694   , p_value_type_code              => l_adr_value_type_code
143695   , p_transaction_coa_id           => l_adr_transaction_coa_id
143696   , p_accounting_coa_id            => l_adr_accounting_coa_id
143697   , p_adr_code                     => 'AP_WH_DIST_ACCT'
143698   , p_adr_type_code                => 'S'
143699   , p_component_type               => l_component_type
143700   , p_component_code               => l_component_code
143701   , p_component_type_code          => l_component_type_code
143702   , p_component_appl_id            => l_component_appl_id
143703   , p_amb_context_code             => l_amb_context_code
143704   , p_side                         => 'NA'
143705   );
143706 
143707 
143708    l_segment := AcctDerRule_14(
143709            p_application_id           => p_application_id
143710          , p_ae_header_id             => l_ae_header_id 
143711 , p_source_15 => p_source_15
143712 , p_source_15_meaning => p_source_15_meaning
143713 , p_source_30 => p_source_30
143714          , x_transaction_coa_id       => l_adr_transaction_coa_id
143715          , x_accounting_coa_id        => l_adr_accounting_coa_id
143716          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
143717          , x_flex_value_set_id        => l_adr_flex_value_set_id
143718          , x_value_type_code          => l_adr_value_type_code
143719          , x_value_combination_id     => l_adr_value_combination_id
143720          , x_value_segment_code       => l_adr_value_segment_code
143721          , p_side                     => 'NA'
143722          , p_override_seg_flag        => 'Y'
143723    );
143724 
143725    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
143726 
143727       xla_ae_lines_pkg.set_segment(
143728           p_to_segment_code         => 'GL_ACCOUNT'
143732         , p_value_type_code         => l_adr_value_type_code
143729         , p_segment_value           => l_segment
143730         , p_from_segment_code       => l_adr_value_segment_code
143731         , p_from_combination_id     => l_adr_value_combination_id
143733         , p_transaction_coa_id      => l_adr_transaction_coa_id
143734         , p_accounting_coa_id       => l_adr_accounting_coa_id
143735         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
143736         , p_flex_value_set_id       => l_adr_flex_value_set_id
143737         , p_adr_code                => 'AP_INVOICE_DIST_NAT_ACCT_SEG'
143738         , p_adr_type_code           => 'S'
143739         , p_component_type          => l_component_type
143740         , p_component_code          => l_component_code
143741         , p_component_type_code     => l_component_type_code
143742         , p_component_appl_id       => l_component_appl_id
143743         , p_amb_context_code        => l_amb_context_code
143744         , p_entity_code             => 'AP_INVOICES'
143745         , p_event_class_code        => 'PREPAYMENTS'
143746         , p_side                    => 'NA'
143747         );
143748 
143749   END IF;
143750 
143751    l_segment := AcctDerRule_25(
143752            p_application_id           => p_application_id
143753          , p_ae_header_id             => l_ae_header_id 
143754 , p_source_15 => p_source_15
143755 , p_source_15_meaning => p_source_15_meaning
143756 , p_source_43 => p_source_43
143757          , x_transaction_coa_id       => l_adr_transaction_coa_id
143758          , x_accounting_coa_id        => l_adr_accounting_coa_id
143759          , x_flexfield_segment_code   => l_adr_flexfield_segment_code
143760          , x_flex_value_set_id        => l_adr_flex_value_set_id
143761          , x_value_type_code          => l_adr_value_type_code
143762          , x_value_combination_id     => l_adr_value_combination_id
143763          , x_value_segment_code       => l_adr_value_segment_code
143764          , p_side                     => 'NA'
143765          , p_override_seg_flag        => 'Y'
143766    );
143767 
143768    IF NVL(l_segment,'NULL') <> '#$NO_OVERRIDE#$' THEN  -- 4465612
143769 
143770       xla_ae_lines_pkg.set_segment(
143771           p_to_segment_code         => 'GL_BALANCING'
143772         , p_segment_value           => l_segment
143773         , p_from_segment_code       => l_adr_value_segment_code
143774         , p_from_combination_id     => l_adr_value_combination_id
143775         , p_value_type_code         => l_adr_value_type_code
143776         , p_transaction_coa_id      => l_adr_transaction_coa_id
143777         , p_accounting_coa_id       => l_adr_accounting_coa_id
143778         , p_flexfield_segment_code  => l_adr_flexfield_segment_code
143779         , p_flex_value_set_id       => l_adr_flex_value_set_id
143780         , p_adr_code                => 'AP_WH_RELATED_DIST_BAL_SEG'
143781         , p_adr_type_code           => 'S'
143782         , p_component_type          => l_component_type
143783         , p_component_code          => l_component_code
143784         , p_component_type_code     => l_component_type_code
143785         , p_component_appl_id       => l_component_appl_id
143786         , p_amb_context_code        => l_amb_context_code
143787         , p_entity_code             => 'AP_INVOICES'
143788         , p_event_class_code        => 'PREPAYMENTS'
143789         , p_side                    => 'NA'
143790         );
143791 
143792   END IF;
143793 
143794    --
143795    --
143796    END IF;
143797 
143798        --
143799        -- Update the line information that should be overwritten
143800        --
143801        XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
143802                                          p_header_num   => 1);
143803        XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber)  :=1;
143804 
143805        XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
143806 
143807        IF l_bflow_method_code <> 'NONE' THEN  -- 4655713b
143808           XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
143809        END IF;
143810 
143811       --
143812       -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
143813       --
143814       IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
143815           XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) :=  l_acc_rev_natural_side_code;
143816       ELSE
143817           ---------------------------------------------------------------------------------------------------
143818           -- 4262811a Switch Sign
143819           ---------------------------------------------------------------------------------------------------
143820           XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N';  -- 5052518
143821           XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
143822                       XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
143823           XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
143824                       XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
143825           -- 5132302
143826           XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
143827                       XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
143828 
143829       END IF;
143830 
143834 
143831       -- 4955764
143832       XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
143833       XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
143835 
143836       XLA_AE_LINES_PKG.ValidateCurrentLine;
143837       XLA_AE_LINES_PKG.SetDebitCreditAmounts;
143838 
143839       XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
143840                (p_hdr_idx           => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
143841                ,p_balance_type_code => l_balance_type_code);
143842 
143843    END IF;
143844 
143845    -----------------------------------------------------------------------------------------
143846    -- 4262811 Multiperiod Accounting
143847    -----------------------------------------------------------------------------------------
143848      -- No MPA option is assigned.
143849 
143850 
143851 END IF;
143852 END IF;
143853 --
143854 
143855 --
143856 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
143857    trace
143858       (p_msg      => 'END of AcctLineType_229'
143859       ,p_level    => C_LEVEL_PROCEDURE
143860       ,p_module   => l_log_module);
143861 END IF;
143862 --
143863 EXCEPTION
143864   WHEN xla_exceptions_pkg.application_exception THEN
143865       RAISE;
143866   WHEN OTHERS THEN
143867        xla_exceptions_pkg.raise_message
143868            (p_location => 'XLA_00200_AAD_S_000002_PKG.AcctLineType_229');
143869 END AcctLineType_229;
143870 --
143871 
143872 ---------------------------------------
143873 --
143874 -- PRIVATE PROCEDURE
143875 --         insert_sources_230
143876 --
143877 ----------------------------------------
143878 --
143879 PROCEDURE insert_sources_230(
143880                                 p_target_ledger_id       IN NUMBER
143881                               , p_language               IN VARCHAR2
143882                               , p_sla_ledger_id          IN NUMBER
143883                               , p_pad_start_date         IN DATE
143884                               , p_pad_end_date           IN DATE
143885                          )
143886 IS
143887 
143888 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'CREDIT MEMOS_ALL';
143889 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'CREDIT MEMOS';
143890 p_apps_owner                   VARCHAR2(30);
143891 l_log_module                   VARCHAR2(240);
143892 BEGIN
143893 IF g_log_enabled THEN
143894       l_log_module := C_DEFAULT_MODULE||'.insert_sources_230';
143895 END IF;
143896 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
143897 
143898       trace
143899          (p_msg      => 'BEGIN of insert_sources_230'
143900          ,p_level    => C_LEVEL_PROCEDURE
143901          ,p_module   => l_log_module);
143902 
143903 END IF;
143904 
143905 -- select APPS owner
143906 SELECT oracle_username
143907   INTO p_apps_owner
143908   FROM fnd_oracle_userid
143909  WHERE read_only_flag = 'U'
143910 ;
143911 
143912 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
143913       trace
143914          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
143915                         ' - p_language = '||p_language||
143916                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
143917                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
143918                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
143919                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
143920          ,p_level    => C_LEVEL_STATEMENT
143921          ,p_module   => l_log_module);
143922 END IF;
143923 
143924 
143925 --
143926 INSERT INTO xla_diag_sources --hdr2
143927 (
143928         event_id
143929       , ledger_id
143930       , sla_ledger_id
143931       , description_language
143932       , object_name
143933       , object_type_code
143934       , line_number
143935       , source_application_id
143936       , source_type_code
143937       , source_code
143938       , source_value
143939       , source_meaning
143940       , created_by
143941       , creation_date
143942       , last_update_date
143943       , last_updated_by
143944       , last_update_login
143945       , program_update_date
143946       , program_application_id
143947       , program_id
143948       , request_id
143949 )
143950 SELECT
143951         event_id
143952       , p_target_ledger_id
143953       , p_sla_ledger_id
143954       , p_language
143955       , object_name
143956       , object_type_code
143957       , line_number
143958       , source_application_id
143959       , source_type_code
143960       , source_code
143961       , SUBSTR(source_value ,1,1996)
143962       , SUBSTR(source_meaning ,1,200)
143963       , xla_environment_pkg.g_Usr_Id
143964       , TRUNC(SYSDATE)
143965       , TRUNC(SYSDATE)
143966       , xla_environment_pkg.g_Usr_Id
143967       , xla_environment_pkg.g_Login_Id
143968       , TRUNC(SYSDATE)
143969       , xla_environment_pkg.g_Prog_Appl_Id
143970       , xla_environment_pkg.g_Prog_Id
143971       , xla_environment_pkg.g_Req_Id
143972   FROM (
143973        SELECT xet.event_id                  event_id
143974             , 0                          line_number
143975             , CASE r
143976                WHEN 1 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143977                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143981                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143978                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143979                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143980                 WHEN 5 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143982                 WHEN 7 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
143983                 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
143984                 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
143985                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143986                 WHEN 11 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
143987                 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
143988                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143989                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143990                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143991                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143992                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143993                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143994                 WHEN 19 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143995                 WHEN 20 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143996                 WHEN 21 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143997                 WHEN 22 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
143998                 
143999                ELSE null
144000               END                           object_name
144001             , CASE r
144002                 WHEN 1 THEN 'HEADER' 
144003                 WHEN 2 THEN 'HEADER' 
144004                 WHEN 3 THEN 'HEADER' 
144005                 WHEN 4 THEN 'HEADER' 
144006                 WHEN 5 THEN 'HEADER' 
144007                 WHEN 6 THEN 'HEADER' 
144008                 WHEN 7 THEN 'HEADER' 
144009                 WHEN 8 THEN 'HEADER' 
144010                 WHEN 9 THEN 'HEADER' 
144011                 WHEN 10 THEN 'HEADER' 
144012                 WHEN 11 THEN 'HEADER' 
144013                 WHEN 12 THEN 'HEADER' 
144014                 WHEN 13 THEN 'HEADER' 
144015                 WHEN 14 THEN 'HEADER' 
144016                 WHEN 15 THEN 'HEADER' 
144017                 WHEN 16 THEN 'HEADER' 
144018                 WHEN 17 THEN 'HEADER' 
144019                 WHEN 18 THEN 'HEADER' 
144020                 WHEN 19 THEN 'HEADER' 
144021                 WHEN 20 THEN 'HEADER' 
144022                 WHEN 21 THEN 'HEADER' 
144023                 WHEN 22 THEN 'HEADER' 
144024                 
144025                 ELSE null
144026               END                           object_type_code
144027             , CASE r
144028                 WHEN 1 THEN '200' 
144029                 WHEN 2 THEN '200' 
144030                 WHEN 3 THEN '200' 
144031                 WHEN 4 THEN '200' 
144032                 WHEN 5 THEN '200' 
144033                 WHEN 6 THEN '200' 
144034                 WHEN 7 THEN '200' 
144035                 WHEN 8 THEN '200' 
144036                 WHEN 9 THEN '200' 
144037                 WHEN 10 THEN '200' 
144038                 WHEN 11 THEN '200' 
144039                 WHEN 12 THEN '200' 
144040                 WHEN 13 THEN '200' 
144041                 WHEN 14 THEN '200' 
144042                 WHEN 15 THEN '200' 
144043                 WHEN 16 THEN '200' 
144044                 WHEN 17 THEN '200' 
144045                 WHEN 18 THEN '200' 
144046                 WHEN 19 THEN '200' 
144047                 WHEN 20 THEN '200' 
144048                 WHEN 21 THEN '200' 
144049                 WHEN 22 THEN '200' 
144050                 
144051                 ELSE null
144052               END                           source_application_id
144053             , 'S'             source_type_code
144054             , CASE r
144055                 WHEN 1 THEN 'INV_TRANSACTION_NUMBER' 
144056                 WHEN 2 THEN 'AI_INVOICE_DATE' 
144057                 WHEN 3 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
144058                 WHEN 4 THEN 'DOC_SEQUENCE_NAME' 
144059                 WHEN 5 THEN 'INV_DOC_SEQUENCE_VALUE' 
144060                 WHEN 6 THEN 'AI_DESCRIPTION' 
144061                 WHEN 7 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
144062                 WHEN 8 THEN 'ASP_RATE_VAR_GAIN_CCID' 
144063                 WHEN 9 THEN 'ASP_RATE_VAR_LOSS_CCID' 
144064                 WHEN 10 THEN 'AI_ACCTS_PAY_CCID' 
144065                 WHEN 11 THEN 'FSP_RETAINAGE_ACCOUNT' 
144066                 WHEN 12 THEN 'ASP_AUTO_OFFSET_FLAG' 
144067                 WHEN 13 THEN 'AI_INVOICE_ID' 
144068                 WHEN 14 THEN 'AI_INVOICE_CURRENCY_CODE' 
144069                 WHEN 15 THEN 'AI_VENDOR_ID' 
144070                 WHEN 16 THEN 'AI_VENDOR_SITE_ID' 
144071                 WHEN 17 THEN 'THIRD_PARTY_TYPE' 
144072                 WHEN 18 THEN 'INV_EXCHANGE_DATE' 
144073                 WHEN 19 THEN 'INV_EXCHANGE_RATE' 
144074                 WHEN 20 THEN 'INV_EXCHANGE_RATE_TYPE' 
144075                 WHEN 21 THEN 'AI_INVOICE_TYPE_LOOKUP_CODE' 
144076                 WHEN 22 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
144077                 
144078                 ELSE null
144079               END                           source_code
144080             , CASE r
144081                 WHEN 1 THEN TO_CHAR(h2.INV_TRANSACTION_NUMBER)
144082                 WHEN 2 THEN TO_CHAR(h2.AI_INVOICE_DATE)
144083                 WHEN 3 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
144084                 WHEN 4 THEN TO_CHAR(h2.DOC_SEQUENCE_NAME)
144085                 WHEN 5 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
144086                 WHEN 6 THEN TO_CHAR(h2.AI_DESCRIPTION)
144087                 WHEN 7 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
144091                 WHEN 11 THEN TO_CHAR(h4.FSP_RETAINAGE_ACCOUNT)
144088                 WHEN 8 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
144089                 WHEN 9 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
144090                 WHEN 10 THEN TO_CHAR(h2.AI_ACCTS_PAY_CCID)
144092                 WHEN 12 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
144093                 WHEN 13 THEN TO_CHAR(h2.AI_INVOICE_ID)
144094                 WHEN 14 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
144095                 WHEN 15 THEN TO_CHAR(h2.AI_VENDOR_ID)
144096                 WHEN 16 THEN TO_CHAR(h2.AI_VENDOR_SITE_ID)
144097                 WHEN 17 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
144098                 WHEN 18 THEN TO_CHAR(h2.INV_EXCHANGE_DATE)
144099                 WHEN 19 THEN TO_CHAR(h2.INV_EXCHANGE_RATE)
144100                 WHEN 20 THEN TO_CHAR(h2.INV_EXCHANGE_RATE_TYPE)
144101                 WHEN 21 THEN TO_CHAR(h2.AI_INVOICE_TYPE_LOOKUP_CODE)
144102                 WHEN 22 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
144103                 
144104                 ELSE null
144105               END                           source_value
144106             , CASE r
144107                 WHEN 7 THEN fvl15.meaning
144108                 WHEN 12 THEN fvl47.meaning
144109                 WHEN 21 THEN fvl165.meaning
144110                 
144111                 ELSE null
144112               END               source_meaning
144113          FROM xla_events_gt     xet  
144114       , AP_INVOICE_EXTRACT_HEADER_V  h2
144115       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
144116   , fnd_lookup_values    fvl15
144117   , fnd_lookup_values    fvl47
144118   , fnd_lookup_values    fvl165
144119              ,(select rownum r from all_objects where rownum <= 22 and owner = p_apps_owner)
144120          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
144121            AND xet.event_class_code = C_EVENT_CLASS_CODE
144122               AND h2.event_id = xet.event_id
144123  AND h4.asp_org_id = h2.ai_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
144124   AND fvl15.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
144125   AND fvl15.view_application_id(+) = 200
144126   AND fvl15.language(+)            = USERENV('LANG')
144127      AND fvl47.lookup_type(+)         = 'YES_NO'
144128   AND fvl47.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
144129   AND fvl47.view_application_id(+) = 0
144130   AND fvl47.language(+)            = USERENV('LANG')
144131      AND fvl165.lookup_type(+)         = 'INVOICE TYPE'
144132   AND fvl165.lookup_code(+)         = h2.AI_INVOICE_TYPE_LOOKUP_CODE
144133   AND fvl165.view_application_id(+) = 200
144134   AND fvl165.language(+)            = USERENV('LANG')
144135   
144136 )
144137 ;
144138 --
144139 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
144140 
144141       trace
144142          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
144143          ,p_level    => C_LEVEL_STATEMENT
144144          ,p_module   => l_log_module);
144145 
144146 END IF;
144147 --
144148 
144149 
144150 
144151 --
144152 INSERT INTO xla_diag_sources  --line2
144153 (
144154         event_id
144155       , ledger_id
144156       , sla_ledger_id
144157       , description_language
144158       , object_name
144159       , object_type_code
144160       , line_number
144161       , source_application_id
144162       , source_type_code
144163       , source_code
144164       , source_value
144165       , source_meaning
144166       , created_by
144167       , creation_date
144168       , last_update_date
144169       , last_updated_by
144170       , last_update_login
144171       , program_update_date
144172       , program_application_id
144173       , program_id
144174       , request_id
144175 )
144176 SELECT  event_id
144177       , p_target_ledger_id
144178       , p_sla_ledger_id
144179       , p_language
144180       , object_name
144181       , object_type_code
144182       , line_number
144183       , source_application_id
144184       , source_type_code
144185       , source_code
144186       , SUBSTR(source_value,1,1996)
144187       , SUBSTR(source_meaning ,1,200)
144188       , xla_environment_pkg.g_Usr_Id
144189       , TRUNC(SYSDATE)
144190       , TRUNC(SYSDATE)
144191       , xla_environment_pkg.g_Usr_Id
144192       , xla_environment_pkg.g_Login_Id
144193       , TRUNC(SYSDATE)
144194       , xla_environment_pkg.g_Prog_Appl_Id
144195       , xla_environment_pkg.g_Prog_Id
144196       , xla_environment_pkg.g_Req_Id
144197   FROM (
144198        SELECT xet.event_id                  event_id
144199             , l1.line_number                 line_number
144200             , CASE r
144201                WHEN 1 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144202                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144203                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144204                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144205                 WHEN 5 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144206                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144207                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144208                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144209                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144210                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144211                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144212                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144213                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144217                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144214                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144215                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144216                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144218                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144219                 WHEN 19 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144220                 WHEN 20 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144221                 WHEN 21 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144222                 WHEN 22 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144223                 WHEN 23 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144224                 WHEN 24 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144225                 WHEN 25 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144226                 WHEN 26 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144227                 WHEN 27 THEN 'AP_PO_HEADERS_EXTRACT_V' 
144228                 WHEN 28 THEN 'AP_PO_HEADERS_EXTRACT_V' 
144229                 WHEN 29 THEN 'AP_PO_HEADERS_EXTRACT_V' 
144230                 WHEN 30 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144231                 WHEN 31 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144232                 WHEN 32 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144233                 WHEN 33 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144234                 WHEN 34 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144235                 WHEN 35 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144236                 WHEN 36 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
144237                 WHEN 37 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
144238                 WHEN 38 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144239                 WHEN 39 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144240                 WHEN 40 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144241                 WHEN 41 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144242                 WHEN 42 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144243                 WHEN 43 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144244                 WHEN 44 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144245                 WHEN 45 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144246                 WHEN 46 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144247                 WHEN 47 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
144248                 
144249                ELSE null
144250               END                           object_name
144251             , CASE r
144252                 WHEN 1 THEN 'LINE' 
144253                 WHEN 2 THEN 'LINE' 
144254                 WHEN 3 THEN 'LINE' 
144255                 WHEN 4 THEN 'LINE' 
144256                 WHEN 5 THEN 'LINE' 
144257                 WHEN 6 THEN 'LINE' 
144258                 WHEN 7 THEN 'LINE' 
144259                 WHEN 8 THEN 'LINE' 
144260                 WHEN 9 THEN 'LINE' 
144261                 WHEN 10 THEN 'LINE' 
144262                 WHEN 11 THEN 'LINE' 
144263                 WHEN 12 THEN 'LINE' 
144264                 WHEN 13 THEN 'LINE' 
144265                 WHEN 14 THEN 'LINE' 
144266                 WHEN 15 THEN 'LINE' 
144267                 WHEN 16 THEN 'LINE' 
144268                 WHEN 17 THEN 'LINE' 
144269                 WHEN 18 THEN 'LINE' 
144270                 WHEN 19 THEN 'LINE' 
144271                 WHEN 20 THEN 'LINE' 
144272                 WHEN 21 THEN 'LINE' 
144273                 WHEN 22 THEN 'LINE' 
144274                 WHEN 23 THEN 'LINE' 
144275                 WHEN 24 THEN 'LINE' 
144276                 WHEN 25 THEN 'LINE' 
144277                 WHEN 26 THEN 'LINE' 
144278                 WHEN 27 THEN 'LINE' 
144279                 WHEN 28 THEN 'LINE' 
144280                 WHEN 29 THEN 'LINE' 
144281                 WHEN 30 THEN 'LINE' 
144282                 WHEN 31 THEN 'LINE' 
144283                 WHEN 32 THEN 'LINE' 
144284                 WHEN 33 THEN 'LINE' 
144285                 WHEN 34 THEN 'LINE' 
144286                 WHEN 35 THEN 'LINE' 
144287                 WHEN 36 THEN 'LINE' 
144288                 WHEN 37 THEN 'LINE' 
144289                 WHEN 38 THEN 'LINE' 
144290                 WHEN 39 THEN 'LINE' 
144291                 WHEN 40 THEN 'LINE' 
144292                 WHEN 41 THEN 'LINE' 
144293                 WHEN 42 THEN 'LINE' 
144294                 WHEN 43 THEN 'LINE' 
144295                 WHEN 44 THEN 'LINE' 
144296                 WHEN 45 THEN 'LINE' 
144297                 WHEN 46 THEN 'LINE' 
144298                 WHEN 47 THEN 'LINE' 
144299                 
144300                 ELSE null
144301               END                           object_type_code
144302             , CASE r
144303                 WHEN 1 THEN '200' 
144304                 WHEN 2 THEN '200' 
144305                 WHEN 3 THEN '200' 
144306                 WHEN 4 THEN '200' 
144307                 WHEN 5 THEN '200' 
144308                 WHEN 6 THEN '200' 
144309                 WHEN 7 THEN '200' 
144310                 WHEN 8 THEN '200' 
144311                 WHEN 9 THEN '200' 
144312                 WHEN 10 THEN '200' 
144313                 WHEN 11 THEN '200' 
144314                 WHEN 12 THEN '200' 
144315                 WHEN 13 THEN '200' 
144316                 WHEN 14 THEN '200' 
144317                 WHEN 15 THEN '200' 
144318                 WHEN 16 THEN '200' 
144319                 WHEN 17 THEN '200' 
144320                 WHEN 18 THEN '200' 
144321                 WHEN 19 THEN '200' 
144322                 WHEN 20 THEN '200' 
144323                 WHEN 21 THEN '200' 
144324                 WHEN 22 THEN '200' 
144325                 WHEN 23 THEN '200' 
144326                 WHEN 24 THEN '200' 
144327                 WHEN 25 THEN '200' 
144328                 WHEN 26 THEN '200' 
144329                 WHEN 27 THEN '200' 
144330                 WHEN 28 THEN '200' 
144334                 WHEN 32 THEN '200' 
144331                 WHEN 29 THEN '200' 
144332                 WHEN 30 THEN '200' 
144333                 WHEN 31 THEN '200' 
144335                 WHEN 33 THEN '200' 
144336                 WHEN 34 THEN '200' 
144337                 WHEN 35 THEN '200' 
144338                 WHEN 36 THEN '200' 
144339                 WHEN 37 THEN '200' 
144340                 WHEN 38 THEN '200' 
144341                 WHEN 39 THEN '200' 
144342                 WHEN 40 THEN '200' 
144343                 WHEN 41 THEN '200' 
144344                 WHEN 42 THEN '200' 
144345                 WHEN 43 THEN '200' 
144346                 WHEN 44 THEN '200' 
144347                 WHEN 45 THEN '200' 
144348                 WHEN 46 THEN '200' 
144349                 WHEN 47 THEN '200' 
144350                 
144351                 ELSE null
144352               END                           source_application_id
144353             , 'S'             source_type_code
144354             , CASE r
144355                 WHEN 1 THEN 'AID_DESCRIPTION' 
144356                 WHEN 2 THEN 'INV_DIST_BASE_AMOUNT' 
144357                 WHEN 3 THEN 'RELATED_INV_DIST_DEST_TYPE' 
144358                 WHEN 4 THEN 'AID_DIST_CCID' 
144359                 WHEN 5 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
144360                 WHEN 6 THEN 'AID_RET_RELATED_DIST_CCID' 
144361                 WHEN 7 THEN 'AWT_RELATED_DIST_ACCOUNT' 
144362                 WHEN 8 THEN 'SELF_ASSESSED_TAX_ACCOUNT' 
144363                 WHEN 9 THEN 'ASAT_LIAB_CCID' 
144364                 WHEN 10 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
144365                 WHEN 11 THEN 'DISTRIBUTION_LINK_TYPE' 
144366                 WHEN 12 THEN 'ALLOC_TO_MAIN_DIST_ID' 
144367                 WHEN 13 THEN 'BUS_FLOW_PO_APP_ID' 
144368                 WHEN 14 THEN 'BUS_FLOW_PO_DIST_TYPE' 
144369                 WHEN 15 THEN 'BUS_FLOW_PO_ENTITY_CODE' 
144370                 WHEN 16 THEN 'BUS_FLOW_PO_DIST_ID' 
144371                 WHEN 17 THEN 'BUS_FLOW_PO_DOC_ID' 
144372                 WHEN 18 THEN 'AID_INVOICE_DIST_ID' 
144373                 WHEN 19 THEN 'UPG_ENC_CR_CCID' 
144374                 WHEN 20 THEN 'UPG_ENC_CR_AMT' 
144375                 WHEN 21 THEN 'UPG_ENC_CR_BASE_AMT' 
144376                 WHEN 22 THEN 'UPG_ENC_DR_CCID' 
144377                 WHEN 23 THEN 'UPG_ENC_DR_AMT' 
144378                 WHEN 24 THEN 'UPG_ENC_DR_BASE_AMT' 
144379                 WHEN 25 THEN 'UPG_AP_ENCUM_OPTION' 
144380                 WHEN 26 THEN 'AID_AMOUNT' 
144381                 WHEN 27 THEN 'POH_RATE_DATE' 
144382                 WHEN 28 THEN 'POH_RATE' 
144383                 WHEN 29 THEN 'POH_RATE_TYPE' 
144384                 WHEN 30 THEN 'DEFERRED_END_DATE' 
144385                 WHEN 31 THEN 'DEFERRED_OPTION' 
144386                 WHEN 32 THEN 'DEFERRED_START_DATE' 
144387                 WHEN 33 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
144388                 WHEN 34 THEN 'AID_PARENT_REVERSAL_ID' 
144389                 WHEN 35 THEN 'AID_STAT_AMOUNT' 
144390                 WHEN 36 THEN 'TAX_LINE_ID' 
144391                 WHEN 37 THEN 'REC_NREC_TAX_DIST_ID' 
144392                 WHEN 38 THEN 'SUMMARY_TAX_LINE_ID' 
144393                 WHEN 39 THEN 'UPG_CR_ENC_TYPE_ID' 
144394                 WHEN 40 THEN 'UPG_DR_ENC_TYPE_ID' 
144395                 WHEN 41 THEN 'BUS_FLOW_AP_APP_ID' 
144396                 WHEN 42 THEN 'BUS_FLOW_INV_DIST_TYPE' 
144397                 WHEN 43 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
144398                 WHEN 44 THEN 'BUS_FLOW_INV_DIST_ID' 
144399                 WHEN 45 THEN 'BUS_FLOW_INV_ID' 
144400                 WHEN 46 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG' 
144401                 WHEN 47 THEN 'SELF_ASSESSED_TAX_FLAG' 
144402                 
144403                 ELSE null
144404               END                           source_code
144405             , CASE r
144406                 WHEN 1 THEN TO_CHAR(l1.AID_DESCRIPTION)
144407                 WHEN 2 THEN TO_CHAR(l1.INV_DIST_BASE_AMOUNT)
144408                 WHEN 3 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
144409                 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
144410                 WHEN 5 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
144411                 WHEN 6 THEN TO_CHAR(l1.AID_RET_RELATED_DIST_CCID)
144412                 WHEN 7 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
144413                 WHEN 8 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_ACCOUNT)
144414                 WHEN 9 THEN TO_CHAR(l1.ASAT_LIAB_CCID)
144415                 WHEN 10 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
144416                 WHEN 11 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
144417                 WHEN 12 THEN TO_CHAR(l1.ALLOC_TO_MAIN_DIST_ID)
144418                 WHEN 13 THEN TO_CHAR(l1.BUS_FLOW_PO_APP_ID)
144419                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_TYPE)
144420                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_PO_ENTITY_CODE)
144421                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_ID)
144422                 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_PO_DOC_ID)
144423                 WHEN 18 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
144424                 WHEN 19 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
144425                 WHEN 20 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
144426                 WHEN 21 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
144427                 WHEN 22 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
144428                 WHEN 23 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
144429                 WHEN 24 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
144430                 WHEN 25 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
144431                 WHEN 26 THEN TO_CHAR(l1.AID_AMOUNT)
144432                 WHEN 27 THEN TO_CHAR(l3.POH_RATE_DATE)
144433                 WHEN 28 THEN TO_CHAR(l3.POH_RATE)
144434                 WHEN 29 THEN TO_CHAR(l3.POH_RATE_TYPE)
144438                 WHEN 33 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
144435                 WHEN 30 THEN TO_CHAR(l1.DEFERRED_END_DATE)
144436                 WHEN 31 THEN TO_CHAR(l1.DEFERRED_OPTION)
144437                 WHEN 32 THEN TO_CHAR(l1.DEFERRED_START_DATE)
144439                 WHEN 34 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
144440                 WHEN 35 THEN TO_CHAR(l1.AID_STAT_AMOUNT)
144441                 WHEN 36 THEN TO_CHAR(l5.TAX_LINE_ID)
144442                 WHEN 37 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
144443                 WHEN 38 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
144444                 WHEN 39 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
144445                 WHEN 40 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
144446                 WHEN 41 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
144447                 WHEN 42 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
144448                 WHEN 43 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
144449                 WHEN 44 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
144450                 WHEN 45 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
144451                 WHEN 46 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
144452                 WHEN 47 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_FLAG)
144453                 
144454                 ELSE null
144455               END                           source_value
144456             , CASE r
144457                 WHEN 3 THEN fvl22.meaning
144458                 WHEN 5 THEN fvl33.meaning
144459                 WHEN 33 THEN fvl80.meaning
144460                 WHEN 46 THEN fvl96.meaning
144461                 WHEN 47 THEN fvl142.meaning
144462                 
144463                 ELSE null
144464               END               source_meaning
144465          FROM  xla_events_gt     xet  
144466         , AP_INVOICE_EXTRACT_DETAILS_V  l1
144467         , AP_PO_HEADERS_EXTRACT_V  l3
144468         , ZX_AP_DEF_TAX_EXTRACT_V  l5
144469         , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
144470   , fnd_lookup_values    fvl22
144471   , fnd_lookup_values    fvl33
144472   , fnd_lookup_values    fvl80
144473   , fnd_lookup_values    fvl96
144474   , fnd_lookup_values    fvl142
144475             , (select rownum r from all_objects where rownum <= 47 and owner = p_apps_owner)
144476         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
144477           AND xet.event_class_code = C_EVENT_CLASS_CODE
144478             AND l1.event_id          = xet.event_id
144479  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 fvl22.lookup_type(+)         = 'DESTINATION TYPE'
144480   AND fvl22.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
144481   AND fvl22.view_application_id(+) = 201
144482   AND fvl22.language(+)            = USERENV('LANG')
144483      AND fvl33.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
144484   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
144485   AND fvl33.view_application_id(+) = 200
144486   AND fvl33.language(+)            = USERENV('LANG')
144487      AND fvl80.lookup_type(+)         = 'YES_NO'
144488   AND fvl80.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
144489   AND fvl80.view_application_id(+) = 0
144490   AND fvl80.language(+)            = USERENV('LANG')
144491      AND fvl96.lookup_type(+)         = 'YES_NO'
144492   AND fvl96.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
144493   AND fvl96.view_application_id(+) = 0
144494   AND fvl96.language(+)            = USERENV('LANG')
144495      AND fvl142.lookup_type(+)         = 'YES_NO'
144496   AND fvl142.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
144497   AND fvl142.view_application_id(+) = 0
144498   AND fvl142.language(+)            = USERENV('LANG')
144499   
144500 )
144501 ;
144502 --
144503 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
144504 
144505       trace
144506          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
144507          ,p_level    => C_LEVEL_STATEMENT
144508          ,p_module   => l_log_module);
144509 
144510 END IF;
144511 
144512 
144513 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
144514       trace
144515          (p_msg      => 'END of insert_sources_230'
144516          ,p_level    => C_LEVEL_PROCEDURE
144517          ,p_module   => l_log_module);
144518 END IF;
144519 EXCEPTION
144520   WHEN xla_exceptions_pkg.application_exception THEN
144521       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
144522             trace
144523                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
144524                ,p_level    => C_LEVEL_EXCEPTION
144525                ,p_module   => l_log_module);
144526       END IF;
144527       RAISE;
144528   WHEN OTHERS THEN
144529       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
144530             trace
144531                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
144532                ,p_level    => C_LEVEL_EXCEPTION
144533                ,p_module   => l_log_module);
144534        END IF;
144535        xla_exceptions_pkg.raise_message
144536            (p_location => 'XLA_00200_AAD_S_000002_PKG.insert_sources_230');
144537 END insert_sources_230;
144538 --
144539 
144540 ---------------------------------------
144541 --
144542 -- PRIVATE FUNCTION
144543 --         EventClass_230
144544 --
144545 ----------------------------------------
144546 --
144547 FUNCTION EventClass_230
144548        (p_application_id         IN NUMBER
144549        ,p_base_ledger_id         IN NUMBER
144550        ,p_target_ledger_id       IN NUMBER
144551        ,p_language               IN VARCHAR2
144552        ,p_currency_code          IN VARCHAR2
144556        ,p_primary_ledger_id      IN NUMBER)
144553        ,p_sla_ledger_id          IN NUMBER
144554        ,p_pad_start_date         IN DATE
144555        ,p_pad_end_date           IN DATE
144557 RETURN BOOLEAN IS
144558 --
144559 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'CREDIT MEMOS_ALL';
144560 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'CREDIT MEMOS';
144561 
144562 l_calculate_acctd_flag   VARCHAR2(1) :='N';
144563 l_calculate_g_l_flag     VARCHAR2(1) :='N';
144564 --
144565 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
144566 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
144567 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
144568 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
144569 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
144570 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
144571 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
144572 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
144573 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
144574 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
144575 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
144576 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
144577 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
144578 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
144579 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
144580 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
144581 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
144582 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
144583 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
144584 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
144585 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
144586 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
144587 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
144588 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
144589 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
144590 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
144591 
144592 l_event_id                             NUMBER;
144593 l_previous_event_id                    NUMBER;
144594 l_first_event_id                       NUMBER;
144595 l_last_event_id                        NUMBER;
144596 
144597 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
144598 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
144599 --
144600 --
144601 l_result                    BOOLEAN := TRUE;
144602 l_rows                      NUMBER  := 1000;
144603 l_event_type_name           VARCHAR2(80) := 'All';
144604 l_event_class_name          VARCHAR2(80) := 'Credit Memos';
144605 l_description               VARCHAR2(4000);
144606 l_transaction_reversal      NUMBER;
144607 l_ae_header_id              NUMBER;
144608 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
144609 l_log_module                VARCHAR2(240);
144610 --
144611 l_acct_reversal_source      VARCHAR2(30);
144612 l_trx_reversal_source       VARCHAR2(30);
144613 
144614 l_continue_with_lines       BOOLEAN := TRUE;
144615 --
144616 l_acc_rev_gl_date_source    DATE;                      -- 4262811
144617 --
144618 type t_array_event_id is table of number index by binary_integer;
144619 
144620 l_rec_array_event                    t_rec_array_event;
144621 l_null_rec_array_event               t_rec_array_event;
144622 l_array_ae_header_id                 xla_number_array_type;
144623 l_actual_flag                        VARCHAR2(1) := NULL;
144624 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
144625 l_balance_type_code                  VARCHAR2(1) :=NULL;
144626 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
144627 
144628 --
144629 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
144630 --
144631 
144632 TYPE t_array_source_3 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_TRANSACTION_NUMBER%TYPE INDEX BY BINARY_INTEGER;
144633 TYPE t_array_source_4 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_DATE%TYPE INDEX BY BINARY_INTEGER;
144634 TYPE t_array_source_5 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
144635 TYPE t_array_source_6 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.DOC_SEQUENCE_NAME%TYPE INDEX BY BINARY_INTEGER;
144636 TYPE t_array_source_7 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
144637 TYPE t_array_source_8 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
144638 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
144639 TYPE t_array_source_20 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
144640 TYPE t_array_source_23 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
144641 TYPE t_array_source_34 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_ACCTS_PAY_CCID%TYPE INDEX BY BINARY_INTEGER;
144645 TYPE t_array_source_67 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
144642 TYPE t_array_source_40 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_RETAINAGE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
144643 TYPE t_array_source_47 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
144644 TYPE t_array_source_58 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
144646 TYPE t_array_source_81 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
144647 TYPE t_array_source_82 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
144648 TYPE t_array_source_83 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
144649 TYPE t_array_source_143 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
144650 TYPE t_array_source_144 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
144651 TYPE t_array_source_145 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
144652 TYPE t_array_source_165 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
144653 TYPE t_array_source_168 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
144654 
144655 TYPE t_array_source_1 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
144656 TYPE t_array_source_21 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.INV_DIST_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
144657 TYPE t_array_source_22 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
144658 TYPE t_array_source_30 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
144659 TYPE t_array_source_33 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
144660 TYPE t_array_source_42 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_RET_RELATED_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
144661 TYPE t_array_source_43 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
144662 TYPE t_array_source_50 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
144663 TYPE t_array_source_51 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ASAT_LIAB_CCID%TYPE INDEX BY BINARY_INTEGER;
144664 TYPE t_array_source_53 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
144665 TYPE t_array_source_55 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
144666 TYPE t_array_source_57 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ALLOC_TO_MAIN_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
144667 TYPE t_array_source_59 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_APP_ID%TYPE INDEX BY BINARY_INTEGER;
144668 TYPE t_array_source_60 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
144669 TYPE t_array_source_61 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
144670 TYPE t_array_source_62 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
144671 TYPE t_array_source_63 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DOC_ID%TYPE INDEX BY BINARY_INTEGER;
144672 TYPE t_array_source_64 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
144673 TYPE t_array_source_65 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
144674 TYPE t_array_source_66 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
144675 TYPE t_array_source_68 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
144676 TYPE t_array_source_69 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
144677 TYPE t_array_source_70 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
144678 TYPE t_array_source_71 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
144679 TYPE t_array_source_72 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
144680 TYPE t_array_source_73 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
144681 TYPE t_array_source_74 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
144682 TYPE t_array_source_75 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
144683 TYPE t_array_source_76 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
144684 TYPE t_array_source_77 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
144685 TYPE t_array_source_78 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
144686 TYPE t_array_source_79 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
144687 TYPE t_array_source_80 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
144688 TYPE t_array_source_84 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
144689 TYPE t_array_source_85 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_STAT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
144690 TYPE t_array_source_86 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
144691 TYPE t_array_source_87 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
144692 TYPE t_array_source_88 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
144696 TYPE t_array_source_92 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
144693 TYPE t_array_source_89 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
144694 TYPE t_array_source_90 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
144695 TYPE t_array_source_91 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
144697 TYPE t_array_source_93 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
144698 TYPE t_array_source_94 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
144699 TYPE t_array_source_95 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
144700 TYPE t_array_source_96 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
144701 TYPE t_array_source_142 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_FLAG%TYPE INDEX BY BINARY_INTEGER;
144702 
144703 l_array_source_3              t_array_source_3;
144704 l_array_source_4              t_array_source_4;
144705 l_array_source_5              t_array_source_5;
144706 l_array_source_6              t_array_source_6;
144707 l_array_source_7              t_array_source_7;
144708 l_array_source_8              t_array_source_8;
144709 l_array_source_15              t_array_source_15;
144710 l_array_source_15_meaning      t_array_lookup_meaning;
144711 l_array_source_20              t_array_source_20;
144712 l_array_source_23              t_array_source_23;
144713 l_array_source_34              t_array_source_34;
144714 l_array_source_40              t_array_source_40;
144715 l_array_source_47              t_array_source_47;
144716 l_array_source_47_meaning      t_array_lookup_meaning;
144717 l_array_source_58              t_array_source_58;
144718 l_array_source_67              t_array_source_67;
144719 l_array_source_81              t_array_source_81;
144720 l_array_source_82              t_array_source_82;
144721 l_array_source_83              t_array_source_83;
144722 l_array_source_143              t_array_source_143;
144723 l_array_source_144              t_array_source_144;
144724 l_array_source_145              t_array_source_145;
144725 l_array_source_165              t_array_source_165;
144726 l_array_source_165_meaning      t_array_lookup_meaning;
144727 l_array_source_168              t_array_source_168;
144728 
144729 l_array_source_1      t_array_source_1;
144730 l_array_source_21      t_array_source_21;
144731 l_array_source_22      t_array_source_22;
144732 l_array_source_22_meaning      t_array_lookup_meaning;
144733 l_array_source_30      t_array_source_30;
144734 l_array_source_33      t_array_source_33;
144735 l_array_source_33_meaning      t_array_lookup_meaning;
144736 l_array_source_42      t_array_source_42;
144737 l_array_source_43      t_array_source_43;
144738 l_array_source_50      t_array_source_50;
144739 l_array_source_51      t_array_source_51;
144740 l_array_source_53      t_array_source_53;
144741 l_array_source_55      t_array_source_55;
144742 l_array_source_57      t_array_source_57;
144743 l_array_source_59      t_array_source_59;
144744 l_array_source_60      t_array_source_60;
144745 l_array_source_61      t_array_source_61;
144746 l_array_source_62      t_array_source_62;
144747 l_array_source_63      t_array_source_63;
144748 l_array_source_64      t_array_source_64;
144749 l_array_source_65      t_array_source_65;
144750 l_array_source_66      t_array_source_66;
144751 l_array_source_68      t_array_source_68;
144752 l_array_source_69      t_array_source_69;
144753 l_array_source_70      t_array_source_70;
144754 l_array_source_71      t_array_source_71;
144755 l_array_source_72      t_array_source_72;
144756 l_array_source_73      t_array_source_73;
144757 l_array_source_74      t_array_source_74;
144758 l_array_source_75      t_array_source_75;
144759 l_array_source_76      t_array_source_76;
144760 l_array_source_77      t_array_source_77;
144761 l_array_source_78      t_array_source_78;
144762 l_array_source_79      t_array_source_79;
144763 l_array_source_80      t_array_source_80;
144764 l_array_source_80_meaning      t_array_lookup_meaning;
144765 l_array_source_84      t_array_source_84;
144766 l_array_source_85      t_array_source_85;
144767 l_array_source_86      t_array_source_86;
144768 l_array_source_87      t_array_source_87;
144769 l_array_source_88      t_array_source_88;
144770 l_array_source_89      t_array_source_89;
144771 l_array_source_90      t_array_source_90;
144772 l_array_source_91      t_array_source_91;
144773 l_array_source_92      t_array_source_92;
144774 l_array_source_93      t_array_source_93;
144775 l_array_source_94      t_array_source_94;
144776 l_array_source_95      t_array_source_95;
144777 l_array_source_96      t_array_source_96;
144778 l_array_source_96_meaning      t_array_lookup_meaning;
144779 l_array_source_142      t_array_source_142;
144780 l_array_source_142_meaning      t_array_lookup_meaning;
144781 
144782 --
144783 CURSOR header_cur
144784 IS
144785 SELECT /*+ leading(xet) cardinality(xet,1) */
144786 -- Event Class Code: CREDIT MEMOS
144787     xet.entity_id
144788    ,xet.legal_entity_id
144789    ,xet.entity_code
144790    ,xet.transaction_number
144791    ,xet.event_id
144792    ,xet.event_class_code
144793    ,xet.event_type_code
144794    ,xet.event_number
144795    ,xet.event_date
144796    ,xet.transaction_date
144797    ,xet.reference_num_1
144798    ,xet.reference_num_2
144799    ,xet.reference_num_3
144800    ,xet.reference_num_4
144801    ,xet.reference_char_1
144802    ,xet.reference_char_2
144806    ,xet.reference_date_2
144803    ,xet.reference_char_3
144804    ,xet.reference_char_4
144805    ,xet.reference_date_1
144807    ,xet.reference_date_3
144808    ,xet.reference_date_4
144809    ,xet.event_created_by
144810    ,xet.budgetary_control_flag 
144811   , h2.INV_TRANSACTION_NUMBER    source_3
144812   , h2.AI_INVOICE_DATE    source_4
144813   , h2.INV_DOC_SEQUENCE_CATEGORY    source_5
144814   , h2.DOC_SEQUENCE_NAME    source_6
144815   , h2.INV_DOC_SEQUENCE_VALUE    source_7
144816   , h2.AI_DESCRIPTION    source_8
144817   , h4.ASP_AUTOMATIC_OFFSETS_VALUE    source_15
144818   , fvl15.meaning   source_15_meaning
144819   , h4.ASP_RATE_VAR_GAIN_CCID    source_20
144820   , h4.ASP_RATE_VAR_LOSS_CCID    source_23
144821   , h2.AI_ACCTS_PAY_CCID    source_34
144822   , h4.FSP_RETAINAGE_ACCOUNT    source_40
144823   , h4.ASP_AUTO_OFFSET_FLAG    source_47
144824   , fvl47.meaning   source_47_meaning
144825   , h2.AI_INVOICE_ID    source_58
144826   , h2.AI_INVOICE_CURRENCY_CODE    source_67
144827   , h2.AI_VENDOR_ID    source_81
144828   , h2.AI_VENDOR_SITE_ID    source_82
144829   , h2.THIRD_PARTY_TYPE    source_83
144830   , h2.INV_EXCHANGE_DATE    source_143
144831   , h2.INV_EXCHANGE_RATE    source_144
144832   , h2.INV_EXCHANGE_RATE_TYPE    source_145
144833   , h2.AI_INVOICE_TYPE_LOOKUP_CODE    source_165
144834   , fvl165.meaning   source_165_meaning
144835   , h2.INV_DOC_SEQUENCE_IDENTIFIER    source_168
144836   FROM xla_events_gt     xet 
144837   , AP_INVOICE_EXTRACT_HEADER_V  h2
144838   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
144839   , fnd_lookup_values    fvl15
144840   , fnd_lookup_values    fvl47
144841   , fnd_lookup_values    fvl165
144842  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
144843    and xet.event_class_code = C_EVENT_CLASS_CODE
144844    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
144845  AND h4.asp_org_id = h2.ai_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
144846   AND fvl15.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
144847   AND fvl15.view_application_id(+) = 200
144848   AND fvl15.language(+)            = USERENV('LANG')
144849      AND fvl47.lookup_type(+)         = 'YES_NO'
144850   AND fvl47.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
144851   AND fvl47.view_application_id(+) = 0
144852   AND fvl47.language(+)            = USERENV('LANG')
144853      AND fvl165.lookup_type(+)         = 'INVOICE TYPE'
144854   AND fvl165.lookup_code(+)         = h2.AI_INVOICE_TYPE_LOOKUP_CODE
144855   AND fvl165.view_application_id(+) = 200
144856   AND fvl165.language(+)            = USERENV('LANG')
144857   
144858  ORDER BY event_id
144859 ;
144860 
144861 
144862 --
144863 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
144864 IS
144865 SELECT  /*+ leading(xet) cardinality(xet,1) */
144866 -- Event Class Code: CREDIT MEMOS
144867     xet.entity_id
144868    ,xet.legal_entity_id
144869    ,xet.entity_code
144870    ,xet.transaction_number
144871    ,xet.event_id
144872    ,xet.event_class_code
144873    ,xet.event_type_code
144874    ,xet.event_number
144875    ,xet.event_date
144876    ,xet.transaction_date
144877    ,xet.reference_num_1
144878    ,xet.reference_num_2
144879    ,xet.reference_num_3
144880    ,xet.reference_num_4
144881    ,xet.reference_char_1
144882    ,xet.reference_char_2
144883    ,xet.reference_char_3
144884    ,xet.reference_char_4
144885    ,xet.reference_date_1
144886    ,xet.reference_date_2
144887    ,xet.reference_date_3
144888    ,xet.reference_date_4
144889    ,xet.event_created_by
144890    ,xet.budgetary_control_flag
144891  , l1.LINE_NUMBER  
144892   , l1.AID_DESCRIPTION    source_1
144893   , l1.INV_DIST_BASE_AMOUNT    source_21
144894   , l1.RELATED_INV_DIST_DEST_TYPE    source_22
144895   , fvl22.meaning   source_22_meaning
144896   , l1.AID_DIST_CCID    source_30
144897   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_33
144898   , fvl33.meaning   source_33_meaning
144899   , l1.AID_RET_RELATED_DIST_CCID    source_42
144900   , l1.AWT_RELATED_DIST_ACCOUNT    source_43
144901   , l1.SELF_ASSESSED_TAX_ACCOUNT    source_50
144902   , l1.ASAT_LIAB_CCID    source_51
144903   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_53
144904   , l1.DISTRIBUTION_LINK_TYPE    source_55
144905   , l1.ALLOC_TO_MAIN_DIST_ID    source_57
144906   , l1.BUS_FLOW_PO_APP_ID    source_59
144907   , l1.BUS_FLOW_PO_DIST_TYPE    source_60
144908   , l1.BUS_FLOW_PO_ENTITY_CODE    source_61
144909   , l1.BUS_FLOW_PO_DIST_ID    source_62
144910   , l1.BUS_FLOW_PO_DOC_ID    source_63
144911   , l1.AID_INVOICE_DIST_ID    source_64
144912   , l1.UPG_ENC_CR_CCID    source_65
144913   , l1.UPG_ENC_CR_AMT    source_66
144914   , l1.UPG_ENC_CR_BASE_AMT    source_68
144915   , l1.UPG_ENC_DR_CCID    source_69
144916   , l1.UPG_ENC_DR_AMT    source_70
144917   , l1.UPG_ENC_DR_BASE_AMT    source_71
144918   , l1.UPG_AP_ENCUM_OPTION    source_72
144919   , l1.AID_AMOUNT    source_73
144920   , l3.POH_RATE_DATE    source_74
144921   , l3.POH_RATE    source_75
144922   , l3.POH_RATE_TYPE    source_76
144923   , l1.DEFERRED_END_DATE    source_77
144924   , l1.DEFERRED_OPTION    source_78
144925   , l1.DEFERRED_START_DATE    source_79
144926   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_80
144927   , fvl80.meaning   source_80_meaning
144928   , l1.AID_PARENT_REVERSAL_ID    source_84
144929   , l1.AID_STAT_AMOUNT    source_85
144930   , l5.TAX_LINE_ID    source_86
144931   , l6.REC_NREC_TAX_DIST_ID    source_87
144932   , l1.SUMMARY_TAX_LINE_ID    source_88
144933   , l1.UPG_CR_ENC_TYPE_ID    source_89
144937   , l1.BUS_FLOW_INV_ENTITY_CODE    source_93
144934   , l1.UPG_DR_ENC_TYPE_ID    source_90
144935   , l1.BUS_FLOW_AP_APP_ID    source_91
144936   , l1.BUS_FLOW_INV_DIST_TYPE    source_92
144938   , l1.BUS_FLOW_INV_DIST_ID    source_94
144939   , l1.BUS_FLOW_INV_ID    source_95
144940   , l1.POD_ACCRUE_ON_RECEIPT_FLAG    source_96
144941   , fvl96.meaning   source_96_meaning
144942   , l1.SELF_ASSESSED_TAX_FLAG    source_142
144943   , fvl142.meaning   source_142_meaning
144944   FROM xla_events_gt     xet 
144945   , AP_INVOICE_EXTRACT_DETAILS_V  l1
144946   , AP_PO_HEADERS_EXTRACT_V  l3
144947   , ZX_AP_DEF_TAX_EXTRACT_V  l5
144948   , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
144949   , fnd_lookup_values    fvl22
144950   , fnd_lookup_values    fvl33
144951   , fnd_lookup_values    fvl80
144952   , fnd_lookup_values    fvl96
144953   , fnd_lookup_values    fvl142
144954  WHERE xet.event_id between x_first_event_id and x_last_event_id
144955    and xet.event_date between p_pad_start_date and p_pad_end_date
144956    and xet.event_class_code = C_EVENT_CLASS_CODE
144957    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
144958  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 fvl22.lookup_type(+)         = 'DESTINATION TYPE'
144959   AND fvl22.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
144960   AND fvl22.view_application_id(+) = 201
144961   AND fvl22.language(+)            = USERENV('LANG')
144962      AND fvl33.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
144963   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
144964   AND fvl33.view_application_id(+) = 200
144965   AND fvl33.language(+)            = USERENV('LANG')
144966      AND fvl80.lookup_type(+)         = 'YES_NO'
144967   AND fvl80.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
144968   AND fvl80.view_application_id(+) = 0
144969   AND fvl80.language(+)            = USERENV('LANG')
144970      AND fvl96.lookup_type(+)         = 'YES_NO'
144971   AND fvl96.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
144972   AND fvl96.view_application_id(+) = 0
144973   AND fvl96.language(+)            = USERENV('LANG')
144974      AND fvl142.lookup_type(+)         = 'YES_NO'
144975   AND fvl142.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
144976   AND fvl142.view_application_id(+) = 0
144977   AND fvl142.language(+)            = USERENV('LANG')
144978   ;
144979 
144980 --
144981 BEGIN
144982 IF g_log_enabled THEN
144983    l_log_module := C_DEFAULT_MODULE||'.EventClass_230';
144984 END IF;
144985 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
144986    trace
144987       (p_msg      => 'BEGIN of EventClass_230'
144988       ,p_level    => C_LEVEL_PROCEDURE
144989       ,p_module   => l_log_module);
144990 END IF;
144991 
144992 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
144993    trace
144994       (p_msg      => 'p_application_id = '||p_application_id||
144995                      ' - p_base_ledger_id = '||p_base_ledger_id||
144996                      ' - p_target_ledger_id  = '||p_target_ledger_id||
144997                      ' - p_language = '||p_language||
144998                      ' - p_currency_code = '||p_currency_code||
144999                      ' - p_sla_ledger_id = '||p_sla_ledger_id
145000       ,p_level    => C_LEVEL_STATEMENT
145001       ,p_module   => l_log_module);
145002 END IF;
145003 --
145004 -- initialze arrays
145005 --
145006 g_array_event.DELETE;
145007 l_rec_array_event := l_null_rec_array_event;
145008 --
145009 --------------------------------------
145010 -- 4262811 Initialze MPA Line Number
145011 --------------------------------------
145012 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
145013 
145014 --
145015 
145016 --
145017 OPEN header_cur;
145018 --
145019 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
145020    trace
145021    (p_msg      => 'SQL - FETCH header_cur'
145022    ,p_level    => C_LEVEL_STATEMENT
145023    ,p_module   => l_log_module);
145024 END IF;
145025 --
145026 LOOP
145027 FETCH header_cur BULK COLLECT INTO
145028         l_array_entity_id
145029       , l_array_legal_entity_id
145030       , l_array_entity_code
145031       , l_array_transaction_num
145032       , l_array_event_id
145033       , l_array_class_code
145034       , l_array_event_type
145035       , l_array_event_number
145036       , l_array_event_date
145037       , l_array_transaction_date
145038       , l_array_reference_num_1
145039       , l_array_reference_num_2
145040       , l_array_reference_num_3
145041       , l_array_reference_num_4
145042       , l_array_reference_char_1
145043       , l_array_reference_char_2
145044       , l_array_reference_char_3
145045       , l_array_reference_char_4
145046       , l_array_reference_date_1
145047       , l_array_reference_date_2
145048       , l_array_reference_date_3
145049       , l_array_reference_date_4
145050       , l_array_event_created_by
145051       , l_array_budgetary_control_flag 
145052       , l_array_source_3
145053       , l_array_source_4
145054       , l_array_source_5
145055       , l_array_source_6
145056       , l_array_source_7
145057       , l_array_source_8
145058       , l_array_source_15
145059       , l_array_source_15_meaning
145060       , l_array_source_20
145061       , l_array_source_23
145062       , l_array_source_34
145063       , l_array_source_40
145064       , l_array_source_47
145065       , l_array_source_47_meaning
145066       , l_array_source_58
145067       , l_array_source_67
145068       , l_array_source_81
145069       , l_array_source_82
145073       , l_array_source_145
145070       , l_array_source_83
145071       , l_array_source_143
145072       , l_array_source_144
145074       , l_array_source_165
145075       , l_array_source_165_meaning
145076       , l_array_source_168
145077       LIMIT l_rows;
145078 --
145079 IF (C_LEVEL_EVENT >= g_log_level) THEN
145080    trace
145081    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
145082    ,p_level    => C_LEVEL_EVENT
145083    ,p_module   => l_log_module);
145084 END IF;
145085 --
145086 EXIT WHEN l_array_entity_id.COUNT = 0;
145087 
145088 -- initialize arrays
145089 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
145090 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
145091 
145092 --
145093 -- Bug 4458708
145094 --
145095 XLA_AE_LINES_PKG.g_LineNumber := 0;
145096 
145097 
145098 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
145099 g_last_hdr_idx := l_array_event_id.LAST;
145100 --
145101 -- loop for the headers. Each iteration is for each header extract row
145102 -- fetched in header cursor
145103 --
145104 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
145105 
145106 --
145107 -- set event info as cache for other routines to refer event attributes
145108 --
145109 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
145110    (p_application_id           => p_application_id
145111    ,p_primary_ledger_id        => p_primary_ledger_id
145112    ,p_base_ledger_id           => p_base_ledger_id
145113    ,p_target_ledger_id         => p_target_ledger_id
145114    ,p_entity_id                => l_array_entity_id(hdr_idx)
145115    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
145116    ,p_entity_code              => l_array_entity_code(hdr_idx)
145117    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
145118    ,p_event_id                 => l_array_event_id(hdr_idx)
145119    ,p_event_class_code         => l_array_class_code(hdr_idx)
145120    ,p_event_type_code          => l_array_event_type(hdr_idx)
145121    ,p_event_number             => l_array_event_number(hdr_idx)
145122    ,p_event_date               => l_array_event_date(hdr_idx)
145123    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
145124    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
145125    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
145126    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
145127    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
145128    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
145129    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
145130    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
145131    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
145132    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
145133    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
145134    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
145135    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
145136    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
145137    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
145138 
145139 --
145140 -- set the status of entry to C_VALID (0)
145141 --
145142 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
145143 
145144 --
145145 -- initialize a row for ae header
145146 --
145147 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
145148 
145149 l_event_id := l_array_event_id(hdr_idx);
145150 
145151 --
145152 -- storing the hdr_idx for event. May be used by line cursor.
145153 --
145154 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
145155 
145156 --
145157 -- store sources from header extract. This can be improved to
145158 -- store only those sources from header extract that may be used in lines
145159 --
145160 
145161 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
145162 g_array_event(l_event_id).array_value_date('source_4') := l_array_source_4(hdr_idx);
145163 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
145164 g_array_event(l_event_id).array_value_char('source_6') := l_array_source_6(hdr_idx);
145165 g_array_event(l_event_id).array_value_num('source_7') := l_array_source_7(hdr_idx);
145166 g_array_event(l_event_id).array_value_char('source_8') := l_array_source_8(hdr_idx);
145167 g_array_event(l_event_id).array_value_char('source_15') := l_array_source_15(hdr_idx);
145168 g_array_event(l_event_id).array_value_char('source_15_meaning') := l_array_source_15_meaning(hdr_idx);
145169 g_array_event(l_event_id).array_value_num('source_20') := l_array_source_20(hdr_idx);
145170 g_array_event(l_event_id).array_value_num('source_23') := l_array_source_23(hdr_idx);
145171 g_array_event(l_event_id).array_value_num('source_34') := l_array_source_34(hdr_idx);
145172 g_array_event(l_event_id).array_value_num('source_40') := l_array_source_40(hdr_idx);
145173 g_array_event(l_event_id).array_value_char('source_47') := l_array_source_47(hdr_idx);
145174 g_array_event(l_event_id).array_value_char('source_47_meaning') := l_array_source_47_meaning(hdr_idx);
145175 g_array_event(l_event_id).array_value_num('source_58') := l_array_source_58(hdr_idx);
145176 g_array_event(l_event_id).array_value_char('source_67') := l_array_source_67(hdr_idx);
145177 g_array_event(l_event_id).array_value_num('source_81') := l_array_source_81(hdr_idx);
145178 g_array_event(l_event_id).array_value_num('source_82') := l_array_source_82(hdr_idx);
145182 g_array_event(l_event_id).array_value_char('source_145') := l_array_source_145(hdr_idx);
145179 g_array_event(l_event_id).array_value_char('source_83') := l_array_source_83(hdr_idx);
145180 g_array_event(l_event_id).array_value_date('source_143') := l_array_source_143(hdr_idx);
145181 g_array_event(l_event_id).array_value_num('source_144') := l_array_source_144(hdr_idx);
145183 g_array_event(l_event_id).array_value_char('source_165') := l_array_source_165(hdr_idx);
145184 g_array_event(l_event_id).array_value_char('source_165_meaning') := l_array_source_165_meaning(hdr_idx);
145185 g_array_event(l_event_id).array_value_num('source_168') := l_array_source_168(hdr_idx);
145186 
145187 --
145188 -- initilaize the status of ae headers for diffrent balance types
145189 -- the status is initialised to C_NOT_CREATED (2)
145190 --
145191 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
145192 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
145193 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
145194 
145195 --
145196 -- call api to validate and store accounting attributes for header
145197 --
145198 
145199 ------------------------------------------------------------
145200 -- Accrual Reversal : to get date for Standard Source (NONE)
145201 ------------------------------------------------------------
145202 l_acc_rev_gl_date_source := NULL;
145203 
145204      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
145205       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_5');
145206      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
145207       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_168');
145208      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
145209       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_7');
145210      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
145211       l_rec_acct_attrs.array_date_value(4) := 
145212 xla_ae_sources_pkg.GetSystemSourceDate(
145213    p_source_code           => 'XLA_EVENT_DATE'
145214  , p_source_type_code      => 'Y'
145215  , p_source_application_id =>  602
145216 );
145217 
145218 
145219 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
145220 
145221 XLA_AE_HEADER_PKG.SetJeCategoryName;
145222 
145223 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
145224 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
145225 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
145226 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
145227 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
145228 
145229 
145230 --
145231 xla_ae_header_pkg.SetHdrDescription(
145232    p_description => Description_2 (
145233    p_application_id => p_application_id 
145234  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
145235  , p_source_4 => g_array_event(l_event_id).array_value_date('source_4')
145236  , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
145237  , p_source_6 => g_array_event(l_event_id).array_value_char('source_6')
145238  , p_source_7 => g_array_event(l_event_id).array_value_num('source_7')
145239  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
145240    )
145241 );
145242 --
145243 
145244 -- No header level analytical criteria
145245 
145246 --
145247 --accounting attribute enhancement, bug 3612931
145248 --
145249 l_trx_reversal_source := SUBSTR(NULL, 1,30);
145250 
145251 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
145252    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
145253 
145254    xla_accounting_err_pkg.build_message
145255       (p_appli_s_name            => 'XLA'
145256       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
145257       ,p_token_1                 => 'ACCT_ATTR_NAME'
145258       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
145259       ,p_token_2                 => 'PRODUCT_NAME'
145260       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
145261       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
145262       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
145263       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
145264 
145265 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
145266    --
145267    -- following sets the accounting attributes needed to reverse
145268    -- accounting for a distributeion
145269    --
145270    xla_ae_lines_pkg.SetTrxReversalAttrs
145271       (p_event_id              => l_event_id
145272       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
145273       ,p_trx_reversal_source   => l_trx_reversal_source);
145274 
145275 END IF;
145276 
145277 
145278 ----------------------------------------------------------------
145279 -- 4262811 -  update the header statuses to invalid in need be
145280 ----------------------------------------------------------------
145281 --
145282 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
145283 
145284 
145285   -----------------------------------------------
145289 
145286   -- No accrual reversal for the event class/type
145287   -----------------------------------------------
145288 ----------------------------------------------------------------
145290 --
145291 -- this ends the header loop iteration for one bulk fetch
145292 --
145293 END LOOP;
145294 
145295 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
145296 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
145297 
145298 --
145299 -- insert dummy rows into lines gt table that were created due to
145300 -- transaction reversals
145301 --
145302 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
145303    l_result := XLA_AE_LINES_PKG.InsertLines;
145304 END IF;
145305 
145306 --
145307 -- reset the temp_line_num for each set of events fetched from header
145308 -- cursor rather than doing it for each new event in line cursor
145309 -- Bug 3939231
145310 --
145311 xla_ae_lines_pkg.g_temp_line_num := 0;
145312 
145313 
145314 
145315 --
145316 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
145317 --
145318 --
145319 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
145320 
145321       trace
145322          (p_msg      => 'SQL - FETCH line_cur'
145323          ,p_level    => C_LEVEL_STATEMENT
145324          ,p_module   => l_log_module);
145325 
145326 END IF;
145327 --
145328 --
145329 LOOP
145330   --
145331   FETCH line_cur BULK COLLECT INTO
145332         l_array_entity_id
145333       , l_array_legal_entity_id
145334       , l_array_entity_code
145335       , l_array_transaction_num
145336       , l_array_event_id
145337       , l_array_class_code
145338       , l_array_event_type
145339       , l_array_event_number
145340       , l_array_event_date
145341       , l_array_transaction_date
145342       , l_array_reference_num_1
145343       , l_array_reference_num_2
145344       , l_array_reference_num_3
145345       , l_array_reference_num_4
145346       , l_array_reference_char_1
145347       , l_array_reference_char_2
145348       , l_array_reference_char_3
145349       , l_array_reference_char_4
145350       , l_array_reference_date_1
145351       , l_array_reference_date_2
145352       , l_array_reference_date_3
145353       , l_array_reference_date_4
145354       , l_array_event_created_by
145355       , l_array_budgetary_control_flag
145356       , l_array_extract_line_num 
145357       , l_array_source_1
145358       , l_array_source_21
145359       , l_array_source_22
145360       , l_array_source_22_meaning
145361       , l_array_source_30
145362       , l_array_source_33
145363       , l_array_source_33_meaning
145364       , l_array_source_42
145365       , l_array_source_43
145366       , l_array_source_50
145367       , l_array_source_51
145368       , l_array_source_53
145369       , l_array_source_55
145370       , l_array_source_57
145371       , l_array_source_59
145372       , l_array_source_60
145373       , l_array_source_61
145374       , l_array_source_62
145375       , l_array_source_63
145376       , l_array_source_64
145377       , l_array_source_65
145378       , l_array_source_66
145379       , l_array_source_68
145380       , l_array_source_69
145381       , l_array_source_70
145382       , l_array_source_71
145383       , l_array_source_72
145384       , l_array_source_73
145385       , l_array_source_74
145386       , l_array_source_75
145387       , l_array_source_76
145388       , l_array_source_77
145389       , l_array_source_78
145390       , l_array_source_79
145391       , l_array_source_80
145392       , l_array_source_80_meaning
145393       , l_array_source_84
145394       , l_array_source_85
145395       , l_array_source_86
145396       , l_array_source_87
145397       , l_array_source_88
145398       , l_array_source_89
145399       , l_array_source_90
145400       , l_array_source_91
145401       , l_array_source_92
145402       , l_array_source_93
145403       , l_array_source_94
145404       , l_array_source_95
145405       , l_array_source_96
145406       , l_array_source_96_meaning
145407       , l_array_source_142
145408       , l_array_source_142_meaning
145409       LIMIT l_rows;
145410 
145411   --
145412   IF (C_LEVEL_EVENT >= g_log_level) THEN
145413             trace
145414                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
145415                ,p_level    => C_LEVEL_EVENT
145416                ,p_module   => l_log_module);
145417   END IF;
145418   --
145419   EXIT WHEN l_array_entity_id.count = 0;
145420 
145421   XLA_AE_LINES_PKG.g_rec_lines := null;
145422 
145423 --
145424 -- Bug 4458708
145425 --
145426 XLA_AE_LINES_PKG.g_LineNumber := 0;
145427 --
145428 --
145429 
145430 FOR Idx IN 1..l_array_event_id.count LOOP
145431    --
145432    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
145433    --
145434    l_event_id := l_array_event_id(idx);  -- 5648433
145435 
145436    --
145437    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
145438    --
145439 
145440    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
145441              (g_array_event(l_event_id).array_value_num('header_index'))
145442          ,'N'
145443          ) <> 'Y'
145447             (p_msg      => 'Trancaction revesal option is not Y '
145444    THEN
145445       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
145446          trace
145448             ,p_level    => C_LEVEL_STATEMENT
145449             ,p_module   => l_log_module);
145450       END IF;
145451 
145452 --
145453 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
145454 --
145455 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
145456 --
145457 -- set event info as cache for other routines to refer event attributes
145458 --
145459 
145460 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
145461    l_previous_event_id := l_event_id;
145462 
145463    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
145464       (p_application_id           => p_application_id
145465       ,p_primary_ledger_id        => p_primary_ledger_id
145466       ,p_base_ledger_id           => p_base_ledger_id
145467       ,p_target_ledger_id         => p_target_ledger_id
145468       ,p_entity_id                => l_array_entity_id(Idx)
145469       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
145470       ,p_entity_code              => l_array_entity_code(Idx)
145471       ,p_transaction_num          => l_array_transaction_num(Idx)
145472       ,p_event_id                 => l_array_event_id(Idx)
145473       ,p_event_class_code         => l_array_class_code(Idx)
145474       ,p_event_type_code          => l_array_event_type(Idx)
145475       ,p_event_number             => l_array_event_number(Idx)
145476       ,p_event_date               => l_array_event_date(Idx)
145477       ,p_transaction_date         => l_array_transaction_date(Idx)
145478       ,p_reference_num_1          => l_array_reference_num_1(Idx)
145479       ,p_reference_num_2          => l_array_reference_num_2(Idx)
145480       ,p_reference_num_3          => l_array_reference_num_3(Idx)
145481       ,p_reference_num_4          => l_array_reference_num_4(Idx)
145482       ,p_reference_char_1         => l_array_reference_char_1(Idx)
145483       ,p_reference_char_2         => l_array_reference_char_2(Idx)
145484       ,p_reference_char_3         => l_array_reference_char_3(Idx)
145485       ,p_reference_char_4         => l_array_reference_char_4(Idx)
145486       ,p_reference_date_1         => l_array_reference_date_1(Idx)
145487       ,p_reference_date_2         => l_array_reference_date_2(Idx)
145488       ,p_reference_date_3         => l_array_reference_date_3(Idx)
145489       ,p_reference_date_4         => l_array_reference_date_4(Idx)
145490       ,p_event_created_by         => l_array_event_created_by(Idx)
145491       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
145492        --
145493 END IF;
145494 
145495 
145496 
145497 --
145498 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
145499 
145500 l_acct_reversal_source := SUBSTR(l_array_source_53(Idx), 1,30);
145501 
145502 IF l_continue_with_lines THEN
145503    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
145504       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
145505 
145506       xla_accounting_err_pkg.build_message
145507          (p_appli_s_name            => 'XLA'
145508          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
145509          ,p_token_1                 => 'LINE_NUMBER'
145510          ,p_value_1                 => l_array_extract_line_num(Idx)
145511          ,p_token_2                 => 'PRODUCT_NAME'
145512          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
145513          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
145514          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
145515          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
145516 
145517    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
145518       --
145519       -- following sets the accounting attributes needed to reverse
145520       -- accounting for a distributeion
145521       --
145522 
145523       --
145524       -- 5217187
145525       --
145526       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
145527       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
145528                                        g_array_event(l_event_id).array_value_num('header_index'));
145529       --
145530       --
145531 
145532       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
145533       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_53(Idx);
145534       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
145535       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_64(Idx);
145536       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
145537       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_55(Idx);
145538       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
145539       l_rec_rev_acct_attrs.array_num_value(5)  := l_array_source_65(Idx);
145540       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
145541       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_66(Idx);
145542       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
145543       l_rec_rev_acct_attrs.array_char_value(7)  := g_array_event(l_event_id).array_value_char('source_67');
145544       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
145545       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_68(Idx);
145546       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
145550       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
145547       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_69(Idx);
145548       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
145549       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_70(Idx);
145551       l_rec_rev_acct_attrs.array_char_value(11)  := g_array_event(l_event_id).array_value_char('source_67');
145552       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
145553       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_71(Idx);
145554       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
145555       l_rec_rev_acct_attrs.array_char_value(13)  := l_array_source_72(Idx);
145556       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
145557       l_rec_rev_acct_attrs.array_char_value(14)  := g_array_event(l_event_id).array_value_char('source_83');
145558       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
145559       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_84(Idx);
145560       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
145561       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_55(Idx);
145562       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
145563       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_86(Idx);
145564       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
145565       l_rec_rev_acct_attrs.array_num_value(18)  := l_array_source_87(Idx);
145566       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
145567       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_88(Idx);
145568       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
145569       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_89(Idx);
145570       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
145571       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_90(Idx);
145572 
145573 
145574       xla_ae_lines_pkg.SetAcctReversalAttrs
145575          (p_event_id             => l_event_id
145576          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
145577          ,p_calculate_acctd_flag => l_calculate_acctd_flag
145578          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
145579    END IF;
145580 
145581    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
145582        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
145583 
145584 --
145585 AcctLineType_47 (
145586  p_application_id  => p_application_id
145587  ,p_event_id     => l_event_id
145588  ,p_calculate_acctd_flag => l_calculate_acctd_flag
145589  ,p_calculate_g_l_flag => l_calculate_g_l_flag
145590  ,p_actual_flag => l_actual_flag
145591  ,p_balance_type_code => l_balance_type_code
145592  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
145593  
145594  , p_source_1 => l_array_source_1(Idx)
145595  , p_source_21 => l_array_source_21(Idx)
145596  , p_source_30 => l_array_source_30(Idx)
145597  , p_source_33 => l_array_source_33(Idx)
145598  , p_source_33_meaning => l_array_source_33_meaning(Idx)
145599  , p_source_53 => l_array_source_53(Idx)
145600  , p_source_55 => l_array_source_55(Idx)
145601  , p_source_57 => l_array_source_57(Idx)
145602  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
145603  , p_source_59 => l_array_source_59(Idx)
145604  , p_source_60 => l_array_source_60(Idx)
145605  , p_source_61 => l_array_source_61(Idx)
145606  , p_source_62 => l_array_source_62(Idx)
145607  , p_source_63 => l_array_source_63(Idx)
145608  , p_source_64 => l_array_source_64(Idx)
145609  , p_source_65 => l_array_source_65(Idx)
145610  , p_source_66 => l_array_source_66(Idx)
145611  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
145612  , p_source_68 => l_array_source_68(Idx)
145613  , p_source_69 => l_array_source_69(Idx)
145614  , p_source_70 => l_array_source_70(Idx)
145615  , p_source_71 => l_array_source_71(Idx)
145616  , p_source_72 => l_array_source_72(Idx)
145617  , p_source_73 => l_array_source_73(Idx)
145618  , p_source_74 => l_array_source_74(Idx)
145619  , p_source_75 => l_array_source_75(Idx)
145620  , p_source_76 => l_array_source_76(Idx)
145621  , p_source_77 => l_array_source_77(Idx)
145622  , p_source_78 => l_array_source_78(Idx)
145623  , p_source_79 => l_array_source_79(Idx)
145624  , p_source_80 => l_array_source_80(Idx)
145625  , p_source_80_meaning => l_array_source_80_meaning(Idx)
145626  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
145627  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
145628  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
145629  , p_source_84 => l_array_source_84(Idx)
145630  , p_source_85 => l_array_source_85(Idx)
145631  , p_source_86 => l_array_source_86(Idx)
145632  , p_source_87 => l_array_source_87(Idx)
145633  , p_source_88 => l_array_source_88(Idx)
145634  , p_source_89 => l_array_source_89(Idx)
145635  , p_source_90 => l_array_source_90(Idx)
145636  );
145637 If(l_balance_type_code = 'A') THEN
145638   l_actual_gain_loss_ref := l_gain_or_loss_ref;
145639 END IF;
145640 
145641 --
145642 
145643 
145644 --
145645 AcctLineType_51 (
145646  p_application_id  => p_application_id
145647  ,p_event_id     => l_event_id
145648  ,p_calculate_acctd_flag => l_calculate_acctd_flag
145649  ,p_calculate_g_l_flag => l_calculate_g_l_flag
145650  ,p_actual_flag => l_actual_flag
145651  ,p_balance_type_code => l_balance_type_code
145652  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
145653  
145657  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
145654  , p_source_1 => l_array_source_1(Idx)
145655  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
145656  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
145658  , p_source_21 => l_array_source_21(Idx)
145659  , p_source_22 => l_array_source_22(Idx)
145660  , p_source_22_meaning => l_array_source_22_meaning(Idx)
145661  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
145662  , p_source_30 => l_array_source_30(Idx)
145663  , p_source_33 => l_array_source_33(Idx)
145664  , p_source_33_meaning => l_array_source_33_meaning(Idx)
145665  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
145666  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
145667  , p_source_53 => l_array_source_53(Idx)
145668  , p_source_55 => l_array_source_55(Idx)
145669  , p_source_57 => l_array_source_57(Idx)
145670  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
145671  , p_source_64 => l_array_source_64(Idx)
145672  , p_source_65 => l_array_source_65(Idx)
145673  , p_source_66 => l_array_source_66(Idx)
145674  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
145675  , p_source_68 => l_array_source_68(Idx)
145676  , p_source_69 => l_array_source_69(Idx)
145677  , p_source_70 => l_array_source_70(Idx)
145678  , p_source_71 => l_array_source_71(Idx)
145679  , p_source_72 => l_array_source_72(Idx)
145680  , p_source_77 => l_array_source_77(Idx)
145681  , p_source_78 => l_array_source_78(Idx)
145682  , p_source_79 => l_array_source_79(Idx)
145683  , p_source_80 => l_array_source_80(Idx)
145684  , p_source_80_meaning => l_array_source_80_meaning(Idx)
145685  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
145686  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
145687  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
145688  , p_source_84 => l_array_source_84(Idx)
145689  , p_source_85 => l_array_source_85(Idx)
145690  , p_source_86 => l_array_source_86(Idx)
145691  , p_source_87 => l_array_source_87(Idx)
145692  , p_source_88 => l_array_source_88(Idx)
145693  , p_source_89 => l_array_source_89(Idx)
145694  , p_source_90 => l_array_source_90(Idx)
145695  , p_source_91 => l_array_source_91(Idx)
145696  , p_source_92 => l_array_source_92(Idx)
145697  , p_source_93 => l_array_source_93(Idx)
145698  , p_source_94 => l_array_source_94(Idx)
145699  , p_source_95 => l_array_source_95(Idx)
145700  );
145701 If(l_balance_type_code = 'A') THEN
145702   l_actual_gain_loss_ref := l_gain_or_loss_ref;
145703 END IF;
145704 
145705 --
145706 
145707 
145708 --
145709 AcctLineType_55 (
145710  p_application_id  => p_application_id
145711  ,p_event_id     => l_event_id
145712  ,p_calculate_acctd_flag => l_calculate_acctd_flag
145713  ,p_calculate_g_l_flag => l_calculate_g_l_flag
145714  ,p_actual_flag => l_actual_flag
145715  ,p_balance_type_code => l_balance_type_code
145716  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
145717  
145718  , p_source_1 => l_array_source_1(Idx)
145719  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
145720  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
145721  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
145722  , p_source_21 => l_array_source_21(Idx)
145723  , p_source_22 => l_array_source_22(Idx)
145724  , p_source_22_meaning => l_array_source_22_meaning(Idx)
145725  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
145726  , p_source_30 => l_array_source_30(Idx)
145727  , p_source_33 => l_array_source_33(Idx)
145728  , p_source_33_meaning => l_array_source_33_meaning(Idx)
145729  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
145730  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
145731  , p_source_53 => l_array_source_53(Idx)
145732  , p_source_55 => l_array_source_55(Idx)
145733  , p_source_57 => l_array_source_57(Idx)
145734  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
145735  , p_source_64 => l_array_source_64(Idx)
145736  , p_source_65 => l_array_source_65(Idx)
145737  , p_source_66 => l_array_source_66(Idx)
145738  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
145739  , p_source_68 => l_array_source_68(Idx)
145740  , p_source_69 => l_array_source_69(Idx)
145741  , p_source_70 => l_array_source_70(Idx)
145742  , p_source_71 => l_array_source_71(Idx)
145743  , p_source_72 => l_array_source_72(Idx)
145744  , p_source_77 => l_array_source_77(Idx)
145745  , p_source_78 => l_array_source_78(Idx)
145746  , p_source_79 => l_array_source_79(Idx)
145747  , p_source_80 => l_array_source_80(Idx)
145748  , p_source_80_meaning => l_array_source_80_meaning(Idx)
145749  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
145750  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
145751  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
145752  , p_source_84 => l_array_source_84(Idx)
145753  , p_source_85 => l_array_source_85(Idx)
145754  , p_source_86 => l_array_source_86(Idx)
145755  , p_source_87 => l_array_source_87(Idx)
145756  , p_source_88 => l_array_source_88(Idx)
145757  , p_source_89 => l_array_source_89(Idx)
145758  , p_source_90 => l_array_source_90(Idx)
145759  , p_source_91 => l_array_source_91(Idx)
145760  , p_source_92 => l_array_source_92(Idx)
145761  , p_source_93 => l_array_source_93(Idx)
145762  , p_source_94 => l_array_source_94(Idx)
145763  , p_source_95 => l_array_source_95(Idx)
145764  , p_source_96 => l_array_source_96(Idx)
145768   l_actual_gain_loss_ref := l_gain_or_loss_ref;
145765  , p_source_96_meaning => l_array_source_96_meaning(Idx)
145766  );
145767 If(l_balance_type_code = 'A') THEN
145769 END IF;
145770 
145771 --
145772 
145773 
145774 --
145775 AcctLineType_107 (
145776  p_application_id  => p_application_id
145777  ,p_event_id     => l_event_id
145778  ,p_calculate_acctd_flag => l_calculate_acctd_flag
145779  ,p_calculate_g_l_flag => l_calculate_g_l_flag
145780  ,p_actual_flag => l_actual_flag
145781  ,p_balance_type_code => l_balance_type_code
145782  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
145783  
145784  , p_source_1 => l_array_source_1(Idx)
145785  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
145786  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
145787  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
145788  , p_source_21 => l_array_source_21(Idx)
145789  , p_source_22 => l_array_source_22(Idx)
145790  , p_source_22_meaning => l_array_source_22_meaning(Idx)
145791  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
145792  , p_source_30 => l_array_source_30(Idx)
145793  , p_source_33 => l_array_source_33(Idx)
145794  , p_source_33_meaning => l_array_source_33_meaning(Idx)
145795  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
145796  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
145797  , p_source_53 => l_array_source_53(Idx)
145798  , p_source_55 => l_array_source_55(Idx)
145799  , p_source_57 => l_array_source_57(Idx)
145800  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
145801  , p_source_64 => l_array_source_64(Idx)
145802  , p_source_65 => l_array_source_65(Idx)
145803  , p_source_66 => l_array_source_66(Idx)
145804  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
145805  , p_source_68 => l_array_source_68(Idx)
145806  , p_source_69 => l_array_source_69(Idx)
145807  , p_source_70 => l_array_source_70(Idx)
145808  , p_source_71 => l_array_source_71(Idx)
145809  , p_source_72 => l_array_source_72(Idx)
145810  , p_source_73 => l_array_source_73(Idx)
145811  , p_source_77 => l_array_source_77(Idx)
145812  , p_source_78 => l_array_source_78(Idx)
145813  , p_source_79 => l_array_source_79(Idx)
145814  , p_source_80 => l_array_source_80(Idx)
145815  , p_source_80_meaning => l_array_source_80_meaning(Idx)
145816  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
145817  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
145818  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
145819  , p_source_84 => l_array_source_84(Idx)
145820  , p_source_85 => l_array_source_85(Idx)
145821  , p_source_86 => l_array_source_86(Idx)
145822  , p_source_87 => l_array_source_87(Idx)
145823  , p_source_88 => l_array_source_88(Idx)
145824  , p_source_89 => l_array_source_89(Idx)
145825  , p_source_90 => l_array_source_90(Idx)
145826  , p_source_91 => l_array_source_91(Idx)
145827  , p_source_92 => l_array_source_92(Idx)
145828  , p_source_93 => l_array_source_93(Idx)
145829  , p_source_94 => l_array_source_94(Idx)
145830  , p_source_95 => l_array_source_95(Idx)
145831  , p_source_96 => l_array_source_96(Idx)
145832  , p_source_96_meaning => l_array_source_96_meaning(Idx)
145833  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
145834  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
145835  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
145836  );
145837 If(l_balance_type_code = 'A') THEN
145838   l_actual_gain_loss_ref := l_gain_or_loss_ref;
145839 END IF;
145840 
145841 --
145842 
145843 
145844 --
145845 AcctLineType_116 (
145846  p_application_id  => p_application_id
145847  ,p_event_id     => l_event_id
145848  ,p_calculate_acctd_flag => l_calculate_acctd_flag
145849  ,p_calculate_g_l_flag => l_calculate_g_l_flag
145850  ,p_actual_flag => l_actual_flag
145851  ,p_balance_type_code => l_balance_type_code
145852  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
145853  
145854  , p_source_1 => l_array_source_1(Idx)
145855  , p_source_21 => l_array_source_21(Idx)
145856  , p_source_30 => l_array_source_30(Idx)
145857  , p_source_33 => l_array_source_33(Idx)
145858  , p_source_33_meaning => l_array_source_33_meaning(Idx)
145859  , p_source_53 => l_array_source_53(Idx)
145860  , p_source_55 => l_array_source_55(Idx)
145861  , p_source_57 => l_array_source_57(Idx)
145862  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
145863  , p_source_64 => l_array_source_64(Idx)
145864  , p_source_65 => l_array_source_65(Idx)
145865  , p_source_66 => l_array_source_66(Idx)
145866  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
145867  , p_source_68 => l_array_source_68(Idx)
145868  , p_source_69 => l_array_source_69(Idx)
145869  , p_source_70 => l_array_source_70(Idx)
145870  , p_source_71 => l_array_source_71(Idx)
145871  , p_source_72 => l_array_source_72(Idx)
145872  , p_source_73 => l_array_source_73(Idx)
145873  , p_source_77 => l_array_source_77(Idx)
145874  , p_source_78 => l_array_source_78(Idx)
145875  , p_source_79 => l_array_source_79(Idx)
145876  , p_source_80 => l_array_source_80(Idx)
145877  , p_source_80_meaning => l_array_source_80_meaning(Idx)
145878  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
145879  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
145880  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
145884  , p_source_87 => l_array_source_87(Idx)
145881  , p_source_84 => l_array_source_84(Idx)
145882  , p_source_85 => l_array_source_85(Idx)
145883  , p_source_86 => l_array_source_86(Idx)
145885  , p_source_88 => l_array_source_88(Idx)
145886  , p_source_89 => l_array_source_89(Idx)
145887  , p_source_90 => l_array_source_90(Idx)
145888  , p_source_91 => l_array_source_91(Idx)
145889  , p_source_92 => l_array_source_92(Idx)
145890  , p_source_93 => l_array_source_93(Idx)
145891  , p_source_94 => l_array_source_94(Idx)
145892  , p_source_95 => l_array_source_95(Idx)
145893  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
145894  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
145895  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
145896  );
145897 If(l_balance_type_code = 'A') THEN
145898   l_actual_gain_loss_ref := l_gain_or_loss_ref;
145899 END IF;
145900 
145901 --
145902 
145903 
145904 --
145905 AcctLineType_138 (
145906  p_application_id  => p_application_id
145907  ,p_event_id     => l_event_id
145908  ,p_calculate_acctd_flag => l_calculate_acctd_flag
145909  ,p_calculate_g_l_flag => l_calculate_g_l_flag
145910  ,p_actual_flag => l_actual_flag
145911  ,p_balance_type_code => l_balance_type_code
145912  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
145913  
145914  , p_source_1 => l_array_source_1(Idx)
145915  , p_source_21 => l_array_source_21(Idx)
145916  , p_source_30 => l_array_source_30(Idx)
145917  , p_source_33 => l_array_source_33(Idx)
145918  , p_source_33_meaning => l_array_source_33_meaning(Idx)
145919  , p_source_53 => l_array_source_53(Idx)
145920  , p_source_55 => l_array_source_55(Idx)
145921  , p_source_57 => l_array_source_57(Idx)
145922  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
145923  , p_source_64 => l_array_source_64(Idx)
145924  , p_source_65 => l_array_source_65(Idx)
145925  , p_source_66 => l_array_source_66(Idx)
145926  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
145927  , p_source_68 => l_array_source_68(Idx)
145928  , p_source_69 => l_array_source_69(Idx)
145929  , p_source_70 => l_array_source_70(Idx)
145930  , p_source_71 => l_array_source_71(Idx)
145931  , p_source_72 => l_array_source_72(Idx)
145932  , p_source_73 => l_array_source_73(Idx)
145933  , p_source_77 => l_array_source_77(Idx)
145934  , p_source_78 => l_array_source_78(Idx)
145935  , p_source_79 => l_array_source_79(Idx)
145936  , p_source_80 => l_array_source_80(Idx)
145937  , p_source_80_meaning => l_array_source_80_meaning(Idx)
145938  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
145939  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
145940  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
145941  , p_source_84 => l_array_source_84(Idx)
145942  , p_source_85 => l_array_source_85(Idx)
145943  , p_source_86 => l_array_source_86(Idx)
145944  , p_source_87 => l_array_source_87(Idx)
145945  , p_source_88 => l_array_source_88(Idx)
145946  , p_source_89 => l_array_source_89(Idx)
145947  , p_source_90 => l_array_source_90(Idx)
145948  , p_source_91 => l_array_source_91(Idx)
145949  , p_source_92 => l_array_source_92(Idx)
145950  , p_source_93 => l_array_source_93(Idx)
145951  , p_source_94 => l_array_source_94(Idx)
145952  , p_source_95 => l_array_source_95(Idx)
145953  , p_source_96 => l_array_source_96(Idx)
145954  , p_source_96_meaning => l_array_source_96_meaning(Idx)
145955  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
145956  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
145957  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
145958  );
145959 If(l_balance_type_code = 'A') THEN
145960   l_actual_gain_loss_ref := l_gain_or_loss_ref;
145961 END IF;
145962 
145963 --
145964 
145965 
145966 --
145967 AcctLineType_142 (
145968  p_application_id  => p_application_id
145969  ,p_event_id     => l_event_id
145970  ,p_calculate_acctd_flag => l_calculate_acctd_flag
145971  ,p_calculate_g_l_flag => l_calculate_g_l_flag
145972  ,p_actual_flag => l_actual_flag
145973  ,p_balance_type_code => l_balance_type_code
145974  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
145975  
145976  , p_source_1 => l_array_source_1(Idx)
145977  , p_source_21 => l_array_source_21(Idx)
145978  , p_source_30 => l_array_source_30(Idx)
145979  , p_source_33 => l_array_source_33(Idx)
145980  , p_source_33_meaning => l_array_source_33_meaning(Idx)
145981  , p_source_53 => l_array_source_53(Idx)
145982  , p_source_55 => l_array_source_55(Idx)
145983  , p_source_57 => l_array_source_57(Idx)
145984  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
145985  , p_source_64 => l_array_source_64(Idx)
145986  , p_source_65 => l_array_source_65(Idx)
145987  , p_source_66 => l_array_source_66(Idx)
145988  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
145989  , p_source_68 => l_array_source_68(Idx)
145990  , p_source_69 => l_array_source_69(Idx)
145991  , p_source_70 => l_array_source_70(Idx)
145992  , p_source_71 => l_array_source_71(Idx)
145993  , p_source_72 => l_array_source_72(Idx)
145994  , p_source_73 => l_array_source_73(Idx)
145995  , p_source_77 => l_array_source_77(Idx)
145996  , p_source_78 => l_array_source_78(Idx)
145997  , p_source_79 => l_array_source_79(Idx)
145998  , p_source_80 => l_array_source_80(Idx)
145999  , p_source_80_meaning => l_array_source_80_meaning(Idx)
146000  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146004  , p_source_85 => l_array_source_85(Idx)
146001  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
146002  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
146003  , p_source_84 => l_array_source_84(Idx)
146005  , p_source_86 => l_array_source_86(Idx)
146006  , p_source_87 => l_array_source_87(Idx)
146007  , p_source_88 => l_array_source_88(Idx)
146008  , p_source_89 => l_array_source_89(Idx)
146009  , p_source_90 => l_array_source_90(Idx)
146010  , p_source_91 => l_array_source_91(Idx)
146011  , p_source_92 => l_array_source_92(Idx)
146012  , p_source_93 => l_array_source_93(Idx)
146013  , p_source_94 => l_array_source_94(Idx)
146014  , p_source_95 => l_array_source_95(Idx)
146015  , p_source_96 => l_array_source_96(Idx)
146016  , p_source_96_meaning => l_array_source_96_meaning(Idx)
146017  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
146018  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
146019  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
146020  );
146021 If(l_balance_type_code = 'A') THEN
146022   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146023 END IF;
146024 
146025 --
146026 
146027 
146028 --
146029 AcctLineType_148 (
146030  p_application_id  => p_application_id
146031  ,p_event_id     => l_event_id
146032  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146033  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146034  ,p_actual_flag => l_actual_flag
146035  ,p_balance_type_code => l_balance_type_code
146036  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146037  
146038  , p_source_1 => l_array_source_1(Idx)
146039  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
146040  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
146041  , p_source_21 => l_array_source_21(Idx)
146042  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
146043  , p_source_53 => l_array_source_53(Idx)
146044  , p_source_55 => l_array_source_55(Idx)
146045  , p_source_57 => l_array_source_57(Idx)
146046  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
146047  , p_source_64 => l_array_source_64(Idx)
146048  , p_source_65 => l_array_source_65(Idx)
146049  , p_source_66 => l_array_source_66(Idx)
146050  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
146051  , p_source_68 => l_array_source_68(Idx)
146052  , p_source_69 => l_array_source_69(Idx)
146053  , p_source_70 => l_array_source_70(Idx)
146054  , p_source_71 => l_array_source_71(Idx)
146055  , p_source_72 => l_array_source_72(Idx)
146056  , p_source_73 => l_array_source_73(Idx)
146057  , p_source_77 => l_array_source_77(Idx)
146058  , p_source_78 => l_array_source_78(Idx)
146059  , p_source_79 => l_array_source_79(Idx)
146060  , p_source_80 => l_array_source_80(Idx)
146061  , p_source_80_meaning => l_array_source_80_meaning(Idx)
146062  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146063  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
146064  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
146065  , p_source_84 => l_array_source_84(Idx)
146066  , p_source_85 => l_array_source_85(Idx)
146067  , p_source_86 => l_array_source_86(Idx)
146068  , p_source_87 => l_array_source_87(Idx)
146069  , p_source_88 => l_array_source_88(Idx)
146070  , p_source_89 => l_array_source_89(Idx)
146071  , p_source_90 => l_array_source_90(Idx)
146072  , p_source_91 => l_array_source_91(Idx)
146073  , p_source_92 => l_array_source_92(Idx)
146074  , p_source_93 => l_array_source_93(Idx)
146075  , p_source_94 => l_array_source_94(Idx)
146076  , p_source_95 => l_array_source_95(Idx)
146077  , p_source_142 => l_array_source_142(Idx)
146078  , p_source_142_meaning => l_array_source_142_meaning(Idx)
146079  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
146080  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
146081  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
146082  );
146083 If(l_balance_type_code = 'A') THEN
146084   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146085 END IF;
146086 
146087 --
146088 
146089 
146090 --
146091 AcctLineType_149 (
146092  p_application_id  => p_application_id
146093  ,p_event_id     => l_event_id
146094  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146095  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146096  ,p_actual_flag => l_actual_flag
146097  ,p_balance_type_code => l_balance_type_code
146098  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146099  
146100  , p_source_1 => l_array_source_1(Idx)
146101  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
146102  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
146103  , p_source_21 => l_array_source_21(Idx)
146104  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
146105  , p_source_53 => l_array_source_53(Idx)
146106  , p_source_55 => l_array_source_55(Idx)
146107  , p_source_57 => l_array_source_57(Idx)
146108  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
146109  , p_source_64 => l_array_source_64(Idx)
146110  , p_source_65 => l_array_source_65(Idx)
146111  , p_source_66 => l_array_source_66(Idx)
146112  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
146113  , p_source_68 => l_array_source_68(Idx)
146114  , p_source_69 => l_array_source_69(Idx)
146115  , p_source_70 => l_array_source_70(Idx)
146116  , p_source_71 => l_array_source_71(Idx)
146120  , p_source_78 => l_array_source_78(Idx)
146117  , p_source_72 => l_array_source_72(Idx)
146118  , p_source_73 => l_array_source_73(Idx)
146119  , p_source_77 => l_array_source_77(Idx)
146121  , p_source_79 => l_array_source_79(Idx)
146122  , p_source_80 => l_array_source_80(Idx)
146123  , p_source_80_meaning => l_array_source_80_meaning(Idx)
146124  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146125  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
146126  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
146127  , p_source_84 => l_array_source_84(Idx)
146128  , p_source_85 => l_array_source_85(Idx)
146129  , p_source_86 => l_array_source_86(Idx)
146130  , p_source_87 => l_array_source_87(Idx)
146131  , p_source_88 => l_array_source_88(Idx)
146132  , p_source_89 => l_array_source_89(Idx)
146133  , p_source_90 => l_array_source_90(Idx)
146134  , p_source_91 => l_array_source_91(Idx)
146135  , p_source_92 => l_array_source_92(Idx)
146136  , p_source_93 => l_array_source_93(Idx)
146137  , p_source_94 => l_array_source_94(Idx)
146138  , p_source_95 => l_array_source_95(Idx)
146139  , p_source_142 => l_array_source_142(Idx)
146140  , p_source_142_meaning => l_array_source_142_meaning(Idx)
146141  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
146142  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
146143  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
146144  );
146145 If(l_balance_type_code = 'A') THEN
146146   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146147 END IF;
146148 
146149 --
146150 
146151 
146152 --
146153 AcctLineType_150 (
146154  p_application_id  => p_application_id
146155  ,p_event_id     => l_event_id
146156  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146157  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146158  ,p_actual_flag => l_actual_flag
146159  ,p_balance_type_code => l_balance_type_code
146160  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146161  
146162  , p_source_1 => l_array_source_1(Idx)
146163  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
146164  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
146165  , p_source_21 => l_array_source_21(Idx)
146166  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
146167  , p_source_53 => l_array_source_53(Idx)
146168  , p_source_55 => l_array_source_55(Idx)
146169  , p_source_57 => l_array_source_57(Idx)
146170  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
146171  , p_source_64 => l_array_source_64(Idx)
146172  , p_source_65 => l_array_source_65(Idx)
146173  , p_source_66 => l_array_source_66(Idx)
146174  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
146175  , p_source_68 => l_array_source_68(Idx)
146176  , p_source_69 => l_array_source_69(Idx)
146177  , p_source_70 => l_array_source_70(Idx)
146178  , p_source_71 => l_array_source_71(Idx)
146179  , p_source_72 => l_array_source_72(Idx)
146180  , p_source_73 => l_array_source_73(Idx)
146181  , p_source_77 => l_array_source_77(Idx)
146182  , p_source_78 => l_array_source_78(Idx)
146183  , p_source_79 => l_array_source_79(Idx)
146184  , p_source_80 => l_array_source_80(Idx)
146185  , p_source_80_meaning => l_array_source_80_meaning(Idx)
146186  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146187  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
146188  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
146189  , p_source_84 => l_array_source_84(Idx)
146190  , p_source_85 => l_array_source_85(Idx)
146191  , p_source_86 => l_array_source_86(Idx)
146192  , p_source_87 => l_array_source_87(Idx)
146193  , p_source_88 => l_array_source_88(Idx)
146194  , p_source_89 => l_array_source_89(Idx)
146195  , p_source_90 => l_array_source_90(Idx)
146196  , p_source_91 => l_array_source_91(Idx)
146197  , p_source_92 => l_array_source_92(Idx)
146198  , p_source_93 => l_array_source_93(Idx)
146199  , p_source_94 => l_array_source_94(Idx)
146200  , p_source_95 => l_array_source_95(Idx)
146201  , p_source_142 => l_array_source_142(Idx)
146202  , p_source_142_meaning => l_array_source_142_meaning(Idx)
146203  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
146204  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
146205  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
146206  );
146207 If(l_balance_type_code = 'A') THEN
146208   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146209 END IF;
146210 
146211 --
146212 
146213 
146214 --
146215 AcctLineType_171 (
146216  p_application_id  => p_application_id
146217  ,p_event_id     => l_event_id
146218  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146219  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146220  ,p_actual_flag => l_actual_flag
146221  ,p_balance_type_code => l_balance_type_code
146222  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146223  
146224  , p_source_1 => l_array_source_1(Idx)
146225  , p_source_21 => l_array_source_21(Idx)
146226  , p_source_30 => l_array_source_30(Idx)
146227  , p_source_33 => l_array_source_33(Idx)
146228  , p_source_33_meaning => l_array_source_33_meaning(Idx)
146229  , p_source_53 => l_array_source_53(Idx)
146230  , p_source_55 => l_array_source_55(Idx)
146231  , p_source_57 => l_array_source_57(Idx)
146232  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
146233  , p_source_64 => l_array_source_64(Idx)
146237  , p_source_68 => l_array_source_68(Idx)
146234  , p_source_65 => l_array_source_65(Idx)
146235  , p_source_66 => l_array_source_66(Idx)
146236  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
146238  , p_source_69 => l_array_source_69(Idx)
146239  , p_source_70 => l_array_source_70(Idx)
146240  , p_source_71 => l_array_source_71(Idx)
146241  , p_source_72 => l_array_source_72(Idx)
146242  , p_source_73 => l_array_source_73(Idx)
146243  , p_source_77 => l_array_source_77(Idx)
146244  , p_source_78 => l_array_source_78(Idx)
146245  , p_source_79 => l_array_source_79(Idx)
146246  , p_source_80 => l_array_source_80(Idx)
146247  , p_source_80_meaning => l_array_source_80_meaning(Idx)
146248  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146249  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
146250  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
146251  , p_source_84 => l_array_source_84(Idx)
146252  , p_source_85 => l_array_source_85(Idx)
146253  , p_source_86 => l_array_source_86(Idx)
146254  , p_source_87 => l_array_source_87(Idx)
146255  , p_source_88 => l_array_source_88(Idx)
146256  , p_source_89 => l_array_source_89(Idx)
146257  , p_source_90 => l_array_source_90(Idx)
146258  , p_source_91 => l_array_source_91(Idx)
146259  , p_source_92 => l_array_source_92(Idx)
146260  , p_source_93 => l_array_source_93(Idx)
146261  , p_source_94 => l_array_source_94(Idx)
146262  , p_source_95 => l_array_source_95(Idx)
146263  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
146264  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
146265  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
146266  );
146267 If(l_balance_type_code = 'A') THEN
146268   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146269 END IF;
146270 
146271 --
146272 
146273 
146274 --
146275 AcctLineType_175 (
146276  p_application_id  => p_application_id
146277  ,p_event_id     => l_event_id
146278  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146279  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146280  ,p_actual_flag => l_actual_flag
146281  ,p_balance_type_code => l_balance_type_code
146282  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146283  
146284  , p_source_1 => l_array_source_1(Idx)
146285  , p_source_21 => l_array_source_21(Idx)
146286  , p_source_30 => l_array_source_30(Idx)
146287  , p_source_33 => l_array_source_33(Idx)
146288  , p_source_33_meaning => l_array_source_33_meaning(Idx)
146289  , p_source_53 => l_array_source_53(Idx)
146290  , p_source_55 => l_array_source_55(Idx)
146291  , p_source_57 => l_array_source_57(Idx)
146292  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
146293  , p_source_64 => l_array_source_64(Idx)
146294  , p_source_65 => l_array_source_65(Idx)
146295  , p_source_66 => l_array_source_66(Idx)
146296  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
146297  , p_source_68 => l_array_source_68(Idx)
146298  , p_source_69 => l_array_source_69(Idx)
146299  , p_source_70 => l_array_source_70(Idx)
146300  , p_source_71 => l_array_source_71(Idx)
146301  , p_source_72 => l_array_source_72(Idx)
146302  , p_source_73 => l_array_source_73(Idx)
146303  , p_source_74 => l_array_source_74(Idx)
146304  , p_source_75 => l_array_source_75(Idx)
146305  , p_source_76 => l_array_source_76(Idx)
146306  , p_source_77 => l_array_source_77(Idx)
146307  , p_source_78 => l_array_source_78(Idx)
146308  , p_source_79 => l_array_source_79(Idx)
146309  , p_source_80 => l_array_source_80(Idx)
146310  , p_source_80_meaning => l_array_source_80_meaning(Idx)
146311  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146312  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
146313  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
146314  , p_source_84 => l_array_source_84(Idx)
146315  , p_source_85 => l_array_source_85(Idx)
146316  , p_source_86 => l_array_source_86(Idx)
146317  , p_source_87 => l_array_source_87(Idx)
146318  , p_source_88 => l_array_source_88(Idx)
146319  , p_source_89 => l_array_source_89(Idx)
146320  , p_source_90 => l_array_source_90(Idx)
146321  , p_source_91 => l_array_source_91(Idx)
146322  , p_source_92 => l_array_source_92(Idx)
146323  , p_source_93 => l_array_source_93(Idx)
146324  , p_source_94 => l_array_source_94(Idx)
146325  , p_source_95 => l_array_source_95(Idx)
146326  , p_source_96 => l_array_source_96(Idx)
146327  , p_source_96_meaning => l_array_source_96_meaning(Idx)
146328  , p_source_142 => l_array_source_142(Idx)
146329  , p_source_142_meaning => l_array_source_142_meaning(Idx)
146330  );
146331 If(l_balance_type_code = 'A') THEN
146332   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146333 END IF;
146334 
146335 --
146336 
146337 
146338 --
146339 AcctLineType_178 (
146340  p_application_id  => p_application_id
146341  ,p_event_id     => l_event_id
146342  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146343  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146344  ,p_actual_flag => l_actual_flag
146345  ,p_balance_type_code => l_balance_type_code
146346  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146347  
146348  , p_source_1 => l_array_source_1(Idx)
146349  , p_source_21 => l_array_source_21(Idx)
146350  , p_source_30 => l_array_source_30(Idx)
146351  , p_source_33 => l_array_source_33(Idx)
146352  , p_source_33_meaning => l_array_source_33_meaning(Idx)
146353  , p_source_53 => l_array_source_53(Idx)
146354  , p_source_55 => l_array_source_55(Idx)
146358  , p_source_65 => l_array_source_65(Idx)
146355  , p_source_57 => l_array_source_57(Idx)
146356  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
146357  , p_source_64 => l_array_source_64(Idx)
146359  , p_source_66 => l_array_source_66(Idx)
146360  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
146361  , p_source_68 => l_array_source_68(Idx)
146362  , p_source_69 => l_array_source_69(Idx)
146363  , p_source_70 => l_array_source_70(Idx)
146364  , p_source_71 => l_array_source_71(Idx)
146365  , p_source_72 => l_array_source_72(Idx)
146366  , p_source_73 => l_array_source_73(Idx)
146367  , p_source_77 => l_array_source_77(Idx)
146368  , p_source_78 => l_array_source_78(Idx)
146369  , p_source_79 => l_array_source_79(Idx)
146370  , p_source_80 => l_array_source_80(Idx)
146371  , p_source_80_meaning => l_array_source_80_meaning(Idx)
146372  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146373  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
146374  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
146375  , p_source_84 => l_array_source_84(Idx)
146376  , p_source_85 => l_array_source_85(Idx)
146377  , p_source_86 => l_array_source_86(Idx)
146378  , p_source_87 => l_array_source_87(Idx)
146379  , p_source_88 => l_array_source_88(Idx)
146380  , p_source_89 => l_array_source_89(Idx)
146381  , p_source_90 => l_array_source_90(Idx)
146382  , p_source_91 => l_array_source_91(Idx)
146383  , p_source_92 => l_array_source_92(Idx)
146384  , p_source_93 => l_array_source_93(Idx)
146385  , p_source_94 => l_array_source_94(Idx)
146386  , p_source_95 => l_array_source_95(Idx)
146387  , p_source_96 => l_array_source_96(Idx)
146388  , p_source_96_meaning => l_array_source_96_meaning(Idx)
146389  , p_source_142 => l_array_source_142(Idx)
146390  , p_source_142_meaning => l_array_source_142_meaning(Idx)
146391  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
146392  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
146393  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
146394  );
146395 If(l_balance_type_code = 'A') THEN
146396   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146397 END IF;
146398 
146399 --
146400 
146401 
146402 --
146403 AcctLineType_187 (
146404  p_application_id  => p_application_id
146405  ,p_event_id     => l_event_id
146406  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146407  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146408  ,p_actual_flag => l_actual_flag
146409  ,p_balance_type_code => l_balance_type_code
146410  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146411  
146412  , p_source_1 => l_array_source_1(Idx)
146413  , p_source_21 => l_array_source_21(Idx)
146414  , p_source_30 => l_array_source_30(Idx)
146415  , p_source_33 => l_array_source_33(Idx)
146416  , p_source_33_meaning => l_array_source_33_meaning(Idx)
146417  , p_source_53 => l_array_source_53(Idx)
146418  , p_source_55 => l_array_source_55(Idx)
146419  , p_source_57 => l_array_source_57(Idx)
146420  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
146421  , p_source_64 => l_array_source_64(Idx)
146422  , p_source_65 => l_array_source_65(Idx)
146423  , p_source_66 => l_array_source_66(Idx)
146424  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
146425  , p_source_68 => l_array_source_68(Idx)
146426  , p_source_69 => l_array_source_69(Idx)
146427  , p_source_70 => l_array_source_70(Idx)
146428  , p_source_71 => l_array_source_71(Idx)
146429  , p_source_72 => l_array_source_72(Idx)
146430  , p_source_73 => l_array_source_73(Idx)
146431  , p_source_77 => l_array_source_77(Idx)
146432  , p_source_78 => l_array_source_78(Idx)
146433  , p_source_79 => l_array_source_79(Idx)
146434  , p_source_80 => l_array_source_80(Idx)
146435  , p_source_80_meaning => l_array_source_80_meaning(Idx)
146436  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146437  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
146438  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
146439  , p_source_84 => l_array_source_84(Idx)
146440  , p_source_85 => l_array_source_85(Idx)
146441  , p_source_86 => l_array_source_86(Idx)
146442  , p_source_87 => l_array_source_87(Idx)
146443  , p_source_88 => l_array_source_88(Idx)
146444  , p_source_89 => l_array_source_89(Idx)
146445  , p_source_90 => l_array_source_90(Idx)
146446  , p_source_91 => l_array_source_91(Idx)
146447  , p_source_92 => l_array_source_92(Idx)
146448  , p_source_93 => l_array_source_93(Idx)
146449  , p_source_94 => l_array_source_94(Idx)
146450  , p_source_95 => l_array_source_95(Idx)
146451  , p_source_142 => l_array_source_142(Idx)
146452  , p_source_142_meaning => l_array_source_142_meaning(Idx)
146453  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
146454  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
146455  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
146456  );
146457 If(l_balance_type_code = 'A') THEN
146458   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146459 END IF;
146460 
146461 --
146462 
146463 
146464 --
146465 AcctLineType_192 (
146466  p_application_id  => p_application_id
146467  ,p_event_id     => l_event_id
146468  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146469  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146470  ,p_actual_flag => l_actual_flag
146471  ,p_balance_type_code => l_balance_type_code
146472  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146473  
146477  , p_source_21 => l_array_source_21(Idx)
146474  , p_source_1 => l_array_source_1(Idx)
146475  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
146476  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
146478  , p_source_30 => l_array_source_30(Idx)
146479  , p_source_33 => l_array_source_33(Idx)
146480  , p_source_33_meaning => l_array_source_33_meaning(Idx)
146481  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
146482  , p_source_42 => l_array_source_42(Idx)
146483  , p_source_53 => l_array_source_53(Idx)
146484  , p_source_55 => l_array_source_55(Idx)
146485  , p_source_57 => l_array_source_57(Idx)
146486  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
146487  , p_source_64 => l_array_source_64(Idx)
146488  , p_source_65 => l_array_source_65(Idx)
146489  , p_source_66 => l_array_source_66(Idx)
146490  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
146491  , p_source_68 => l_array_source_68(Idx)
146492  , p_source_69 => l_array_source_69(Idx)
146493  , p_source_70 => l_array_source_70(Idx)
146494  , p_source_71 => l_array_source_71(Idx)
146495  , p_source_72 => l_array_source_72(Idx)
146496  , p_source_73 => l_array_source_73(Idx)
146497  , p_source_77 => l_array_source_77(Idx)
146498  , p_source_78 => l_array_source_78(Idx)
146499  , p_source_79 => l_array_source_79(Idx)
146500  , p_source_80 => l_array_source_80(Idx)
146501  , p_source_80_meaning => l_array_source_80_meaning(Idx)
146502  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146503  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
146504  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
146505  , p_source_84 => l_array_source_84(Idx)
146506  , p_source_85 => l_array_source_85(Idx)
146507  , p_source_86 => l_array_source_86(Idx)
146508  , p_source_87 => l_array_source_87(Idx)
146509  , p_source_88 => l_array_source_88(Idx)
146510  , p_source_89 => l_array_source_89(Idx)
146511  , p_source_90 => l_array_source_90(Idx)
146512  , p_source_91 => l_array_source_91(Idx)
146513  , p_source_92 => l_array_source_92(Idx)
146514  , p_source_93 => l_array_source_93(Idx)
146515  , p_source_94 => l_array_source_94(Idx)
146516  , p_source_95 => l_array_source_95(Idx)
146517  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
146518  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
146519  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
146520  , p_source_165 => g_array_event(l_event_id).array_value_char('source_165')
146521  , p_source_165_meaning => g_array_event(l_event_id).array_value_char('source_165_meaning')
146522  );
146523 If(l_balance_type_code = 'A') THEN
146524   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146525 END IF;
146526 
146527 --
146528 
146529 
146530 --
146531 AcctLineType_196 (
146532  p_application_id  => p_application_id
146533  ,p_event_id     => l_event_id
146534  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146535  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146536  ,p_actual_flag => l_actual_flag
146537  ,p_balance_type_code => l_balance_type_code
146538  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146539  
146540  , p_source_1 => l_array_source_1(Idx)
146541  , p_source_21 => l_array_source_21(Idx)
146542  , p_source_33 => l_array_source_33(Idx)
146543  , p_source_33_meaning => l_array_source_33_meaning(Idx)
146544  , p_source_50 => l_array_source_50(Idx)
146545  , p_source_53 => l_array_source_53(Idx)
146546  , p_source_55 => l_array_source_55(Idx)
146547  , p_source_57 => l_array_source_57(Idx)
146548  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
146549  , p_source_64 => l_array_source_64(Idx)
146550  , p_source_65 => l_array_source_65(Idx)
146551  , p_source_66 => l_array_source_66(Idx)
146552  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
146553  , p_source_68 => l_array_source_68(Idx)
146554  , p_source_69 => l_array_source_69(Idx)
146555  , p_source_70 => l_array_source_70(Idx)
146556  , p_source_71 => l_array_source_71(Idx)
146557  , p_source_72 => l_array_source_72(Idx)
146558  , p_source_73 => l_array_source_73(Idx)
146559  , p_source_77 => l_array_source_77(Idx)
146560  , p_source_78 => l_array_source_78(Idx)
146561  , p_source_79 => l_array_source_79(Idx)
146562  , p_source_80 => l_array_source_80(Idx)
146563  , p_source_80_meaning => l_array_source_80_meaning(Idx)
146564  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146565  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
146566  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
146567  , p_source_84 => l_array_source_84(Idx)
146568  , p_source_85 => l_array_source_85(Idx)
146569  , p_source_86 => l_array_source_86(Idx)
146570  , p_source_87 => l_array_source_87(Idx)
146571  , p_source_88 => l_array_source_88(Idx)
146572  , p_source_89 => l_array_source_89(Idx)
146573  , p_source_90 => l_array_source_90(Idx)
146574  , p_source_91 => l_array_source_91(Idx)
146575  , p_source_92 => l_array_source_92(Idx)
146576  , p_source_93 => l_array_source_93(Idx)
146577  , p_source_94 => l_array_source_94(Idx)
146578  , p_source_95 => l_array_source_95(Idx)
146579  , p_source_96 => l_array_source_96(Idx)
146580  , p_source_96_meaning => l_array_source_96_meaning(Idx)
146581  , p_source_142 => l_array_source_142(Idx)
146582  , p_source_142_meaning => l_array_source_142_meaning(Idx)
146586  );
146583  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
146584  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
146585  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
146587 If(l_balance_type_code = 'A') THEN
146588   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146589 END IF;
146590 
146591 --
146592 
146593 
146594 --
146595 AcctLineType_200 (
146596  p_application_id  => p_application_id
146597  ,p_event_id     => l_event_id
146598  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146599  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146600  ,p_actual_flag => l_actual_flag
146601  ,p_balance_type_code => l_balance_type_code
146602  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146603  
146604  , p_source_1 => l_array_source_1(Idx)
146605  , p_source_21 => l_array_source_21(Idx)
146606  , p_source_33 => l_array_source_33(Idx)
146607  , p_source_33_meaning => l_array_source_33_meaning(Idx)
146608  , p_source_50 => l_array_source_50(Idx)
146609  , p_source_53 => l_array_source_53(Idx)
146610  , p_source_55 => l_array_source_55(Idx)
146611  , p_source_57 => l_array_source_57(Idx)
146612  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
146613  , p_source_64 => l_array_source_64(Idx)
146614  , p_source_65 => l_array_source_65(Idx)
146615  , p_source_66 => l_array_source_66(Idx)
146616  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
146617  , p_source_68 => l_array_source_68(Idx)
146618  , p_source_69 => l_array_source_69(Idx)
146619  , p_source_70 => l_array_source_70(Idx)
146620  , p_source_71 => l_array_source_71(Idx)
146621  , p_source_72 => l_array_source_72(Idx)
146622  , p_source_73 => l_array_source_73(Idx)
146623  , p_source_77 => l_array_source_77(Idx)
146624  , p_source_78 => l_array_source_78(Idx)
146625  , p_source_79 => l_array_source_79(Idx)
146626  , p_source_80 => l_array_source_80(Idx)
146627  , p_source_80_meaning => l_array_source_80_meaning(Idx)
146628  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146629  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
146630  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
146631  , p_source_84 => l_array_source_84(Idx)
146632  , p_source_85 => l_array_source_85(Idx)
146633  , p_source_86 => l_array_source_86(Idx)
146634  , p_source_87 => l_array_source_87(Idx)
146635  , p_source_88 => l_array_source_88(Idx)
146636  , p_source_89 => l_array_source_89(Idx)
146637  , p_source_90 => l_array_source_90(Idx)
146638  , p_source_91 => l_array_source_91(Idx)
146639  , p_source_92 => l_array_source_92(Idx)
146640  , p_source_93 => l_array_source_93(Idx)
146641  , p_source_94 => l_array_source_94(Idx)
146642  , p_source_95 => l_array_source_95(Idx)
146643  , p_source_142 => l_array_source_142(Idx)
146644  , p_source_142_meaning => l_array_source_142_meaning(Idx)
146645  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
146646  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
146647  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
146648  );
146649 If(l_balance_type_code = 'A') THEN
146650   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146651 END IF;
146652 
146653 --
146654 
146655 
146656 --
146657 AcctLineType_203 (
146658  p_application_id  => p_application_id
146659  ,p_event_id     => l_event_id
146660  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146661  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146662  ,p_actual_flag => l_actual_flag
146663  ,p_balance_type_code => l_balance_type_code
146664  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146665  
146666  , p_source_1 => l_array_source_1(Idx)
146667  , p_source_21 => l_array_source_21(Idx)
146668  , p_source_33 => l_array_source_33(Idx)
146669  , p_source_33_meaning => l_array_source_33_meaning(Idx)
146670  , p_source_51 => l_array_source_51(Idx)
146671  , p_source_53 => l_array_source_53(Idx)
146672  , p_source_55 => l_array_source_55(Idx)
146673  , p_source_57 => l_array_source_57(Idx)
146674  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
146675  , p_source_64 => l_array_source_64(Idx)
146676  , p_source_65 => l_array_source_65(Idx)
146677  , p_source_66 => l_array_source_66(Idx)
146678  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
146679  , p_source_68 => l_array_source_68(Idx)
146680  , p_source_69 => l_array_source_69(Idx)
146681  , p_source_70 => l_array_source_70(Idx)
146682  , p_source_71 => l_array_source_71(Idx)
146683  , p_source_72 => l_array_source_72(Idx)
146684  , p_source_73 => l_array_source_73(Idx)
146685  , p_source_77 => l_array_source_77(Idx)
146686  , p_source_78 => l_array_source_78(Idx)
146687  , p_source_79 => l_array_source_79(Idx)
146688  , p_source_80 => l_array_source_80(Idx)
146689  , p_source_80_meaning => l_array_source_80_meaning(Idx)
146690  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146691  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
146692  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
146693  , p_source_84 => l_array_source_84(Idx)
146694  , p_source_85 => l_array_source_85(Idx)
146695  , p_source_86 => l_array_source_86(Idx)
146696  , p_source_87 => l_array_source_87(Idx)
146697  , p_source_88 => l_array_source_88(Idx)
146698  , p_source_89 => l_array_source_89(Idx)
146699  , p_source_90 => l_array_source_90(Idx)
146700  , p_source_91 => l_array_source_91(Idx)
146701  , p_source_92 => l_array_source_92(Idx)
146705  , p_source_142 => l_array_source_142(Idx)
146702  , p_source_93 => l_array_source_93(Idx)
146703  , p_source_94 => l_array_source_94(Idx)
146704  , p_source_95 => l_array_source_95(Idx)
146706  , p_source_142_meaning => l_array_source_142_meaning(Idx)
146707  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
146708  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
146709  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
146710  );
146711 If(l_balance_type_code = 'A') THEN
146712   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146713 END IF;
146714 
146715 --
146716 
146717 
146718 --
146719 AcctLineType_208 (
146720  p_application_id  => p_application_id
146721  ,p_event_id     => l_event_id
146722  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146723  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146724  ,p_actual_flag => l_actual_flag
146725  ,p_balance_type_code => l_balance_type_code
146726  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146727  
146728  , p_source_1 => l_array_source_1(Idx)
146729  , p_source_21 => l_array_source_21(Idx)
146730  , p_source_33 => l_array_source_33(Idx)
146731  , p_source_33_meaning => l_array_source_33_meaning(Idx)
146732  , p_source_50 => l_array_source_50(Idx)
146733  , p_source_53 => l_array_source_53(Idx)
146734  , p_source_55 => l_array_source_55(Idx)
146735  , p_source_57 => l_array_source_57(Idx)
146736  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
146737  , p_source_64 => l_array_source_64(Idx)
146738  , p_source_65 => l_array_source_65(Idx)
146739  , p_source_66 => l_array_source_66(Idx)
146740  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
146741  , p_source_68 => l_array_source_68(Idx)
146742  , p_source_69 => l_array_source_69(Idx)
146743  , p_source_70 => l_array_source_70(Idx)
146744  , p_source_71 => l_array_source_71(Idx)
146745  , p_source_72 => l_array_source_72(Idx)
146746  , p_source_73 => l_array_source_73(Idx)
146747  , p_source_74 => l_array_source_74(Idx)
146748  , p_source_75 => l_array_source_75(Idx)
146749  , p_source_76 => l_array_source_76(Idx)
146750  , p_source_77 => l_array_source_77(Idx)
146751  , p_source_78 => l_array_source_78(Idx)
146752  , p_source_79 => l_array_source_79(Idx)
146753  , p_source_80 => l_array_source_80(Idx)
146754  , p_source_80_meaning => l_array_source_80_meaning(Idx)
146755  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146756  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
146757  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
146758  , p_source_84 => l_array_source_84(Idx)
146759  , p_source_85 => l_array_source_85(Idx)
146760  , p_source_86 => l_array_source_86(Idx)
146761  , p_source_87 => l_array_source_87(Idx)
146762  , p_source_88 => l_array_source_88(Idx)
146763  , p_source_89 => l_array_source_89(Idx)
146764  , p_source_90 => l_array_source_90(Idx)
146765  , p_source_91 => l_array_source_91(Idx)
146766  , p_source_92 => l_array_source_92(Idx)
146767  , p_source_93 => l_array_source_93(Idx)
146768  , p_source_94 => l_array_source_94(Idx)
146769  , p_source_95 => l_array_source_95(Idx)
146770  , p_source_96 => l_array_source_96(Idx)
146771  , p_source_96_meaning => l_array_source_96_meaning(Idx)
146772  , p_source_142 => l_array_source_142(Idx)
146773  , p_source_142_meaning => l_array_source_142_meaning(Idx)
146774  );
146775 If(l_balance_type_code = 'A') THEN
146776   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146777 END IF;
146778 
146779 --
146780 
146781 
146782 --
146783 AcctLineType_212 (
146784  p_application_id  => p_application_id
146785  ,p_event_id     => l_event_id
146786  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146787  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146788  ,p_actual_flag => l_actual_flag
146789  ,p_balance_type_code => l_balance_type_code
146790  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146791  
146792  , p_source_1 => l_array_source_1(Idx)
146793  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
146794  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
146795  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
146796  , p_source_21 => l_array_source_21(Idx)
146797  , p_source_22 => l_array_source_22(Idx)
146798  , p_source_22_meaning => l_array_source_22_meaning(Idx)
146799  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
146800  , p_source_30 => l_array_source_30(Idx)
146801  , p_source_33 => l_array_source_33(Idx)
146802  , p_source_33_meaning => l_array_source_33_meaning(Idx)
146803  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
146804  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
146805  , p_source_53 => l_array_source_53(Idx)
146806  , p_source_55 => l_array_source_55(Idx)
146807  , p_source_57 => l_array_source_57(Idx)
146808  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
146809  , p_source_64 => l_array_source_64(Idx)
146810  , p_source_65 => l_array_source_65(Idx)
146811  , p_source_66 => l_array_source_66(Idx)
146812  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
146813  , p_source_68 => l_array_source_68(Idx)
146814  , p_source_69 => l_array_source_69(Idx)
146815  , p_source_70 => l_array_source_70(Idx)
146816  , p_source_71 => l_array_source_71(Idx)
146817  , p_source_72 => l_array_source_72(Idx)
146818  , p_source_73 => l_array_source_73(Idx)
146819  , p_source_77 => l_array_source_77(Idx)
146823  , p_source_80_meaning => l_array_source_80_meaning(Idx)
146820  , p_source_78 => l_array_source_78(Idx)
146821  , p_source_79 => l_array_source_79(Idx)
146822  , p_source_80 => l_array_source_80(Idx)
146824  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146825  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
146826  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
146827  , p_source_84 => l_array_source_84(Idx)
146828  , p_source_85 => l_array_source_85(Idx)
146829  , p_source_86 => l_array_source_86(Idx)
146830  , p_source_87 => l_array_source_87(Idx)
146831  , p_source_88 => l_array_source_88(Idx)
146832  , p_source_89 => l_array_source_89(Idx)
146833  , p_source_90 => l_array_source_90(Idx)
146834  , p_source_91 => l_array_source_91(Idx)
146835  , p_source_92 => l_array_source_92(Idx)
146836  , p_source_93 => l_array_source_93(Idx)
146837  , p_source_94 => l_array_source_94(Idx)
146838  , p_source_95 => l_array_source_95(Idx)
146839  , p_source_96 => l_array_source_96(Idx)
146840  , p_source_96_meaning => l_array_source_96_meaning(Idx)
146841  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
146842  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
146843  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
146844  );
146845 If(l_balance_type_code = 'A') THEN
146846   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146847 END IF;
146848 
146849 --
146850 
146851 
146852 --
146853 AcctLineType_216 (
146854  p_application_id  => p_application_id
146855  ,p_event_id     => l_event_id
146856  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146857  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146858  ,p_actual_flag => l_actual_flag
146859  ,p_balance_type_code => l_balance_type_code
146860  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146861  
146862  , p_source_1 => l_array_source_1(Idx)
146863  , p_source_21 => l_array_source_21(Idx)
146864  , p_source_30 => l_array_source_30(Idx)
146865  , p_source_33 => l_array_source_33(Idx)
146866  , p_source_33_meaning => l_array_source_33_meaning(Idx)
146867  , p_source_53 => l_array_source_53(Idx)
146868  , p_source_55 => l_array_source_55(Idx)
146869  , p_source_57 => l_array_source_57(Idx)
146870  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
146871  , p_source_64 => l_array_source_64(Idx)
146872  , p_source_65 => l_array_source_65(Idx)
146873  , p_source_66 => l_array_source_66(Idx)
146874  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
146875  , p_source_68 => l_array_source_68(Idx)
146876  , p_source_69 => l_array_source_69(Idx)
146877  , p_source_70 => l_array_source_70(Idx)
146878  , p_source_71 => l_array_source_71(Idx)
146879  , p_source_72 => l_array_source_72(Idx)
146880  , p_source_73 => l_array_source_73(Idx)
146881  , p_source_77 => l_array_source_77(Idx)
146882  , p_source_78 => l_array_source_78(Idx)
146883  , p_source_79 => l_array_source_79(Idx)
146884  , p_source_80 => l_array_source_80(Idx)
146885  , p_source_80_meaning => l_array_source_80_meaning(Idx)
146886  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146887  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
146888  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
146889  , p_source_84 => l_array_source_84(Idx)
146890  , p_source_85 => l_array_source_85(Idx)
146891  , p_source_86 => l_array_source_86(Idx)
146892  , p_source_87 => l_array_source_87(Idx)
146893  , p_source_88 => l_array_source_88(Idx)
146894  , p_source_89 => l_array_source_89(Idx)
146895  , p_source_90 => l_array_source_90(Idx)
146896  , p_source_91 => l_array_source_91(Idx)
146897  , p_source_92 => l_array_source_92(Idx)
146898  , p_source_93 => l_array_source_93(Idx)
146899  , p_source_94 => l_array_source_94(Idx)
146900  , p_source_95 => l_array_source_95(Idx)
146901  , p_source_96 => l_array_source_96(Idx)
146902  , p_source_96_meaning => l_array_source_96_meaning(Idx)
146903  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
146904  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
146905  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
146906  );
146907 If(l_balance_type_code = 'A') THEN
146908   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146909 END IF;
146910 
146911 --
146912 
146913 
146914 --
146915 AcctLineType_220 (
146916  p_application_id  => p_application_id
146917  ,p_event_id     => l_event_id
146918  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146919  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146920  ,p_actual_flag => l_actual_flag
146921  ,p_balance_type_code => l_balance_type_code
146922  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146923  
146924  , p_source_1 => l_array_source_1(Idx)
146925  , p_source_21 => l_array_source_21(Idx)
146926  , p_source_30 => l_array_source_30(Idx)
146927  , p_source_33 => l_array_source_33(Idx)
146928  , p_source_33_meaning => l_array_source_33_meaning(Idx)
146929  , p_source_53 => l_array_source_53(Idx)
146930  , p_source_55 => l_array_source_55(Idx)
146931  , p_source_57 => l_array_source_57(Idx)
146932  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
146933  , p_source_64 => l_array_source_64(Idx)
146934  , p_source_65 => l_array_source_65(Idx)
146935  , p_source_66 => l_array_source_66(Idx)
146936  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
146937  , p_source_68 => l_array_source_68(Idx)
146941  , p_source_72 => l_array_source_72(Idx)
146938  , p_source_69 => l_array_source_69(Idx)
146939  , p_source_70 => l_array_source_70(Idx)
146940  , p_source_71 => l_array_source_71(Idx)
146942  , p_source_73 => l_array_source_73(Idx)
146943  , p_source_77 => l_array_source_77(Idx)
146944  , p_source_78 => l_array_source_78(Idx)
146945  , p_source_79 => l_array_source_79(Idx)
146946  , p_source_80 => l_array_source_80(Idx)
146947  , p_source_80_meaning => l_array_source_80_meaning(Idx)
146948  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
146949  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
146950  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
146951  , p_source_84 => l_array_source_84(Idx)
146952  , p_source_85 => l_array_source_85(Idx)
146953  , p_source_86 => l_array_source_86(Idx)
146954  , p_source_87 => l_array_source_87(Idx)
146955  , p_source_88 => l_array_source_88(Idx)
146956  , p_source_89 => l_array_source_89(Idx)
146957  , p_source_90 => l_array_source_90(Idx)
146958  , p_source_91 => l_array_source_91(Idx)
146959  , p_source_92 => l_array_source_92(Idx)
146960  , p_source_93 => l_array_source_93(Idx)
146961  , p_source_94 => l_array_source_94(Idx)
146962  , p_source_95 => l_array_source_95(Idx)
146963  , p_source_96 => l_array_source_96(Idx)
146964  , p_source_96_meaning => l_array_source_96_meaning(Idx)
146965  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
146966  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
146967  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
146968  );
146969 If(l_balance_type_code = 'A') THEN
146970   l_actual_gain_loss_ref := l_gain_or_loss_ref;
146971 END IF;
146972 
146973 --
146974 
146975 
146976 --
146977 AcctLineType_226 (
146978  p_application_id  => p_application_id
146979  ,p_event_id     => l_event_id
146980  ,p_calculate_acctd_flag => l_calculate_acctd_flag
146981  ,p_calculate_g_l_flag => l_calculate_g_l_flag
146982  ,p_actual_flag => l_actual_flag
146983  ,p_balance_type_code => l_balance_type_code
146984  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
146985  
146986  , p_source_1 => l_array_source_1(Idx)
146987  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
146988  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
146989  , p_source_21 => l_array_source_21(Idx)
146990  , p_source_30 => l_array_source_30(Idx)
146991  , p_source_33 => l_array_source_33(Idx)
146992  , p_source_33_meaning => l_array_source_33_meaning(Idx)
146993  , p_source_43 => l_array_source_43(Idx)
146994  , p_source_53 => l_array_source_53(Idx)
146995  , p_source_55 => l_array_source_55(Idx)
146996  , p_source_57 => l_array_source_57(Idx)
146997  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
146998  , p_source_64 => l_array_source_64(Idx)
146999  , p_source_65 => l_array_source_65(Idx)
147000  , p_source_66 => l_array_source_66(Idx)
147001  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
147002  , p_source_68 => l_array_source_68(Idx)
147003  , p_source_69 => l_array_source_69(Idx)
147004  , p_source_70 => l_array_source_70(Idx)
147005  , p_source_71 => l_array_source_71(Idx)
147006  , p_source_72 => l_array_source_72(Idx)
147007  , p_source_73 => l_array_source_73(Idx)
147008  , p_source_77 => l_array_source_77(Idx)
147009  , p_source_78 => l_array_source_78(Idx)
147010  , p_source_79 => l_array_source_79(Idx)
147011  , p_source_80 => l_array_source_80(Idx)
147012  , p_source_80_meaning => l_array_source_80_meaning(Idx)
147013  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
147014  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
147015  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
147016  , p_source_84 => l_array_source_84(Idx)
147017  , p_source_85 => l_array_source_85(Idx)
147018  , p_source_86 => l_array_source_86(Idx)
147019  , p_source_87 => l_array_source_87(Idx)
147020  , p_source_88 => l_array_source_88(Idx)
147021  , p_source_89 => l_array_source_89(Idx)
147022  , p_source_90 => l_array_source_90(Idx)
147023  , p_source_91 => l_array_source_91(Idx)
147024  , p_source_92 => l_array_source_92(Idx)
147025  , p_source_93 => l_array_source_93(Idx)
147026  , p_source_94 => l_array_source_94(Idx)
147027  , p_source_95 => l_array_source_95(Idx)
147028  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
147029  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
147030  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
147031  );
147032 If(l_balance_type_code = 'A') THEN
147033   l_actual_gain_loss_ref := l_gain_or_loss_ref;
147034 END IF;
147035 
147036 --
147037 
147038       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
147039       -- or secondary ledger that has different currency with primary
147040       -- or alc that is calculated by sla
147041       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
147042             (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'))
147043 
147044 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
147045 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
147046           AND (l_actual_flag = 'A')) THEN
147047         XLA_AE_LINES_PKG.CreateGainOrLossLines(
147051          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
147048           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
147049          ,p_application_id   => p_application_id
147050          ,p_amb_context_code => 'DEFAULT'
147052          ,p_event_class_code => C_EVENT_CLASS_CODE
147053          ,p_event_type_code  => C_EVENT_TYPE_CODE
147054          
147055          ,p_gain_ccid        => -1
147056          ,p_loss_ccid        => -1
147057 
147058          ,p_actual_flag      => l_actual_flag
147059          ,p_enc_flag         => null
147060          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
147061          ,p_enc_g_l_ref      => null
147062          );
147063       END IF;
147064    END IF;
147065 END IF;
147066 
147067    ELSE
147068       --
147069       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
147070       --
147071       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
147072          trace
147073             (p_msg      => 'Trancaction revesal option is Y'
147074             ,p_level    => C_LEVEL_STATEMENT
147075             ,p_module   => l_log_module);
147076       END IF;
147077    END IF;
147078 
147079 END LOOP;
147080 l_result := XLA_AE_LINES_PKG.InsertLines ;
147081 end loop;
147082 close line_cur;
147083 
147084 
147085 --
147086 -- insert headers into xla_ae_headers_gt table
147087 --
147088 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
147089 
147090 -- insert into errors table here.
147091 
147092 END LOOP;
147093 
147094 --
147095 -- 4865292
147096 --
147097 -- Compare g_hdr_extract_count with event count in
147098 -- CreateHeadersAndLines.
147099 --
147100 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
147101 
147102 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
147103    trace (p_msg     => '# rows extracted from header extract objects '
147104                     || ' (running total): '
147105                     || g_hdr_extract_count
147106          ,p_level   => C_LEVEL_STATEMENT
147107          ,p_module  => l_log_module);
147108 END IF;
147109 
147110 CLOSE header_cur;
147111 --
147112 
147113 --
147114 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
147115    trace
147116       (p_msg      => 'END of EventClass_230'
147117       ,p_level    => C_LEVEL_PROCEDURE
147118       ,p_module   => l_log_module);
147119 END IF;
147120 --
147121 RETURN l_result;
147122 EXCEPTION
147123 WHEN xla_exceptions_pkg.application_exception THEN
147124    
147125 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
147126 
147127    
147128 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
147129 
147130    RAISE;
147131 
147132 WHEN NO_DATA_FOUND THEN
147133 
147134 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
147135 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
147136 
147137 FOR header_record IN header_cur
147138 LOOP
147139     l_array_header_events(header_record.event_id) := header_record.event_id;
147140 END LOOP;
147141 
147142 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
147143 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
147144 
147145 fnd_file.put_line(fnd_file.LOG, '                    ');
147146 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
147147 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
147148 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
147149 
147150 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
147151 LOOP
147152 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
147153 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
147154         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
147155 	END IF;
147156 END LOOP;
147157 
147158 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
147159 fnd_file.put_line(fnd_file.LOG, '                    ');
147160 
147161 
147162 xla_exceptions_pkg.raise_message
147163       (p_location => 'XLA_00200_AAD_S_000002_PKG.EventClass_230');
147164 
147165 
147166 WHEN OTHERS THEN
147167    xla_exceptions_pkg.raise_message
147168       (p_location => 'XLA_00200_AAD_S_000002_PKG.EventClass_230');
147169 END EventClass_230;
147170 --
147171 
147172 ---------------------------------------
147173 --
147174 -- PRIVATE PROCEDURE
147175 --         insert_sources_231
147176 --
147177 ----------------------------------------
147178 --
147179 PROCEDURE insert_sources_231(
147180                                 p_target_ledger_id       IN NUMBER
147181                               , p_language               IN VARCHAR2
147182                               , p_sla_ledger_id          IN NUMBER
147183                               , p_pad_start_date         IN DATE
147184                               , p_pad_end_date           IN DATE
147185                          )
147186 IS
147187 
147188 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'DEBIT MEMOS_ALL';
147189 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'DEBIT MEMOS';
147190 p_apps_owner                   VARCHAR2(30);
147191 l_log_module                   VARCHAR2(240);
147192 BEGIN
147193 IF g_log_enabled THEN
147197 
147194       l_log_module := C_DEFAULT_MODULE||'.insert_sources_231';
147195 END IF;
147196 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
147198       trace
147199          (p_msg      => 'BEGIN of insert_sources_231'
147200          ,p_level    => C_LEVEL_PROCEDURE
147201          ,p_module   => l_log_module);
147202 
147203 END IF;
147204 
147205 -- select APPS owner
147206 SELECT oracle_username
147207   INTO p_apps_owner
147208   FROM fnd_oracle_userid
147209  WHERE read_only_flag = 'U'
147210 ;
147211 
147212 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
147213       trace
147214          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
147215                         ' - p_language = '||p_language||
147216                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
147217                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
147218                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
147219                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
147220          ,p_level    => C_LEVEL_STATEMENT
147221          ,p_module   => l_log_module);
147222 END IF;
147223 
147224 
147225 --
147226 INSERT INTO xla_diag_sources --hdr2
147227 (
147228         event_id
147229       , ledger_id
147230       , sla_ledger_id
147231       , description_language
147232       , object_name
147233       , object_type_code
147234       , line_number
147235       , source_application_id
147236       , source_type_code
147237       , source_code
147238       , source_value
147239       , source_meaning
147240       , created_by
147241       , creation_date
147242       , last_update_date
147243       , last_updated_by
147244       , last_update_login
147245       , program_update_date
147246       , program_application_id
147247       , program_id
147248       , request_id
147249 )
147250 SELECT
147251         event_id
147252       , p_target_ledger_id
147253       , p_sla_ledger_id
147254       , p_language
147255       , object_name
147256       , object_type_code
147257       , line_number
147258       , source_application_id
147259       , source_type_code
147260       , source_code
147261       , SUBSTR(source_value ,1,1996)
147262       , SUBSTR(source_meaning ,1,200)
147263       , xla_environment_pkg.g_Usr_Id
147264       , TRUNC(SYSDATE)
147265       , TRUNC(SYSDATE)
147266       , xla_environment_pkg.g_Usr_Id
147267       , xla_environment_pkg.g_Login_Id
147268       , TRUNC(SYSDATE)
147269       , xla_environment_pkg.g_Prog_Appl_Id
147270       , xla_environment_pkg.g_Prog_Id
147271       , xla_environment_pkg.g_Req_Id
147272   FROM (
147273        SELECT xet.event_id                  event_id
147274             , 0                          line_number
147275             , CASE r
147276                WHEN 1 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147277                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147278                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147279                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147280                 WHEN 5 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147281                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147282                 WHEN 7 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
147283                 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
147284                 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
147285                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147286                 WHEN 11 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
147287                 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
147288                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147289                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147290                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147291                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147292                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147293                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147294                 WHEN 19 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147295                 WHEN 20 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147296                 WHEN 21 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
147297                 
147298                ELSE null
147299               END                           object_name
147300             , CASE r
147301                 WHEN 1 THEN 'HEADER' 
147302                 WHEN 2 THEN 'HEADER' 
147303                 WHEN 3 THEN 'HEADER' 
147304                 WHEN 4 THEN 'HEADER' 
147305                 WHEN 5 THEN 'HEADER' 
147306                 WHEN 6 THEN 'HEADER' 
147307                 WHEN 7 THEN 'HEADER' 
147308                 WHEN 8 THEN 'HEADER' 
147309                 WHEN 9 THEN 'HEADER' 
147310                 WHEN 10 THEN 'HEADER' 
147311                 WHEN 11 THEN 'HEADER' 
147312                 WHEN 12 THEN 'HEADER' 
147313                 WHEN 13 THEN 'HEADER' 
147314                 WHEN 14 THEN 'HEADER' 
147315                 WHEN 15 THEN 'HEADER' 
147316                 WHEN 16 THEN 'HEADER' 
147317                 WHEN 17 THEN 'HEADER' 
147318                 WHEN 18 THEN 'HEADER' 
147319                 WHEN 19 THEN 'HEADER' 
147320                 WHEN 20 THEN 'HEADER' 
147321                 WHEN 21 THEN 'HEADER' 
147322                 
147323                 ELSE null
147324               END                           object_type_code
147325             , CASE r
147326                 WHEN 1 THEN '200' 
147327                 WHEN 2 THEN '200' 
147331                 WHEN 6 THEN '200' 
147328                 WHEN 3 THEN '200' 
147329                 WHEN 4 THEN '200' 
147330                 WHEN 5 THEN '200' 
147332                 WHEN 7 THEN '200' 
147333                 WHEN 8 THEN '200' 
147334                 WHEN 9 THEN '200' 
147335                 WHEN 10 THEN '200' 
147336                 WHEN 11 THEN '200' 
147337                 WHEN 12 THEN '200' 
147338                 WHEN 13 THEN '200' 
147339                 WHEN 14 THEN '200' 
147340                 WHEN 15 THEN '200' 
147341                 WHEN 16 THEN '200' 
147342                 WHEN 17 THEN '200' 
147343                 WHEN 18 THEN '200' 
147344                 WHEN 19 THEN '200' 
147345                 WHEN 20 THEN '200' 
147346                 WHEN 21 THEN '200' 
147347                 
147348                 ELSE null
147349               END                           source_application_id
147350             , 'S'             source_type_code
147351             , CASE r
147352                 WHEN 1 THEN 'INV_TRANSACTION_NUMBER' 
147353                 WHEN 2 THEN 'AI_INVOICE_DATE' 
147354                 WHEN 3 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
147355                 WHEN 4 THEN 'DOC_SEQUENCE_NAME' 
147356                 WHEN 5 THEN 'INV_DOC_SEQUENCE_VALUE' 
147357                 WHEN 6 THEN 'AI_DESCRIPTION' 
147358                 WHEN 7 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
147359                 WHEN 8 THEN 'ASP_RATE_VAR_GAIN_CCID' 
147360                 WHEN 9 THEN 'ASP_RATE_VAR_LOSS_CCID' 
147361                 WHEN 10 THEN 'AI_ACCTS_PAY_CCID' 
147362                 WHEN 11 THEN 'FSP_RETAINAGE_ACCOUNT' 
147363                 WHEN 12 THEN 'ASP_AUTO_OFFSET_FLAG' 
147364                 WHEN 13 THEN 'AI_INVOICE_ID' 
147365                 WHEN 14 THEN 'AI_INVOICE_CURRENCY_CODE' 
147366                 WHEN 15 THEN 'AI_VENDOR_ID' 
147367                 WHEN 16 THEN 'AI_VENDOR_SITE_ID' 
147368                 WHEN 17 THEN 'THIRD_PARTY_TYPE' 
147369                 WHEN 18 THEN 'INV_EXCHANGE_DATE' 
147370                 WHEN 19 THEN 'INV_EXCHANGE_RATE' 
147371                 WHEN 20 THEN 'INV_EXCHANGE_RATE_TYPE' 
147372                 WHEN 21 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
147373                 
147374                 ELSE null
147375               END                           source_code
147376             , CASE r
147377                 WHEN 1 THEN TO_CHAR(h2.INV_TRANSACTION_NUMBER)
147378                 WHEN 2 THEN TO_CHAR(h2.AI_INVOICE_DATE)
147379                 WHEN 3 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
147380                 WHEN 4 THEN TO_CHAR(h2.DOC_SEQUENCE_NAME)
147381                 WHEN 5 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
147382                 WHEN 6 THEN TO_CHAR(h2.AI_DESCRIPTION)
147383                 WHEN 7 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
147384                 WHEN 8 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
147385                 WHEN 9 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
147386                 WHEN 10 THEN TO_CHAR(h2.AI_ACCTS_PAY_CCID)
147387                 WHEN 11 THEN TO_CHAR(h4.FSP_RETAINAGE_ACCOUNT)
147388                 WHEN 12 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
147389                 WHEN 13 THEN TO_CHAR(h2.AI_INVOICE_ID)
147390                 WHEN 14 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
147391                 WHEN 15 THEN TO_CHAR(h2.AI_VENDOR_ID)
147392                 WHEN 16 THEN TO_CHAR(h2.AI_VENDOR_SITE_ID)
147393                 WHEN 17 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
147394                 WHEN 18 THEN TO_CHAR(h2.INV_EXCHANGE_DATE)
147395                 WHEN 19 THEN TO_CHAR(h2.INV_EXCHANGE_RATE)
147396                 WHEN 20 THEN TO_CHAR(h2.INV_EXCHANGE_RATE_TYPE)
147397                 WHEN 21 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
147398                 
147399                 ELSE null
147400               END                           source_value
147401             , CASE r
147402                 WHEN 7 THEN fvl15.meaning
147403                 WHEN 12 THEN fvl47.meaning
147404                 
147405                 ELSE null
147406               END               source_meaning
147407          FROM xla_events_gt     xet  
147408       , AP_INVOICE_EXTRACT_HEADER_V  h2
147409       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
147410   , fnd_lookup_values    fvl15
147411   , fnd_lookup_values    fvl47
147412              ,(select rownum r from all_objects where rownum <= 21 and owner = p_apps_owner)
147413          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
147414            AND xet.event_class_code = C_EVENT_CLASS_CODE
147415               AND h2.event_id = xet.event_id
147416  AND h4.asp_org_id= h2.ai_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
147417   AND fvl15.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
147418   AND fvl15.view_application_id(+) = 200
147419   AND fvl15.language(+)            = USERENV('LANG')
147420      AND fvl47.lookup_type(+)         = 'YES_NO'
147421   AND fvl47.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
147422   AND fvl47.view_application_id(+) = 0
147423   AND fvl47.language(+)            = USERENV('LANG')
147424   
147425 )
147426 ;
147427 --
147428 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
147429 
147430       trace
147431          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
147432          ,p_level    => C_LEVEL_STATEMENT
147433          ,p_module   => l_log_module);
147434 
147435 END IF;
147436 --
147437 
147438 
147439 
147440 --
147441 INSERT INTO xla_diag_sources  --line2
147442 (
147443         event_id
147444       , ledger_id
147445       , sla_ledger_id
147449       , line_number
147446       , description_language
147447       , object_name
147448       , object_type_code
147450       , source_application_id
147451       , source_type_code
147452       , source_code
147453       , source_value
147454       , source_meaning
147455       , created_by
147456       , creation_date
147457       , last_update_date
147458       , last_updated_by
147459       , last_update_login
147460       , program_update_date
147461       , program_application_id
147462       , program_id
147463       , request_id
147464 )
147465 SELECT  event_id
147466       , p_target_ledger_id
147467       , p_sla_ledger_id
147468       , p_language
147469       , object_name
147470       , object_type_code
147471       , line_number
147472       , source_application_id
147473       , source_type_code
147474       , source_code
147475       , SUBSTR(source_value,1,1996)
147476       , SUBSTR(source_meaning ,1,200)
147477       , xla_environment_pkg.g_Usr_Id
147478       , TRUNC(SYSDATE)
147479       , TRUNC(SYSDATE)
147480       , xla_environment_pkg.g_Usr_Id
147481       , xla_environment_pkg.g_Login_Id
147482       , TRUNC(SYSDATE)
147483       , xla_environment_pkg.g_Prog_Appl_Id
147484       , xla_environment_pkg.g_Prog_Id
147485       , xla_environment_pkg.g_Req_Id
147486   FROM (
147487        SELECT xet.event_id                  event_id
147488             , l1.line_number                 line_number
147489             , CASE r
147490                WHEN 1 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147491                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147492                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147493                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147494                 WHEN 5 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147495                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147496                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147497                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147498                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147499                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147500                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147501                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147502                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147503                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147504                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147505                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147506                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147507                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147508                 WHEN 19 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147509                 WHEN 20 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147510                 WHEN 21 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147511                 WHEN 22 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147512                 WHEN 23 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147513                 WHEN 24 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147514                 WHEN 25 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147515                 WHEN 26 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147516                 WHEN 27 THEN 'AP_PO_HEADERS_EXTRACT_V' 
147517                 WHEN 28 THEN 'AP_PO_HEADERS_EXTRACT_V' 
147518                 WHEN 29 THEN 'AP_PO_HEADERS_EXTRACT_V' 
147519                 WHEN 30 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147520                 WHEN 31 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147521                 WHEN 32 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147522                 WHEN 33 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147523                 WHEN 34 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147524                 WHEN 35 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
147525                 WHEN 36 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
147526                 WHEN 37 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147527                 WHEN 38 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147528                 WHEN 39 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147529                 WHEN 40 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147530                 WHEN 41 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147531                 WHEN 42 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147532                 WHEN 43 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147533                 WHEN 44 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147534                 WHEN 45 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147535                 WHEN 46 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
147536                 
147537                ELSE null
147538               END                           object_name
147539             , CASE r
147540                 WHEN 1 THEN 'LINE' 
147541                 WHEN 2 THEN 'LINE' 
147542                 WHEN 3 THEN 'LINE' 
147543                 WHEN 4 THEN 'LINE' 
147544                 WHEN 5 THEN 'LINE' 
147545                 WHEN 6 THEN 'LINE' 
147546                 WHEN 7 THEN 'LINE' 
147547                 WHEN 8 THEN 'LINE' 
147548                 WHEN 9 THEN 'LINE' 
147549                 WHEN 10 THEN 'LINE' 
147550                 WHEN 11 THEN 'LINE' 
147551                 WHEN 12 THEN 'LINE' 
147552                 WHEN 13 THEN 'LINE' 
147553                 WHEN 14 THEN 'LINE' 
147554                 WHEN 15 THEN 'LINE' 
147555                 WHEN 16 THEN 'LINE' 
147556                 WHEN 17 THEN 'LINE' 
147557                 WHEN 18 THEN 'LINE' 
147558                 WHEN 19 THEN 'LINE' 
147559                 WHEN 20 THEN 'LINE' 
147560                 WHEN 21 THEN 'LINE' 
147561                 WHEN 22 THEN 'LINE' 
147562                 WHEN 23 THEN 'LINE' 
147566                 WHEN 27 THEN 'LINE' 
147563                 WHEN 24 THEN 'LINE' 
147564                 WHEN 25 THEN 'LINE' 
147565                 WHEN 26 THEN 'LINE' 
147567                 WHEN 28 THEN 'LINE' 
147568                 WHEN 29 THEN 'LINE' 
147569                 WHEN 30 THEN 'LINE' 
147570                 WHEN 31 THEN 'LINE' 
147571                 WHEN 32 THEN 'LINE' 
147572                 WHEN 33 THEN 'LINE' 
147573                 WHEN 34 THEN 'LINE' 
147574                 WHEN 35 THEN 'LINE' 
147575                 WHEN 36 THEN 'LINE' 
147576                 WHEN 37 THEN 'LINE' 
147577                 WHEN 38 THEN 'LINE' 
147578                 WHEN 39 THEN 'LINE' 
147579                 WHEN 40 THEN 'LINE' 
147580                 WHEN 41 THEN 'LINE' 
147581                 WHEN 42 THEN 'LINE' 
147582                 WHEN 43 THEN 'LINE' 
147583                 WHEN 44 THEN 'LINE' 
147584                 WHEN 45 THEN 'LINE' 
147585                 WHEN 46 THEN 'LINE' 
147586                 
147587                 ELSE null
147588               END                           object_type_code
147589             , CASE r
147590                 WHEN 1 THEN '200' 
147591                 WHEN 2 THEN '200' 
147592                 WHEN 3 THEN '200' 
147593                 WHEN 4 THEN '200' 
147594                 WHEN 5 THEN '200' 
147595                 WHEN 6 THEN '200' 
147596                 WHEN 7 THEN '200' 
147597                 WHEN 8 THEN '200' 
147598                 WHEN 9 THEN '200' 
147599                 WHEN 10 THEN '200' 
147600                 WHEN 11 THEN '200' 
147601                 WHEN 12 THEN '200' 
147602                 WHEN 13 THEN '200' 
147603                 WHEN 14 THEN '200' 
147604                 WHEN 15 THEN '200' 
147605                 WHEN 16 THEN '200' 
147606                 WHEN 17 THEN '200' 
147607                 WHEN 18 THEN '200' 
147608                 WHEN 19 THEN '200' 
147609                 WHEN 20 THEN '200' 
147610                 WHEN 21 THEN '200' 
147611                 WHEN 22 THEN '200' 
147612                 WHEN 23 THEN '200' 
147613                 WHEN 24 THEN '200' 
147614                 WHEN 25 THEN '200' 
147615                 WHEN 26 THEN '200' 
147616                 WHEN 27 THEN '200' 
147617                 WHEN 28 THEN '200' 
147618                 WHEN 29 THEN '200' 
147619                 WHEN 30 THEN '200' 
147620                 WHEN 31 THEN '200' 
147621                 WHEN 32 THEN '200' 
147622                 WHEN 33 THEN '200' 
147623                 WHEN 34 THEN '200' 
147624                 WHEN 35 THEN '200' 
147625                 WHEN 36 THEN '200' 
147626                 WHEN 37 THEN '200' 
147627                 WHEN 38 THEN '200' 
147628                 WHEN 39 THEN '200' 
147629                 WHEN 40 THEN '200' 
147630                 WHEN 41 THEN '200' 
147631                 WHEN 42 THEN '200' 
147632                 WHEN 43 THEN '200' 
147633                 WHEN 44 THEN '200' 
147634                 WHEN 45 THEN '200' 
147635                 WHEN 46 THEN '200' 
147636                 
147637                 ELSE null
147638               END                           source_application_id
147639             , 'S'             source_type_code
147640             , CASE r
147641                 WHEN 1 THEN 'AID_DESCRIPTION' 
147642                 WHEN 2 THEN 'INV_DIST_BASE_AMOUNT' 
147643                 WHEN 3 THEN 'RELATED_INV_DIST_DEST_TYPE' 
147644                 WHEN 4 THEN 'AID_DIST_CCID' 
147645                 WHEN 5 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
147646                 WHEN 6 THEN 'AID_RET_RELATED_DIST_CCID' 
147647                 WHEN 7 THEN 'AWT_RELATED_DIST_ACCOUNT' 
147648                 WHEN 8 THEN 'SELF_ASSESSED_TAX_ACCOUNT' 
147649                 WHEN 9 THEN 'ASAT_LIAB_CCID' 
147650                 WHEN 10 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
147651                 WHEN 11 THEN 'DISTRIBUTION_LINK_TYPE' 
147652                 WHEN 12 THEN 'ALLOC_TO_MAIN_DIST_ID' 
147653                 WHEN 13 THEN 'BUS_FLOW_PO_APP_ID' 
147654                 WHEN 14 THEN 'BUS_FLOW_PO_DIST_TYPE' 
147655                 WHEN 15 THEN 'BUS_FLOW_PO_ENTITY_CODE' 
147656                 WHEN 16 THEN 'BUS_FLOW_PO_DIST_ID' 
147657                 WHEN 17 THEN 'BUS_FLOW_PO_DOC_ID' 
147658                 WHEN 18 THEN 'AID_INVOICE_DIST_ID' 
147659                 WHEN 19 THEN 'UPG_ENC_CR_CCID' 
147660                 WHEN 20 THEN 'UPG_ENC_CR_AMT' 
147661                 WHEN 21 THEN 'UPG_ENC_CR_BASE_AMT' 
147662                 WHEN 22 THEN 'UPG_ENC_DR_CCID' 
147663                 WHEN 23 THEN 'UPG_ENC_DR_AMT' 
147664                 WHEN 24 THEN 'UPG_ENC_DR_BASE_AMT' 
147665                 WHEN 25 THEN 'UPG_AP_ENCUM_OPTION' 
147666                 WHEN 26 THEN 'AID_AMOUNT' 
147667                 WHEN 27 THEN 'POH_RATE_DATE' 
147668                 WHEN 28 THEN 'POH_RATE' 
147669                 WHEN 29 THEN 'POH_RATE_TYPE' 
147670                 WHEN 30 THEN 'DEFERRED_END_DATE' 
147671                 WHEN 31 THEN 'DEFERRED_OPTION' 
147672                 WHEN 32 THEN 'DEFERRED_START_DATE' 
147673                 WHEN 33 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
147674                 WHEN 34 THEN 'AID_PARENT_REVERSAL_ID' 
147675                 WHEN 35 THEN 'TAX_LINE_ID' 
147676                 WHEN 36 THEN 'REC_NREC_TAX_DIST_ID' 
147677                 WHEN 37 THEN 'SUMMARY_TAX_LINE_ID' 
147678                 WHEN 38 THEN 'UPG_CR_ENC_TYPE_ID' 
147679                 WHEN 39 THEN 'UPG_DR_ENC_TYPE_ID' 
147680                 WHEN 40 THEN 'BUS_FLOW_AP_APP_ID' 
147684                 WHEN 44 THEN 'BUS_FLOW_INV_ID' 
147681                 WHEN 41 THEN 'BUS_FLOW_INV_DIST_TYPE' 
147682                 WHEN 42 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
147683                 WHEN 43 THEN 'BUS_FLOW_INV_DIST_ID' 
147685                 WHEN 45 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG' 
147686                 WHEN 46 THEN 'SELF_ASSESSED_TAX_FLAG' 
147687                 
147688                 ELSE null
147689               END                           source_code
147690             , CASE r
147691                 WHEN 1 THEN TO_CHAR(l1.AID_DESCRIPTION)
147692                 WHEN 2 THEN TO_CHAR(l1.INV_DIST_BASE_AMOUNT)
147693                 WHEN 3 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
147694                 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
147695                 WHEN 5 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
147696                 WHEN 6 THEN TO_CHAR(l1.AID_RET_RELATED_DIST_CCID)
147697                 WHEN 7 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
147698                 WHEN 8 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_ACCOUNT)
147699                 WHEN 9 THEN TO_CHAR(l1.ASAT_LIAB_CCID)
147700                 WHEN 10 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
147701                 WHEN 11 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
147702                 WHEN 12 THEN TO_CHAR(l1.ALLOC_TO_MAIN_DIST_ID)
147703                 WHEN 13 THEN TO_CHAR(l1.BUS_FLOW_PO_APP_ID)
147704                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_TYPE)
147705                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_PO_ENTITY_CODE)
147706                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_ID)
147707                 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_PO_DOC_ID)
147708                 WHEN 18 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
147709                 WHEN 19 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
147710                 WHEN 20 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
147711                 WHEN 21 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
147712                 WHEN 22 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
147713                 WHEN 23 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
147714                 WHEN 24 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
147715                 WHEN 25 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
147716                 WHEN 26 THEN TO_CHAR(l1.AID_AMOUNT)
147717                 WHEN 27 THEN TO_CHAR(l3.POH_RATE_DATE)
147718                 WHEN 28 THEN TO_CHAR(l3.POH_RATE)
147719                 WHEN 29 THEN TO_CHAR(l3.POH_RATE_TYPE)
147720                 WHEN 30 THEN TO_CHAR(l1.DEFERRED_END_DATE)
147721                 WHEN 31 THEN TO_CHAR(l1.DEFERRED_OPTION)
147722                 WHEN 32 THEN TO_CHAR(l1.DEFERRED_START_DATE)
147723                 WHEN 33 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
147724                 WHEN 34 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
147725                 WHEN 35 THEN TO_CHAR(l5.TAX_LINE_ID)
147726                 WHEN 36 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
147727                 WHEN 37 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
147728                 WHEN 38 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
147729                 WHEN 39 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
147730                 WHEN 40 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
147731                 WHEN 41 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
147732                 WHEN 42 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
147733                 WHEN 43 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
147734                 WHEN 44 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
147735                 WHEN 45 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
147736                 WHEN 46 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_FLAG)
147737                 
147738                 ELSE null
147739               END                           source_value
147740             , CASE r
147741                 WHEN 3 THEN fvl22.meaning
147742                 WHEN 5 THEN fvl33.meaning
147743                 WHEN 33 THEN fvl80.meaning
147744                 WHEN 45 THEN fvl96.meaning
147745                 WHEN 46 THEN fvl142.meaning
147746                 
147747                 ELSE null
147748               END               source_meaning
147749          FROM  xla_events_gt     xet  
147750         , AP_INVOICE_EXTRACT_DETAILS_V  l1
147751         , AP_PO_HEADERS_EXTRACT_V  l3
147752         , ZX_AP_DEF_TAX_EXTRACT_V  l5
147753         , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
147754   , fnd_lookup_values    fvl22
147755   , fnd_lookup_values    fvl33
147756   , fnd_lookup_values    fvl80
147757   , fnd_lookup_values    fvl96
147758   , fnd_lookup_values    fvl142
147759             , (select rownum r from all_objects where rownum <= 46 and owner = p_apps_owner)
147760         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
147761           AND xet.event_class_code = C_EVENT_CLASS_CODE
147762             AND l1.event_id          = xet.event_id
147763  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 fvl22.lookup_type(+)         = 'DESTINATION TYPE'
147764   AND fvl22.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
147765   AND fvl22.view_application_id(+) = 201
147766   AND fvl22.language(+)            = USERENV('LANG')
147767      AND fvl33.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
147768   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
147769   AND fvl33.view_application_id(+) = 200
147770   AND fvl33.language(+)            = USERENV('LANG')
147771      AND fvl80.lookup_type(+)         = 'YES_NO'
147772   AND fvl80.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
147773   AND fvl80.view_application_id(+) = 0
147777   AND fvl96.view_application_id(+) = 0
147774   AND fvl80.language(+)            = USERENV('LANG')
147775      AND fvl96.lookup_type(+)         = 'YES_NO'
147776   AND fvl96.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
147778   AND fvl96.language(+)            = USERENV('LANG')
147779      AND fvl142.lookup_type(+)         = 'YES_NO'
147780   AND fvl142.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
147781   AND fvl142.view_application_id(+) = 0
147782   AND fvl142.language(+)            = USERENV('LANG')
147783   
147784 )
147785 ;
147786 --
147787 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
147788 
147789       trace
147790          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
147791          ,p_level    => C_LEVEL_STATEMENT
147792          ,p_module   => l_log_module);
147793 
147794 END IF;
147795 
147796 
147797 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
147798       trace
147799          (p_msg      => 'END of insert_sources_231'
147800          ,p_level    => C_LEVEL_PROCEDURE
147801          ,p_module   => l_log_module);
147802 END IF;
147803 EXCEPTION
147804   WHEN xla_exceptions_pkg.application_exception THEN
147805       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
147806             trace
147807                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
147808                ,p_level    => C_LEVEL_EXCEPTION
147809                ,p_module   => l_log_module);
147810       END IF;
147811       RAISE;
147812   WHEN OTHERS THEN
147813       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
147814             trace
147815                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
147816                ,p_level    => C_LEVEL_EXCEPTION
147817                ,p_module   => l_log_module);
147818        END IF;
147819        xla_exceptions_pkg.raise_message
147820            (p_location => 'XLA_00200_AAD_S_000002_PKG.insert_sources_231');
147821 END insert_sources_231;
147822 --
147823 
147824 ---------------------------------------
147825 --
147826 -- PRIVATE FUNCTION
147827 --         EventClass_231
147828 --
147829 ----------------------------------------
147830 --
147831 FUNCTION EventClass_231
147832        (p_application_id         IN NUMBER
147833        ,p_base_ledger_id         IN NUMBER
147834        ,p_target_ledger_id       IN NUMBER
147835        ,p_language               IN VARCHAR2
147836        ,p_currency_code          IN VARCHAR2
147837        ,p_sla_ledger_id          IN NUMBER
147838        ,p_pad_start_date         IN DATE
147839        ,p_pad_end_date           IN DATE
147840        ,p_primary_ledger_id      IN NUMBER)
147841 RETURN BOOLEAN IS
147842 --
147843 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'DEBIT MEMOS_ALL';
147844 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'DEBIT MEMOS';
147845 
147846 l_calculate_acctd_flag   VARCHAR2(1) :='N';
147847 l_calculate_g_l_flag     VARCHAR2(1) :='N';
147848 --
147849 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
147850 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
147851 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
147852 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
147853 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
147854 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
147855 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
147856 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
147857 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
147858 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
147859 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
147860 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
147861 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
147862 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
147863 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
147864 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
147865 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
147866 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
147867 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
147868 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
147869 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
147870 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
147871 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
147872 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
147873 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
147874 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
147875 
147876 l_event_id                             NUMBER;
147877 l_previous_event_id                    NUMBER;
147878 l_first_event_id                       NUMBER;
147879 l_last_event_id                        NUMBER;
147880 
147881 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
147882 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
147883 --
147884 --
147885 l_result                    BOOLEAN := TRUE;
147886 l_rows                      NUMBER  := 1000;
147890 l_transaction_reversal      NUMBER;
147887 l_event_type_name           VARCHAR2(80) := 'All';
147888 l_event_class_name          VARCHAR2(80) := 'Debit Memos';
147889 l_description               VARCHAR2(4000);
147891 l_ae_header_id              NUMBER;
147892 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
147893 l_log_module                VARCHAR2(240);
147894 --
147895 l_acct_reversal_source      VARCHAR2(30);
147896 l_trx_reversal_source       VARCHAR2(30);
147897 
147898 l_continue_with_lines       BOOLEAN := TRUE;
147899 --
147900 l_acc_rev_gl_date_source    DATE;                      -- 4262811
147901 --
147902 type t_array_event_id is table of number index by binary_integer;
147903 
147904 l_rec_array_event                    t_rec_array_event;
147905 l_null_rec_array_event               t_rec_array_event;
147906 l_array_ae_header_id                 xla_number_array_type;
147907 l_actual_flag                        VARCHAR2(1) := NULL;
147908 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
147909 l_balance_type_code                  VARCHAR2(1) :=NULL;
147910 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
147911 
147912 --
147913 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
147914 --
147915 
147916 TYPE t_array_source_3 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_TRANSACTION_NUMBER%TYPE INDEX BY BINARY_INTEGER;
147917 TYPE t_array_source_4 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_DATE%TYPE INDEX BY BINARY_INTEGER;
147918 TYPE t_array_source_5 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
147919 TYPE t_array_source_6 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.DOC_SEQUENCE_NAME%TYPE INDEX BY BINARY_INTEGER;
147920 TYPE t_array_source_7 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
147921 TYPE t_array_source_8 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
147922 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
147923 TYPE t_array_source_20 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
147924 TYPE t_array_source_23 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
147925 TYPE t_array_source_34 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_ACCTS_PAY_CCID%TYPE INDEX BY BINARY_INTEGER;
147926 TYPE t_array_source_40 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_RETAINAGE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
147927 TYPE t_array_source_47 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
147928 TYPE t_array_source_58 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
147929 TYPE t_array_source_67 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
147930 TYPE t_array_source_81 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
147931 TYPE t_array_source_82 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
147932 TYPE t_array_source_83 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
147933 TYPE t_array_source_143 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
147934 TYPE t_array_source_144 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
147935 TYPE t_array_source_145 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
147936 TYPE t_array_source_168 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
147937 
147938 TYPE t_array_source_1 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
147939 TYPE t_array_source_21 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.INV_DIST_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
147940 TYPE t_array_source_22 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
147941 TYPE t_array_source_30 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
147942 TYPE t_array_source_33 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
147943 TYPE t_array_source_42 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_RET_RELATED_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
147944 TYPE t_array_source_43 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
147945 TYPE t_array_source_50 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
147946 TYPE t_array_source_51 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ASAT_LIAB_CCID%TYPE INDEX BY BINARY_INTEGER;
147947 TYPE t_array_source_53 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
147948 TYPE t_array_source_55 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
147949 TYPE t_array_source_57 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ALLOC_TO_MAIN_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
147950 TYPE t_array_source_59 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_APP_ID%TYPE INDEX BY BINARY_INTEGER;
147951 TYPE t_array_source_60 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
147952 TYPE t_array_source_61 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
147953 TYPE t_array_source_62 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
147954 TYPE t_array_source_63 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DOC_ID%TYPE INDEX BY BINARY_INTEGER;
147958 TYPE t_array_source_68 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
147955 TYPE t_array_source_64 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
147956 TYPE t_array_source_65 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
147957 TYPE t_array_source_66 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
147959 TYPE t_array_source_69 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
147960 TYPE t_array_source_70 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
147961 TYPE t_array_source_71 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
147962 TYPE t_array_source_72 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
147963 TYPE t_array_source_73 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
147964 TYPE t_array_source_74 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
147965 TYPE t_array_source_75 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
147966 TYPE t_array_source_76 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
147967 TYPE t_array_source_77 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
147968 TYPE t_array_source_78 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
147969 TYPE t_array_source_79 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
147970 TYPE t_array_source_80 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
147971 TYPE t_array_source_84 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
147972 TYPE t_array_source_86 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
147973 TYPE t_array_source_87 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
147974 TYPE t_array_source_88 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
147975 TYPE t_array_source_89 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
147976 TYPE t_array_source_90 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
147977 TYPE t_array_source_91 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
147978 TYPE t_array_source_92 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
147979 TYPE t_array_source_93 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
147980 TYPE t_array_source_94 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
147981 TYPE t_array_source_95 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
147982 TYPE t_array_source_96 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
147983 TYPE t_array_source_142 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_FLAG%TYPE INDEX BY BINARY_INTEGER;
147984 
147985 l_array_source_3              t_array_source_3;
147986 l_array_source_4              t_array_source_4;
147987 l_array_source_5              t_array_source_5;
147988 l_array_source_6              t_array_source_6;
147989 l_array_source_7              t_array_source_7;
147990 l_array_source_8              t_array_source_8;
147991 l_array_source_15              t_array_source_15;
147992 l_array_source_15_meaning      t_array_lookup_meaning;
147993 l_array_source_20              t_array_source_20;
147994 l_array_source_23              t_array_source_23;
147995 l_array_source_34              t_array_source_34;
147996 l_array_source_40              t_array_source_40;
147997 l_array_source_47              t_array_source_47;
147998 l_array_source_47_meaning      t_array_lookup_meaning;
147999 l_array_source_58              t_array_source_58;
148000 l_array_source_67              t_array_source_67;
148001 l_array_source_81              t_array_source_81;
148002 l_array_source_82              t_array_source_82;
148003 l_array_source_83              t_array_source_83;
148004 l_array_source_143              t_array_source_143;
148005 l_array_source_144              t_array_source_144;
148006 l_array_source_145              t_array_source_145;
148007 l_array_source_168              t_array_source_168;
148008 
148009 l_array_source_1      t_array_source_1;
148010 l_array_source_21      t_array_source_21;
148011 l_array_source_22      t_array_source_22;
148012 l_array_source_22_meaning      t_array_lookup_meaning;
148013 l_array_source_30      t_array_source_30;
148014 l_array_source_33      t_array_source_33;
148015 l_array_source_33_meaning      t_array_lookup_meaning;
148016 l_array_source_42      t_array_source_42;
148017 l_array_source_43      t_array_source_43;
148018 l_array_source_50      t_array_source_50;
148019 l_array_source_51      t_array_source_51;
148020 l_array_source_53      t_array_source_53;
148021 l_array_source_55      t_array_source_55;
148022 l_array_source_57      t_array_source_57;
148023 l_array_source_59      t_array_source_59;
148024 l_array_source_60      t_array_source_60;
148025 l_array_source_61      t_array_source_61;
148026 l_array_source_62      t_array_source_62;
148027 l_array_source_63      t_array_source_63;
148028 l_array_source_64      t_array_source_64;
148032 l_array_source_69      t_array_source_69;
148029 l_array_source_65      t_array_source_65;
148030 l_array_source_66      t_array_source_66;
148031 l_array_source_68      t_array_source_68;
148033 l_array_source_70      t_array_source_70;
148034 l_array_source_71      t_array_source_71;
148035 l_array_source_72      t_array_source_72;
148036 l_array_source_73      t_array_source_73;
148037 l_array_source_74      t_array_source_74;
148038 l_array_source_75      t_array_source_75;
148039 l_array_source_76      t_array_source_76;
148040 l_array_source_77      t_array_source_77;
148041 l_array_source_78      t_array_source_78;
148042 l_array_source_79      t_array_source_79;
148043 l_array_source_80      t_array_source_80;
148044 l_array_source_80_meaning      t_array_lookup_meaning;
148045 l_array_source_84      t_array_source_84;
148046 l_array_source_86      t_array_source_86;
148047 l_array_source_87      t_array_source_87;
148048 l_array_source_88      t_array_source_88;
148049 l_array_source_89      t_array_source_89;
148050 l_array_source_90      t_array_source_90;
148051 l_array_source_91      t_array_source_91;
148052 l_array_source_92      t_array_source_92;
148053 l_array_source_93      t_array_source_93;
148054 l_array_source_94      t_array_source_94;
148055 l_array_source_95      t_array_source_95;
148056 l_array_source_96      t_array_source_96;
148057 l_array_source_96_meaning      t_array_lookup_meaning;
148058 l_array_source_142      t_array_source_142;
148059 l_array_source_142_meaning      t_array_lookup_meaning;
148060 
148061 --
148062 CURSOR header_cur
148063 IS
148064 SELECT /*+ leading(xet) cardinality(xet,1) */
148065 -- Event Class Code: DEBIT MEMOS
148066     xet.entity_id
148067    ,xet.legal_entity_id
148068    ,xet.entity_code
148069    ,xet.transaction_number
148070    ,xet.event_id
148071    ,xet.event_class_code
148072    ,xet.event_type_code
148073    ,xet.event_number
148074    ,xet.event_date
148075    ,xet.transaction_date
148076    ,xet.reference_num_1
148077    ,xet.reference_num_2
148078    ,xet.reference_num_3
148079    ,xet.reference_num_4
148080    ,xet.reference_char_1
148081    ,xet.reference_char_2
148082    ,xet.reference_char_3
148083    ,xet.reference_char_4
148084    ,xet.reference_date_1
148085    ,xet.reference_date_2
148086    ,xet.reference_date_3
148087    ,xet.reference_date_4
148088    ,xet.event_created_by
148089    ,xet.budgetary_control_flag 
148090   , h2.INV_TRANSACTION_NUMBER    source_3
148091   , h2.AI_INVOICE_DATE    source_4
148092   , h2.INV_DOC_SEQUENCE_CATEGORY    source_5
148093   , h2.DOC_SEQUENCE_NAME    source_6
148094   , h2.INV_DOC_SEQUENCE_VALUE    source_7
148095   , h2.AI_DESCRIPTION    source_8
148096   , h4.ASP_AUTOMATIC_OFFSETS_VALUE    source_15
148097   , fvl15.meaning   source_15_meaning
148098   , h4.ASP_RATE_VAR_GAIN_CCID    source_20
148099   , h4.ASP_RATE_VAR_LOSS_CCID    source_23
148100   , h2.AI_ACCTS_PAY_CCID    source_34
148101   , h4.FSP_RETAINAGE_ACCOUNT    source_40
148102   , h4.ASP_AUTO_OFFSET_FLAG    source_47
148103   , fvl47.meaning   source_47_meaning
148104   , h2.AI_INVOICE_ID    source_58
148105   , h2.AI_INVOICE_CURRENCY_CODE    source_67
148106   , h2.AI_VENDOR_ID    source_81
148107   , h2.AI_VENDOR_SITE_ID    source_82
148108   , h2.THIRD_PARTY_TYPE    source_83
148109   , h2.INV_EXCHANGE_DATE    source_143
148110   , h2.INV_EXCHANGE_RATE    source_144
148111   , h2.INV_EXCHANGE_RATE_TYPE    source_145
148112   , h2.INV_DOC_SEQUENCE_IDENTIFIER    source_168
148113   FROM xla_events_gt     xet 
148114   , AP_INVOICE_EXTRACT_HEADER_V  h2
148115   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
148116   , fnd_lookup_values    fvl15
148117   , fnd_lookup_values    fvl47
148118  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
148119    and xet.event_class_code = C_EVENT_CLASS_CODE
148120    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
148121  AND h4.asp_org_id= h2.ai_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
148122   AND fvl15.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
148123   AND fvl15.view_application_id(+) = 200
148124   AND fvl15.language(+)            = USERENV('LANG')
148125      AND fvl47.lookup_type(+)         = 'YES_NO'
148126   AND fvl47.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
148127   AND fvl47.view_application_id(+) = 0
148128   AND fvl47.language(+)            = USERENV('LANG')
148129   
148130  ORDER BY event_id
148131 ;
148132 
148133 
148134 --
148135 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
148136 IS
148137 SELECT  /*+ leading(xet) cardinality(xet,1) */
148138 -- Event Class Code: DEBIT MEMOS
148139     xet.entity_id
148140    ,xet.legal_entity_id
148141    ,xet.entity_code
148142    ,xet.transaction_number
148143    ,xet.event_id
148144    ,xet.event_class_code
148145    ,xet.event_type_code
148146    ,xet.event_number
148147    ,xet.event_date
148148    ,xet.transaction_date
148149    ,xet.reference_num_1
148150    ,xet.reference_num_2
148151    ,xet.reference_num_3
148152    ,xet.reference_num_4
148153    ,xet.reference_char_1
148154    ,xet.reference_char_2
148155    ,xet.reference_char_3
148156    ,xet.reference_char_4
148157    ,xet.reference_date_1
148158    ,xet.reference_date_2
148159    ,xet.reference_date_3
148160    ,xet.reference_date_4
148161    ,xet.event_created_by
148162    ,xet.budgetary_control_flag
148163  , l1.LINE_NUMBER  
148164   , l1.AID_DESCRIPTION    source_1
148168   , l1.AID_DIST_CCID    source_30
148165   , l1.INV_DIST_BASE_AMOUNT    source_21
148166   , l1.RELATED_INV_DIST_DEST_TYPE    source_22
148167   , fvl22.meaning   source_22_meaning
148169   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_33
148170   , fvl33.meaning   source_33_meaning
148171   , l1.AID_RET_RELATED_DIST_CCID    source_42
148172   , l1.AWT_RELATED_DIST_ACCOUNT    source_43
148173   , l1.SELF_ASSESSED_TAX_ACCOUNT    source_50
148174   , l1.ASAT_LIAB_CCID    source_51
148175   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_53
148176   , l1.DISTRIBUTION_LINK_TYPE    source_55
148177   , l1.ALLOC_TO_MAIN_DIST_ID    source_57
148178   , l1.BUS_FLOW_PO_APP_ID    source_59
148179   , l1.BUS_FLOW_PO_DIST_TYPE    source_60
148180   , l1.BUS_FLOW_PO_ENTITY_CODE    source_61
148181   , l1.BUS_FLOW_PO_DIST_ID    source_62
148182   , l1.BUS_FLOW_PO_DOC_ID    source_63
148183   , l1.AID_INVOICE_DIST_ID    source_64
148184   , l1.UPG_ENC_CR_CCID    source_65
148185   , l1.UPG_ENC_CR_AMT    source_66
148186   , l1.UPG_ENC_CR_BASE_AMT    source_68
148187   , l1.UPG_ENC_DR_CCID    source_69
148188   , l1.UPG_ENC_DR_AMT    source_70
148189   , l1.UPG_ENC_DR_BASE_AMT    source_71
148190   , l1.UPG_AP_ENCUM_OPTION    source_72
148191   , l1.AID_AMOUNT    source_73
148192   , l3.POH_RATE_DATE    source_74
148193   , l3.POH_RATE    source_75
148194   , l3.POH_RATE_TYPE    source_76
148195   , l1.DEFERRED_END_DATE    source_77
148196   , l1.DEFERRED_OPTION    source_78
148197   , l1.DEFERRED_START_DATE    source_79
148198   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_80
148199   , fvl80.meaning   source_80_meaning
148200   , l1.AID_PARENT_REVERSAL_ID    source_84
148201   , l5.TAX_LINE_ID    source_86
148202   , l6.REC_NREC_TAX_DIST_ID    source_87
148203   , l1.SUMMARY_TAX_LINE_ID    source_88
148204   , l1.UPG_CR_ENC_TYPE_ID    source_89
148205   , l1.UPG_DR_ENC_TYPE_ID    source_90
148206   , l1.BUS_FLOW_AP_APP_ID    source_91
148207   , l1.BUS_FLOW_INV_DIST_TYPE    source_92
148208   , l1.BUS_FLOW_INV_ENTITY_CODE    source_93
148209   , l1.BUS_FLOW_INV_DIST_ID    source_94
148210   , l1.BUS_FLOW_INV_ID    source_95
148211   , l1.POD_ACCRUE_ON_RECEIPT_FLAG    source_96
148212   , fvl96.meaning   source_96_meaning
148213   , l1.SELF_ASSESSED_TAX_FLAG    source_142
148214   , fvl142.meaning   source_142_meaning
148215   FROM xla_events_gt     xet 
148216   , AP_INVOICE_EXTRACT_DETAILS_V  l1
148217   , AP_PO_HEADERS_EXTRACT_V  l3
148218   , ZX_AP_DEF_TAX_EXTRACT_V  l5
148219   , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
148220   , fnd_lookup_values    fvl22
148221   , fnd_lookup_values    fvl33
148222   , fnd_lookup_values    fvl80
148223   , fnd_lookup_values    fvl96
148224   , fnd_lookup_values    fvl142
148225  WHERE xet.event_id between x_first_event_id and x_last_event_id
148226    and xet.event_date between p_pad_start_date and p_pad_end_date
148227    and xet.event_class_code = C_EVENT_CLASS_CODE
148228    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
148229  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 fvl22.lookup_type(+)         = 'DESTINATION TYPE'
148230   AND fvl22.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
148231   AND fvl22.view_application_id(+) = 201
148232   AND fvl22.language(+)            = USERENV('LANG')
148233      AND fvl33.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
148234   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
148235   AND fvl33.view_application_id(+) = 200
148236   AND fvl33.language(+)            = USERENV('LANG')
148237      AND fvl80.lookup_type(+)         = 'YES_NO'
148238   AND fvl80.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
148239   AND fvl80.view_application_id(+) = 0
148240   AND fvl80.language(+)            = USERENV('LANG')
148241      AND fvl96.lookup_type(+)         = 'YES_NO'
148242   AND fvl96.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
148243   AND fvl96.view_application_id(+) = 0
148244   AND fvl96.language(+)            = USERENV('LANG')
148245      AND fvl142.lookup_type(+)         = 'YES_NO'
148246   AND fvl142.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
148247   AND fvl142.view_application_id(+) = 0
148248   AND fvl142.language(+)            = USERENV('LANG')
148249   ;
148250 
148251 --
148252 BEGIN
148253 IF g_log_enabled THEN
148254    l_log_module := C_DEFAULT_MODULE||'.EventClass_231';
148255 END IF;
148256 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
148257    trace
148258       (p_msg      => 'BEGIN of EventClass_231'
148259       ,p_level    => C_LEVEL_PROCEDURE
148260       ,p_module   => l_log_module);
148261 END IF;
148262 
148263 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
148264    trace
148265       (p_msg      => 'p_application_id = '||p_application_id||
148266                      ' - p_base_ledger_id = '||p_base_ledger_id||
148267                      ' - p_target_ledger_id  = '||p_target_ledger_id||
148268                      ' - p_language = '||p_language||
148269                      ' - p_currency_code = '||p_currency_code||
148270                      ' - p_sla_ledger_id = '||p_sla_ledger_id
148271       ,p_level    => C_LEVEL_STATEMENT
148272       ,p_module   => l_log_module);
148273 END IF;
148274 --
148275 -- initialze arrays
148276 --
148277 g_array_event.DELETE;
148278 l_rec_array_event := l_null_rec_array_event;
148279 --
148280 --------------------------------------
148281 -- 4262811 Initialze MPA Line Number
148282 --------------------------------------
148283 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
148284 
148285 --
148289 --
148286 
148287 --
148288 OPEN header_cur;
148290 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
148291    trace
148292    (p_msg      => 'SQL - FETCH header_cur'
148293    ,p_level    => C_LEVEL_STATEMENT
148294    ,p_module   => l_log_module);
148295 END IF;
148296 --
148297 LOOP
148298 FETCH header_cur BULK COLLECT INTO
148299         l_array_entity_id
148300       , l_array_legal_entity_id
148301       , l_array_entity_code
148302       , l_array_transaction_num
148303       , l_array_event_id
148304       , l_array_class_code
148305       , l_array_event_type
148306       , l_array_event_number
148307       , l_array_event_date
148308       , l_array_transaction_date
148309       , l_array_reference_num_1
148310       , l_array_reference_num_2
148311       , l_array_reference_num_3
148312       , l_array_reference_num_4
148313       , l_array_reference_char_1
148314       , l_array_reference_char_2
148315       , l_array_reference_char_3
148316       , l_array_reference_char_4
148317       , l_array_reference_date_1
148318       , l_array_reference_date_2
148319       , l_array_reference_date_3
148320       , l_array_reference_date_4
148321       , l_array_event_created_by
148322       , l_array_budgetary_control_flag 
148323       , l_array_source_3
148324       , l_array_source_4
148325       , l_array_source_5
148326       , l_array_source_6
148327       , l_array_source_7
148328       , l_array_source_8
148329       , l_array_source_15
148330       , l_array_source_15_meaning
148331       , l_array_source_20
148332       , l_array_source_23
148333       , l_array_source_34
148334       , l_array_source_40
148335       , l_array_source_47
148336       , l_array_source_47_meaning
148337       , l_array_source_58
148338       , l_array_source_67
148339       , l_array_source_81
148340       , l_array_source_82
148341       , l_array_source_83
148342       , l_array_source_143
148343       , l_array_source_144
148344       , l_array_source_145
148345       , l_array_source_168
148346       LIMIT l_rows;
148347 --
148348 IF (C_LEVEL_EVENT >= g_log_level) THEN
148349    trace
148350    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
148351    ,p_level    => C_LEVEL_EVENT
148352    ,p_module   => l_log_module);
148353 END IF;
148354 --
148355 EXIT WHEN l_array_entity_id.COUNT = 0;
148356 
148357 -- initialize arrays
148358 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
148359 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
148360 
148361 --
148362 -- Bug 4458708
148363 --
148364 XLA_AE_LINES_PKG.g_LineNumber := 0;
148365 
148366 
148367 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
148368 g_last_hdr_idx := l_array_event_id.LAST;
148369 --
148370 -- loop for the headers. Each iteration is for each header extract row
148371 -- fetched in header cursor
148372 --
148373 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
148374 
148375 --
148376 -- set event info as cache for other routines to refer event attributes
148377 --
148378 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
148379    (p_application_id           => p_application_id
148380    ,p_primary_ledger_id        => p_primary_ledger_id
148381    ,p_base_ledger_id           => p_base_ledger_id
148382    ,p_target_ledger_id         => p_target_ledger_id
148383    ,p_entity_id                => l_array_entity_id(hdr_idx)
148384    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
148385    ,p_entity_code              => l_array_entity_code(hdr_idx)
148386    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
148387    ,p_event_id                 => l_array_event_id(hdr_idx)
148388    ,p_event_class_code         => l_array_class_code(hdr_idx)
148389    ,p_event_type_code          => l_array_event_type(hdr_idx)
148390    ,p_event_number             => l_array_event_number(hdr_idx)
148391    ,p_event_date               => l_array_event_date(hdr_idx)
148392    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
148393    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
148394    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
148395    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
148396    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
148397    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
148398    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
148399    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
148400    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
148401    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
148402    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
148403    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
148404    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
148405    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
148406    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
148407 
148408 --
148409 -- set the status of entry to C_VALID (0)
148410 --
148411 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
148412 
148413 --
148414 -- initialize a row for ae header
148415 --
148416 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
148417 
148418 l_event_id := l_array_event_id(hdr_idx);
148419 
148420 --
148424 
148421 -- storing the hdr_idx for event. May be used by line cursor.
148422 --
148423 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
148425 --
148426 -- store sources from header extract. This can be improved to
148427 -- store only those sources from header extract that may be used in lines
148428 --
148429 
148430 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
148431 g_array_event(l_event_id).array_value_date('source_4') := l_array_source_4(hdr_idx);
148432 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
148433 g_array_event(l_event_id).array_value_char('source_6') := l_array_source_6(hdr_idx);
148434 g_array_event(l_event_id).array_value_num('source_7') := l_array_source_7(hdr_idx);
148435 g_array_event(l_event_id).array_value_char('source_8') := l_array_source_8(hdr_idx);
148436 g_array_event(l_event_id).array_value_char('source_15') := l_array_source_15(hdr_idx);
148437 g_array_event(l_event_id).array_value_char('source_15_meaning') := l_array_source_15_meaning(hdr_idx);
148438 g_array_event(l_event_id).array_value_num('source_20') := l_array_source_20(hdr_idx);
148439 g_array_event(l_event_id).array_value_num('source_23') := l_array_source_23(hdr_idx);
148440 g_array_event(l_event_id).array_value_num('source_34') := l_array_source_34(hdr_idx);
148441 g_array_event(l_event_id).array_value_num('source_40') := l_array_source_40(hdr_idx);
148442 g_array_event(l_event_id).array_value_char('source_47') := l_array_source_47(hdr_idx);
148443 g_array_event(l_event_id).array_value_char('source_47_meaning') := l_array_source_47_meaning(hdr_idx);
148444 g_array_event(l_event_id).array_value_num('source_58') := l_array_source_58(hdr_idx);
148445 g_array_event(l_event_id).array_value_char('source_67') := l_array_source_67(hdr_idx);
148446 g_array_event(l_event_id).array_value_num('source_81') := l_array_source_81(hdr_idx);
148447 g_array_event(l_event_id).array_value_num('source_82') := l_array_source_82(hdr_idx);
148448 g_array_event(l_event_id).array_value_char('source_83') := l_array_source_83(hdr_idx);
148449 g_array_event(l_event_id).array_value_date('source_143') := l_array_source_143(hdr_idx);
148450 g_array_event(l_event_id).array_value_num('source_144') := l_array_source_144(hdr_idx);
148451 g_array_event(l_event_id).array_value_char('source_145') := l_array_source_145(hdr_idx);
148452 g_array_event(l_event_id).array_value_num('source_168') := l_array_source_168(hdr_idx);
148453 
148454 --
148455 -- initilaize the status of ae headers for diffrent balance types
148456 -- the status is initialised to C_NOT_CREATED (2)
148457 --
148458 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
148459 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
148460 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
148461 
148462 --
148463 -- call api to validate and store accounting attributes for header
148464 --
148465 
148466 ------------------------------------------------------------
148467 -- Accrual Reversal : to get date for Standard Source (NONE)
148468 ------------------------------------------------------------
148469 l_acc_rev_gl_date_source := NULL;
148470 
148471      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
148472       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_5');
148473      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
148474       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_168');
148475      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
148476       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_7');
148477      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
148478       l_rec_acct_attrs.array_date_value(4) := 
148479 xla_ae_sources_pkg.GetSystemSourceDate(
148480    p_source_code           => 'XLA_EVENT_DATE'
148481  , p_source_type_code      => 'Y'
148482  , p_source_application_id =>  602
148483 );
148484 
148485 
148486 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
148487 
148488 XLA_AE_HEADER_PKG.SetJeCategoryName;
148489 
148490 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
148491 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
148492 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
148493 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
148494 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
148495 
148496 
148497 --
148498 xla_ae_header_pkg.SetHdrDescription(
148499    p_description => Description_2 (
148500    p_application_id => p_application_id 
148501  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
148502  , p_source_4 => g_array_event(l_event_id).array_value_date('source_4')
148503  , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
148504  , p_source_6 => g_array_event(l_event_id).array_value_char('source_6')
148505  , p_source_7 => g_array_event(l_event_id).array_value_num('source_7')
148506  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
148507    )
148508 );
148509 --
148510 
148511 -- No header level analytical criteria
148512 
148513 --
148514 --accounting attribute enhancement, bug 3612931
148515 --
148516 l_trx_reversal_source := SUBSTR(NULL, 1,30);
148517 
148521    xla_accounting_err_pkg.build_message
148518 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
148519    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
148520 
148522       (p_appli_s_name            => 'XLA'
148523       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
148524       ,p_token_1                 => 'ACCT_ATTR_NAME'
148525       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
148526       ,p_token_2                 => 'PRODUCT_NAME'
148527       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
148528       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
148529       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
148530       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
148531 
148532 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
148533    --
148534    -- following sets the accounting attributes needed to reverse
148535    -- accounting for a distributeion
148536    --
148537    xla_ae_lines_pkg.SetTrxReversalAttrs
148538       (p_event_id              => l_event_id
148539       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
148540       ,p_trx_reversal_source   => l_trx_reversal_source);
148541 
148542 END IF;
148543 
148544 
148545 ----------------------------------------------------------------
148546 -- 4262811 -  update the header statuses to invalid in need be
148547 ----------------------------------------------------------------
148548 --
148549 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
148550 
148551 
148552   -----------------------------------------------
148553   -- No accrual reversal for the event class/type
148554   -----------------------------------------------
148555 ----------------------------------------------------------------
148556 
148557 --
148558 -- this ends the header loop iteration for one bulk fetch
148559 --
148560 END LOOP;
148561 
148562 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
148563 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
148564 
148565 --
148566 -- insert dummy rows into lines gt table that were created due to
148567 -- transaction reversals
148568 --
148569 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
148570    l_result := XLA_AE_LINES_PKG.InsertLines;
148571 END IF;
148572 
148573 --
148574 -- reset the temp_line_num for each set of events fetched from header
148575 -- cursor rather than doing it for each new event in line cursor
148576 -- Bug 3939231
148577 --
148578 xla_ae_lines_pkg.g_temp_line_num := 0;
148579 
148580 
148581 
148582 --
148583 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
148584 --
148585 --
148586 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
148587 
148588       trace
148589          (p_msg      => 'SQL - FETCH line_cur'
148590          ,p_level    => C_LEVEL_STATEMENT
148591          ,p_module   => l_log_module);
148592 
148593 END IF;
148594 --
148595 --
148596 LOOP
148597   --
148598   FETCH line_cur BULK COLLECT INTO
148599         l_array_entity_id
148600       , l_array_legal_entity_id
148601       , l_array_entity_code
148602       , l_array_transaction_num
148603       , l_array_event_id
148604       , l_array_class_code
148605       , l_array_event_type
148606       , l_array_event_number
148607       , l_array_event_date
148608       , l_array_transaction_date
148609       , l_array_reference_num_1
148610       , l_array_reference_num_2
148611       , l_array_reference_num_3
148612       , l_array_reference_num_4
148613       , l_array_reference_char_1
148614       , l_array_reference_char_2
148615       , l_array_reference_char_3
148616       , l_array_reference_char_4
148617       , l_array_reference_date_1
148618       , l_array_reference_date_2
148619       , l_array_reference_date_3
148620       , l_array_reference_date_4
148621       , l_array_event_created_by
148622       , l_array_budgetary_control_flag
148623       , l_array_extract_line_num 
148624       , l_array_source_1
148625       , l_array_source_21
148626       , l_array_source_22
148627       , l_array_source_22_meaning
148628       , l_array_source_30
148629       , l_array_source_33
148630       , l_array_source_33_meaning
148631       , l_array_source_42
148632       , l_array_source_43
148633       , l_array_source_50
148634       , l_array_source_51
148635       , l_array_source_53
148636       , l_array_source_55
148637       , l_array_source_57
148638       , l_array_source_59
148639       , l_array_source_60
148640       , l_array_source_61
148641       , l_array_source_62
148642       , l_array_source_63
148643       , l_array_source_64
148644       , l_array_source_65
148645       , l_array_source_66
148646       , l_array_source_68
148647       , l_array_source_69
148648       , l_array_source_70
148649       , l_array_source_71
148650       , l_array_source_72
148651       , l_array_source_73
148652       , l_array_source_74
148653       , l_array_source_75
148654       , l_array_source_76
148655       , l_array_source_77
148656       , l_array_source_78
148657       , l_array_source_79
148658       , l_array_source_80
148659       , l_array_source_80_meaning
148660       , l_array_source_84
148664       , l_array_source_89
148661       , l_array_source_86
148662       , l_array_source_87
148663       , l_array_source_88
148665       , l_array_source_90
148666       , l_array_source_91
148667       , l_array_source_92
148668       , l_array_source_93
148669       , l_array_source_94
148670       , l_array_source_95
148671       , l_array_source_96
148672       , l_array_source_96_meaning
148673       , l_array_source_142
148674       , l_array_source_142_meaning
148675       LIMIT l_rows;
148676 
148677   --
148678   IF (C_LEVEL_EVENT >= g_log_level) THEN
148679             trace
148680                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
148681                ,p_level    => C_LEVEL_EVENT
148682                ,p_module   => l_log_module);
148683   END IF;
148684   --
148685   EXIT WHEN l_array_entity_id.count = 0;
148686 
148687   XLA_AE_LINES_PKG.g_rec_lines := null;
148688 
148689 --
148690 -- Bug 4458708
148691 --
148692 XLA_AE_LINES_PKG.g_LineNumber := 0;
148693 --
148694 --
148695 
148696 FOR Idx IN 1..l_array_event_id.count LOOP
148697    --
148698    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
148699    --
148700    l_event_id := l_array_event_id(idx);  -- 5648433
148701 
148702    --
148703    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
148704    --
148705 
148706    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
148707              (g_array_event(l_event_id).array_value_num('header_index'))
148708          ,'N'
148709          ) <> 'Y'
148710    THEN
148711       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
148712          trace
148713             (p_msg      => 'Trancaction revesal option is not Y '
148714             ,p_level    => C_LEVEL_STATEMENT
148715             ,p_module   => l_log_module);
148716       END IF;
148717 
148718 --
148719 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
148720 --
148721 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
148722 --
148723 -- set event info as cache for other routines to refer event attributes
148724 --
148725 
148726 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
148727    l_previous_event_id := l_event_id;
148728 
148729    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
148730       (p_application_id           => p_application_id
148731       ,p_primary_ledger_id        => p_primary_ledger_id
148732       ,p_base_ledger_id           => p_base_ledger_id
148733       ,p_target_ledger_id         => p_target_ledger_id
148734       ,p_entity_id                => l_array_entity_id(Idx)
148735       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
148736       ,p_entity_code              => l_array_entity_code(Idx)
148737       ,p_transaction_num          => l_array_transaction_num(Idx)
148738       ,p_event_id                 => l_array_event_id(Idx)
148739       ,p_event_class_code         => l_array_class_code(Idx)
148740       ,p_event_type_code          => l_array_event_type(Idx)
148741       ,p_event_number             => l_array_event_number(Idx)
148742       ,p_event_date               => l_array_event_date(Idx)
148743       ,p_transaction_date         => l_array_transaction_date(Idx)
148744       ,p_reference_num_1          => l_array_reference_num_1(Idx)
148745       ,p_reference_num_2          => l_array_reference_num_2(Idx)
148746       ,p_reference_num_3          => l_array_reference_num_3(Idx)
148747       ,p_reference_num_4          => l_array_reference_num_4(Idx)
148748       ,p_reference_char_1         => l_array_reference_char_1(Idx)
148749       ,p_reference_char_2         => l_array_reference_char_2(Idx)
148750       ,p_reference_char_3         => l_array_reference_char_3(Idx)
148751       ,p_reference_char_4         => l_array_reference_char_4(Idx)
148752       ,p_reference_date_1         => l_array_reference_date_1(Idx)
148753       ,p_reference_date_2         => l_array_reference_date_2(Idx)
148754       ,p_reference_date_3         => l_array_reference_date_3(Idx)
148755       ,p_reference_date_4         => l_array_reference_date_4(Idx)
148756       ,p_event_created_by         => l_array_event_created_by(Idx)
148757       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
148758        --
148759 END IF;
148760 
148761 
148762 
148763 --
148764 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
148765 
148766 l_acct_reversal_source := SUBSTR(l_array_source_53(Idx), 1,30);
148767 
148768 IF l_continue_with_lines THEN
148769    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
148770       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
148771 
148772       xla_accounting_err_pkg.build_message
148773          (p_appli_s_name            => 'XLA'
148774          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
148775          ,p_token_1                 => 'LINE_NUMBER'
148776          ,p_value_1                 => l_array_extract_line_num(Idx)
148777          ,p_token_2                 => 'PRODUCT_NAME'
148778          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
148779          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
148780          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
148781          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
148782 
148786       -- accounting for a distributeion
148783    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
148784       --
148785       -- following sets the accounting attributes needed to reverse
148787       --
148788 
148789       --
148790       -- 5217187
148791       --
148792       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
148793       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
148794                                        g_array_event(l_event_id).array_value_num('header_index'));
148795       --
148796       --
148797 
148798       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
148799       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_53(Idx);
148800       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
148801       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_64(Idx);
148802       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
148803       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_55(Idx);
148804       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
148805       l_rec_rev_acct_attrs.array_num_value(5)  := l_array_source_65(Idx);
148806       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
148807       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_66(Idx);
148808       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
148809       l_rec_rev_acct_attrs.array_char_value(7)  := g_array_event(l_event_id).array_value_char('source_67');
148810       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
148811       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_68(Idx);
148812       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
148813       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_69(Idx);
148814       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
148815       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_70(Idx);
148816       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
148817       l_rec_rev_acct_attrs.array_char_value(11)  := g_array_event(l_event_id).array_value_char('source_67');
148818       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
148819       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_71(Idx);
148820       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
148821       l_rec_rev_acct_attrs.array_char_value(13)  := l_array_source_72(Idx);
148822       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
148823       l_rec_rev_acct_attrs.array_char_value(14)  := g_array_event(l_event_id).array_value_char('source_83');
148824       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
148825       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_84(Idx);
148826       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
148827       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_55(Idx);
148828       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
148829       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_86(Idx);
148830       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
148831       l_rec_rev_acct_attrs.array_num_value(18)  := l_array_source_87(Idx);
148832       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
148833       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_88(Idx);
148834       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
148835       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_89(Idx);
148836       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
148837       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_90(Idx);
148838 
148839 
148840       xla_ae_lines_pkg.SetAcctReversalAttrs
148841          (p_event_id             => l_event_id
148842          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
148843          ,p_calculate_acctd_flag => l_calculate_acctd_flag
148844          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
148845    END IF;
148846 
148847    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
148848        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
148849 
148850 --
148851 AcctLineType_48 (
148852  p_application_id  => p_application_id
148853  ,p_event_id     => l_event_id
148854  ,p_calculate_acctd_flag => l_calculate_acctd_flag
148855  ,p_calculate_g_l_flag => l_calculate_g_l_flag
148856  ,p_actual_flag => l_actual_flag
148857  ,p_balance_type_code => l_balance_type_code
148858  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
148859  
148860  , p_source_1 => l_array_source_1(Idx)
148861  , p_source_21 => l_array_source_21(Idx)
148862  , p_source_30 => l_array_source_30(Idx)
148863  , p_source_33 => l_array_source_33(Idx)
148864  , p_source_33_meaning => l_array_source_33_meaning(Idx)
148865  , p_source_53 => l_array_source_53(Idx)
148866  , p_source_55 => l_array_source_55(Idx)
148867  , p_source_57 => l_array_source_57(Idx)
148868  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
148869  , p_source_59 => l_array_source_59(Idx)
148870  , p_source_60 => l_array_source_60(Idx)
148871  , p_source_61 => l_array_source_61(Idx)
148872  , p_source_62 => l_array_source_62(Idx)
148873  , p_source_63 => l_array_source_63(Idx)
148874  , p_source_64 => l_array_source_64(Idx)
148875  , p_source_65 => l_array_source_65(Idx)
148876  , p_source_66 => l_array_source_66(Idx)
148880  , p_source_70 => l_array_source_70(Idx)
148877  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
148878  , p_source_68 => l_array_source_68(Idx)
148879  , p_source_69 => l_array_source_69(Idx)
148881  , p_source_71 => l_array_source_71(Idx)
148882  , p_source_72 => l_array_source_72(Idx)
148883  , p_source_73 => l_array_source_73(Idx)
148884  , p_source_74 => l_array_source_74(Idx)
148885  , p_source_75 => l_array_source_75(Idx)
148886  , p_source_76 => l_array_source_76(Idx)
148887  , p_source_77 => l_array_source_77(Idx)
148888  , p_source_78 => l_array_source_78(Idx)
148889  , p_source_79 => l_array_source_79(Idx)
148890  , p_source_80 => l_array_source_80(Idx)
148891  , p_source_80_meaning => l_array_source_80_meaning(Idx)
148892  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
148893  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
148894  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
148895  , p_source_84 => l_array_source_84(Idx)
148896  , p_source_86 => l_array_source_86(Idx)
148897  , p_source_87 => l_array_source_87(Idx)
148898  , p_source_88 => l_array_source_88(Idx)
148899  , p_source_89 => l_array_source_89(Idx)
148900  , p_source_90 => l_array_source_90(Idx)
148901  );
148902 If(l_balance_type_code = 'A') THEN
148903   l_actual_gain_loss_ref := l_gain_or_loss_ref;
148904 END IF;
148905 
148906 --
148907 
148908 
148909 --
148910 AcctLineType_52 (
148911  p_application_id  => p_application_id
148912  ,p_event_id     => l_event_id
148913  ,p_calculate_acctd_flag => l_calculate_acctd_flag
148914  ,p_calculate_g_l_flag => l_calculate_g_l_flag
148915  ,p_actual_flag => l_actual_flag
148916  ,p_balance_type_code => l_balance_type_code
148917  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
148918  
148919  , p_source_1 => l_array_source_1(Idx)
148920  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
148921  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
148922  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
148923  , p_source_21 => l_array_source_21(Idx)
148924  , p_source_22 => l_array_source_22(Idx)
148925  , p_source_22_meaning => l_array_source_22_meaning(Idx)
148926  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
148927  , p_source_30 => l_array_source_30(Idx)
148928  , p_source_33 => l_array_source_33(Idx)
148929  , p_source_33_meaning => l_array_source_33_meaning(Idx)
148930  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
148931  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
148932  , p_source_53 => l_array_source_53(Idx)
148933  , p_source_55 => l_array_source_55(Idx)
148934  , p_source_57 => l_array_source_57(Idx)
148935  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
148936  , p_source_64 => l_array_source_64(Idx)
148937  , p_source_65 => l_array_source_65(Idx)
148938  , p_source_66 => l_array_source_66(Idx)
148939  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
148940  , p_source_68 => l_array_source_68(Idx)
148941  , p_source_69 => l_array_source_69(Idx)
148942  , p_source_70 => l_array_source_70(Idx)
148943  , p_source_71 => l_array_source_71(Idx)
148944  , p_source_72 => l_array_source_72(Idx)
148945  , p_source_77 => l_array_source_77(Idx)
148946  , p_source_78 => l_array_source_78(Idx)
148947  , p_source_79 => l_array_source_79(Idx)
148948  , p_source_80 => l_array_source_80(Idx)
148949  , p_source_80_meaning => l_array_source_80_meaning(Idx)
148950  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
148951  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
148952  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
148953  , p_source_84 => l_array_source_84(Idx)
148954  , p_source_86 => l_array_source_86(Idx)
148955  , p_source_87 => l_array_source_87(Idx)
148956  , p_source_88 => l_array_source_88(Idx)
148957  , p_source_89 => l_array_source_89(Idx)
148958  , p_source_90 => l_array_source_90(Idx)
148959  , p_source_91 => l_array_source_91(Idx)
148960  , p_source_92 => l_array_source_92(Idx)
148961  , p_source_93 => l_array_source_93(Idx)
148962  , p_source_94 => l_array_source_94(Idx)
148963  , p_source_95 => l_array_source_95(Idx)
148964  );
148965 If(l_balance_type_code = 'A') THEN
148966   l_actual_gain_loss_ref := l_gain_or_loss_ref;
148967 END IF;
148968 
148969 --
148970 
148971 
148972 --
148973 AcctLineType_56 (
148974  p_application_id  => p_application_id
148975  ,p_event_id     => l_event_id
148976  ,p_calculate_acctd_flag => l_calculate_acctd_flag
148977  ,p_calculate_g_l_flag => l_calculate_g_l_flag
148978  ,p_actual_flag => l_actual_flag
148979  ,p_balance_type_code => l_balance_type_code
148980  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
148981  
148982  , p_source_1 => l_array_source_1(Idx)
148983  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
148984  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
148985  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
148986  , p_source_21 => l_array_source_21(Idx)
148987  , p_source_22 => l_array_source_22(Idx)
148988  , p_source_22_meaning => l_array_source_22_meaning(Idx)
148989  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
148990  , p_source_30 => l_array_source_30(Idx)
148991  , p_source_33 => l_array_source_33(Idx)
148992  , p_source_33_meaning => l_array_source_33_meaning(Idx)
148996  , p_source_55 => l_array_source_55(Idx)
148993  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
148994  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
148995  , p_source_53 => l_array_source_53(Idx)
148997  , p_source_57 => l_array_source_57(Idx)
148998  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
148999  , p_source_64 => l_array_source_64(Idx)
149000  , p_source_65 => l_array_source_65(Idx)
149001  , p_source_66 => l_array_source_66(Idx)
149002  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
149003  , p_source_68 => l_array_source_68(Idx)
149004  , p_source_69 => l_array_source_69(Idx)
149005  , p_source_70 => l_array_source_70(Idx)
149006  , p_source_71 => l_array_source_71(Idx)
149007  , p_source_72 => l_array_source_72(Idx)
149008  , p_source_77 => l_array_source_77(Idx)
149009  , p_source_78 => l_array_source_78(Idx)
149010  , p_source_79 => l_array_source_79(Idx)
149011  , p_source_80 => l_array_source_80(Idx)
149012  , p_source_80_meaning => l_array_source_80_meaning(Idx)
149013  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149014  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
149015  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
149016  , p_source_84 => l_array_source_84(Idx)
149017  , p_source_86 => l_array_source_86(Idx)
149018  , p_source_87 => l_array_source_87(Idx)
149019  , p_source_88 => l_array_source_88(Idx)
149020  , p_source_89 => l_array_source_89(Idx)
149021  , p_source_90 => l_array_source_90(Idx)
149022  , p_source_91 => l_array_source_91(Idx)
149023  , p_source_92 => l_array_source_92(Idx)
149024  , p_source_93 => l_array_source_93(Idx)
149025  , p_source_94 => l_array_source_94(Idx)
149026  , p_source_95 => l_array_source_95(Idx)
149027  , p_source_96 => l_array_source_96(Idx)
149028  , p_source_96_meaning => l_array_source_96_meaning(Idx)
149029  );
149030 If(l_balance_type_code = 'A') THEN
149031   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149032 END IF;
149033 
149034 --
149035 
149036 
149037 --
149038 AcctLineType_108 (
149039  p_application_id  => p_application_id
149040  ,p_event_id     => l_event_id
149041  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149042  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149043  ,p_actual_flag => l_actual_flag
149044  ,p_balance_type_code => l_balance_type_code
149045  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149046  
149047  , p_source_1 => l_array_source_1(Idx)
149048  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
149049  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
149050  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
149051  , p_source_21 => l_array_source_21(Idx)
149052  , p_source_22 => l_array_source_22(Idx)
149053  , p_source_22_meaning => l_array_source_22_meaning(Idx)
149054  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
149055  , p_source_30 => l_array_source_30(Idx)
149056  , p_source_33 => l_array_source_33(Idx)
149057  , p_source_33_meaning => l_array_source_33_meaning(Idx)
149058  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
149059  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
149060  , p_source_53 => l_array_source_53(Idx)
149061  , p_source_55 => l_array_source_55(Idx)
149062  , p_source_57 => l_array_source_57(Idx)
149063  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
149064  , p_source_64 => l_array_source_64(Idx)
149065  , p_source_65 => l_array_source_65(Idx)
149066  , p_source_66 => l_array_source_66(Idx)
149067  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
149068  , p_source_68 => l_array_source_68(Idx)
149069  , p_source_69 => l_array_source_69(Idx)
149070  , p_source_70 => l_array_source_70(Idx)
149071  , p_source_71 => l_array_source_71(Idx)
149072  , p_source_72 => l_array_source_72(Idx)
149073  , p_source_73 => l_array_source_73(Idx)
149074  , p_source_77 => l_array_source_77(Idx)
149075  , p_source_78 => l_array_source_78(Idx)
149076  , p_source_79 => l_array_source_79(Idx)
149077  , p_source_80 => l_array_source_80(Idx)
149078  , p_source_80_meaning => l_array_source_80_meaning(Idx)
149079  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149080  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
149081  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
149082  , p_source_84 => l_array_source_84(Idx)
149083  , p_source_86 => l_array_source_86(Idx)
149084  , p_source_87 => l_array_source_87(Idx)
149085  , p_source_88 => l_array_source_88(Idx)
149086  , p_source_89 => l_array_source_89(Idx)
149087  , p_source_90 => l_array_source_90(Idx)
149088  , p_source_91 => l_array_source_91(Idx)
149089  , p_source_92 => l_array_source_92(Idx)
149090  , p_source_93 => l_array_source_93(Idx)
149091  , p_source_94 => l_array_source_94(Idx)
149092  , p_source_95 => l_array_source_95(Idx)
149093  , p_source_96 => l_array_source_96(Idx)
149094  , p_source_96_meaning => l_array_source_96_meaning(Idx)
149095  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
149096  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
149097  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
149098  );
149099 If(l_balance_type_code = 'A') THEN
149100   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149101 END IF;
149102 
149103 --
149104 
149105 
149106 --
149107 AcctLineType_117 (
149111  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149108  p_application_id  => p_application_id
149109  ,p_event_id     => l_event_id
149110  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149112  ,p_actual_flag => l_actual_flag
149113  ,p_balance_type_code => l_balance_type_code
149114  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149115  
149116  , p_source_1 => l_array_source_1(Idx)
149117  , p_source_21 => l_array_source_21(Idx)
149118  , p_source_30 => l_array_source_30(Idx)
149119  , p_source_33 => l_array_source_33(Idx)
149120  , p_source_33_meaning => l_array_source_33_meaning(Idx)
149121  , p_source_53 => l_array_source_53(Idx)
149122  , p_source_55 => l_array_source_55(Idx)
149123  , p_source_57 => l_array_source_57(Idx)
149124  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
149125  , p_source_64 => l_array_source_64(Idx)
149126  , p_source_65 => l_array_source_65(Idx)
149127  , p_source_66 => l_array_source_66(Idx)
149128  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
149129  , p_source_68 => l_array_source_68(Idx)
149130  , p_source_69 => l_array_source_69(Idx)
149131  , p_source_70 => l_array_source_70(Idx)
149132  , p_source_71 => l_array_source_71(Idx)
149133  , p_source_72 => l_array_source_72(Idx)
149134  , p_source_73 => l_array_source_73(Idx)
149135  , p_source_77 => l_array_source_77(Idx)
149136  , p_source_78 => l_array_source_78(Idx)
149137  , p_source_79 => l_array_source_79(Idx)
149138  , p_source_80 => l_array_source_80(Idx)
149139  , p_source_80_meaning => l_array_source_80_meaning(Idx)
149140  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149141  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
149142  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
149143  , p_source_84 => l_array_source_84(Idx)
149144  , p_source_86 => l_array_source_86(Idx)
149145  , p_source_87 => l_array_source_87(Idx)
149146  , p_source_88 => l_array_source_88(Idx)
149147  , p_source_89 => l_array_source_89(Idx)
149148  , p_source_90 => l_array_source_90(Idx)
149149  , p_source_91 => l_array_source_91(Idx)
149150  , p_source_92 => l_array_source_92(Idx)
149151  , p_source_93 => l_array_source_93(Idx)
149152  , p_source_94 => l_array_source_94(Idx)
149153  , p_source_95 => l_array_source_95(Idx)
149154  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
149155  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
149156  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
149157  );
149158 If(l_balance_type_code = 'A') THEN
149159   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149160 END IF;
149161 
149162 --
149163 
149164 
149165 --
149166 AcctLineType_139 (
149167  p_application_id  => p_application_id
149168  ,p_event_id     => l_event_id
149169  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149170  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149171  ,p_actual_flag => l_actual_flag
149172  ,p_balance_type_code => l_balance_type_code
149173  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149174  
149175  , p_source_1 => l_array_source_1(Idx)
149176  , p_source_21 => l_array_source_21(Idx)
149177  , p_source_30 => l_array_source_30(Idx)
149178  , p_source_33 => l_array_source_33(Idx)
149179  , p_source_33_meaning => l_array_source_33_meaning(Idx)
149180  , p_source_53 => l_array_source_53(Idx)
149181  , p_source_55 => l_array_source_55(Idx)
149182  , p_source_57 => l_array_source_57(Idx)
149183  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
149184  , p_source_64 => l_array_source_64(Idx)
149185  , p_source_65 => l_array_source_65(Idx)
149186  , p_source_66 => l_array_source_66(Idx)
149187  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
149188  , p_source_68 => l_array_source_68(Idx)
149189  , p_source_69 => l_array_source_69(Idx)
149190  , p_source_70 => l_array_source_70(Idx)
149191  , p_source_71 => l_array_source_71(Idx)
149192  , p_source_72 => l_array_source_72(Idx)
149193  , p_source_73 => l_array_source_73(Idx)
149194  , p_source_77 => l_array_source_77(Idx)
149195  , p_source_78 => l_array_source_78(Idx)
149196  , p_source_79 => l_array_source_79(Idx)
149197  , p_source_80 => l_array_source_80(Idx)
149198  , p_source_80_meaning => l_array_source_80_meaning(Idx)
149199  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149200  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
149201  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
149202  , p_source_84 => l_array_source_84(Idx)
149203  , p_source_86 => l_array_source_86(Idx)
149204  , p_source_87 => l_array_source_87(Idx)
149205  , p_source_88 => l_array_source_88(Idx)
149206  , p_source_89 => l_array_source_89(Idx)
149207  , p_source_90 => l_array_source_90(Idx)
149208  , p_source_91 => l_array_source_91(Idx)
149209  , p_source_92 => l_array_source_92(Idx)
149210  , p_source_93 => l_array_source_93(Idx)
149211  , p_source_94 => l_array_source_94(Idx)
149212  , p_source_95 => l_array_source_95(Idx)
149213  , p_source_96 => l_array_source_96(Idx)
149214  , p_source_96_meaning => l_array_source_96_meaning(Idx)
149215  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
149216  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
149217  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
149218  );
149219 If(l_balance_type_code = 'A') THEN
149220   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149221 END IF;
149222 
149223 --
149224 
149228  p_application_id  => p_application_id
149225 
149226 --
149227 AcctLineType_143 (
149229  ,p_event_id     => l_event_id
149230  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149231  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149232  ,p_actual_flag => l_actual_flag
149233  ,p_balance_type_code => l_balance_type_code
149234  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149235  
149236  , p_source_1 => l_array_source_1(Idx)
149237  , p_source_21 => l_array_source_21(Idx)
149238  , p_source_30 => l_array_source_30(Idx)
149239  , p_source_33 => l_array_source_33(Idx)
149240  , p_source_33_meaning => l_array_source_33_meaning(Idx)
149241  , p_source_53 => l_array_source_53(Idx)
149242  , p_source_55 => l_array_source_55(Idx)
149243  , p_source_57 => l_array_source_57(Idx)
149244  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
149245  , p_source_64 => l_array_source_64(Idx)
149246  , p_source_65 => l_array_source_65(Idx)
149247  , p_source_66 => l_array_source_66(Idx)
149248  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
149249  , p_source_68 => l_array_source_68(Idx)
149250  , p_source_69 => l_array_source_69(Idx)
149251  , p_source_70 => l_array_source_70(Idx)
149252  , p_source_71 => l_array_source_71(Idx)
149253  , p_source_72 => l_array_source_72(Idx)
149254  , p_source_73 => l_array_source_73(Idx)
149255  , p_source_77 => l_array_source_77(Idx)
149256  , p_source_78 => l_array_source_78(Idx)
149257  , p_source_79 => l_array_source_79(Idx)
149258  , p_source_80 => l_array_source_80(Idx)
149259  , p_source_80_meaning => l_array_source_80_meaning(Idx)
149260  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149261  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
149262  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
149263  , p_source_84 => l_array_source_84(Idx)
149264  , p_source_86 => l_array_source_86(Idx)
149265  , p_source_87 => l_array_source_87(Idx)
149266  , p_source_88 => l_array_source_88(Idx)
149267  , p_source_89 => l_array_source_89(Idx)
149268  , p_source_90 => l_array_source_90(Idx)
149269  , p_source_91 => l_array_source_91(Idx)
149270  , p_source_92 => l_array_source_92(Idx)
149271  , p_source_93 => l_array_source_93(Idx)
149272  , p_source_94 => l_array_source_94(Idx)
149273  , p_source_95 => l_array_source_95(Idx)
149274  , p_source_96 => l_array_source_96(Idx)
149275  , p_source_96_meaning => l_array_source_96_meaning(Idx)
149276  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
149277  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
149278  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
149279  );
149280 If(l_balance_type_code = 'A') THEN
149281   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149282 END IF;
149283 
149284 --
149285 
149286 
149287 --
149288 AcctLineType_151 (
149289  p_application_id  => p_application_id
149290  ,p_event_id     => l_event_id
149291  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149292  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149293  ,p_actual_flag => l_actual_flag
149294  ,p_balance_type_code => l_balance_type_code
149295  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149296  
149297  , p_source_1 => l_array_source_1(Idx)
149298  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
149299  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
149300  , p_source_21 => l_array_source_21(Idx)
149301  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
149302  , p_source_53 => l_array_source_53(Idx)
149303  , p_source_55 => l_array_source_55(Idx)
149304  , p_source_57 => l_array_source_57(Idx)
149305  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
149306  , p_source_64 => l_array_source_64(Idx)
149307  , p_source_65 => l_array_source_65(Idx)
149308  , p_source_66 => l_array_source_66(Idx)
149309  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
149310  , p_source_68 => l_array_source_68(Idx)
149311  , p_source_69 => l_array_source_69(Idx)
149312  , p_source_70 => l_array_source_70(Idx)
149313  , p_source_71 => l_array_source_71(Idx)
149314  , p_source_72 => l_array_source_72(Idx)
149315  , p_source_73 => l_array_source_73(Idx)
149316  , p_source_77 => l_array_source_77(Idx)
149317  , p_source_78 => l_array_source_78(Idx)
149318  , p_source_79 => l_array_source_79(Idx)
149319  , p_source_80 => l_array_source_80(Idx)
149320  , p_source_80_meaning => l_array_source_80_meaning(Idx)
149321  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149322  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
149323  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
149324  , p_source_84 => l_array_source_84(Idx)
149325  , p_source_86 => l_array_source_86(Idx)
149326  , p_source_87 => l_array_source_87(Idx)
149327  , p_source_88 => l_array_source_88(Idx)
149328  , p_source_89 => l_array_source_89(Idx)
149329  , p_source_90 => l_array_source_90(Idx)
149330  , p_source_91 => l_array_source_91(Idx)
149331  , p_source_92 => l_array_source_92(Idx)
149332  , p_source_93 => l_array_source_93(Idx)
149333  , p_source_94 => l_array_source_94(Idx)
149334  , p_source_95 => l_array_source_95(Idx)
149335  , p_source_142 => l_array_source_142(Idx)
149336  , p_source_142_meaning => l_array_source_142_meaning(Idx)
149337  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
149338  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
149342   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149339  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
149340  );
149341 If(l_balance_type_code = 'A') THEN
149343 END IF;
149344 
149345 --
149346 
149347 
149348 --
149349 AcctLineType_152 (
149350  p_application_id  => p_application_id
149351  ,p_event_id     => l_event_id
149352  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149353  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149354  ,p_actual_flag => l_actual_flag
149355  ,p_balance_type_code => l_balance_type_code
149356  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149357  
149358  , p_source_1 => l_array_source_1(Idx)
149359  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
149360  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
149361  , p_source_21 => l_array_source_21(Idx)
149362  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
149363  , p_source_53 => l_array_source_53(Idx)
149364  , p_source_55 => l_array_source_55(Idx)
149365  , p_source_57 => l_array_source_57(Idx)
149366  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
149367  , p_source_64 => l_array_source_64(Idx)
149368  , p_source_65 => l_array_source_65(Idx)
149369  , p_source_66 => l_array_source_66(Idx)
149370  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
149371  , p_source_68 => l_array_source_68(Idx)
149372  , p_source_69 => l_array_source_69(Idx)
149373  , p_source_70 => l_array_source_70(Idx)
149374  , p_source_71 => l_array_source_71(Idx)
149375  , p_source_72 => l_array_source_72(Idx)
149376  , p_source_73 => l_array_source_73(Idx)
149377  , p_source_77 => l_array_source_77(Idx)
149378  , p_source_78 => l_array_source_78(Idx)
149379  , p_source_79 => l_array_source_79(Idx)
149380  , p_source_80 => l_array_source_80(Idx)
149381  , p_source_80_meaning => l_array_source_80_meaning(Idx)
149382  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149383  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
149384  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
149385  , p_source_84 => l_array_source_84(Idx)
149386  , p_source_86 => l_array_source_86(Idx)
149387  , p_source_87 => l_array_source_87(Idx)
149388  , p_source_88 => l_array_source_88(Idx)
149389  , p_source_89 => l_array_source_89(Idx)
149390  , p_source_90 => l_array_source_90(Idx)
149391  , p_source_91 => l_array_source_91(Idx)
149392  , p_source_92 => l_array_source_92(Idx)
149393  , p_source_93 => l_array_source_93(Idx)
149394  , p_source_94 => l_array_source_94(Idx)
149395  , p_source_95 => l_array_source_95(Idx)
149396  , p_source_142 => l_array_source_142(Idx)
149397  , p_source_142_meaning => l_array_source_142_meaning(Idx)
149398  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
149399  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
149400  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
149401  );
149402 If(l_balance_type_code = 'A') THEN
149403   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149404 END IF;
149405 
149406 --
149407 
149408 
149409 --
149410 AcctLineType_153 (
149411  p_application_id  => p_application_id
149412  ,p_event_id     => l_event_id
149413  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149414  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149415  ,p_actual_flag => l_actual_flag
149416  ,p_balance_type_code => l_balance_type_code
149417  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149418  
149419  , p_source_1 => l_array_source_1(Idx)
149420  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
149421  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
149422  , p_source_21 => l_array_source_21(Idx)
149423  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
149424  , p_source_53 => l_array_source_53(Idx)
149425  , p_source_55 => l_array_source_55(Idx)
149426  , p_source_57 => l_array_source_57(Idx)
149427  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
149428  , p_source_64 => l_array_source_64(Idx)
149429  , p_source_65 => l_array_source_65(Idx)
149430  , p_source_66 => l_array_source_66(Idx)
149431  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
149432  , p_source_68 => l_array_source_68(Idx)
149433  , p_source_69 => l_array_source_69(Idx)
149434  , p_source_70 => l_array_source_70(Idx)
149435  , p_source_71 => l_array_source_71(Idx)
149436  , p_source_72 => l_array_source_72(Idx)
149437  , p_source_73 => l_array_source_73(Idx)
149438  , p_source_77 => l_array_source_77(Idx)
149439  , p_source_78 => l_array_source_78(Idx)
149440  , p_source_79 => l_array_source_79(Idx)
149441  , p_source_80 => l_array_source_80(Idx)
149442  , p_source_80_meaning => l_array_source_80_meaning(Idx)
149443  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149444  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
149445  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
149446  , p_source_84 => l_array_source_84(Idx)
149447  , p_source_86 => l_array_source_86(Idx)
149448  , p_source_87 => l_array_source_87(Idx)
149449  , p_source_88 => l_array_source_88(Idx)
149450  , p_source_89 => l_array_source_89(Idx)
149451  , p_source_90 => l_array_source_90(Idx)
149452  , p_source_91 => l_array_source_91(Idx)
149453  , p_source_92 => l_array_source_92(Idx)
149454  , p_source_93 => l_array_source_93(Idx)
149455  , p_source_94 => l_array_source_94(Idx)
149459  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
149456  , p_source_95 => l_array_source_95(Idx)
149457  , p_source_142 => l_array_source_142(Idx)
149458  , p_source_142_meaning => l_array_source_142_meaning(Idx)
149460  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
149461  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
149462  );
149463 If(l_balance_type_code = 'A') THEN
149464   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149465 END IF;
149466 
149467 --
149468 
149469 
149470 --
149471 AcctLineType_172 (
149472  p_application_id  => p_application_id
149473  ,p_event_id     => l_event_id
149474  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149475  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149476  ,p_actual_flag => l_actual_flag
149477  ,p_balance_type_code => l_balance_type_code
149478  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149479  
149480  , p_source_1 => l_array_source_1(Idx)
149481  , p_source_21 => l_array_source_21(Idx)
149482  , p_source_30 => l_array_source_30(Idx)
149483  , p_source_33 => l_array_source_33(Idx)
149484  , p_source_33_meaning => l_array_source_33_meaning(Idx)
149485  , p_source_53 => l_array_source_53(Idx)
149486  , p_source_55 => l_array_source_55(Idx)
149487  , p_source_57 => l_array_source_57(Idx)
149488  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
149489  , p_source_64 => l_array_source_64(Idx)
149490  , p_source_65 => l_array_source_65(Idx)
149491  , p_source_66 => l_array_source_66(Idx)
149492  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
149493  , p_source_68 => l_array_source_68(Idx)
149494  , p_source_69 => l_array_source_69(Idx)
149495  , p_source_70 => l_array_source_70(Idx)
149496  , p_source_71 => l_array_source_71(Idx)
149497  , p_source_72 => l_array_source_72(Idx)
149498  , p_source_73 => l_array_source_73(Idx)
149499  , p_source_77 => l_array_source_77(Idx)
149500  , p_source_78 => l_array_source_78(Idx)
149501  , p_source_79 => l_array_source_79(Idx)
149502  , p_source_80 => l_array_source_80(Idx)
149503  , p_source_80_meaning => l_array_source_80_meaning(Idx)
149504  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149505  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
149506  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
149507  , p_source_84 => l_array_source_84(Idx)
149508  , p_source_86 => l_array_source_86(Idx)
149509  , p_source_87 => l_array_source_87(Idx)
149510  , p_source_88 => l_array_source_88(Idx)
149511  , p_source_89 => l_array_source_89(Idx)
149512  , p_source_90 => l_array_source_90(Idx)
149513  , p_source_91 => l_array_source_91(Idx)
149514  , p_source_92 => l_array_source_92(Idx)
149515  , p_source_93 => l_array_source_93(Idx)
149516  , p_source_94 => l_array_source_94(Idx)
149517  , p_source_95 => l_array_source_95(Idx)
149518  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
149519  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
149520  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
149521  );
149522 If(l_balance_type_code = 'A') THEN
149523   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149524 END IF;
149525 
149526 --
149527 
149528 
149529 --
149530 AcctLineType_176 (
149531  p_application_id  => p_application_id
149532  ,p_event_id     => l_event_id
149533  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149534  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149535  ,p_actual_flag => l_actual_flag
149536  ,p_balance_type_code => l_balance_type_code
149537  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149538  
149539  , p_source_1 => l_array_source_1(Idx)
149540  , p_source_21 => l_array_source_21(Idx)
149541  , p_source_30 => l_array_source_30(Idx)
149542  , p_source_33 => l_array_source_33(Idx)
149543  , p_source_33_meaning => l_array_source_33_meaning(Idx)
149544  , p_source_53 => l_array_source_53(Idx)
149545  , p_source_55 => l_array_source_55(Idx)
149546  , p_source_57 => l_array_source_57(Idx)
149547  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
149548  , p_source_64 => l_array_source_64(Idx)
149549  , p_source_65 => l_array_source_65(Idx)
149550  , p_source_66 => l_array_source_66(Idx)
149551  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
149552  , p_source_68 => l_array_source_68(Idx)
149553  , p_source_69 => l_array_source_69(Idx)
149554  , p_source_70 => l_array_source_70(Idx)
149555  , p_source_71 => l_array_source_71(Idx)
149556  , p_source_72 => l_array_source_72(Idx)
149557  , p_source_73 => l_array_source_73(Idx)
149558  , p_source_74 => l_array_source_74(Idx)
149559  , p_source_75 => l_array_source_75(Idx)
149560  , p_source_76 => l_array_source_76(Idx)
149561  , p_source_77 => l_array_source_77(Idx)
149562  , p_source_78 => l_array_source_78(Idx)
149563  , p_source_79 => l_array_source_79(Idx)
149564  , p_source_80 => l_array_source_80(Idx)
149565  , p_source_80_meaning => l_array_source_80_meaning(Idx)
149566  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149567  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
149568  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
149569  , p_source_84 => l_array_source_84(Idx)
149570  , p_source_86 => l_array_source_86(Idx)
149571  , p_source_87 => l_array_source_87(Idx)
149572  , p_source_88 => l_array_source_88(Idx)
149573  , p_source_89 => l_array_source_89(Idx)
149574  , p_source_90 => l_array_source_90(Idx)
149578  , p_source_94 => l_array_source_94(Idx)
149575  , p_source_91 => l_array_source_91(Idx)
149576  , p_source_92 => l_array_source_92(Idx)
149577  , p_source_93 => l_array_source_93(Idx)
149579  , p_source_95 => l_array_source_95(Idx)
149580  , p_source_96 => l_array_source_96(Idx)
149581  , p_source_96_meaning => l_array_source_96_meaning(Idx)
149582  , p_source_142 => l_array_source_142(Idx)
149583  , p_source_142_meaning => l_array_source_142_meaning(Idx)
149584  );
149585 If(l_balance_type_code = 'A') THEN
149586   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149587 END IF;
149588 
149589 --
149590 
149591 
149592 --
149593 AcctLineType_179 (
149594  p_application_id  => p_application_id
149595  ,p_event_id     => l_event_id
149596  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149597  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149598  ,p_actual_flag => l_actual_flag
149599  ,p_balance_type_code => l_balance_type_code
149600  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149601  
149602  , p_source_1 => l_array_source_1(Idx)
149603  , p_source_21 => l_array_source_21(Idx)
149604  , p_source_30 => l_array_source_30(Idx)
149605  , p_source_33 => l_array_source_33(Idx)
149606  , p_source_33_meaning => l_array_source_33_meaning(Idx)
149607  , p_source_53 => l_array_source_53(Idx)
149608  , p_source_55 => l_array_source_55(Idx)
149609  , p_source_57 => l_array_source_57(Idx)
149610  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
149611  , p_source_64 => l_array_source_64(Idx)
149612  , p_source_65 => l_array_source_65(Idx)
149613  , p_source_66 => l_array_source_66(Idx)
149614  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
149615  , p_source_68 => l_array_source_68(Idx)
149616  , p_source_69 => l_array_source_69(Idx)
149617  , p_source_70 => l_array_source_70(Idx)
149618  , p_source_71 => l_array_source_71(Idx)
149619  , p_source_72 => l_array_source_72(Idx)
149620  , p_source_73 => l_array_source_73(Idx)
149621  , p_source_77 => l_array_source_77(Idx)
149622  , p_source_78 => l_array_source_78(Idx)
149623  , p_source_79 => l_array_source_79(Idx)
149624  , p_source_80 => l_array_source_80(Idx)
149625  , p_source_80_meaning => l_array_source_80_meaning(Idx)
149626  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149627  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
149628  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
149629  , p_source_84 => l_array_source_84(Idx)
149630  , p_source_86 => l_array_source_86(Idx)
149631  , p_source_87 => l_array_source_87(Idx)
149632  , p_source_88 => l_array_source_88(Idx)
149633  , p_source_89 => l_array_source_89(Idx)
149634  , p_source_90 => l_array_source_90(Idx)
149635  , p_source_91 => l_array_source_91(Idx)
149636  , p_source_92 => l_array_source_92(Idx)
149637  , p_source_93 => l_array_source_93(Idx)
149638  , p_source_94 => l_array_source_94(Idx)
149639  , p_source_95 => l_array_source_95(Idx)
149640  , p_source_96 => l_array_source_96(Idx)
149641  , p_source_96_meaning => l_array_source_96_meaning(Idx)
149642  , p_source_142 => l_array_source_142(Idx)
149643  , p_source_142_meaning => l_array_source_142_meaning(Idx)
149644  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
149645  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
149646  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
149647  );
149648 If(l_balance_type_code = 'A') THEN
149649   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149650 END IF;
149651 
149652 --
149653 
149654 
149655 --
149656 AcctLineType_188 (
149657  p_application_id  => p_application_id
149658  ,p_event_id     => l_event_id
149659  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149660  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149661  ,p_actual_flag => l_actual_flag
149662  ,p_balance_type_code => l_balance_type_code
149663  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149664  
149665  , p_source_1 => l_array_source_1(Idx)
149666  , p_source_21 => l_array_source_21(Idx)
149667  , p_source_30 => l_array_source_30(Idx)
149668  , p_source_33 => l_array_source_33(Idx)
149669  , p_source_33_meaning => l_array_source_33_meaning(Idx)
149670  , p_source_53 => l_array_source_53(Idx)
149671  , p_source_55 => l_array_source_55(Idx)
149672  , p_source_57 => l_array_source_57(Idx)
149673  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
149674  , p_source_64 => l_array_source_64(Idx)
149675  , p_source_65 => l_array_source_65(Idx)
149676  , p_source_66 => l_array_source_66(Idx)
149677  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
149678  , p_source_68 => l_array_source_68(Idx)
149679  , p_source_69 => l_array_source_69(Idx)
149680  , p_source_70 => l_array_source_70(Idx)
149681  , p_source_71 => l_array_source_71(Idx)
149682  , p_source_72 => l_array_source_72(Idx)
149683  , p_source_73 => l_array_source_73(Idx)
149684  , p_source_77 => l_array_source_77(Idx)
149685  , p_source_78 => l_array_source_78(Idx)
149686  , p_source_79 => l_array_source_79(Idx)
149687  , p_source_80 => l_array_source_80(Idx)
149688  , p_source_80_meaning => l_array_source_80_meaning(Idx)
149689  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149690  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
149691  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
149692  , p_source_84 => l_array_source_84(Idx)
149693  , p_source_86 => l_array_source_86(Idx)
149694  , p_source_87 => l_array_source_87(Idx)
149698  , p_source_91 => l_array_source_91(Idx)
149695  , p_source_88 => l_array_source_88(Idx)
149696  , p_source_89 => l_array_source_89(Idx)
149697  , p_source_90 => l_array_source_90(Idx)
149699  , p_source_92 => l_array_source_92(Idx)
149700  , p_source_93 => l_array_source_93(Idx)
149701  , p_source_94 => l_array_source_94(Idx)
149702  , p_source_95 => l_array_source_95(Idx)
149703  , p_source_142 => l_array_source_142(Idx)
149704  , p_source_142_meaning => l_array_source_142_meaning(Idx)
149705  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
149706  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
149707  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
149708  );
149709 If(l_balance_type_code = 'A') THEN
149710   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149711 END IF;
149712 
149713 --
149714 
149715 
149716 --
149717 AcctLineType_193 (
149718  p_application_id  => p_application_id
149719  ,p_event_id     => l_event_id
149720  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149721  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149722  ,p_actual_flag => l_actual_flag
149723  ,p_balance_type_code => l_balance_type_code
149724  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149725  
149726  , p_source_1 => l_array_source_1(Idx)
149727  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
149728  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
149729  , p_source_21 => l_array_source_21(Idx)
149730  , p_source_30 => l_array_source_30(Idx)
149731  , p_source_33 => l_array_source_33(Idx)
149732  , p_source_33_meaning => l_array_source_33_meaning(Idx)
149733  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
149734  , p_source_42 => l_array_source_42(Idx)
149735  , p_source_53 => l_array_source_53(Idx)
149736  , p_source_55 => l_array_source_55(Idx)
149737  , p_source_57 => l_array_source_57(Idx)
149738  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
149739  , p_source_64 => l_array_source_64(Idx)
149740  , p_source_65 => l_array_source_65(Idx)
149741  , p_source_66 => l_array_source_66(Idx)
149742  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
149743  , p_source_68 => l_array_source_68(Idx)
149744  , p_source_69 => l_array_source_69(Idx)
149745  , p_source_70 => l_array_source_70(Idx)
149746  , p_source_71 => l_array_source_71(Idx)
149747  , p_source_72 => l_array_source_72(Idx)
149748  , p_source_73 => l_array_source_73(Idx)
149749  , p_source_77 => l_array_source_77(Idx)
149750  , p_source_78 => l_array_source_78(Idx)
149751  , p_source_79 => l_array_source_79(Idx)
149752  , p_source_80 => l_array_source_80(Idx)
149753  , p_source_80_meaning => l_array_source_80_meaning(Idx)
149754  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149755  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
149756  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
149757  , p_source_84 => l_array_source_84(Idx)
149758  , p_source_86 => l_array_source_86(Idx)
149759  , p_source_87 => l_array_source_87(Idx)
149760  , p_source_88 => l_array_source_88(Idx)
149761  , p_source_89 => l_array_source_89(Idx)
149762  , p_source_90 => l_array_source_90(Idx)
149763  , p_source_91 => l_array_source_91(Idx)
149764  , p_source_92 => l_array_source_92(Idx)
149765  , p_source_93 => l_array_source_93(Idx)
149766  , p_source_94 => l_array_source_94(Idx)
149767  , p_source_95 => l_array_source_95(Idx)
149768  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
149769  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
149770  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
149771  );
149772 If(l_balance_type_code = 'A') THEN
149773   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149774 END IF;
149775 
149776 --
149777 
149778 
149779 --
149780 AcctLineType_197 (
149781  p_application_id  => p_application_id
149782  ,p_event_id     => l_event_id
149783  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149784  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149785  ,p_actual_flag => l_actual_flag
149786  ,p_balance_type_code => l_balance_type_code
149787  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149788  
149789  , p_source_1 => l_array_source_1(Idx)
149790  , p_source_21 => l_array_source_21(Idx)
149791  , p_source_33 => l_array_source_33(Idx)
149792  , p_source_33_meaning => l_array_source_33_meaning(Idx)
149793  , p_source_50 => l_array_source_50(Idx)
149794  , p_source_53 => l_array_source_53(Idx)
149795  , p_source_55 => l_array_source_55(Idx)
149796  , p_source_57 => l_array_source_57(Idx)
149797  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
149798  , p_source_64 => l_array_source_64(Idx)
149799  , p_source_65 => l_array_source_65(Idx)
149800  , p_source_66 => l_array_source_66(Idx)
149801  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
149802  , p_source_68 => l_array_source_68(Idx)
149803  , p_source_69 => l_array_source_69(Idx)
149804  , p_source_70 => l_array_source_70(Idx)
149805  , p_source_71 => l_array_source_71(Idx)
149806  , p_source_72 => l_array_source_72(Idx)
149807  , p_source_73 => l_array_source_73(Idx)
149808  , p_source_77 => l_array_source_77(Idx)
149809  , p_source_78 => l_array_source_78(Idx)
149810  , p_source_79 => l_array_source_79(Idx)
149811  , p_source_80 => l_array_source_80(Idx)
149812  , p_source_80_meaning => l_array_source_80_meaning(Idx)
149816  , p_source_84 => l_array_source_84(Idx)
149813  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149814  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
149815  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
149817  , p_source_86 => l_array_source_86(Idx)
149818  , p_source_87 => l_array_source_87(Idx)
149819  , p_source_88 => l_array_source_88(Idx)
149820  , p_source_89 => l_array_source_89(Idx)
149821  , p_source_90 => l_array_source_90(Idx)
149822  , p_source_91 => l_array_source_91(Idx)
149823  , p_source_92 => l_array_source_92(Idx)
149824  , p_source_93 => l_array_source_93(Idx)
149825  , p_source_94 => l_array_source_94(Idx)
149826  , p_source_95 => l_array_source_95(Idx)
149827  , p_source_96 => l_array_source_96(Idx)
149828  , p_source_96_meaning => l_array_source_96_meaning(Idx)
149829  , p_source_142 => l_array_source_142(Idx)
149830  , p_source_142_meaning => l_array_source_142_meaning(Idx)
149831  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
149832  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
149833  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
149834  );
149835 If(l_balance_type_code = 'A') THEN
149836   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149837 END IF;
149838 
149839 --
149840 
149841 
149842 --
149843 AcctLineType_201 (
149844  p_application_id  => p_application_id
149845  ,p_event_id     => l_event_id
149846  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149847  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149848  ,p_actual_flag => l_actual_flag
149849  ,p_balance_type_code => l_balance_type_code
149850  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149851  
149852  , p_source_1 => l_array_source_1(Idx)
149853  , p_source_21 => l_array_source_21(Idx)
149854  , p_source_33 => l_array_source_33(Idx)
149855  , p_source_33_meaning => l_array_source_33_meaning(Idx)
149856  , p_source_50 => l_array_source_50(Idx)
149857  , p_source_53 => l_array_source_53(Idx)
149858  , p_source_55 => l_array_source_55(Idx)
149859  , p_source_57 => l_array_source_57(Idx)
149860  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
149861  , p_source_64 => l_array_source_64(Idx)
149862  , p_source_65 => l_array_source_65(Idx)
149863  , p_source_66 => l_array_source_66(Idx)
149864  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
149865  , p_source_68 => l_array_source_68(Idx)
149866  , p_source_69 => l_array_source_69(Idx)
149867  , p_source_70 => l_array_source_70(Idx)
149868  , p_source_71 => l_array_source_71(Idx)
149869  , p_source_72 => l_array_source_72(Idx)
149870  , p_source_73 => l_array_source_73(Idx)
149871  , p_source_77 => l_array_source_77(Idx)
149872  , p_source_78 => l_array_source_78(Idx)
149873  , p_source_79 => l_array_source_79(Idx)
149874  , p_source_80 => l_array_source_80(Idx)
149875  , p_source_80_meaning => l_array_source_80_meaning(Idx)
149876  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149877  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
149878  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
149879  , p_source_84 => l_array_source_84(Idx)
149880  , p_source_86 => l_array_source_86(Idx)
149881  , p_source_87 => l_array_source_87(Idx)
149882  , p_source_88 => l_array_source_88(Idx)
149883  , p_source_89 => l_array_source_89(Idx)
149884  , p_source_90 => l_array_source_90(Idx)
149885  , p_source_91 => l_array_source_91(Idx)
149886  , p_source_92 => l_array_source_92(Idx)
149887  , p_source_93 => l_array_source_93(Idx)
149888  , p_source_94 => l_array_source_94(Idx)
149889  , p_source_95 => l_array_source_95(Idx)
149890  , p_source_142 => l_array_source_142(Idx)
149891  , p_source_142_meaning => l_array_source_142_meaning(Idx)
149892  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
149893  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
149894  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
149895  );
149896 If(l_balance_type_code = 'A') THEN
149897   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149898 END IF;
149899 
149900 --
149901 
149902 
149903 --
149904 AcctLineType_204 (
149905  p_application_id  => p_application_id
149906  ,p_event_id     => l_event_id
149907  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149908  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149909  ,p_actual_flag => l_actual_flag
149910  ,p_balance_type_code => l_balance_type_code
149911  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149912  
149913  , p_source_1 => l_array_source_1(Idx)
149914  , p_source_21 => l_array_source_21(Idx)
149915  , p_source_33 => l_array_source_33(Idx)
149916  , p_source_33_meaning => l_array_source_33_meaning(Idx)
149917  , p_source_51 => l_array_source_51(Idx)
149918  , p_source_53 => l_array_source_53(Idx)
149919  , p_source_55 => l_array_source_55(Idx)
149920  , p_source_57 => l_array_source_57(Idx)
149921  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
149922  , p_source_64 => l_array_source_64(Idx)
149923  , p_source_65 => l_array_source_65(Idx)
149924  , p_source_66 => l_array_source_66(Idx)
149925  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
149926  , p_source_68 => l_array_source_68(Idx)
149927  , p_source_69 => l_array_source_69(Idx)
149928  , p_source_70 => l_array_source_70(Idx)
149929  , p_source_71 => l_array_source_71(Idx)
149930  , p_source_72 => l_array_source_72(Idx)
149934  , p_source_79 => l_array_source_79(Idx)
149931  , p_source_73 => l_array_source_73(Idx)
149932  , p_source_77 => l_array_source_77(Idx)
149933  , p_source_78 => l_array_source_78(Idx)
149935  , p_source_80 => l_array_source_80(Idx)
149936  , p_source_80_meaning => l_array_source_80_meaning(Idx)
149937  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
149938  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
149939  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
149940  , p_source_84 => l_array_source_84(Idx)
149941  , p_source_86 => l_array_source_86(Idx)
149942  , p_source_87 => l_array_source_87(Idx)
149943  , p_source_88 => l_array_source_88(Idx)
149944  , p_source_89 => l_array_source_89(Idx)
149945  , p_source_90 => l_array_source_90(Idx)
149946  , p_source_91 => l_array_source_91(Idx)
149947  , p_source_92 => l_array_source_92(Idx)
149948  , p_source_93 => l_array_source_93(Idx)
149949  , p_source_94 => l_array_source_94(Idx)
149950  , p_source_95 => l_array_source_95(Idx)
149951  , p_source_142 => l_array_source_142(Idx)
149952  , p_source_142_meaning => l_array_source_142_meaning(Idx)
149953  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
149954  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
149955  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
149956  );
149957 If(l_balance_type_code = 'A') THEN
149958   l_actual_gain_loss_ref := l_gain_or_loss_ref;
149959 END IF;
149960 
149961 --
149962 
149963 
149964 --
149965 AcctLineType_209 (
149966  p_application_id  => p_application_id
149967  ,p_event_id     => l_event_id
149968  ,p_calculate_acctd_flag => l_calculate_acctd_flag
149969  ,p_calculate_g_l_flag => l_calculate_g_l_flag
149970  ,p_actual_flag => l_actual_flag
149971  ,p_balance_type_code => l_balance_type_code
149972  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
149973  
149974  , p_source_1 => l_array_source_1(Idx)
149975  , p_source_21 => l_array_source_21(Idx)
149976  , p_source_33 => l_array_source_33(Idx)
149977  , p_source_33_meaning => l_array_source_33_meaning(Idx)
149978  , p_source_50 => l_array_source_50(Idx)
149979  , p_source_53 => l_array_source_53(Idx)
149980  , p_source_55 => l_array_source_55(Idx)
149981  , p_source_57 => l_array_source_57(Idx)
149982  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
149983  , p_source_64 => l_array_source_64(Idx)
149984  , p_source_65 => l_array_source_65(Idx)
149985  , p_source_66 => l_array_source_66(Idx)
149986  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
149987  , p_source_68 => l_array_source_68(Idx)
149988  , p_source_69 => l_array_source_69(Idx)
149989  , p_source_70 => l_array_source_70(Idx)
149990  , p_source_71 => l_array_source_71(Idx)
149991  , p_source_72 => l_array_source_72(Idx)
149992  , p_source_73 => l_array_source_73(Idx)
149993  , p_source_74 => l_array_source_74(Idx)
149994  , p_source_75 => l_array_source_75(Idx)
149995  , p_source_76 => l_array_source_76(Idx)
149996  , p_source_77 => l_array_source_77(Idx)
149997  , p_source_78 => l_array_source_78(Idx)
149998  , p_source_79 => l_array_source_79(Idx)
149999  , p_source_80 => l_array_source_80(Idx)
150000  , p_source_80_meaning => l_array_source_80_meaning(Idx)
150001  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
150002  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
150003  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
150004  , p_source_84 => l_array_source_84(Idx)
150005  , p_source_86 => l_array_source_86(Idx)
150006  , p_source_87 => l_array_source_87(Idx)
150007  , p_source_88 => l_array_source_88(Idx)
150008  , p_source_89 => l_array_source_89(Idx)
150009  , p_source_90 => l_array_source_90(Idx)
150010  , p_source_91 => l_array_source_91(Idx)
150011  , p_source_92 => l_array_source_92(Idx)
150012  , p_source_93 => l_array_source_93(Idx)
150013  , p_source_94 => l_array_source_94(Idx)
150014  , p_source_95 => l_array_source_95(Idx)
150015  , p_source_96 => l_array_source_96(Idx)
150016  , p_source_96_meaning => l_array_source_96_meaning(Idx)
150017  , p_source_142 => l_array_source_142(Idx)
150018  , p_source_142_meaning => l_array_source_142_meaning(Idx)
150019  );
150020 If(l_balance_type_code = 'A') THEN
150021   l_actual_gain_loss_ref := l_gain_or_loss_ref;
150022 END IF;
150023 
150024 --
150025 
150026 
150027 --
150028 AcctLineType_213 (
150029  p_application_id  => p_application_id
150030  ,p_event_id     => l_event_id
150031  ,p_calculate_acctd_flag => l_calculate_acctd_flag
150032  ,p_calculate_g_l_flag => l_calculate_g_l_flag
150033  ,p_actual_flag => l_actual_flag
150034  ,p_balance_type_code => l_balance_type_code
150035  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
150036  
150037  , p_source_1 => l_array_source_1(Idx)
150038  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
150039  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
150040  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
150041  , p_source_21 => l_array_source_21(Idx)
150042  , p_source_22 => l_array_source_22(Idx)
150043  , p_source_22_meaning => l_array_source_22_meaning(Idx)
150044  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
150045  , p_source_30 => l_array_source_30(Idx)
150046  , p_source_33 => l_array_source_33(Idx)
150047  , p_source_33_meaning => l_array_source_33_meaning(Idx)
150048  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
150052  , p_source_57 => l_array_source_57(Idx)
150049  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
150050  , p_source_53 => l_array_source_53(Idx)
150051  , p_source_55 => l_array_source_55(Idx)
150053  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
150054  , p_source_64 => l_array_source_64(Idx)
150055  , p_source_65 => l_array_source_65(Idx)
150056  , p_source_66 => l_array_source_66(Idx)
150057  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
150058  , p_source_68 => l_array_source_68(Idx)
150059  , p_source_69 => l_array_source_69(Idx)
150060  , p_source_70 => l_array_source_70(Idx)
150061  , p_source_71 => l_array_source_71(Idx)
150062  , p_source_72 => l_array_source_72(Idx)
150063  , p_source_73 => l_array_source_73(Idx)
150064  , p_source_77 => l_array_source_77(Idx)
150065  , p_source_78 => l_array_source_78(Idx)
150066  , p_source_79 => l_array_source_79(Idx)
150067  , p_source_80 => l_array_source_80(Idx)
150068  , p_source_80_meaning => l_array_source_80_meaning(Idx)
150069  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
150070  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
150071  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
150072  , p_source_84 => l_array_source_84(Idx)
150073  , p_source_86 => l_array_source_86(Idx)
150074  , p_source_87 => l_array_source_87(Idx)
150075  , p_source_88 => l_array_source_88(Idx)
150076  , p_source_89 => l_array_source_89(Idx)
150077  , p_source_90 => l_array_source_90(Idx)
150078  , p_source_91 => l_array_source_91(Idx)
150079  , p_source_92 => l_array_source_92(Idx)
150080  , p_source_93 => l_array_source_93(Idx)
150081  , p_source_94 => l_array_source_94(Idx)
150082  , p_source_95 => l_array_source_95(Idx)
150083  , p_source_96 => l_array_source_96(Idx)
150084  , p_source_96_meaning => l_array_source_96_meaning(Idx)
150085  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
150086  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
150087  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
150088  );
150089 If(l_balance_type_code = 'A') THEN
150090   l_actual_gain_loss_ref := l_gain_or_loss_ref;
150091 END IF;
150092 
150093 --
150094 
150095 
150096 --
150097 AcctLineType_217 (
150098  p_application_id  => p_application_id
150099  ,p_event_id     => l_event_id
150100  ,p_calculate_acctd_flag => l_calculate_acctd_flag
150101  ,p_calculate_g_l_flag => l_calculate_g_l_flag
150102  ,p_actual_flag => l_actual_flag
150103  ,p_balance_type_code => l_balance_type_code
150104  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
150105  
150106  , p_source_1 => l_array_source_1(Idx)
150107  , p_source_21 => l_array_source_21(Idx)
150108  , p_source_30 => l_array_source_30(Idx)
150109  , p_source_33 => l_array_source_33(Idx)
150110  , p_source_33_meaning => l_array_source_33_meaning(Idx)
150111  , p_source_53 => l_array_source_53(Idx)
150112  , p_source_55 => l_array_source_55(Idx)
150113  , p_source_57 => l_array_source_57(Idx)
150114  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
150115  , p_source_64 => l_array_source_64(Idx)
150116  , p_source_65 => l_array_source_65(Idx)
150117  , p_source_66 => l_array_source_66(Idx)
150118  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
150119  , p_source_68 => l_array_source_68(Idx)
150120  , p_source_69 => l_array_source_69(Idx)
150121  , p_source_70 => l_array_source_70(Idx)
150122  , p_source_71 => l_array_source_71(Idx)
150123  , p_source_72 => l_array_source_72(Idx)
150124  , p_source_73 => l_array_source_73(Idx)
150125  , p_source_77 => l_array_source_77(Idx)
150126  , p_source_78 => l_array_source_78(Idx)
150127  , p_source_79 => l_array_source_79(Idx)
150128  , p_source_80 => l_array_source_80(Idx)
150129  , p_source_80_meaning => l_array_source_80_meaning(Idx)
150130  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
150131  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
150132  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
150133  , p_source_84 => l_array_source_84(Idx)
150134  , p_source_86 => l_array_source_86(Idx)
150135  , p_source_87 => l_array_source_87(Idx)
150136  , p_source_88 => l_array_source_88(Idx)
150137  , p_source_89 => l_array_source_89(Idx)
150138  , p_source_90 => l_array_source_90(Idx)
150139  , p_source_91 => l_array_source_91(Idx)
150140  , p_source_92 => l_array_source_92(Idx)
150141  , p_source_93 => l_array_source_93(Idx)
150142  , p_source_94 => l_array_source_94(Idx)
150143  , p_source_95 => l_array_source_95(Idx)
150144  , p_source_96 => l_array_source_96(Idx)
150145  , p_source_96_meaning => l_array_source_96_meaning(Idx)
150146  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
150147  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
150148  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
150149  );
150150 If(l_balance_type_code = 'A') THEN
150151   l_actual_gain_loss_ref := l_gain_or_loss_ref;
150152 END IF;
150153 
150154 --
150155 
150156 
150157 --
150158 AcctLineType_221 (
150159  p_application_id  => p_application_id
150160  ,p_event_id     => l_event_id
150161  ,p_calculate_acctd_flag => l_calculate_acctd_flag
150162  ,p_calculate_g_l_flag => l_calculate_g_l_flag
150163  ,p_actual_flag => l_actual_flag
150164  ,p_balance_type_code => l_balance_type_code
150165  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
150166  
150170  , p_source_33 => l_array_source_33(Idx)
150167  , p_source_1 => l_array_source_1(Idx)
150168  , p_source_21 => l_array_source_21(Idx)
150169  , p_source_30 => l_array_source_30(Idx)
150171  , p_source_33_meaning => l_array_source_33_meaning(Idx)
150172  , p_source_53 => l_array_source_53(Idx)
150173  , p_source_55 => l_array_source_55(Idx)
150174  , p_source_57 => l_array_source_57(Idx)
150175  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
150176  , p_source_64 => l_array_source_64(Idx)
150177  , p_source_65 => l_array_source_65(Idx)
150178  , p_source_66 => l_array_source_66(Idx)
150179  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
150180  , p_source_68 => l_array_source_68(Idx)
150181  , p_source_69 => l_array_source_69(Idx)
150182  , p_source_70 => l_array_source_70(Idx)
150183  , p_source_71 => l_array_source_71(Idx)
150184  , p_source_72 => l_array_source_72(Idx)
150185  , p_source_73 => l_array_source_73(Idx)
150186  , p_source_77 => l_array_source_77(Idx)
150187  , p_source_78 => l_array_source_78(Idx)
150188  , p_source_79 => l_array_source_79(Idx)
150189  , p_source_80 => l_array_source_80(Idx)
150190  , p_source_80_meaning => l_array_source_80_meaning(Idx)
150191  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
150192  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
150193  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
150194  , p_source_84 => l_array_source_84(Idx)
150195  , p_source_86 => l_array_source_86(Idx)
150196  , p_source_87 => l_array_source_87(Idx)
150197  , p_source_88 => l_array_source_88(Idx)
150198  , p_source_89 => l_array_source_89(Idx)
150199  , p_source_90 => l_array_source_90(Idx)
150200  , p_source_91 => l_array_source_91(Idx)
150201  , p_source_92 => l_array_source_92(Idx)
150202  , p_source_93 => l_array_source_93(Idx)
150203  , p_source_94 => l_array_source_94(Idx)
150204  , p_source_95 => l_array_source_95(Idx)
150205  , p_source_96 => l_array_source_96(Idx)
150206  , p_source_96_meaning => l_array_source_96_meaning(Idx)
150207  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
150208  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
150209  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
150210  );
150211 If(l_balance_type_code = 'A') THEN
150212   l_actual_gain_loss_ref := l_gain_or_loss_ref;
150213 END IF;
150214 
150215 --
150216 
150217 
150218 --
150219 AcctLineType_227 (
150220  p_application_id  => p_application_id
150221  ,p_event_id     => l_event_id
150222  ,p_calculate_acctd_flag => l_calculate_acctd_flag
150223  ,p_calculate_g_l_flag => l_calculate_g_l_flag
150224  ,p_actual_flag => l_actual_flag
150225  ,p_balance_type_code => l_balance_type_code
150226  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
150227  
150228  , p_source_1 => l_array_source_1(Idx)
150229  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
150230  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
150231  , p_source_21 => l_array_source_21(Idx)
150232  , p_source_30 => l_array_source_30(Idx)
150233  , p_source_33 => l_array_source_33(Idx)
150234  , p_source_33_meaning => l_array_source_33_meaning(Idx)
150235  , p_source_43 => l_array_source_43(Idx)
150236  , p_source_53 => l_array_source_53(Idx)
150237  , p_source_55 => l_array_source_55(Idx)
150238  , p_source_57 => l_array_source_57(Idx)
150239  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
150240  , p_source_64 => l_array_source_64(Idx)
150241  , p_source_65 => l_array_source_65(Idx)
150242  , p_source_66 => l_array_source_66(Idx)
150243  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
150244  , p_source_68 => l_array_source_68(Idx)
150245  , p_source_69 => l_array_source_69(Idx)
150246  , p_source_70 => l_array_source_70(Idx)
150247  , p_source_71 => l_array_source_71(Idx)
150248  , p_source_72 => l_array_source_72(Idx)
150249  , p_source_73 => l_array_source_73(Idx)
150250  , p_source_77 => l_array_source_77(Idx)
150251  , p_source_78 => l_array_source_78(Idx)
150252  , p_source_79 => l_array_source_79(Idx)
150253  , p_source_80 => l_array_source_80(Idx)
150254  , p_source_80_meaning => l_array_source_80_meaning(Idx)
150255  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
150256  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
150257  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
150258  , p_source_84 => l_array_source_84(Idx)
150259  , p_source_86 => l_array_source_86(Idx)
150260  , p_source_87 => l_array_source_87(Idx)
150261  , p_source_88 => l_array_source_88(Idx)
150262  , p_source_89 => l_array_source_89(Idx)
150263  , p_source_90 => l_array_source_90(Idx)
150264  , p_source_91 => l_array_source_91(Idx)
150265  , p_source_92 => l_array_source_92(Idx)
150266  , p_source_93 => l_array_source_93(Idx)
150267  , p_source_94 => l_array_source_94(Idx)
150268  , p_source_95 => l_array_source_95(Idx)
150269  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
150270  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
150271  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
150272  );
150273 If(l_balance_type_code = 'A') THEN
150274   l_actual_gain_loss_ref := l_gain_or_loss_ref;
150275 END IF;
150276 
150277 --
150278 
150282       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
150279       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
150280       -- or secondary ledger that has different currency with primary
150281       -- or alc that is calculated by sla
150283             (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'))
150284 
150285 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
150286 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
150287           AND (l_actual_flag = 'A')) THEN
150288         XLA_AE_LINES_PKG.CreateGainOrLossLines(
150289           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
150290          ,p_application_id   => p_application_id
150291          ,p_amb_context_code => 'DEFAULT'
150292          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
150293          ,p_event_class_code => C_EVENT_CLASS_CODE
150294          ,p_event_type_code  => C_EVENT_TYPE_CODE
150295          
150296          ,p_gain_ccid        => -1
150297          ,p_loss_ccid        => -1
150298 
150299          ,p_actual_flag      => l_actual_flag
150300          ,p_enc_flag         => null
150301          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
150302          ,p_enc_g_l_ref      => null
150303          );
150304       END IF;
150305    END IF;
150306 END IF;
150307 
150308    ELSE
150309       --
150310       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
150311       --
150312       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
150313          trace
150314             (p_msg      => 'Trancaction revesal option is Y'
150315             ,p_level    => C_LEVEL_STATEMENT
150316             ,p_module   => l_log_module);
150317       END IF;
150318    END IF;
150319 
150320 END LOOP;
150321 l_result := XLA_AE_LINES_PKG.InsertLines ;
150322 end loop;
150323 close line_cur;
150324 
150325 
150326 --
150327 -- insert headers into xla_ae_headers_gt table
150328 --
150329 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
150330 
150331 -- insert into errors table here.
150332 
150333 END LOOP;
150334 
150335 --
150336 -- 4865292
150337 --
150338 -- Compare g_hdr_extract_count with event count in
150339 -- CreateHeadersAndLines.
150340 --
150341 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
150342 
150343 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
150344    trace (p_msg     => '# rows extracted from header extract objects '
150345                     || ' (running total): '
150346                     || g_hdr_extract_count
150347          ,p_level   => C_LEVEL_STATEMENT
150348          ,p_module  => l_log_module);
150349 END IF;
150350 
150351 CLOSE header_cur;
150352 --
150353 
150354 --
150355 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
150356    trace
150357       (p_msg      => 'END of EventClass_231'
150358       ,p_level    => C_LEVEL_PROCEDURE
150359       ,p_module   => l_log_module);
150360 END IF;
150361 --
150362 RETURN l_result;
150363 EXCEPTION
150364 WHEN xla_exceptions_pkg.application_exception THEN
150365    
150366 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
150367 
150368    
150369 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
150370 
150371    RAISE;
150372 
150373 WHEN NO_DATA_FOUND THEN
150374 
150375 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
150376 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
150377 
150378 FOR header_record IN header_cur
150379 LOOP
150380     l_array_header_events(header_record.event_id) := header_record.event_id;
150381 END LOOP;
150382 
150383 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
150384 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
150385 
150386 fnd_file.put_line(fnd_file.LOG, '                    ');
150387 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
150388 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
150389 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
150390 
150391 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
150392 LOOP
150393 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
150394 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
150395         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
150396 	END IF;
150397 END LOOP;
150398 
150399 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
150400 fnd_file.put_line(fnd_file.LOG, '                    ');
150401 
150402 
150403 xla_exceptions_pkg.raise_message
150404       (p_location => 'XLA_00200_AAD_S_000002_PKG.EventClass_231');
150405 
150406 
150407 WHEN OTHERS THEN
150408    xla_exceptions_pkg.raise_message
150409       (p_location => 'XLA_00200_AAD_S_000002_PKG.EventClass_231');
150410 END EventClass_231;
150411 --
150412 
150413 ---------------------------------------
150414 --
150415 -- PRIVATE PROCEDURE
150416 --         insert_sources_232
150417 --
150421                                 p_target_ledger_id       IN NUMBER
150418 ----------------------------------------
150419 --
150420 PROCEDURE insert_sources_232(
150422                               , p_language               IN VARCHAR2
150423                               , p_sla_ledger_id          IN NUMBER
150424                               , p_pad_start_date         IN DATE
150425                               , p_pad_end_date           IN DATE
150426                          )
150427 IS
150428 
150429 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'FUTURE DATED PAYMENTS_ALL';
150430 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'FUTURE DATED PAYMENTS';
150431 p_apps_owner                   VARCHAR2(30);
150432 l_log_module                   VARCHAR2(240);
150433 BEGIN
150434 IF g_log_enabled THEN
150435       l_log_module := C_DEFAULT_MODULE||'.insert_sources_232';
150436 END IF;
150437 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
150438 
150439       trace
150440          (p_msg      => 'BEGIN of insert_sources_232'
150441          ,p_level    => C_LEVEL_PROCEDURE
150442          ,p_module   => l_log_module);
150443 
150444 END IF;
150445 
150446 -- select APPS owner
150447 SELECT oracle_username
150448   INTO p_apps_owner
150449   FROM fnd_oracle_userid
150450  WHERE read_only_flag = 'U'
150451 ;
150452 
150453 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
150454       trace
150455          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
150456                         ' - p_language = '||p_language||
150457                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
150458                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
150459                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
150460                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
150461          ,p_level    => C_LEVEL_STATEMENT
150462          ,p_module   => l_log_module);
150463 END IF;
150464 
150465 
150466 --
150467 INSERT INTO xla_diag_sources --hdr2
150468 (
150469         event_id
150470       , ledger_id
150471       , sla_ledger_id
150472       , description_language
150473       , object_name
150474       , object_type_code
150475       , line_number
150476       , source_application_id
150477       , source_type_code
150478       , source_code
150479       , source_value
150480       , source_meaning
150481       , created_by
150482       , creation_date
150483       , last_update_date
150484       , last_updated_by
150485       , last_update_login
150486       , program_update_date
150487       , program_application_id
150488       , program_id
150489       , request_id
150490 )
150491 SELECT
150492         event_id
150493       , p_target_ledger_id
150494       , p_sla_ledger_id
150495       , p_language
150496       , object_name
150497       , object_type_code
150498       , line_number
150499       , source_application_id
150500       , source_type_code
150501       , source_code
150502       , SUBSTR(source_value ,1,1996)
150503       , SUBSTR(source_meaning ,1,200)
150504       , xla_environment_pkg.g_Usr_Id
150505       , TRUNC(SYSDATE)
150506       , TRUNC(SYSDATE)
150507       , xla_environment_pkg.g_Usr_Id
150508       , xla_environment_pkg.g_Login_Id
150509       , TRUNC(SYSDATE)
150510       , xla_environment_pkg.g_Prog_Appl_Id
150511       , xla_environment_pkg.g_Prog_Id
150512       , xla_environment_pkg.g_Req_Id
150513   FROM (
150514        SELECT xet.event_id                  event_id
150515             , 0                          line_number
150516             , CASE r
150517                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150518                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150519                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150520                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150521                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150522                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150523                 WHEN 7 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
150524                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150525                 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150526                 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150527                 WHEN 11 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
150528                 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150529                 WHEN 13 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
150530                 WHEN 14 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
150531                 WHEN 15 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
150532                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150533                 WHEN 17 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
150534                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150535                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150536                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150537                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150538                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150539                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150540                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150541                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150542                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
150543                 
150544                ELSE null
150545               END                           object_name
150546             , CASE r
150547                 WHEN 1 THEN 'HEADER' 
150551                 WHEN 5 THEN 'HEADER' 
150548                 WHEN 2 THEN 'HEADER' 
150549                 WHEN 3 THEN 'HEADER' 
150550                 WHEN 4 THEN 'HEADER' 
150552                 WHEN 6 THEN 'HEADER' 
150553                 WHEN 7 THEN 'HEADER' 
150554                 WHEN 8 THEN 'HEADER' 
150555                 WHEN 9 THEN 'HEADER' 
150556                 WHEN 10 THEN 'HEADER' 
150557                 WHEN 11 THEN 'HEADER' 
150558                 WHEN 12 THEN 'HEADER' 
150559                 WHEN 13 THEN 'HEADER' 
150560                 WHEN 14 THEN 'HEADER' 
150561                 WHEN 15 THEN 'HEADER' 
150562                 WHEN 16 THEN 'HEADER' 
150563                 WHEN 17 THEN 'HEADER' 
150564                 WHEN 18 THEN 'HEADER' 
150565                 WHEN 19 THEN 'HEADER' 
150566                 WHEN 20 THEN 'HEADER' 
150567                 WHEN 21 THEN 'HEADER' 
150568                 WHEN 22 THEN 'HEADER' 
150569                 WHEN 23 THEN 'HEADER' 
150570                 WHEN 24 THEN 'HEADER' 
150571                 WHEN 25 THEN 'HEADER' 
150572                 WHEN 26 THEN 'HEADER' 
150573                 
150574                 ELSE null
150575               END                           object_type_code
150576             , CASE r
150577                 WHEN 1 THEN '200' 
150578                 WHEN 2 THEN '200' 
150579                 WHEN 3 THEN '200' 
150580                 WHEN 4 THEN '200' 
150581                 WHEN 5 THEN '200' 
150582                 WHEN 6 THEN '200' 
150583                 WHEN 7 THEN '200' 
150584                 WHEN 8 THEN '200' 
150585                 WHEN 9 THEN '200' 
150586                 WHEN 10 THEN '200' 
150587                 WHEN 11 THEN '200' 
150588                 WHEN 12 THEN '200' 
150589                 WHEN 13 THEN '200' 
150590                 WHEN 14 THEN '200' 
150591                 WHEN 15 THEN '200' 
150592                 WHEN 16 THEN '200' 
150593                 WHEN 17 THEN '200' 
150594                 WHEN 18 THEN '200' 
150595                 WHEN 19 THEN '200' 
150596                 WHEN 20 THEN '200' 
150597                 WHEN 21 THEN '200' 
150598                 WHEN 22 THEN '200' 
150599                 WHEN 23 THEN '200' 
150600                 WHEN 24 THEN '200' 
150601                 WHEN 25 THEN '200' 
150602                 WHEN 26 THEN '200' 
150603                 
150604                 ELSE null
150605               END                           source_application_id
150606             , 'S'             source_type_code
150607             , CASE r
150608                 WHEN 1 THEN 'DOC_SEQUENCE_NAME' 
150609                 WHEN 2 THEN 'AC_DOC_SEQUENCE_VALUE' 
150610                 WHEN 3 THEN 'PAYMENT_TRANSACTION_NUMBER' 
150611                 WHEN 4 THEN 'AC_CHECK_DATE' 
150612                 WHEN 5 THEN 'CBA_BANK_ACCOUNT_NAME' 
150613                 WHEN 6 THEN 'AC_CURRENCY_CODE' 
150614                 WHEN 7 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
150615                 WHEN 8 THEN 'CGAC_AP_ASSET_CCID' 
150616                 WHEN 9 THEN 'CGAC_CASH_CLEARING_CCID' 
150617                 WHEN 10 THEN 'CGAC_GAIN_CCID' 
150618                 WHEN 11 THEN 'ASP_GAIN_CCID' 
150619                 WHEN 12 THEN 'CGAC_LOSS_CCID' 
150620                 WHEN 13 THEN 'ASP_LOSS_CCID' 
150621                 WHEN 14 THEN 'ASP_AUTO_OFFSET_FLAG' 
150622                 WHEN 15 THEN 'ASP_ROUNDING_ERROR_CCID' 
150623                 WHEN 16 THEN 'THIRD_PARTY_TYPE' 
150624                 WHEN 17 THEN 'ASP_WHEN_TO_ACCOUNT_PMT' 
150625                 WHEN 18 THEN 'AC_VENDOR_ID' 
150626                 WHEN 19 THEN 'AC_VENDOR_SITE_ID' 
150627                 WHEN 20 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG' 
150628                 WHEN 21 THEN 'AC_FUTURE_PAY_DUE_DATE' 
150629                 WHEN 22 THEN 'AC_EXCHANGE_DATE' 
150630                 WHEN 23 THEN 'AC_EXCHANGE_RATE' 
150631                 WHEN 24 THEN 'AC_EXCHANGE_RATE_TYPE' 
150632                 WHEN 25 THEN 'AC_DOC_CATEGORY_CODE' 
150633                 WHEN 26 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID' 
150634                 
150635                 ELSE null
150636               END                           source_code
150637             , CASE r
150638                 WHEN 1 THEN TO_CHAR(h2.DOC_SEQUENCE_NAME)
150639                 WHEN 2 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
150640                 WHEN 3 THEN TO_CHAR(h2.PAYMENT_TRANSACTION_NUMBER)
150641                 WHEN 4 THEN TO_CHAR(h2.AC_CHECK_DATE)
150642                 WHEN 5 THEN TO_CHAR(h2.CBA_BANK_ACCOUNT_NAME)
150643                 WHEN 6 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
150644                 WHEN 7 THEN TO_CHAR(h3.ASP_AUTOMATIC_OFFSETS_VALUE)
150645                 WHEN 8 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
150646                 WHEN 9 THEN TO_CHAR(h2.CGAC_CASH_CLEARING_CCID)
150647                 WHEN 10 THEN TO_CHAR(h2.CGAC_GAIN_CCID)
150648                 WHEN 11 THEN TO_CHAR(h3.ASP_GAIN_CCID)
150649                 WHEN 12 THEN TO_CHAR(h2.CGAC_LOSS_CCID)
150650                 WHEN 13 THEN TO_CHAR(h3.ASP_LOSS_CCID)
150651                 WHEN 14 THEN TO_CHAR(h3.ASP_AUTO_OFFSET_FLAG)
150652                 WHEN 15 THEN TO_CHAR(h3.ASP_ROUNDING_ERROR_CCID)
150653                 WHEN 16 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
150654                 WHEN 17 THEN TO_CHAR(h3.ASP_WHEN_TO_ACCOUNT_PMT)
150655                 WHEN 18 THEN TO_CHAR(h2.AC_VENDOR_ID)
150656                 WHEN 19 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
150657                 WHEN 20 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
150658                 WHEN 21 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
150662                 WHEN 25 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
150659                 WHEN 22 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
150660                 WHEN 23 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
150661                 WHEN 24 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
150663                 WHEN 26 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
150664                 
150665                 ELSE null
150666               END                           source_value
150667             , CASE r
150668                 WHEN 7 THEN fvl15.meaning
150669                 WHEN 14 THEN fvl47.meaning
150670                 WHEN 20 THEN fvl113.meaning
150671                 
150672                 ELSE null
150673               END               source_meaning
150674          FROM xla_events_gt     xet  
150675       , AP_PAYMENT_EXTRACT_HEADER_V  h2
150676       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
150677   , fnd_lookup_values    fvl15
150678   , fnd_lookup_values    fvl47
150679   , fnd_lookup_values    fvl113
150680              ,(select rownum r from all_objects where rownum <= 26 and owner = p_apps_owner)
150681          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
150682            AND xet.event_class_code = C_EVENT_CLASS_CODE
150683               AND h2.event_id = xet.event_id
150684  AND h3.asp_org_id = h2.ac_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
150685   AND fvl15.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
150686   AND fvl15.view_application_id(+) = 200
150687   AND fvl15.language(+)            = USERENV('LANG')
150688      AND fvl47.lookup_type(+)         = 'YES_NO'
150689   AND fvl47.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
150690   AND fvl47.view_application_id(+) = 0
150691   AND fvl47.language(+)            = USERENV('LANG')
150692      AND fvl113.lookup_type(+)         = 'YES_NO'
150693   AND fvl113.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
150694   AND fvl113.view_application_id(+) = 0
150695   AND fvl113.language(+)            = USERENV('LANG')
150696   
150697 )
150698 ;
150699 --
150700 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
150701 
150702       trace
150703          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
150704          ,p_level    => C_LEVEL_STATEMENT
150705          ,p_module   => l_log_module);
150706 
150707 END IF;
150708 --
150709 
150710 
150711 
150712 --
150713 INSERT INTO xla_diag_sources  --line2
150714 (
150715         event_id
150716       , ledger_id
150717       , sla_ledger_id
150718       , description_language
150719       , object_name
150720       , object_type_code
150721       , line_number
150722       , source_application_id
150723       , source_type_code
150724       , source_code
150725       , source_value
150726       , source_meaning
150727       , created_by
150728       , creation_date
150729       , last_update_date
150730       , last_updated_by
150731       , last_update_login
150732       , program_update_date
150733       , program_application_id
150734       , program_id
150735       , request_id
150736 )
150737 SELECT  event_id
150738       , p_target_ledger_id
150739       , p_sla_ledger_id
150740       , p_language
150741       , object_name
150742       , object_type_code
150743       , line_number
150744       , source_application_id
150745       , source_type_code
150746       , source_code
150747       , SUBSTR(source_value,1,1996)
150748       , SUBSTR(source_meaning ,1,200)
150749       , xla_environment_pkg.g_Usr_Id
150750       , TRUNC(SYSDATE)
150751       , TRUNC(SYSDATE)
150752       , xla_environment_pkg.g_Usr_Id
150753       , xla_environment_pkg.g_Login_Id
150754       , TRUNC(SYSDATE)
150755       , xla_environment_pkg.g_Prog_Appl_Id
150756       , xla_environment_pkg.g_Prog_Id
150757       , xla_environment_pkg.g_Req_Id
150758   FROM (
150759        SELECT xet.event_id                  event_id
150760             , l1.line_number                 line_number
150761             , CASE r
150762                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150763                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150764                 WHEN 3 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
150765                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150766                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150767                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150768                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150769                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150770                 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150771                 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150772                 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150773                 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150774                 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150775                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150776                 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150777                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150778                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150779                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150780                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150781                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150782                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150783                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150784                 WHEN 23 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
150788                ELSE null
150785                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150786                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
150787                 
150789               END                           object_name
150790             , CASE r
150791                 WHEN 1 THEN 'LINE' 
150792                 WHEN 2 THEN 'LINE' 
150793                 WHEN 3 THEN 'LINE' 
150794                 WHEN 4 THEN 'LINE' 
150795                 WHEN 5 THEN 'LINE' 
150796                 WHEN 6 THEN 'LINE' 
150797                 WHEN 7 THEN 'LINE' 
150798                 WHEN 8 THEN 'LINE' 
150799                 WHEN 9 THEN 'LINE' 
150800                 WHEN 10 THEN 'LINE' 
150801                 WHEN 11 THEN 'LINE' 
150802                 WHEN 12 THEN 'LINE' 
150803                 WHEN 13 THEN 'LINE' 
150804                 WHEN 14 THEN 'LINE' 
150805                 WHEN 15 THEN 'LINE' 
150806                 WHEN 16 THEN 'LINE' 
150807                 WHEN 17 THEN 'LINE' 
150808                 WHEN 18 THEN 'LINE' 
150809                 WHEN 19 THEN 'LINE' 
150810                 WHEN 20 THEN 'LINE' 
150811                 WHEN 21 THEN 'LINE' 
150812                 WHEN 22 THEN 'LINE' 
150813                 WHEN 23 THEN 'LINE' 
150814                 WHEN 24 THEN 'LINE' 
150815                 WHEN 25 THEN 'LINE' 
150816                 
150817                 ELSE null
150818               END                           object_type_code
150819             , CASE r
150820                 WHEN 1 THEN '200' 
150821                 WHEN 2 THEN '200' 
150822                 WHEN 3 THEN '200' 
150823                 WHEN 4 THEN '200' 
150824                 WHEN 5 THEN '200' 
150825                 WHEN 6 THEN '200' 
150826                 WHEN 7 THEN '200' 
150827                 WHEN 8 THEN '200' 
150828                 WHEN 9 THEN '200' 
150829                 WHEN 10 THEN '200' 
150830                 WHEN 11 THEN '200' 
150831                 WHEN 12 THEN '200' 
150832                 WHEN 13 THEN '200' 
150833                 WHEN 14 THEN '200' 
150834                 WHEN 15 THEN '200' 
150835                 WHEN 16 THEN '200' 
150836                 WHEN 17 THEN '200' 
150837                 WHEN 18 THEN '200' 
150838                 WHEN 19 THEN '200' 
150839                 WHEN 20 THEN '200' 
150840                 WHEN 21 THEN '200' 
150841                 WHEN 22 THEN '200' 
150842                 WHEN 23 THEN '200' 
150843                 WHEN 24 THEN '200' 
150844                 WHEN 25 THEN '200' 
150845                 
150846                 ELSE null
150847               END                           source_application_id
150848             , 'S'             source_type_code
150849             , CASE r
150850                 WHEN 1 THEN 'AID_DIST_CCID' 
150851                 WHEN 2 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
150852                 WHEN 3 THEN 'TAX_ACCOUNT_CCID' 
150853                 WHEN 4 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
150854                 WHEN 5 THEN 'DISTRIBUTION_LINK_TYPE' 
150855                 WHEN 6 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
150856                 WHEN 7 THEN 'BUS_FLOW_AP_APP_ID' 
150857                 WHEN 8 THEN 'BUS_FLOW_INV_DIST_TYPE' 
150858                 WHEN 9 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
150859                 WHEN 10 THEN 'BUS_FLOW_INV_DIST_ID' 
150860                 WHEN 11 THEN 'BUS_FLOW_INV_ID' 
150861                 WHEN 12 THEN 'APHD_PAY_DIST_LOOKUP_CODE' 
150862                 WHEN 13 THEN 'APHD_AMOUNT' 
150863                 WHEN 14 THEN 'BUS_FLOW_PAYMENT_DIST_TYPE' 
150864                 WHEN 15 THEN 'BUS_FLOW_PAYMENT_ENTITY_CODE' 
150865                 WHEN 16 THEN 'BUS_FLOW_PAYMENT_DIST_ID' 
150866                 WHEN 17 THEN 'BUS_FLOW_PAYMENT_ID' 
150867                 WHEN 18 THEN 'APHD_PAYMENT_HIST_DIST_ID' 
150868                 WHEN 19 THEN 'APHD_REV_PAY_HIST_DIST_ID' 
150869                 WHEN 20 THEN 'APHD_PAYMENT_BASE_AMT' 
150870                 WHEN 21 THEN 'APHD_INVOICE_BASE_AMT' 
150871                 WHEN 22 THEN 'APHD_MATURED_BASE_AMOUNT' 
150872                 WHEN 23 THEN 'DEF_REC_SETTLEMENT_OPTION_CODE' 
150873                 WHEN 24 THEN 'PMT_MAT_BASE_AMT_DIFF' 
150874                 WHEN 25 THEN 'PMT_MAT_GAIN_LOSS_INDICATOR' 
150875                 
150876                 ELSE null
150877               END                           source_code
150878             , CASE r
150879                 WHEN 1 THEN TO_CHAR(l1.AID_DIST_CCID)
150880                 WHEN 2 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
150881                 WHEN 3 THEN TO_CHAR(l4.TAX_ACCOUNT_CCID)
150882                 WHEN 4 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
150883                 WHEN 5 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
150884                 WHEN 6 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
150885                 WHEN 7 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
150886                 WHEN 8 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
150887                 WHEN 9 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
150888                 WHEN 10 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
150889                 WHEN 11 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
150890                 WHEN 12 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
150891                 WHEN 13 THEN TO_CHAR(l1.APHD_AMOUNT)
150892                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_TYPE)
150893                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ENTITY_CODE)
150894                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_ID)
150895                 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ID)
150896                 WHEN 18 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
150900                 WHEN 22 THEN TO_CHAR(l1.APHD_MATURED_BASE_AMOUNT)
150897                 WHEN 19 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
150898                 WHEN 20 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
150899                 WHEN 21 THEN TO_CHAR(l1.APHD_INVOICE_BASE_AMT)
150901                 WHEN 23 THEN TO_CHAR(l4.DEF_REC_SETTLEMENT_OPTION_CODE)
150902                 WHEN 24 THEN TO_CHAR(l1.PMT_MAT_BASE_AMT_DIFF)
150903                 WHEN 25 THEN TO_CHAR(l1.PMT_MAT_GAIN_LOSS_INDICATOR)
150904                 
150905                 ELSE null
150906               END                           source_value
150907             , CASE r
150908                 WHEN 2 THEN fvl33.meaning
150909                 WHEN 6 THEN fvl80.meaning
150910                 WHEN 12 THEN fvl98.meaning
150911                 WHEN 23 THEN fvl137.meaning
150912                 
150913                 ELSE null
150914               END               source_meaning
150915          FROM  xla_events_gt     xet  
150916         , AP_PAYMENT_EXTRACT_DETAILS_V  l1
150917         , ZX_AP_DEF_TAX_EXTRACT_V  l4
150918   , fnd_lookup_values    fvl33
150919   , fnd_lookup_values    fvl80
150920   , fnd_lookup_values    fvl98
150921   , fnd_lookup_values    fvl137
150922             , (select rownum r from all_objects where rownum <= 25 and owner = p_apps_owner)
150923         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
150924           AND xet.event_class_code = C_EVENT_CLASS_CODE
150925             AND l1.event_id          = xet.event_id
150926  AND l1.aid_detail_tax_dist_id = l4.rec_nrec_tax_dist_id (+)    AND fvl33.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
150927   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
150928   AND fvl33.view_application_id(+) = 200
150929   AND fvl33.language(+)            = USERENV('LANG')
150930      AND fvl80.lookup_type(+)         = 'YES_NO'
150931   AND fvl80.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
150932   AND fvl80.view_application_id(+) = 0
150933   AND fvl80.language(+)            = USERENV('LANG')
150934      AND fvl98.lookup_type(+)         = 'PAY_DIST_TYPES'
150935   AND fvl98.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
150936   AND fvl98.view_application_id(+) = 200
150937   AND fvl98.language(+)            = USERENV('LANG')
150938      AND fvl137.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
150939   AND fvl137.lookup_code(+)         = l4.DEF_REC_SETTLEMENT_OPTION_CODE
150940   AND fvl137.view_application_id(+) = 0
150941   AND fvl137.language(+)            = USERENV('LANG')
150942   
150943 )
150944 ;
150945 --
150946 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
150947 
150948       trace
150949          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
150950          ,p_level    => C_LEVEL_STATEMENT
150951          ,p_module   => l_log_module);
150952 
150953 END IF;
150954 
150955 
150956 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
150957       trace
150958          (p_msg      => 'END of insert_sources_232'
150959          ,p_level    => C_LEVEL_PROCEDURE
150960          ,p_module   => l_log_module);
150961 END IF;
150962 EXCEPTION
150963   WHEN xla_exceptions_pkg.application_exception THEN
150964       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
150965             trace
150966                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
150967                ,p_level    => C_LEVEL_EXCEPTION
150968                ,p_module   => l_log_module);
150969       END IF;
150970       RAISE;
150971   WHEN OTHERS THEN
150972       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
150973             trace
150974                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
150975                ,p_level    => C_LEVEL_EXCEPTION
150976                ,p_module   => l_log_module);
150977        END IF;
150978        xla_exceptions_pkg.raise_message
150979            (p_location => 'XLA_00200_AAD_S_000002_PKG.insert_sources_232');
150980 END insert_sources_232;
150981 --
150982 
150983 ---------------------------------------
150984 --
150985 -- PRIVATE FUNCTION
150986 --         EventClass_232
150987 --
150988 ----------------------------------------
150989 --
150990 FUNCTION EventClass_232
150991        (p_application_id         IN NUMBER
150992        ,p_base_ledger_id         IN NUMBER
150993        ,p_target_ledger_id       IN NUMBER
150994        ,p_language               IN VARCHAR2
150995        ,p_currency_code          IN VARCHAR2
150996        ,p_sla_ledger_id          IN NUMBER
150997        ,p_pad_start_date         IN DATE
150998        ,p_pad_end_date           IN DATE
150999        ,p_primary_ledger_id      IN NUMBER)
151000 RETURN BOOLEAN IS
151001 --
151002 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'FUTURE DATED PAYMENTS_ALL';
151003 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'FUTURE DATED PAYMENTS';
151004 
151005 l_calculate_acctd_flag   VARCHAR2(1) :='N';
151006 l_calculate_g_l_flag     VARCHAR2(1) :='N';
151007 --
151008 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
151009 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
151010 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
151011 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
151012 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
151013 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
151014 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
151018 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
151015 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
151016 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
151017 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
151019 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
151020 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
151021 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
151022 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
151023 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
151024 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
151025 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
151026 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
151027 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
151028 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
151029 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
151030 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
151031 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
151032 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
151033 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
151034 
151035 l_event_id                             NUMBER;
151036 l_previous_event_id                    NUMBER;
151037 l_first_event_id                       NUMBER;
151038 l_last_event_id                        NUMBER;
151039 
151040 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
151041 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
151042 --
151043 --
151044 l_result                    BOOLEAN := TRUE;
151045 l_rows                      NUMBER  := 1000;
151046 l_event_type_name           VARCHAR2(80) := 'All';
151047 l_event_class_name          VARCHAR2(80) := 'Future Dated Payments';
151048 l_description               VARCHAR2(4000);
151049 l_transaction_reversal      NUMBER;
151050 l_ae_header_id              NUMBER;
151051 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
151052 l_log_module                VARCHAR2(240);
151053 --
151054 l_acct_reversal_source      VARCHAR2(30);
151055 l_trx_reversal_source       VARCHAR2(30);
151056 
151057 l_continue_with_lines       BOOLEAN := TRUE;
151058 --
151059 l_acc_rev_gl_date_source    DATE;                      -- 4262811
151060 --
151061 type t_array_event_id is table of number index by binary_integer;
151062 
151063 l_rec_array_event                    t_rec_array_event;
151064 l_null_rec_array_event               t_rec_array_event;
151065 l_array_ae_header_id                 xla_number_array_type;
151066 l_actual_flag                        VARCHAR2(1) := NULL;
151067 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
151068 l_balance_type_code                  VARCHAR2(1) :=NULL;
151069 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
151070 
151071 --
151072 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
151073 --
151074 
151075 TYPE t_array_source_6 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.DOC_SEQUENCE_NAME%TYPE INDEX BY BINARY_INTEGER;
151076 TYPE t_array_source_9 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
151077 TYPE t_array_source_10 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TRANSACTION_NUMBER%TYPE INDEX BY BINARY_INTEGER;
151078 TYPE t_array_source_11 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CHECK_DATE%TYPE INDEX BY BINARY_INTEGER;
151079 TYPE t_array_source_12 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_BANK_ACCOUNT_NAME%TYPE INDEX BY BINARY_INTEGER;
151080 TYPE t_array_source_13 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
151081 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
151082 TYPE t_array_source_17 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
151083 TYPE t_array_source_35 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_CASH_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
151084 TYPE t_array_source_36 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
151085 TYPE t_array_source_37 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
151086 TYPE t_array_source_38 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
151087 TYPE t_array_source_39 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
151088 TYPE t_array_source_47 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
151089 TYPE t_array_source_49 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
151090 TYPE t_array_source_83 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
151091 TYPE t_array_source_97 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
151092 TYPE t_array_source_110 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
151093 TYPE t_array_source_111 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
151094 TYPE t_array_source_113 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
151098 TYPE t_array_source_119 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
151095 TYPE t_array_source_114 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
151096 TYPE t_array_source_117 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
151097 TYPE t_array_source_118 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
151099 TYPE t_array_source_170 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
151100 TYPE t_array_source_171 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
151101 
151102 TYPE t_array_source_30 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
151103 TYPE t_array_source_33 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
151104 TYPE t_array_source_52 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_ACCOUNT_CCID%TYPE INDEX BY BINARY_INTEGER;
151105 TYPE t_array_source_53 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
151106 TYPE t_array_source_55 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
151107 TYPE t_array_source_80 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
151108 TYPE t_array_source_91 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
151109 TYPE t_array_source_92 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
151110 TYPE t_array_source_93 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
151111 TYPE t_array_source_94 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
151112 TYPE t_array_source_95 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
151113 TYPE t_array_source_98 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
151114 TYPE t_array_source_99 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
151115 TYPE t_array_source_100 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
151116 TYPE t_array_source_101 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
151117 TYPE t_array_source_102 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
151118 TYPE t_array_source_103 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ID%TYPE INDEX BY BINARY_INTEGER;
151119 TYPE t_array_source_104 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
151120 TYPE t_array_source_112 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
151121 TYPE t_array_source_115 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
151122 TYPE t_array_source_116 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INVOICE_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
151123 TYPE t_array_source_121 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_MATURED_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
151124 TYPE t_array_source_137 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.DEF_REC_SETTLEMENT_OPTION_CODE%TYPE INDEX BY BINARY_INTEGER;
151125 TYPE t_array_source_154 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_MAT_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
151126 TYPE t_array_source_161 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_MAT_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
151127 
151128 l_array_source_6              t_array_source_6;
151129 l_array_source_9              t_array_source_9;
151130 l_array_source_10              t_array_source_10;
151131 l_array_source_11              t_array_source_11;
151132 l_array_source_12              t_array_source_12;
151133 l_array_source_13              t_array_source_13;
151134 l_array_source_15              t_array_source_15;
151135 l_array_source_15_meaning      t_array_lookup_meaning;
151136 l_array_source_17              t_array_source_17;
151137 l_array_source_35              t_array_source_35;
151138 l_array_source_36              t_array_source_36;
151139 l_array_source_37              t_array_source_37;
151140 l_array_source_38              t_array_source_38;
151141 l_array_source_39              t_array_source_39;
151142 l_array_source_47              t_array_source_47;
151143 l_array_source_47_meaning      t_array_lookup_meaning;
151144 l_array_source_49              t_array_source_49;
151145 l_array_source_83              t_array_source_83;
151146 l_array_source_97              t_array_source_97;
151147 l_array_source_110              t_array_source_110;
151148 l_array_source_111              t_array_source_111;
151149 l_array_source_113              t_array_source_113;
151150 l_array_source_113_meaning      t_array_lookup_meaning;
151151 l_array_source_114              t_array_source_114;
151152 l_array_source_117              t_array_source_117;
151153 l_array_source_118              t_array_source_118;
151154 l_array_source_119              t_array_source_119;
151155 l_array_source_170              t_array_source_170;
151156 l_array_source_171              t_array_source_171;
151157 
151158 l_array_source_30      t_array_source_30;
151159 l_array_source_33      t_array_source_33;
151160 l_array_source_33_meaning      t_array_lookup_meaning;
151161 l_array_source_52      t_array_source_52;
151162 l_array_source_53      t_array_source_53;
151163 l_array_source_55      t_array_source_55;
151164 l_array_source_80      t_array_source_80;
151165 l_array_source_80_meaning      t_array_lookup_meaning;
151166 l_array_source_91      t_array_source_91;
151170 l_array_source_95      t_array_source_95;
151167 l_array_source_92      t_array_source_92;
151168 l_array_source_93      t_array_source_93;
151169 l_array_source_94      t_array_source_94;
151171 l_array_source_98      t_array_source_98;
151172 l_array_source_98_meaning      t_array_lookup_meaning;
151173 l_array_source_99      t_array_source_99;
151174 l_array_source_100      t_array_source_100;
151175 l_array_source_101      t_array_source_101;
151176 l_array_source_102      t_array_source_102;
151177 l_array_source_103      t_array_source_103;
151178 l_array_source_104      t_array_source_104;
151179 l_array_source_112      t_array_source_112;
151180 l_array_source_115      t_array_source_115;
151181 l_array_source_116      t_array_source_116;
151182 l_array_source_121      t_array_source_121;
151183 l_array_source_137      t_array_source_137;
151184 l_array_source_137_meaning      t_array_lookup_meaning;
151185 l_array_source_154      t_array_source_154;
151186 l_array_source_161      t_array_source_161;
151187 
151188 --
151189 CURSOR header_cur
151190 IS
151191 SELECT /*+ leading(xet) cardinality(xet,1) */
151192 -- Event Class Code: FUTURE DATED PAYMENTS
151193     xet.entity_id
151194    ,xet.legal_entity_id
151195    ,xet.entity_code
151196    ,xet.transaction_number
151197    ,xet.event_id
151198    ,xet.event_class_code
151199    ,xet.event_type_code
151200    ,xet.event_number
151201    ,xet.event_date
151202    ,xet.transaction_date
151203    ,xet.reference_num_1
151204    ,xet.reference_num_2
151205    ,xet.reference_num_3
151206    ,xet.reference_num_4
151207    ,xet.reference_char_1
151208    ,xet.reference_char_2
151209    ,xet.reference_char_3
151210    ,xet.reference_char_4
151211    ,xet.reference_date_1
151212    ,xet.reference_date_2
151213    ,xet.reference_date_3
151214    ,xet.reference_date_4
151215    ,xet.event_created_by
151216    ,xet.budgetary_control_flag 
151217   , h2.DOC_SEQUENCE_NAME    source_6
151218   , h2.AC_DOC_SEQUENCE_VALUE    source_9
151219   , h2.PAYMENT_TRANSACTION_NUMBER    source_10
151220   , h2.AC_CHECK_DATE    source_11
151221   , h2.CBA_BANK_ACCOUNT_NAME    source_12
151222   , h2.AC_CURRENCY_CODE    source_13
151223   , h3.ASP_AUTOMATIC_OFFSETS_VALUE    source_15
151224   , fvl15.meaning   source_15_meaning
151225   , h2.CGAC_AP_ASSET_CCID    source_17
151226   , h2.CGAC_CASH_CLEARING_CCID    source_35
151227   , h2.CGAC_GAIN_CCID    source_36
151228   , h3.ASP_GAIN_CCID    source_37
151229   , h2.CGAC_LOSS_CCID    source_38
151230   , h3.ASP_LOSS_CCID    source_39
151231   , h3.ASP_AUTO_OFFSET_FLAG    source_47
151232   , fvl47.meaning   source_47_meaning
151233   , h3.ASP_ROUNDING_ERROR_CCID    source_49
151234   , h2.THIRD_PARTY_TYPE    source_83
151235   , h3.ASP_WHEN_TO_ACCOUNT_PMT    source_97
151236   , h2.AC_VENDOR_ID    source_110
151237   , h2.AC_VENDOR_SITE_ID    source_111
151238   , h2.CBA_POOLED_BANK_ACOUNT_FLAG    source_113
151239   , fvl113.meaning   source_113_meaning
151240   , h2.AC_FUTURE_PAY_DUE_DATE    source_114
151241   , h2.AC_EXCHANGE_DATE    source_117
151242   , h2.AC_EXCHANGE_RATE    source_118
151243   , h2.AC_EXCHANGE_RATE_TYPE    source_119
151244   , h2.AC_DOC_CATEGORY_CODE    source_170
151245   , h2.PAYMENT_DOCUMENT_SEQUENCE_ID    source_171
151246   FROM xla_events_gt     xet 
151247   , AP_PAYMENT_EXTRACT_HEADER_V  h2
151248   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
151249   , fnd_lookup_values    fvl15
151250   , fnd_lookup_values    fvl47
151251   , fnd_lookup_values    fvl113
151252  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
151253    and xet.event_class_code = C_EVENT_CLASS_CODE
151254    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
151255  AND h3.asp_org_id = h2.ac_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
151256   AND fvl15.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
151257   AND fvl15.view_application_id(+) = 200
151258   AND fvl15.language(+)            = USERENV('LANG')
151259      AND fvl47.lookup_type(+)         = 'YES_NO'
151260   AND fvl47.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
151261   AND fvl47.view_application_id(+) = 0
151262   AND fvl47.language(+)            = USERENV('LANG')
151263      AND fvl113.lookup_type(+)         = 'YES_NO'
151264   AND fvl113.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
151265   AND fvl113.view_application_id(+) = 0
151266   AND fvl113.language(+)            = USERENV('LANG')
151267   
151268  ORDER BY event_id
151269 ;
151270 
151271 
151272 --
151273 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
151274 IS
151275 SELECT  /*+ leading(xet) cardinality(xet,1) */
151276 -- Event Class Code: FUTURE DATED PAYMENTS
151277     xet.entity_id
151278    ,xet.legal_entity_id
151279    ,xet.entity_code
151280    ,xet.transaction_number
151281    ,xet.event_id
151282    ,xet.event_class_code
151283    ,xet.event_type_code
151284    ,xet.event_number
151285    ,xet.event_date
151286    ,xet.transaction_date
151287    ,xet.reference_num_1
151288    ,xet.reference_num_2
151289    ,xet.reference_num_3
151290    ,xet.reference_num_4
151291    ,xet.reference_char_1
151292    ,xet.reference_char_2
151293    ,xet.reference_char_3
151294    ,xet.reference_char_4
151295    ,xet.reference_date_1
151296    ,xet.reference_date_2
151297    ,xet.reference_date_3
151298    ,xet.reference_date_4
151299    ,xet.event_created_by
151300    ,xet.budgetary_control_flag
151301  , l1.LINE_NUMBER  
151305   , l4.TAX_ACCOUNT_CCID    source_52
151302   , l1.AID_DIST_CCID    source_30
151303   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_33
151304   , fvl33.meaning   source_33_meaning
151306   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_53
151307   , l1.DISTRIBUTION_LINK_TYPE    source_55
151308   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_80
151309   , fvl80.meaning   source_80_meaning
151310   , l1.BUS_FLOW_AP_APP_ID    source_91
151311   , l1.BUS_FLOW_INV_DIST_TYPE    source_92
151312   , l1.BUS_FLOW_INV_ENTITY_CODE    source_93
151313   , l1.BUS_FLOW_INV_DIST_ID    source_94
151314   , l1.BUS_FLOW_INV_ID    source_95
151315   , l1.APHD_PAY_DIST_LOOKUP_CODE    source_98
151316   , fvl98.meaning   source_98_meaning
151317   , l1.APHD_AMOUNT    source_99
151318   , l1.BUS_FLOW_PAYMENT_DIST_TYPE    source_100
151319   , l1.BUS_FLOW_PAYMENT_ENTITY_CODE    source_101
151320   , l1.BUS_FLOW_PAYMENT_DIST_ID    source_102
151321   , l1.BUS_FLOW_PAYMENT_ID    source_103
151322   , l1.APHD_PAYMENT_HIST_DIST_ID    source_104
151323   , l1.APHD_REV_PAY_HIST_DIST_ID    source_112
151324   , l1.APHD_PAYMENT_BASE_AMT    source_115
151325   , l1.APHD_INVOICE_BASE_AMT    source_116
151326   , l1.APHD_MATURED_BASE_AMOUNT    source_121
151327   , l4.DEF_REC_SETTLEMENT_OPTION_CODE    source_137
151328   , fvl137.meaning   source_137_meaning
151329   , l1.PMT_MAT_BASE_AMT_DIFF    source_154
151330   , l1.PMT_MAT_GAIN_LOSS_INDICATOR    source_161
151331   FROM xla_events_gt     xet 
151332   , AP_PAYMENT_EXTRACT_DETAILS_V  l1
151333   , ZX_AP_DEF_TAX_EXTRACT_V  l4
151334   , fnd_lookup_values    fvl33
151335   , fnd_lookup_values    fvl80
151336   , fnd_lookup_values    fvl98
151337   , fnd_lookup_values    fvl137
151338  WHERE xet.event_id between x_first_event_id and x_last_event_id
151339    and xet.event_date between p_pad_start_date and p_pad_end_date
151340    and xet.event_class_code = C_EVENT_CLASS_CODE
151341    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
151342  AND l1.AID_DETAIL_TAX_DIST_ID = l4.REC_NREC_TAX_DIST_ID (+)    AND fvl33.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
151343   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
151344   AND fvl33.view_application_id(+) = 200
151345   AND fvl33.language(+)            = USERENV('LANG')
151346      AND fvl80.lookup_type(+)         = 'YES_NO'
151347   AND fvl80.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
151348   AND fvl80.view_application_id(+) = 0
151349   AND fvl80.language(+)            = USERENV('LANG')
151350      AND fvl98.lookup_type(+)         = 'PAY_DIST_TYPES'
151351   AND fvl98.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
151352   AND fvl98.view_application_id(+) = 200
151353   AND fvl98.language(+)            = USERENV('LANG')
151354      AND fvl137.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
151355   AND fvl137.lookup_code(+)         = l4.DEF_REC_SETTLEMENT_OPTION_CODE
151356   AND fvl137.view_application_id(+) = 0
151357   AND fvl137.language(+)            = USERENV('LANG')
151358   ;
151359 
151360 --
151361 BEGIN
151362 IF g_log_enabled THEN
151363    l_log_module := C_DEFAULT_MODULE||'.EventClass_232';
151364 END IF;
151365 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
151366    trace
151367       (p_msg      => 'BEGIN of EventClass_232'
151368       ,p_level    => C_LEVEL_PROCEDURE
151369       ,p_module   => l_log_module);
151370 END IF;
151371 
151372 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
151373    trace
151374       (p_msg      => 'p_application_id = '||p_application_id||
151375                      ' - p_base_ledger_id = '||p_base_ledger_id||
151376                      ' - p_target_ledger_id  = '||p_target_ledger_id||
151377                      ' - p_language = '||p_language||
151378                      ' - p_currency_code = '||p_currency_code||
151379                      ' - p_sla_ledger_id = '||p_sla_ledger_id
151380       ,p_level    => C_LEVEL_STATEMENT
151381       ,p_module   => l_log_module);
151382 END IF;
151383 --
151384 -- initialze arrays
151385 --
151386 g_array_event.DELETE;
151387 l_rec_array_event := l_null_rec_array_event;
151388 --
151389 --------------------------------------
151390 -- 4262811 Initialze MPA Line Number
151391 --------------------------------------
151392 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
151393 
151394 --
151395 
151396 --
151397 OPEN header_cur;
151398 --
151399 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
151400    trace
151401    (p_msg      => 'SQL - FETCH header_cur'
151402    ,p_level    => C_LEVEL_STATEMENT
151403    ,p_module   => l_log_module);
151404 END IF;
151405 --
151406 LOOP
151407 FETCH header_cur BULK COLLECT INTO
151408         l_array_entity_id
151409       , l_array_legal_entity_id
151410       , l_array_entity_code
151411       , l_array_transaction_num
151412       , l_array_event_id
151413       , l_array_class_code
151414       , l_array_event_type
151415       , l_array_event_number
151416       , l_array_event_date
151417       , l_array_transaction_date
151418       , l_array_reference_num_1
151419       , l_array_reference_num_2
151420       , l_array_reference_num_3
151421       , l_array_reference_num_4
151422       , l_array_reference_char_1
151423       , l_array_reference_char_2
151424       , l_array_reference_char_3
151425       , l_array_reference_char_4
151426       , l_array_reference_date_1
151427       , l_array_reference_date_2
151428       , l_array_reference_date_3
151429       , l_array_reference_date_4
151430       , l_array_event_created_by
151434       , l_array_source_10
151431       , l_array_budgetary_control_flag 
151432       , l_array_source_6
151433       , l_array_source_9
151435       , l_array_source_11
151436       , l_array_source_12
151437       , l_array_source_13
151438       , l_array_source_15
151439       , l_array_source_15_meaning
151440       , l_array_source_17
151441       , l_array_source_35
151442       , l_array_source_36
151443       , l_array_source_37
151444       , l_array_source_38
151445       , l_array_source_39
151446       , l_array_source_47
151447       , l_array_source_47_meaning
151448       , l_array_source_49
151449       , l_array_source_83
151450       , l_array_source_97
151451       , l_array_source_110
151452       , l_array_source_111
151453       , l_array_source_113
151454       , l_array_source_113_meaning
151455       , l_array_source_114
151456       , l_array_source_117
151457       , l_array_source_118
151458       , l_array_source_119
151459       , l_array_source_170
151460       , l_array_source_171
151461       LIMIT l_rows;
151462 --
151463 IF (C_LEVEL_EVENT >= g_log_level) THEN
151464    trace
151465    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
151466    ,p_level    => C_LEVEL_EVENT
151467    ,p_module   => l_log_module);
151468 END IF;
151469 --
151470 EXIT WHEN l_array_entity_id.COUNT = 0;
151471 
151472 -- initialize arrays
151473 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
151474 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
151475 
151476 --
151477 -- Bug 4458708
151478 --
151479 XLA_AE_LINES_PKG.g_LineNumber := 0;
151480 
151481 
151482 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
151483 g_last_hdr_idx := l_array_event_id.LAST;
151484 --
151485 -- loop for the headers. Each iteration is for each header extract row
151486 -- fetched in header cursor
151487 --
151488 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
151489 
151490 --
151491 -- set event info as cache for other routines to refer event attributes
151492 --
151493 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
151494    (p_application_id           => p_application_id
151495    ,p_primary_ledger_id        => p_primary_ledger_id
151496    ,p_base_ledger_id           => p_base_ledger_id
151497    ,p_target_ledger_id         => p_target_ledger_id
151498    ,p_entity_id                => l_array_entity_id(hdr_idx)
151499    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
151500    ,p_entity_code              => l_array_entity_code(hdr_idx)
151501    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
151502    ,p_event_id                 => l_array_event_id(hdr_idx)
151503    ,p_event_class_code         => l_array_class_code(hdr_idx)
151504    ,p_event_type_code          => l_array_event_type(hdr_idx)
151505    ,p_event_number             => l_array_event_number(hdr_idx)
151506    ,p_event_date               => l_array_event_date(hdr_idx)
151507    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
151508    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
151509    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
151510    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
151511    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
151512    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
151513    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
151514    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
151515    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
151516    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
151517    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
151518    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
151519    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
151520    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
151521    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
151522 
151523 --
151524 -- set the status of entry to C_VALID (0)
151525 --
151526 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
151527 
151528 --
151529 -- initialize a row for ae header
151530 --
151531 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
151532 
151533 l_event_id := l_array_event_id(hdr_idx);
151534 
151535 --
151536 -- storing the hdr_idx for event. May be used by line cursor.
151537 --
151538 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
151539 
151540 --
151541 -- store sources from header extract. This can be improved to
151542 -- store only those sources from header extract that may be used in lines
151543 --
151544 
151545 g_array_event(l_event_id).array_value_char('source_6') := l_array_source_6(hdr_idx);
151546 g_array_event(l_event_id).array_value_num('source_9') := l_array_source_9(hdr_idx);
151547 g_array_event(l_event_id).array_value_num('source_10') := l_array_source_10(hdr_idx);
151548 g_array_event(l_event_id).array_value_date('source_11') := l_array_source_11(hdr_idx);
151549 g_array_event(l_event_id).array_value_char('source_12') := l_array_source_12(hdr_idx);
151550 g_array_event(l_event_id).array_value_char('source_13') := l_array_source_13(hdr_idx);
151551 g_array_event(l_event_id).array_value_char('source_15') := l_array_source_15(hdr_idx);
151555 g_array_event(l_event_id).array_value_num('source_36') := l_array_source_36(hdr_idx);
151552 g_array_event(l_event_id).array_value_char('source_15_meaning') := l_array_source_15_meaning(hdr_idx);
151553 g_array_event(l_event_id).array_value_num('source_17') := l_array_source_17(hdr_idx);
151554 g_array_event(l_event_id).array_value_num('source_35') := l_array_source_35(hdr_idx);
151556 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
151557 g_array_event(l_event_id).array_value_num('source_38') := l_array_source_38(hdr_idx);
151558 g_array_event(l_event_id).array_value_num('source_39') := l_array_source_39(hdr_idx);
151559 g_array_event(l_event_id).array_value_char('source_47') := l_array_source_47(hdr_idx);
151560 g_array_event(l_event_id).array_value_char('source_47_meaning') := l_array_source_47_meaning(hdr_idx);
151561 g_array_event(l_event_id).array_value_num('source_49') := l_array_source_49(hdr_idx);
151562 g_array_event(l_event_id).array_value_char('source_83') := l_array_source_83(hdr_idx);
151563 g_array_event(l_event_id).array_value_char('source_97') := l_array_source_97(hdr_idx);
151564 g_array_event(l_event_id).array_value_num('source_110') := l_array_source_110(hdr_idx);
151565 g_array_event(l_event_id).array_value_num('source_111') := l_array_source_111(hdr_idx);
151566 g_array_event(l_event_id).array_value_char('source_113') := l_array_source_113(hdr_idx);
151567 g_array_event(l_event_id).array_value_char('source_113_meaning') := l_array_source_113_meaning(hdr_idx);
151568 g_array_event(l_event_id).array_value_date('source_114') := l_array_source_114(hdr_idx);
151569 g_array_event(l_event_id).array_value_date('source_117') := l_array_source_117(hdr_idx);
151570 g_array_event(l_event_id).array_value_num('source_118') := l_array_source_118(hdr_idx);
151571 g_array_event(l_event_id).array_value_char('source_119') := l_array_source_119(hdr_idx);
151572 g_array_event(l_event_id).array_value_char('source_170') := l_array_source_170(hdr_idx);
151573 g_array_event(l_event_id).array_value_num('source_171') := l_array_source_171(hdr_idx);
151574 
151575 --
151576 -- initilaize the status of ae headers for diffrent balance types
151577 -- the status is initialised to C_NOT_CREATED (2)
151578 --
151579 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
151580 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
151581 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
151582 
151583 --
151584 -- call api to validate and store accounting attributes for header
151585 --
151586 
151587 ------------------------------------------------------------
151588 -- Accrual Reversal : to get date for Standard Source (NONE)
151589 ------------------------------------------------------------
151590 l_acc_rev_gl_date_source := NULL;
151591 
151592      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
151593       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_170');
151594      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
151595       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_171');
151596      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
151597       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_9');
151598      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
151599       l_rec_acct_attrs.array_date_value(4) := 
151600 xla_ae_sources_pkg.GetSystemSourceDate(
151601    p_source_code           => 'XLA_EVENT_DATE'
151602  , p_source_type_code      => 'Y'
151603  , p_source_application_id =>  602
151604 );
151605 
151606 
151607 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
151608 
151609 XLA_AE_HEADER_PKG.SetJeCategoryName;
151610 
151611 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
151612 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
151613 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
151614 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
151615 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
151616 
151617 
151618 --
151619 xla_ae_header_pkg.SetHdrDescription(
151620    p_description => Description_3 (
151621    p_application_id => p_application_id 
151622  , p_source_6 => g_array_event(l_event_id).array_value_char('source_6')
151623  , p_source_9 => g_array_event(l_event_id).array_value_num('source_9')
151624  , p_source_10 => g_array_event(l_event_id).array_value_num('source_10')
151625  , p_source_11 => g_array_event(l_event_id).array_value_date('source_11')
151626  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
151627  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
151628    )
151629 );
151630 --
151631 
151632 -- No header level analytical criteria
151633 
151634 --
151635 --accounting attribute enhancement, bug 3612931
151636 --
151637 l_trx_reversal_source := SUBSTR(NULL, 1,30);
151638 
151639 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
151640    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
151641 
151642    xla_accounting_err_pkg.build_message
151643       (p_appli_s_name            => 'XLA'
151644       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
151648       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
151645       ,p_token_1                 => 'ACCT_ATTR_NAME'
151646       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
151647       ,p_token_2                 => 'PRODUCT_NAME'
151649       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
151650       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
151651       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
151652 
151653 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
151654    --
151655    -- following sets the accounting attributes needed to reverse
151656    -- accounting for a distributeion
151657    --
151658    xla_ae_lines_pkg.SetTrxReversalAttrs
151659       (p_event_id              => l_event_id
151660       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
151661       ,p_trx_reversal_source   => l_trx_reversal_source);
151662 
151663 END IF;
151664 
151665 
151666 ----------------------------------------------------------------
151667 -- 4262811 -  update the header statuses to invalid in need be
151668 ----------------------------------------------------------------
151669 --
151670 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
151671 
151672 
151673   -----------------------------------------------
151674   -- No accrual reversal for the event class/type
151675   -----------------------------------------------
151676 ----------------------------------------------------------------
151677 
151678 --
151679 -- this ends the header loop iteration for one bulk fetch
151680 --
151681 END LOOP;
151682 
151683 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
151684 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
151685 
151686 --
151687 -- insert dummy rows into lines gt table that were created due to
151688 -- transaction reversals
151689 --
151690 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
151691    l_result := XLA_AE_LINES_PKG.InsertLines;
151692 END IF;
151693 
151694 --
151695 -- reset the temp_line_num for each set of events fetched from header
151696 -- cursor rather than doing it for each new event in line cursor
151697 -- Bug 3939231
151698 --
151699 xla_ae_lines_pkg.g_temp_line_num := 0;
151700 
151701 
151702 
151703 --
151704 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
151705 --
151706 --
151707 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
151708 
151709       trace
151710          (p_msg      => 'SQL - FETCH line_cur'
151711          ,p_level    => C_LEVEL_STATEMENT
151712          ,p_module   => l_log_module);
151713 
151714 END IF;
151715 --
151716 --
151717 LOOP
151718   --
151719   FETCH line_cur BULK COLLECT INTO
151720         l_array_entity_id
151721       , l_array_legal_entity_id
151722       , l_array_entity_code
151723       , l_array_transaction_num
151724       , l_array_event_id
151725       , l_array_class_code
151726       , l_array_event_type
151727       , l_array_event_number
151728       , l_array_event_date
151729       , l_array_transaction_date
151730       , l_array_reference_num_1
151731       , l_array_reference_num_2
151732       , l_array_reference_num_3
151733       , l_array_reference_num_4
151734       , l_array_reference_char_1
151735       , l_array_reference_char_2
151736       , l_array_reference_char_3
151737       , l_array_reference_char_4
151738       , l_array_reference_date_1
151739       , l_array_reference_date_2
151740       , l_array_reference_date_3
151741       , l_array_reference_date_4
151742       , l_array_event_created_by
151743       , l_array_budgetary_control_flag
151744       , l_array_extract_line_num 
151745       , l_array_source_30
151746       , l_array_source_33
151747       , l_array_source_33_meaning
151748       , l_array_source_52
151749       , l_array_source_53
151750       , l_array_source_55
151751       , l_array_source_80
151752       , l_array_source_80_meaning
151753       , l_array_source_91
151754       , l_array_source_92
151755       , l_array_source_93
151756       , l_array_source_94
151757       , l_array_source_95
151758       , l_array_source_98
151759       , l_array_source_98_meaning
151760       , l_array_source_99
151761       , l_array_source_100
151762       , l_array_source_101
151763       , l_array_source_102
151764       , l_array_source_103
151765       , l_array_source_104
151766       , l_array_source_112
151767       , l_array_source_115
151768       , l_array_source_116
151769       , l_array_source_121
151770       , l_array_source_137
151771       , l_array_source_137_meaning
151772       , l_array_source_154
151773       , l_array_source_161
151774       LIMIT l_rows;
151775 
151776   --
151777   IF (C_LEVEL_EVENT >= g_log_level) THEN
151778             trace
151779                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
151780                ,p_level    => C_LEVEL_EVENT
151781                ,p_module   => l_log_module);
151782   END IF;
151783   --
151784   EXIT WHEN l_array_entity_id.count = 0;
151785 
151786   XLA_AE_LINES_PKG.g_rec_lines := null;
151787 
151788 --
151789 -- Bug 4458708
151790 --
151794 
151791 XLA_AE_LINES_PKG.g_LineNumber := 0;
151792 --
151793 --
151795 FOR Idx IN 1..l_array_event_id.count LOOP
151796    --
151797    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
151798    --
151799    l_event_id := l_array_event_id(idx);  -- 5648433
151800 
151801    --
151802    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
151803    --
151804 
151805    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
151806              (g_array_event(l_event_id).array_value_num('header_index'))
151807          ,'N'
151808          ) <> 'Y'
151809    THEN
151810       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
151811          trace
151812             (p_msg      => 'Trancaction revesal option is not Y '
151813             ,p_level    => C_LEVEL_STATEMENT
151814             ,p_module   => l_log_module);
151815       END IF;
151816 
151817 --
151818 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
151819 --
151820 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
151821 --
151822 -- set event info as cache for other routines to refer event attributes
151823 --
151824 
151825 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
151826    l_previous_event_id := l_event_id;
151827 
151828    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
151829       (p_application_id           => p_application_id
151830       ,p_primary_ledger_id        => p_primary_ledger_id
151831       ,p_base_ledger_id           => p_base_ledger_id
151832       ,p_target_ledger_id         => p_target_ledger_id
151833       ,p_entity_id                => l_array_entity_id(Idx)
151834       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
151835       ,p_entity_code              => l_array_entity_code(Idx)
151836       ,p_transaction_num          => l_array_transaction_num(Idx)
151837       ,p_event_id                 => l_array_event_id(Idx)
151838       ,p_event_class_code         => l_array_class_code(Idx)
151839       ,p_event_type_code          => l_array_event_type(Idx)
151840       ,p_event_number             => l_array_event_number(Idx)
151841       ,p_event_date               => l_array_event_date(Idx)
151842       ,p_transaction_date         => l_array_transaction_date(Idx)
151843       ,p_reference_num_1          => l_array_reference_num_1(Idx)
151844       ,p_reference_num_2          => l_array_reference_num_2(Idx)
151845       ,p_reference_num_3          => l_array_reference_num_3(Idx)
151846       ,p_reference_num_4          => l_array_reference_num_4(Idx)
151847       ,p_reference_char_1         => l_array_reference_char_1(Idx)
151848       ,p_reference_char_2         => l_array_reference_char_2(Idx)
151849       ,p_reference_char_3         => l_array_reference_char_3(Idx)
151850       ,p_reference_char_4         => l_array_reference_char_4(Idx)
151851       ,p_reference_date_1         => l_array_reference_date_1(Idx)
151852       ,p_reference_date_2         => l_array_reference_date_2(Idx)
151853       ,p_reference_date_3         => l_array_reference_date_3(Idx)
151854       ,p_reference_date_4         => l_array_reference_date_4(Idx)
151855       ,p_event_created_by         => l_array_event_created_by(Idx)
151856       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
151857        --
151858 END IF;
151859 
151860 
151861 
151862 --
151863 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
151864 
151865 l_acct_reversal_source := SUBSTR(l_array_source_53(Idx), 1,30);
151866 
151867 IF l_continue_with_lines THEN
151868    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
151869       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
151870 
151871       xla_accounting_err_pkg.build_message
151872          (p_appli_s_name            => 'XLA'
151873          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
151874          ,p_token_1                 => 'LINE_NUMBER'
151875          ,p_value_1                 => l_array_extract_line_num(Idx)
151876          ,p_token_2                 => 'PRODUCT_NAME'
151877          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
151878          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
151879          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
151880          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
151881 
151882    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
151883       --
151884       -- following sets the accounting attributes needed to reverse
151885       -- accounting for a distributeion
151886       --
151887 
151888       --
151889       -- 5217187
151890       --
151891       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
151892       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
151893                                        g_array_event(l_event_id).array_value_num('header_index'));
151894       --
151895       --
151896 
151897       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
151898       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_53(Idx);
151899       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
151900       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_104(Idx);
151901       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
151902       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_55(Idx);
151903       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
151907       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
151904       l_rec_rev_acct_attrs.array_char_value(5)  := g_array_event(l_event_id).array_value_char('source_83');
151905       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
151906       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_112(Idx);
151908       l_rec_rev_acct_attrs.array_char_value(7)  := l_array_source_55(Idx);
151909 
151910 
151911       xla_ae_lines_pkg.SetAcctReversalAttrs
151912          (p_event_id             => l_event_id
151913          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
151914          ,p_calculate_acctd_flag => l_calculate_acctd_flag
151915          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
151916    END IF;
151917 
151918    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
151919        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
151920 
151921 --
151922 AcctLineType_66 (
151923  p_application_id  => p_application_id
151924  ,p_event_id     => l_event_id
151925  ,p_calculate_acctd_flag => l_calculate_acctd_flag
151926  ,p_calculate_g_l_flag => l_calculate_g_l_flag
151927  ,p_actual_flag => l_actual_flag
151928  ,p_balance_type_code => l_balance_type_code
151929  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
151930  
151931  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
151932  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
151933  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
151934  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
151935  , p_source_53 => l_array_source_53(Idx)
151936  , p_source_55 => l_array_source_55(Idx)
151937  , p_source_80 => l_array_source_80(Idx)
151938  , p_source_80_meaning => l_array_source_80_meaning(Idx)
151939  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
151940  , p_source_91 => l_array_source_91(Idx)
151941  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
151942  , p_source_98 => l_array_source_98(Idx)
151943  , p_source_98_meaning => l_array_source_98_meaning(Idx)
151944  , p_source_99 => l_array_source_99(Idx)
151945  , p_source_100 => l_array_source_100(Idx)
151946  , p_source_101 => l_array_source_101(Idx)
151947  , p_source_102 => l_array_source_102(Idx)
151948  , p_source_103 => l_array_source_103(Idx)
151949  , p_source_104 => l_array_source_104(Idx)
151950  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
151951  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
151952  , p_source_112 => l_array_source_112(Idx)
151953  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
151954  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
151955  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
151956  , p_source_116 => l_array_source_116(Idx)
151957  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
151958  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
151959  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
151960  );
151961 If(l_balance_type_code = 'A') THEN
151962   l_actual_gain_loss_ref := l_gain_or_loss_ref;
151963 END IF;
151964 
151965 --
151966 
151967 
151968 --
151969 AcctLineType_67 (
151970  p_application_id  => p_application_id
151971  ,p_event_id     => l_event_id
151972  ,p_calculate_acctd_flag => l_calculate_acctd_flag
151973  ,p_calculate_g_l_flag => l_calculate_g_l_flag
151974  ,p_actual_flag => l_actual_flag
151975  ,p_balance_type_code => l_balance_type_code
151976  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
151977  
151981  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
151978  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
151979  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
151980  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
151982  , p_source_53 => l_array_source_53(Idx)
151983  , p_source_55 => l_array_source_55(Idx)
151984  , p_source_80 => l_array_source_80(Idx)
151985  , p_source_80_meaning => l_array_source_80_meaning(Idx)
151986  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
151987  , p_source_91 => l_array_source_91(Idx)
151988  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
151989  , p_source_98 => l_array_source_98(Idx)
151990  , p_source_98_meaning => l_array_source_98_meaning(Idx)
151991  , p_source_99 => l_array_source_99(Idx)
151992  , p_source_100 => l_array_source_100(Idx)
151993  , p_source_101 => l_array_source_101(Idx)
151994  , p_source_102 => l_array_source_102(Idx)
151995  , p_source_103 => l_array_source_103(Idx)
151996  , p_source_104 => l_array_source_104(Idx)
151997  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
151998  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
151999  , p_source_112 => l_array_source_112(Idx)
152000  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
152001  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
152002  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
152003  , p_source_116 => l_array_source_116(Idx)
152004  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
152005  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
152006  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
152007  );
152008 If(l_balance_type_code = 'A') THEN
152009   l_actual_gain_loss_ref := l_gain_or_loss_ref;
152010 END IF;
152011 
152012 --
152013 
152014 
152015 --
152016 AcctLineType_75 (
152017  p_application_id  => p_application_id
152018  ,p_event_id     => l_event_id
152019  ,p_calculate_acctd_flag => l_calculate_acctd_flag
152020  ,p_calculate_g_l_flag => l_calculate_g_l_flag
152021  ,p_actual_flag => l_actual_flag
152022  ,p_balance_type_code => l_balance_type_code
152023  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
152024  
152025  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
152026  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
152027  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
152028  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
152029  , p_source_53 => l_array_source_53(Idx)
152030  , p_source_55 => l_array_source_55(Idx)
152031  , p_source_80 => l_array_source_80(Idx)
152032  , p_source_80_meaning => l_array_source_80_meaning(Idx)
152033  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
152034  , p_source_91 => l_array_source_91(Idx)
152035  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
152036  , p_source_98 => l_array_source_98(Idx)
152037  , p_source_98_meaning => l_array_source_98_meaning(Idx)
152038  , p_source_99 => l_array_source_99(Idx)
152039  , p_source_100 => l_array_source_100(Idx)
152040  , p_source_101 => l_array_source_101(Idx)
152041  , p_source_102 => l_array_source_102(Idx)
152042  , p_source_103 => l_array_source_103(Idx)
152043  , p_source_104 => l_array_source_104(Idx)
152044  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
152045  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
152046  , p_source_112 => l_array_source_112(Idx)
152047  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
152048  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
152049  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
152050  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
152051  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
152052  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
152053  , p_source_121 => l_array_source_121(Idx)
152054  );
152055 If(l_balance_type_code = 'A') THEN
152056   l_actual_gain_loss_ref := l_gain_or_loss_ref;
152057 END IF;
152058 
152059 --
152060 
152061 
152062 --
152063 AcctLineType_76 (
152064  p_application_id  => p_application_id
152065  ,p_event_id     => l_event_id
152066  ,p_calculate_acctd_flag => l_calculate_acctd_flag
152067  ,p_calculate_g_l_flag => l_calculate_g_l_flag
152068  ,p_actual_flag => l_actual_flag
152069  ,p_balance_type_code => l_balance_type_code
152070  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
152071  
152072  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
152073  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
152074  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
152075  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
152076  , p_source_53 => l_array_source_53(Idx)
152077  , p_source_55 => l_array_source_55(Idx)
152078  , p_source_80 => l_array_source_80(Idx)
152079  , p_source_80_meaning => l_array_source_80_meaning(Idx)
152080  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
152081  , p_source_91 => l_array_source_91(Idx)
152082  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
152083  , p_source_98 => l_array_source_98(Idx)
152084  , p_source_98_meaning => l_array_source_98_meaning(Idx)
152085  , p_source_99 => l_array_source_99(Idx)
152086  , p_source_100 => l_array_source_100(Idx)
152087  , p_source_101 => l_array_source_101(Idx)
152088  , p_source_102 => l_array_source_102(Idx)
152089  , p_source_103 => l_array_source_103(Idx)
152090  , p_source_104 => l_array_source_104(Idx)
152091  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
152095  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
152092  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
152093  , p_source_112 => l_array_source_112(Idx)
152094  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
152096  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
152097  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
152098  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
152099  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
152100  , p_source_121 => l_array_source_121(Idx)
152101  );
152102 If(l_balance_type_code = 'A') THEN
152103   l_actual_gain_loss_ref := l_gain_or_loss_ref;
152104 END IF;
152105 
152106 --
152107 
152108 
152109 --
152110 AcctLineType_77 (
152111  p_application_id  => p_application_id
152112  ,p_event_id     => l_event_id
152113  ,p_calculate_acctd_flag => l_calculate_acctd_flag
152114  ,p_calculate_g_l_flag => l_calculate_g_l_flag
152115  ,p_actual_flag => l_actual_flag
152116  ,p_balance_type_code => l_balance_type_code
152117  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
152118  
152119  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
152120  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
152121  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
152122  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
152123  , p_source_53 => l_array_source_53(Idx)
152124  , p_source_55 => l_array_source_55(Idx)
152125  , p_source_80 => l_array_source_80(Idx)
152126  , p_source_80_meaning => l_array_source_80_meaning(Idx)
152127  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
152128  , p_source_91 => l_array_source_91(Idx)
152129  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
152130  , p_source_98 => l_array_source_98(Idx)
152131  , p_source_98_meaning => l_array_source_98_meaning(Idx)
152132  , p_source_99 => l_array_source_99(Idx)
152133  , p_source_100 => l_array_source_100(Idx)
152134  , p_source_101 => l_array_source_101(Idx)
152135  , p_source_102 => l_array_source_102(Idx)
152136  , p_source_103 => l_array_source_103(Idx)
152137  , p_source_104 => l_array_source_104(Idx)
152138  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
152139  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
152140  , p_source_112 => l_array_source_112(Idx)
152141  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
152142  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
152143  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
152144  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
152145  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
152146  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
152147  , p_source_121 => l_array_source_121(Idx)
152148  );
152149 If(l_balance_type_code = 'A') THEN
152150   l_actual_gain_loss_ref := l_gain_or_loss_ref;
152151 END IF;
152152 
152153 --
152154 
152155 
152156 --
152157 AcctLineType_78 (
152158  p_application_id  => p_application_id
152159  ,p_event_id     => l_event_id
152160  ,p_calculate_acctd_flag => l_calculate_acctd_flag
152161  ,p_calculate_g_l_flag => l_calculate_g_l_flag
152162  ,p_actual_flag => l_actual_flag
152163  ,p_balance_type_code => l_balance_type_code
152164  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
152165  
152166  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
152167  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
152168  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
152169  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
152170  , p_source_53 => l_array_source_53(Idx)
152171  , p_source_55 => l_array_source_55(Idx)
152172  , p_source_80 => l_array_source_80(Idx)
152173  , p_source_80_meaning => l_array_source_80_meaning(Idx)
152174  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
152175  , p_source_91 => l_array_source_91(Idx)
152176  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
152177  , p_source_98 => l_array_source_98(Idx)
152178  , p_source_98_meaning => l_array_source_98_meaning(Idx)
152179  , p_source_99 => l_array_source_99(Idx)
152180  , p_source_100 => l_array_source_100(Idx)
152181  , p_source_101 => l_array_source_101(Idx)
152182  , p_source_102 => l_array_source_102(Idx)
152183  , p_source_103 => l_array_source_103(Idx)
152184  , p_source_104 => l_array_source_104(Idx)
152185  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
152186  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
152187  , p_source_112 => l_array_source_112(Idx)
152188  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
152189  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
152190  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
152191  , p_source_116 => l_array_source_116(Idx)
152192  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
152193  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
152194  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
152195  );
152196 If(l_balance_type_code = 'A') THEN
152197   l_actual_gain_loss_ref := l_gain_or_loss_ref;
152198 END IF;
152199 
152200 --
152201 
152202 
152203 --
152204 AcctLineType_88 (
152205  p_application_id  => p_application_id
152206  ,p_event_id     => l_event_id
152207  ,p_calculate_acctd_flag => l_calculate_acctd_flag
152208  ,p_calculate_g_l_flag => l_calculate_g_l_flag
152209  ,p_actual_flag => l_actual_flag
152210  ,p_balance_type_code => l_balance_type_code
152211  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
152212  
152216  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
152213  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
152214  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
152215  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
152217  , p_source_53 => l_array_source_53(Idx)
152218  , p_source_55 => l_array_source_55(Idx)
152219  , p_source_80 => l_array_source_80(Idx)
152220  , p_source_80_meaning => l_array_source_80_meaning(Idx)
152221  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
152222  , p_source_91 => l_array_source_91(Idx)
152223  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
152224  , p_source_98 => l_array_source_98(Idx)
152225  , p_source_98_meaning => l_array_source_98_meaning(Idx)
152226  , p_source_99 => l_array_source_99(Idx)
152227  , p_source_100 => l_array_source_100(Idx)
152228  , p_source_101 => l_array_source_101(Idx)
152229  , p_source_102 => l_array_source_102(Idx)
152230  , p_source_103 => l_array_source_103(Idx)
152231  , p_source_104 => l_array_source_104(Idx)
152232  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
152233  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
152234  , p_source_112 => l_array_source_112(Idx)
152235  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
152236  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
152237  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
152238  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
152239  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
152240  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
152241  , p_source_121 => l_array_source_121(Idx)
152242  );
152243 If(l_balance_type_code = 'A') THEN
152244   l_actual_gain_loss_ref := l_gain_or_loss_ref;
152245 END IF;
152246 
152247 --
152248 
152249 
152250 --
152251 AcctLineType_89 (
152252  p_application_id  => p_application_id
152253  ,p_event_id     => l_event_id
152254  ,p_calculate_acctd_flag => l_calculate_acctd_flag
152255  ,p_calculate_g_l_flag => l_calculate_g_l_flag
152256  ,p_actual_flag => l_actual_flag
152257  ,p_balance_type_code => l_balance_type_code
152258  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
152259  
152260  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
152261  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
152262  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
152263  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
152264  , p_source_53 => l_array_source_53(Idx)
152265  , p_source_55 => l_array_source_55(Idx)
152266  , p_source_80 => l_array_source_80(Idx)
152267  , p_source_80_meaning => l_array_source_80_meaning(Idx)
152268  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
152269  , p_source_91 => l_array_source_91(Idx)
152270  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
152271  , p_source_98 => l_array_source_98(Idx)
152272  , p_source_98_meaning => l_array_source_98_meaning(Idx)
152273  , p_source_99 => l_array_source_99(Idx)
152274  , p_source_100 => l_array_source_100(Idx)
152275  , p_source_101 => l_array_source_101(Idx)
152276  , p_source_102 => l_array_source_102(Idx)
152277  , p_source_103 => l_array_source_103(Idx)
152278  , p_source_104 => l_array_source_104(Idx)
152279  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
152280  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
152281  , p_source_112 => l_array_source_112(Idx)
152282  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
152283  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
152284  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
152285  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
152286  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
152287  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
152288  , p_source_121 => l_array_source_121(Idx)
152289  );
152290 If(l_balance_type_code = 'A') THEN
152291   l_actual_gain_loss_ref := l_gain_or_loss_ref;
152292 END IF;
152293 
152294 --
152295 
152296 
152297 --
152298 AcctLineType_90 (
152299  p_application_id  => p_application_id
152300  ,p_event_id     => l_event_id
152301  ,p_calculate_acctd_flag => l_calculate_acctd_flag
152302  ,p_calculate_g_l_flag => l_calculate_g_l_flag
152303  ,p_actual_flag => l_actual_flag
152304  ,p_balance_type_code => l_balance_type_code
152305  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
152306  
152307  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
152308  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
152309  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
152310  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
152311  , p_source_53 => l_array_source_53(Idx)
152312  , p_source_55 => l_array_source_55(Idx)
152313  , p_source_80 => l_array_source_80(Idx)
152314  , p_source_80_meaning => l_array_source_80_meaning(Idx)
152315  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
152316  , p_source_91 => l_array_source_91(Idx)
152317  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
152318  , p_source_98 => l_array_source_98(Idx)
152319  , p_source_98_meaning => l_array_source_98_meaning(Idx)
152320  , p_source_99 => l_array_source_99(Idx)
152321  , p_source_100 => l_array_source_100(Idx)
152322  , p_source_101 => l_array_source_101(Idx)
152323  , p_source_102 => l_array_source_102(Idx)
152324  , p_source_103 => l_array_source_103(Idx)
152325  , p_source_104 => l_array_source_104(Idx)
152326  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
152327  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
152328  , p_source_112 => l_array_source_112(Idx)
152329  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
152330  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
152331  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
152332  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
152333  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
152334  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
152335  , p_source_121 => l_array_source_121(Idx)
152336  );
152337 If(l_balance_type_code = 'A') THEN
152338   l_actual_gain_loss_ref := l_gain_or_loss_ref;
152339 END IF;
152340 
152341 --
152342 
152343 
152344 --
152345 AcctLineType_97 (
152346  p_application_id  => p_application_id
152347  ,p_event_id     => l_event_id
152348  ,p_calculate_acctd_flag => l_calculate_acctd_flag
152349  ,p_calculate_g_l_flag => l_calculate_g_l_flag
152350  ,p_actual_flag => l_actual_flag
152351  ,p_balance_type_code => l_balance_type_code
152352  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
152353  
152354  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
152355  , p_source_33 => l_array_source_33(Idx)
152356  , p_source_33_meaning => l_array_source_33_meaning(Idx)
152357  , p_source_53 => l_array_source_53(Idx)
152358  , p_source_55 => l_array_source_55(Idx)
152359  , p_source_80 => l_array_source_80(Idx)
152360  , p_source_80_meaning => l_array_source_80_meaning(Idx)
152361  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
152362  , p_source_91 => l_array_source_91(Idx)
152363  , p_source_92 => l_array_source_92(Idx)
152364  , p_source_93 => l_array_source_93(Idx)
152365  , p_source_94 => l_array_source_94(Idx)
152366  , p_source_95 => l_array_source_95(Idx)
152367  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
152368  , p_source_98 => l_array_source_98(Idx)
152372  , p_source_112 => l_array_source_112(Idx)
152369  , p_source_98_meaning => l_array_source_98_meaning(Idx)
152370  , p_source_99 => l_array_source_99(Idx)
152371  , p_source_104 => l_array_source_104(Idx)
152373  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
152374  , p_source_121 => l_array_source_121(Idx)
152375  , p_source_137 => l_array_source_137(Idx)
152376  , p_source_137_meaning => l_array_source_137_meaning(Idx)
152377  );
152378 If(l_balance_type_code = 'A') THEN
152379   l_actual_gain_loss_ref := l_gain_or_loss_ref;
152380 END IF;
152381 
152382 --
152383 
152384 
152385 --
152386 AcctLineType_101 (
152387  p_application_id  => p_application_id
152388  ,p_event_id     => l_event_id
152389  ,p_calculate_acctd_flag => l_calculate_acctd_flag
152390  ,p_calculate_g_l_flag => l_calculate_g_l_flag
152391  ,p_actual_flag => l_actual_flag
152392  ,p_balance_type_code => l_balance_type_code
152393  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
152394  
152395  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
152396  , p_source_33 => l_array_source_33(Idx)
152397  , p_source_33_meaning => l_array_source_33_meaning(Idx)
152398  , p_source_52 => l_array_source_52(Idx)
152399  , p_source_53 => l_array_source_53(Idx)
152400  , p_source_55 => l_array_source_55(Idx)
152401  , p_source_80 => l_array_source_80(Idx)
152402  , p_source_80_meaning => l_array_source_80_meaning(Idx)
152403  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
152404  , p_source_91 => l_array_source_91(Idx)
152405  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
152406  , p_source_98 => l_array_source_98(Idx)
152407  , p_source_98_meaning => l_array_source_98_meaning(Idx)
152408  , p_source_99 => l_array_source_99(Idx)
152409  , p_source_100 => l_array_source_100(Idx)
152410  , p_source_101 => l_array_source_101(Idx)
152411  , p_source_102 => l_array_source_102(Idx)
152412  , p_source_103 => l_array_source_103(Idx)
152413  , p_source_104 => l_array_source_104(Idx)
152414  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
152415  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
152416  , p_source_112 => l_array_source_112(Idx)
152417  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
152418  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
152419  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
152420  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
152421  , p_source_121 => l_array_source_121(Idx)
152422  , p_source_137 => l_array_source_137(Idx)
152423  , p_source_137_meaning => l_array_source_137_meaning(Idx)
152424  );
152425 If(l_balance_type_code = 'A') THEN
152426   l_actual_gain_loss_ref := l_gain_or_loss_ref;
152427 END IF;
152428 
152429 --
152430 
152431 
152432 --
152433 AcctLineType_122 (
152434  p_application_id  => p_application_id
152435  ,p_event_id     => l_event_id
152436  ,p_calculate_acctd_flag => l_calculate_acctd_flag
152437  ,p_calculate_g_l_flag => l_calculate_g_l_flag
152438  ,p_actual_flag => l_actual_flag
152439  ,p_balance_type_code => l_balance_type_code
152440  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
152441  
152442  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
152443  , p_source_53 => l_array_source_53(Idx)
152444  , p_source_55 => l_array_source_55(Idx)
152445  , p_source_80 => l_array_source_80(Idx)
152446  , p_source_80_meaning => l_array_source_80_meaning(Idx)
152447  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
152448  , p_source_91 => l_array_source_91(Idx)
152449  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
152450  , p_source_98 => l_array_source_98(Idx)
152451  , p_source_98_meaning => l_array_source_98_meaning(Idx)
152452  , p_source_99 => l_array_source_99(Idx)
152453  , p_source_100 => l_array_source_100(Idx)
152454  , p_source_101 => l_array_source_101(Idx)
152455  , p_source_102 => l_array_source_102(Idx)
152456  , p_source_103 => l_array_source_103(Idx)
152457  , p_source_104 => l_array_source_104(Idx)
152458  , p_source_112 => l_array_source_112(Idx)
152459  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
152460  , p_source_115 => l_array_source_115(Idx)
152461  );
152462 If(l_balance_type_code = 'A') THEN
152463   l_actual_gain_loss_ref := l_gain_or_loss_ref;
152464 END IF;
152465 
152466 --
152467 
152468 
152469 --
152470 AcctLineType_123 (
152471  p_application_id  => p_application_id
152472  ,p_event_id     => l_event_id
152473  ,p_calculate_acctd_flag => l_calculate_acctd_flag
152474  ,p_calculate_g_l_flag => l_calculate_g_l_flag
152475  ,p_actual_flag => l_actual_flag
152476  ,p_balance_type_code => l_balance_type_code
152477  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
152478  
152479  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
152480  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
152481  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
152482  , p_source_30 => l_array_source_30(Idx)
152483  , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
152484  , p_source_53 => l_array_source_53(Idx)
152485  , p_source_55 => l_array_source_55(Idx)
152486  , p_source_80 => l_array_source_80(Idx)
152487  , p_source_80_meaning => l_array_source_80_meaning(Idx)
152488  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
152489  , p_source_91 => l_array_source_91(Idx)
152490  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
152491  , p_source_98 => l_array_source_98(Idx)
152492  , p_source_98_meaning => l_array_source_98_meaning(Idx)
152493  , p_source_99 => l_array_source_99(Idx)
152494  , p_source_100 => l_array_source_100(Idx)
152495  , p_source_101 => l_array_source_101(Idx)
152496  , p_source_102 => l_array_source_102(Idx)
152497  , p_source_103 => l_array_source_103(Idx)
152501  , p_source_112 => l_array_source_112(Idx)
152498  , p_source_104 => l_array_source_104(Idx)
152499  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
152500  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
152502  , p_source_115 => l_array_source_115(Idx)
152503  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
152504  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
152505  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
152506  );
152507 If(l_balance_type_code = 'A') THEN
152508   l_actual_gain_loss_ref := l_gain_or_loss_ref;
152509 END IF;
152510 
152511 --
152512 
152513 
152514 --
152515 AcctLineType_127 (
152516  p_application_id  => p_application_id
152517  ,p_event_id     => l_event_id
152518  ,p_calculate_acctd_flag => l_calculate_acctd_flag
152519  ,p_calculate_g_l_flag => l_calculate_g_l_flag
152520  ,p_actual_flag => l_actual_flag
152521  ,p_balance_type_code => l_balance_type_code
152522  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
152523  
152524  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
152525  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
152526  , p_source_30 => l_array_source_30(Idx)
152527  , p_source_36 => g_array_event(l_event_id).array_value_num('source_36')
152528  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
152529  , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
152530  , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
152531  , p_source_53 => l_array_source_53(Idx)
152532  , p_source_55 => l_array_source_55(Idx)
152533  , p_source_80 => l_array_source_80(Idx)
152534  , p_source_80_meaning => l_array_source_80_meaning(Idx)
152535  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
152536  , p_source_91 => l_array_source_91(Idx)
152537  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
152538  , p_source_98 => l_array_source_98(Idx)
152539  , p_source_98_meaning => l_array_source_98_meaning(Idx)
152540  , p_source_100 => l_array_source_100(Idx)
152541  , p_source_101 => l_array_source_101(Idx)
152542  , p_source_102 => l_array_source_102(Idx)
152543  , p_source_103 => l_array_source_103(Idx)
152544  , p_source_104 => l_array_source_104(Idx)
152545  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
152546  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
152547  , p_source_112 => l_array_source_112(Idx)
152548  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
152549  , p_source_154 => l_array_source_154(Idx)
152550  );
152551 If(l_balance_type_code = 'A') THEN
152552   l_actual_gain_loss_ref := l_gain_or_loss_ref;
152553 END IF;
152554 
152555 --
152556 
152557 
152558 --
152559 AcctLineType_133 (
152560  p_application_id  => p_application_id
152561  ,p_event_id     => l_event_id
152562  ,p_calculate_acctd_flag => l_calculate_acctd_flag
152563  ,p_calculate_g_l_flag => l_calculate_g_l_flag
152564  ,p_actual_flag => l_actual_flag
152565  ,p_balance_type_code => l_balance_type_code
152566  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
152567  
152568  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
152569  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
152570  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
152571  , p_source_30 => l_array_source_30(Idx)
152572  , p_source_36 => g_array_event(l_event_id).array_value_num('source_36')
152573  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
152574  , p_source_53 => l_array_source_53(Idx)
152575  , p_source_55 => l_array_source_55(Idx)
152576  , p_source_80 => l_array_source_80(Idx)
152577  , p_source_80_meaning => l_array_source_80_meaning(Idx)
152578  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
152579  , p_source_91 => l_array_source_91(Idx)
152580  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
152581  , p_source_98 => l_array_source_98(Idx)
152582  , p_source_98_meaning => l_array_source_98_meaning(Idx)
152583  , p_source_99 => l_array_source_99(Idx)
152584  , p_source_100 => l_array_source_100(Idx)
152585  , p_source_101 => l_array_source_101(Idx)
152586  , p_source_102 => l_array_source_102(Idx)
152587  , p_source_103 => l_array_source_103(Idx)
152588  , p_source_104 => l_array_source_104(Idx)
152589  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
152590  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
152591  , p_source_112 => l_array_source_112(Idx)
152592  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
152593  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
152594  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
152595  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
152596  , p_source_154 => l_array_source_154(Idx)
152597  , p_source_161 => l_array_source_161(Idx)
152598  );
152599 If(l_balance_type_code = 'A') THEN
152600   l_actual_gain_loss_ref := l_gain_or_loss_ref;
152601 END IF;
152602 
152603 --
152604 
152605 
152606 --
152607 AcctLineType_167 (
152608  p_application_id  => p_application_id
152609  ,p_event_id     => l_event_id
152610  ,p_calculate_acctd_flag => l_calculate_acctd_flag
152611  ,p_calculate_g_l_flag => l_calculate_g_l_flag
152612  ,p_actual_flag => l_actual_flag
152613  ,p_balance_type_code => l_balance_type_code
152614  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
152615  
152616  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
152617  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
152618  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
152619  , p_source_30 => l_array_source_30(Idx)
152620  , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
152624  , p_source_80 => l_array_source_80(Idx)
152621  , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
152622  , p_source_53 => l_array_source_53(Idx)
152623  , p_source_55 => l_array_source_55(Idx)
152625  , p_source_80_meaning => l_array_source_80_meaning(Idx)
152626  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
152627  , p_source_91 => l_array_source_91(Idx)
152628  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
152629  , p_source_98 => l_array_source_98(Idx)
152630  , p_source_98_meaning => l_array_source_98_meaning(Idx)
152631  , p_source_99 => l_array_source_99(Idx)
152632  , p_source_100 => l_array_source_100(Idx)
152633  , p_source_101 => l_array_source_101(Idx)
152634  , p_source_102 => l_array_source_102(Idx)
152635  , p_source_103 => l_array_source_103(Idx)
152636  , p_source_104 => l_array_source_104(Idx)
152637  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
152638  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
152639  , p_source_112 => l_array_source_112(Idx)
152640  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
152641  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
152642  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
152643  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
152644  , p_source_154 => l_array_source_154(Idx)
152645  , p_source_161 => l_array_source_161(Idx)
152646  );
152647 If(l_balance_type_code = 'A') THEN
152648   l_actual_gain_loss_ref := l_gain_or_loss_ref;
152649 END IF;
152650 
152651 --
152652 
152653       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
152654       -- or secondary ledger that has different currency with primary
152655       -- or alc that is calculated by sla
152656       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
152657             (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'))
152658 
152659 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
152660 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
152661           AND (l_actual_flag = 'A')) THEN
152662         XLA_AE_LINES_PKG.CreateGainOrLossLines(
152663           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
152664          ,p_application_id   => p_application_id
152665          ,p_amb_context_code => 'DEFAULT'
152666          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
152667          ,p_event_class_code => C_EVENT_CLASS_CODE
152668          ,p_event_type_code  => C_EVENT_TYPE_CODE
152669          
152670          ,p_gain_ccid        => -1
152671          ,p_loss_ccid        => -1
152672 
152673          ,p_actual_flag      => l_actual_flag
152674          ,p_enc_flag         => null
152675          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
152676          ,p_enc_g_l_ref      => null
152677          );
152678       END IF;
152679    END IF;
152680 END IF;
152681 
152682    ELSE
152683       --
152684       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
152685       --
152686       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
152687          trace
152688             (p_msg      => 'Trancaction revesal option is Y'
152689             ,p_level    => C_LEVEL_STATEMENT
152690             ,p_module   => l_log_module);
152691       END IF;
152692    END IF;
152693 
152694 END LOOP;
152695 l_result := XLA_AE_LINES_PKG.InsertLines ;
152696 end loop;
152697 close line_cur;
152698 
152699 
152700 --
152701 -- insert headers into xla_ae_headers_gt table
152702 --
152703 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
152704 
152705 -- insert into errors table here.
152706 
152707 END LOOP;
152708 
152709 --
152710 -- 4865292
152711 --
152712 -- Compare g_hdr_extract_count with event count in
152713 -- CreateHeadersAndLines.
152714 --
152715 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
152716 
152717 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
152718    trace (p_msg     => '# rows extracted from header extract objects '
152719                     || ' (running total): '
152720                     || g_hdr_extract_count
152721          ,p_level   => C_LEVEL_STATEMENT
152722          ,p_module  => l_log_module);
152723 END IF;
152724 
152725 CLOSE header_cur;
152726 --
152727 
152728 --
152729 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
152730    trace
152731       (p_msg      => 'END of EventClass_232'
152732       ,p_level    => C_LEVEL_PROCEDURE
152733       ,p_module   => l_log_module);
152734 END IF;
152735 --
152736 RETURN l_result;
152737 EXCEPTION
152738 WHEN xla_exceptions_pkg.application_exception THEN
152739    
152740 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
152741 
152742    
152743 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
152744 
152745    RAISE;
152746 
152747 WHEN NO_DATA_FOUND THEN
152748 
152749 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
152750 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
152751 
152752 FOR header_record IN header_cur
152753 LOOP
152754     l_array_header_events(header_record.event_id) := header_record.event_id;
152755 END LOOP;
152756 
152757 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
152758 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
152759 
152760 fnd_file.put_line(fnd_file.LOG, '                    ');
152761 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
152762 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
152766 LOOP
152763 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
152764 
152765 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
152767 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
152768 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
152769         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
152770 	END IF;
152771 END LOOP;
152772 
152773 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
152774 fnd_file.put_line(fnd_file.LOG, '                    ');
152775 
152776 
152777 xla_exceptions_pkg.raise_message
152778       (p_location => 'XLA_00200_AAD_S_000002_PKG.EventClass_232');
152779 
152780 
152781 WHEN OTHERS THEN
152782    xla_exceptions_pkg.raise_message
152783       (p_location => 'XLA_00200_AAD_S_000002_PKG.EventClass_232');
152784 END EventClass_232;
152785 --
152786 
152787 ---------------------------------------
152788 --
152789 -- PRIVATE PROCEDURE
152790 --         insert_sources_233
152791 --
152792 ----------------------------------------
152793 --
152794 PROCEDURE insert_sources_233(
152795                                 p_target_ledger_id       IN NUMBER
152796                               , p_language               IN VARCHAR2
152797                               , p_sla_ledger_id          IN NUMBER
152798                               , p_pad_start_date         IN DATE
152799                               , p_pad_end_date           IN DATE
152800                          )
152801 IS
152802 
152803 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'INVOICES_ALL';
152804 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'INVOICES';
152805 p_apps_owner                   VARCHAR2(30);
152806 l_log_module                   VARCHAR2(240);
152807 BEGIN
152808 IF g_log_enabled THEN
152809       l_log_module := C_DEFAULT_MODULE||'.insert_sources_233';
152810 END IF;
152811 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
152812 
152813       trace
152814          (p_msg      => 'BEGIN of insert_sources_233'
152815          ,p_level    => C_LEVEL_PROCEDURE
152816          ,p_module   => l_log_module);
152817 
152818 END IF;
152819 
152820 -- select APPS owner
152821 SELECT oracle_username
152822   INTO p_apps_owner
152823   FROM fnd_oracle_userid
152824  WHERE read_only_flag = 'U'
152825 ;
152826 
152827 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
152828       trace
152829          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
152830                         ' - p_language = '||p_language||
152831                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
152832                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
152833                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
152834                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
152835          ,p_level    => C_LEVEL_STATEMENT
152836          ,p_module   => l_log_module);
152837 END IF;
152838 
152839 
152840 --
152841 INSERT INTO xla_diag_sources --hdr2
152842 (
152843         event_id
152844       , ledger_id
152845       , sla_ledger_id
152846       , description_language
152847       , object_name
152848       , object_type_code
152849       , line_number
152850       , source_application_id
152851       , source_type_code
152852       , source_code
152853       , source_value
152854       , source_meaning
152855       , created_by
152856       , creation_date
152857       , last_update_date
152858       , last_updated_by
152859       , last_update_login
152860       , program_update_date
152861       , program_application_id
152862       , program_id
152863       , request_id
152864 )
152865 SELECT
152866         event_id
152867       , p_target_ledger_id
152868       , p_sla_ledger_id
152869       , p_language
152870       , object_name
152871       , object_type_code
152872       , line_number
152873       , source_application_id
152874       , source_type_code
152875       , source_code
152876       , SUBSTR(source_value ,1,1996)
152877       , SUBSTR(source_meaning ,1,200)
152878       , xla_environment_pkg.g_Usr_Id
152879       , TRUNC(SYSDATE)
152880       , TRUNC(SYSDATE)
152881       , xla_environment_pkg.g_Usr_Id
152882       , xla_environment_pkg.g_Login_Id
152883       , TRUNC(SYSDATE)
152884       , xla_environment_pkg.g_Prog_Appl_Id
152885       , xla_environment_pkg.g_Prog_Id
152886       , xla_environment_pkg.g_Req_Id
152887   FROM (
152888        SELECT xet.event_id                  event_id
152889             , 0                          line_number
152890             , CASE r
152891                WHEN 1 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152892                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152893                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152894                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152895                 WHEN 5 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152896                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152897                 WHEN 7 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
152898                 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
152899                 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
152900                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152901                 WHEN 11 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
152902                 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
152903                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152904                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152905                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152906                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152907                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152911                 WHEN 21 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152908                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152909                 WHEN 19 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152910                 WHEN 20 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152912                 WHEN 22 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
152913                 
152914                ELSE null
152915               END                           object_name
152916             , CASE r
152917                 WHEN 1 THEN 'HEADER' 
152918                 WHEN 2 THEN 'HEADER' 
152919                 WHEN 3 THEN 'HEADER' 
152920                 WHEN 4 THEN 'HEADER' 
152921                 WHEN 5 THEN 'HEADER' 
152922                 WHEN 6 THEN 'HEADER' 
152923                 WHEN 7 THEN 'HEADER' 
152924                 WHEN 8 THEN 'HEADER' 
152925                 WHEN 9 THEN 'HEADER' 
152926                 WHEN 10 THEN 'HEADER' 
152927                 WHEN 11 THEN 'HEADER' 
152928                 WHEN 12 THEN 'HEADER' 
152929                 WHEN 13 THEN 'HEADER' 
152930                 WHEN 14 THEN 'HEADER' 
152931                 WHEN 15 THEN 'HEADER' 
152932                 WHEN 16 THEN 'HEADER' 
152933                 WHEN 17 THEN 'HEADER' 
152934                 WHEN 18 THEN 'HEADER' 
152935                 WHEN 19 THEN 'HEADER' 
152936                 WHEN 20 THEN 'HEADER' 
152937                 WHEN 21 THEN 'HEADER' 
152938                 WHEN 22 THEN 'HEADER' 
152939                 
152940                 ELSE null
152941               END                           object_type_code
152942             , CASE r
152943                 WHEN 1 THEN '200' 
152944                 WHEN 2 THEN '200' 
152945                 WHEN 3 THEN '200' 
152946                 WHEN 4 THEN '200' 
152947                 WHEN 5 THEN '200' 
152948                 WHEN 6 THEN '200' 
152949                 WHEN 7 THEN '200' 
152950                 WHEN 8 THEN '200' 
152951                 WHEN 9 THEN '200' 
152952                 WHEN 10 THEN '200' 
152953                 WHEN 11 THEN '200' 
152954                 WHEN 12 THEN '200' 
152955                 WHEN 13 THEN '200' 
152956                 WHEN 14 THEN '200' 
152957                 WHEN 15 THEN '200' 
152958                 WHEN 16 THEN '200' 
152959                 WHEN 17 THEN '200' 
152960                 WHEN 18 THEN '200' 
152961                 WHEN 19 THEN '200' 
152962                 WHEN 20 THEN '200' 
152963                 WHEN 21 THEN '200' 
152964                 WHEN 22 THEN '200' 
152965                 
152966                 ELSE null
152967               END                           source_application_id
152968             , 'S'             source_type_code
152969             , CASE r
152970                 WHEN 1 THEN 'INV_TRANSACTION_NUMBER' 
152971                 WHEN 2 THEN 'AI_INVOICE_DATE' 
152972                 WHEN 3 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
152973                 WHEN 4 THEN 'DOC_SEQUENCE_NAME' 
152974                 WHEN 5 THEN 'INV_DOC_SEQUENCE_VALUE' 
152975                 WHEN 6 THEN 'AI_DESCRIPTION' 
152976                 WHEN 7 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
152977                 WHEN 8 THEN 'ASP_RATE_VAR_GAIN_CCID' 
152978                 WHEN 9 THEN 'ASP_RATE_VAR_LOSS_CCID' 
152979                 WHEN 10 THEN 'AI_ACCTS_PAY_CCID' 
152980                 WHEN 11 THEN 'FSP_RETAINAGE_ACCOUNT' 
152981                 WHEN 12 THEN 'ASP_AUTO_OFFSET_FLAG' 
152982                 WHEN 13 THEN 'AI_INVOICE_ID' 
152983                 WHEN 14 THEN 'AI_INVOICE_CURRENCY_CODE' 
152984                 WHEN 15 THEN 'AI_VENDOR_ID' 
152985                 WHEN 16 THEN 'AI_VENDOR_SITE_ID' 
152986                 WHEN 17 THEN 'THIRD_PARTY_TYPE' 
152987                 WHEN 18 THEN 'INV_EXCHANGE_DATE' 
152988                 WHEN 19 THEN 'INV_EXCHANGE_RATE' 
152989                 WHEN 20 THEN 'INV_EXCHANGE_RATE_TYPE' 
152990                 WHEN 21 THEN 'AI_INVOICE_TYPE_LOOKUP_CODE' 
152991                 WHEN 22 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
152992                 
152993                 ELSE null
152994               END                           source_code
152995             , CASE r
152996                 WHEN 1 THEN TO_CHAR(h2.INV_TRANSACTION_NUMBER)
152997                 WHEN 2 THEN TO_CHAR(h2.AI_INVOICE_DATE)
152998                 WHEN 3 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
152999                 WHEN 4 THEN TO_CHAR(h2.DOC_SEQUENCE_NAME)
153000                 WHEN 5 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
153001                 WHEN 6 THEN TO_CHAR(h2.AI_DESCRIPTION)
153002                 WHEN 7 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
153003                 WHEN 8 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
153004                 WHEN 9 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
153005                 WHEN 10 THEN TO_CHAR(h2.AI_ACCTS_PAY_CCID)
153006                 WHEN 11 THEN TO_CHAR(h4.FSP_RETAINAGE_ACCOUNT)
153007                 WHEN 12 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
153008                 WHEN 13 THEN TO_CHAR(h2.AI_INVOICE_ID)
153009                 WHEN 14 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
153010                 WHEN 15 THEN TO_CHAR(h2.AI_VENDOR_ID)
153011                 WHEN 16 THEN TO_CHAR(h2.AI_VENDOR_SITE_ID)
153012                 WHEN 17 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
153013                 WHEN 18 THEN TO_CHAR(h2.INV_EXCHANGE_DATE)
153014                 WHEN 19 THEN TO_CHAR(h2.INV_EXCHANGE_RATE)
153015                 WHEN 20 THEN TO_CHAR(h2.INV_EXCHANGE_RATE_TYPE)
153016                 WHEN 21 THEN TO_CHAR(h2.AI_INVOICE_TYPE_LOOKUP_CODE)
153017                 WHEN 22 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
153018                 
153019                 ELSE null
153020               END                           source_value
153021             , CASE r
153022                 WHEN 7 THEN fvl15.meaning
153023                 WHEN 12 THEN fvl47.meaning
153024                 WHEN 21 THEN fvl165.meaning
153025                 
153026                 ELSE null
153027               END               source_meaning
153028          FROM xla_events_gt     xet  
153032   , fnd_lookup_values    fvl47
153029       , AP_INVOICE_EXTRACT_HEADER_V  h2
153030       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
153031   , fnd_lookup_values    fvl15
153033   , fnd_lookup_values    fvl165
153034              ,(select rownum r from all_objects where rownum <= 22 and owner = p_apps_owner)
153035          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
153036            AND xet.event_class_code = C_EVENT_CLASS_CODE
153037               AND h2.event_id = xet.event_id
153038  AND h4.asp_org_id = h2.ai_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
153039   AND fvl15.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
153040   AND fvl15.view_application_id(+) = 200
153041   AND fvl15.language(+)            = USERENV('LANG')
153042      AND fvl47.lookup_type(+)         = 'YES_NO'
153043   AND fvl47.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
153044   AND fvl47.view_application_id(+) = 0
153045   AND fvl47.language(+)            = USERENV('LANG')
153046      AND fvl165.lookup_type(+)         = 'INVOICE TYPE'
153047   AND fvl165.lookup_code(+)         = h2.AI_INVOICE_TYPE_LOOKUP_CODE
153048   AND fvl165.view_application_id(+) = 200
153049   AND fvl165.language(+)            = USERENV('LANG')
153050   
153051 )
153052 ;
153053 --
153054 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
153055 
153056       trace
153057          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
153058          ,p_level    => C_LEVEL_STATEMENT
153059          ,p_module   => l_log_module);
153060 
153061 END IF;
153062 --
153063 
153064 
153065 
153066 --
153067 INSERT INTO xla_diag_sources  --line2
153068 (
153069         event_id
153070       , ledger_id
153071       , sla_ledger_id
153072       , description_language
153073       , object_name
153074       , object_type_code
153075       , line_number
153076       , source_application_id
153077       , source_type_code
153078       , source_code
153079       , source_value
153080       , source_meaning
153081       , created_by
153082       , creation_date
153083       , last_update_date
153084       , last_updated_by
153085       , last_update_login
153086       , program_update_date
153087       , program_application_id
153088       , program_id
153089       , request_id
153090 )
153091 SELECT  event_id
153092       , p_target_ledger_id
153093       , p_sla_ledger_id
153094       , p_language
153095       , object_name
153096       , object_type_code
153097       , line_number
153098       , source_application_id
153099       , source_type_code
153100       , source_code
153101       , SUBSTR(source_value,1,1996)
153102       , SUBSTR(source_meaning ,1,200)
153103       , xla_environment_pkg.g_Usr_Id
153104       , TRUNC(SYSDATE)
153105       , TRUNC(SYSDATE)
153106       , xla_environment_pkg.g_Usr_Id
153107       , xla_environment_pkg.g_Login_Id
153108       , TRUNC(SYSDATE)
153109       , xla_environment_pkg.g_Prog_Appl_Id
153110       , xla_environment_pkg.g_Prog_Id
153111       , xla_environment_pkg.g_Req_Id
153112   FROM (
153113        SELECT xet.event_id                  event_id
153114             , l1.line_number                 line_number
153115             , CASE r
153116                WHEN 1 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153117                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153118                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153119                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153120                 WHEN 5 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153121                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153122                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153123                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153124                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153125                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153126                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153127                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153128                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153129                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153130                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153131                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153132                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153133                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153134                 WHEN 19 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153135                 WHEN 20 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153136                 WHEN 21 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153137                 WHEN 22 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153138                 WHEN 23 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153139                 WHEN 24 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153140                 WHEN 25 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153141                 WHEN 26 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153142                 WHEN 27 THEN 'AP_PO_HEADERS_EXTRACT_V' 
153143                 WHEN 28 THEN 'AP_PO_HEADERS_EXTRACT_V' 
153144                 WHEN 29 THEN 'AP_PO_HEADERS_EXTRACT_V' 
153145                 WHEN 30 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153146                 WHEN 31 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153147                 WHEN 32 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153148                 WHEN 33 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153149                 WHEN 34 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153150                 WHEN 35 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153151                 WHEN 36 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
153152                 WHEN 37 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
153153                 WHEN 38 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153154                 WHEN 39 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153155                 WHEN 40 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153156                 WHEN 41 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153157                 WHEN 42 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153161                 WHEN 46 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153158                 WHEN 43 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153159                 WHEN 44 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153160                 WHEN 45 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153162                 WHEN 47 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153163                 WHEN 48 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153164                 WHEN 49 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
153165                 
153166                ELSE null
153167               END                           object_name
153168             , CASE r
153169                 WHEN 1 THEN 'LINE' 
153170                 WHEN 2 THEN 'LINE' 
153171                 WHEN 3 THEN 'LINE' 
153172                 WHEN 4 THEN 'LINE' 
153173                 WHEN 5 THEN 'LINE' 
153174                 WHEN 6 THEN 'LINE' 
153175                 WHEN 7 THEN 'LINE' 
153176                 WHEN 8 THEN 'LINE' 
153177                 WHEN 9 THEN 'LINE' 
153178                 WHEN 10 THEN 'LINE' 
153179                 WHEN 11 THEN 'LINE' 
153180                 WHEN 12 THEN 'LINE' 
153181                 WHEN 13 THEN 'LINE' 
153182                 WHEN 14 THEN 'LINE' 
153183                 WHEN 15 THEN 'LINE' 
153184                 WHEN 16 THEN 'LINE' 
153185                 WHEN 17 THEN 'LINE' 
153186                 WHEN 18 THEN 'LINE' 
153187                 WHEN 19 THEN 'LINE' 
153188                 WHEN 20 THEN 'LINE' 
153189                 WHEN 21 THEN 'LINE' 
153190                 WHEN 22 THEN 'LINE' 
153191                 WHEN 23 THEN 'LINE' 
153192                 WHEN 24 THEN 'LINE' 
153193                 WHEN 25 THEN 'LINE' 
153194                 WHEN 26 THEN 'LINE' 
153195                 WHEN 27 THEN 'LINE' 
153196                 WHEN 28 THEN 'LINE' 
153197                 WHEN 29 THEN 'LINE' 
153198                 WHEN 30 THEN 'LINE' 
153199                 WHEN 31 THEN 'LINE' 
153200                 WHEN 32 THEN 'LINE' 
153201                 WHEN 33 THEN 'LINE' 
153202                 WHEN 34 THEN 'LINE' 
153203                 WHEN 35 THEN 'LINE' 
153204                 WHEN 36 THEN 'LINE' 
153205                 WHEN 37 THEN 'LINE' 
153206                 WHEN 38 THEN 'LINE' 
153207                 WHEN 39 THEN 'LINE' 
153208                 WHEN 40 THEN 'LINE' 
153209                 WHEN 41 THEN 'LINE' 
153210                 WHEN 42 THEN 'LINE' 
153211                 WHEN 43 THEN 'LINE' 
153212                 WHEN 44 THEN 'LINE' 
153213                 WHEN 45 THEN 'LINE' 
153214                 WHEN 46 THEN 'LINE' 
153215                 WHEN 47 THEN 'LINE' 
153216                 WHEN 48 THEN 'LINE' 
153217                 WHEN 49 THEN 'LINE' 
153218                 
153219                 ELSE null
153220               END                           object_type_code
153221             , CASE r
153222                 WHEN 1 THEN '200' 
153223                 WHEN 2 THEN '200' 
153224                 WHEN 3 THEN '200' 
153225                 WHEN 4 THEN '200' 
153226                 WHEN 5 THEN '200' 
153227                 WHEN 6 THEN '200' 
153228                 WHEN 7 THEN '200' 
153229                 WHEN 8 THEN '200' 
153230                 WHEN 9 THEN '200' 
153231                 WHEN 10 THEN '200' 
153232                 WHEN 11 THEN '200' 
153233                 WHEN 12 THEN '200' 
153234                 WHEN 13 THEN '200' 
153235                 WHEN 14 THEN '200' 
153236                 WHEN 15 THEN '200' 
153237                 WHEN 16 THEN '200' 
153238                 WHEN 17 THEN '200' 
153239                 WHEN 18 THEN '200' 
153240                 WHEN 19 THEN '200' 
153241                 WHEN 20 THEN '200' 
153242                 WHEN 21 THEN '200' 
153243                 WHEN 22 THEN '200' 
153244                 WHEN 23 THEN '200' 
153245                 WHEN 24 THEN '200' 
153246                 WHEN 25 THEN '200' 
153247                 WHEN 26 THEN '200' 
153248                 WHEN 27 THEN '200' 
153249                 WHEN 28 THEN '200' 
153250                 WHEN 29 THEN '200' 
153251                 WHEN 30 THEN '200' 
153252                 WHEN 31 THEN '200' 
153253                 WHEN 32 THEN '200' 
153254                 WHEN 33 THEN '200' 
153255                 WHEN 34 THEN '200' 
153256                 WHEN 35 THEN '200' 
153257                 WHEN 36 THEN '200' 
153258                 WHEN 37 THEN '200' 
153259                 WHEN 38 THEN '200' 
153260                 WHEN 39 THEN '200' 
153261                 WHEN 40 THEN '200' 
153262                 WHEN 41 THEN '200' 
153263                 WHEN 42 THEN '200' 
153264                 WHEN 43 THEN '200' 
153265                 WHEN 44 THEN '200' 
153266                 WHEN 45 THEN '200' 
153267                 WHEN 46 THEN '200' 
153268                 WHEN 47 THEN '200' 
153269                 WHEN 48 THEN '200' 
153270                 WHEN 49 THEN '200' 
153271                 
153272                 ELSE null
153273               END                           source_application_id
153274             , 'S'             source_type_code
153275             , CASE r
153276                 WHEN 1 THEN 'AID_DESCRIPTION' 
153277                 WHEN 2 THEN 'INV_DIST_BASE_AMOUNT' 
153278                 WHEN 3 THEN 'RELATED_INV_DIST_DEST_TYPE' 
153279                 WHEN 4 THEN 'AID_DIST_CCID' 
153280                 WHEN 5 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
153281                 WHEN 6 THEN 'AID_RET_RELATED_DIST_CCID' 
153282                 WHEN 7 THEN 'AWT_RELATED_DIST_ACCOUNT' 
153283                 WHEN 8 THEN 'SELF_ASSESSED_TAX_ACCOUNT' 
153284                 WHEN 9 THEN 'ASAT_LIAB_CCID' 
153285                 WHEN 10 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
153286                 WHEN 11 THEN 'DISTRIBUTION_LINK_TYPE' 
153287                 WHEN 12 THEN 'ALLOC_TO_MAIN_DIST_ID' 
153288                 WHEN 13 THEN 'BUS_FLOW_PO_APP_ID' 
153289                 WHEN 14 THEN 'BUS_FLOW_PO_DIST_TYPE' 
153293                 WHEN 18 THEN 'AID_INVOICE_DIST_ID' 
153290                 WHEN 15 THEN 'BUS_FLOW_PO_ENTITY_CODE' 
153291                 WHEN 16 THEN 'BUS_FLOW_PO_DIST_ID' 
153292                 WHEN 17 THEN 'BUS_FLOW_PO_DOC_ID' 
153294                 WHEN 19 THEN 'UPG_ENC_CR_CCID' 
153295                 WHEN 20 THEN 'UPG_ENC_CR_AMT' 
153296                 WHEN 21 THEN 'UPG_ENC_CR_BASE_AMT' 
153297                 WHEN 22 THEN 'UPG_ENC_DR_CCID' 
153298                 WHEN 23 THEN 'UPG_ENC_DR_AMT' 
153299                 WHEN 24 THEN 'UPG_ENC_DR_BASE_AMT' 
153300                 WHEN 25 THEN 'UPG_AP_ENCUM_OPTION' 
153301                 WHEN 26 THEN 'AID_AMOUNT' 
153302                 WHEN 27 THEN 'POH_RATE_DATE' 
153303                 WHEN 28 THEN 'POH_RATE' 
153304                 WHEN 29 THEN 'POH_RATE_TYPE' 
153305                 WHEN 30 THEN 'DEFERRED_END_DATE' 
153306                 WHEN 31 THEN 'DEFERRED_OPTION' 
153307                 WHEN 32 THEN 'DEFERRED_START_DATE' 
153308                 WHEN 33 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
153309                 WHEN 34 THEN 'AID_PARENT_REVERSAL_ID' 
153310                 WHEN 35 THEN 'AID_STAT_AMOUNT' 
153311                 WHEN 36 THEN 'TAX_LINE_ID' 
153312                 WHEN 37 THEN 'REC_NREC_TAX_DIST_ID' 
153313                 WHEN 38 THEN 'SUMMARY_TAX_LINE_ID' 
153314                 WHEN 39 THEN 'UPG_CR_ENC_TYPE_ID' 
153315                 WHEN 40 THEN 'UPG_DR_ENC_TYPE_ID' 
153316                 WHEN 41 THEN 'BUS_FLOW_AP_APP_ID' 
153317                 WHEN 42 THEN 'BUS_FLOW_INV_DIST_TYPE' 
153318                 WHEN 43 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
153319                 WHEN 44 THEN 'BUS_FLOW_INV_DIST_ID' 
153320                 WHEN 45 THEN 'BUS_FLOW_INV_ID' 
153321                 WHEN 46 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG' 
153322                 WHEN 47 THEN 'SELF_ASSESSED_TAX_FLAG' 
153323                 WHEN 48 THEN 'BUS_FLOW_RET_INV_DIST_ID' 
153324                 WHEN 49 THEN 'BUS_FLOW_RET_INV_ID' 
153325                 
153326                 ELSE null
153327               END                           source_code
153328             , CASE r
153329                 WHEN 1 THEN TO_CHAR(l1.AID_DESCRIPTION)
153330                 WHEN 2 THEN TO_CHAR(l1.INV_DIST_BASE_AMOUNT)
153331                 WHEN 3 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
153332                 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
153333                 WHEN 5 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
153334                 WHEN 6 THEN TO_CHAR(l1.AID_RET_RELATED_DIST_CCID)
153335                 WHEN 7 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
153336                 WHEN 8 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_ACCOUNT)
153337                 WHEN 9 THEN TO_CHAR(l1.ASAT_LIAB_CCID)
153338                 WHEN 10 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
153339                 WHEN 11 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
153340                 WHEN 12 THEN TO_CHAR(l1.ALLOC_TO_MAIN_DIST_ID)
153341                 WHEN 13 THEN TO_CHAR(l1.BUS_FLOW_PO_APP_ID)
153342                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_TYPE)
153343                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_PO_ENTITY_CODE)
153344                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_PO_DIST_ID)
153345                 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_PO_DOC_ID)
153346                 WHEN 18 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
153347                 WHEN 19 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
153348                 WHEN 20 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
153349                 WHEN 21 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
153350                 WHEN 22 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
153351                 WHEN 23 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
153352                 WHEN 24 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
153353                 WHEN 25 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
153354                 WHEN 26 THEN TO_CHAR(l1.AID_AMOUNT)
153355                 WHEN 27 THEN TO_CHAR(l3.POH_RATE_DATE)
153356                 WHEN 28 THEN TO_CHAR(l3.POH_RATE)
153357                 WHEN 29 THEN TO_CHAR(l3.POH_RATE_TYPE)
153358                 WHEN 30 THEN TO_CHAR(l1.DEFERRED_END_DATE)
153359                 WHEN 31 THEN TO_CHAR(l1.DEFERRED_OPTION)
153360                 WHEN 32 THEN TO_CHAR(l1.DEFERRED_START_DATE)
153361                 WHEN 33 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
153362                 WHEN 34 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
153363                 WHEN 35 THEN TO_CHAR(l1.AID_STAT_AMOUNT)
153364                 WHEN 36 THEN TO_CHAR(l5.TAX_LINE_ID)
153365                 WHEN 37 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
153366                 WHEN 38 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
153367                 WHEN 39 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
153368                 WHEN 40 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
153369                 WHEN 41 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
153370                 WHEN 42 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
153371                 WHEN 43 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
153372                 WHEN 44 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
153373                 WHEN 45 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
153374                 WHEN 46 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
153375                 WHEN 47 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_FLAG)
153376                 WHEN 48 THEN TO_CHAR(l1.BUS_FLOW_RET_INV_DIST_ID)
153377                 WHEN 49 THEN TO_CHAR(l1.BUS_FLOW_RET_INV_ID)
153378                 
153379                 ELSE null
153380               END                           source_value
153381             , CASE r
153382                 WHEN 3 THEN fvl22.meaning
153383                 WHEN 5 THEN fvl33.meaning
153384                 WHEN 33 THEN fvl80.meaning
153385                 WHEN 46 THEN fvl96.meaning
153386                 WHEN 47 THEN fvl142.meaning
153387                 
153388                 ELSE null
153389               END               source_meaning
153390          FROM  xla_events_gt     xet  
153391         , AP_INVOICE_EXTRACT_DETAILS_V  l1
153392         , AP_PO_HEADERS_EXTRACT_V  l3
153393         , ZX_AP_DEF_TAX_EXTRACT_V  l5
153394         , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
153395   , fnd_lookup_values    fvl22
153396   , fnd_lookup_values    fvl33
153400             , (select rownum r from all_objects where rownum <= 49 and owner = p_apps_owner)
153397   , fnd_lookup_values    fvl80
153398   , fnd_lookup_values    fvl96
153399   , fnd_lookup_values    fvl142
153401         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
153402           AND xet.event_class_code = C_EVENT_CLASS_CODE
153403             AND l1.event_id          = xet.event_id
153404  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 fvl22.lookup_type(+)         = 'DESTINATION TYPE'
153405   AND fvl22.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
153406   AND fvl22.view_application_id(+) = 201
153407   AND fvl22.language(+)            = USERENV('LANG')
153408      AND fvl33.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
153409   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
153410   AND fvl33.view_application_id(+) = 200
153411   AND fvl33.language(+)            = USERENV('LANG')
153412      AND fvl80.lookup_type(+)         = 'YES_NO'
153413   AND fvl80.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
153414   AND fvl80.view_application_id(+) = 0
153415   AND fvl80.language(+)            = USERENV('LANG')
153416      AND fvl96.lookup_type(+)         = 'YES_NO'
153417   AND fvl96.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
153418   AND fvl96.view_application_id(+) = 0
153419   AND fvl96.language(+)            = USERENV('LANG')
153420      AND fvl142.lookup_type(+)         = 'YES_NO'
153421   AND fvl142.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
153422   AND fvl142.view_application_id(+) = 0
153423   AND fvl142.language(+)            = USERENV('LANG')
153424   
153425 )
153426 ;
153427 --
153428 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
153429 
153430       trace
153431          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
153432          ,p_level    => C_LEVEL_STATEMENT
153433          ,p_module   => l_log_module);
153434 
153435 END IF;
153436 
153437 
153438 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
153439       trace
153440          (p_msg      => 'END of insert_sources_233'
153441          ,p_level    => C_LEVEL_PROCEDURE
153442          ,p_module   => l_log_module);
153443 END IF;
153444 EXCEPTION
153445   WHEN xla_exceptions_pkg.application_exception THEN
153446       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
153447             trace
153448                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
153449                ,p_level    => C_LEVEL_EXCEPTION
153450                ,p_module   => l_log_module);
153451       END IF;
153452       RAISE;
153453   WHEN OTHERS THEN
153454       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
153455             trace
153456                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
153457                ,p_level    => C_LEVEL_EXCEPTION
153458                ,p_module   => l_log_module);
153459        END IF;
153460        xla_exceptions_pkg.raise_message
153461            (p_location => 'XLA_00200_AAD_S_000002_PKG.insert_sources_233');
153462 END insert_sources_233;
153463 --
153464 
153465 ---------------------------------------
153466 --
153467 -- PRIVATE FUNCTION
153468 --         EventClass_233
153469 --
153470 ----------------------------------------
153471 --
153472 FUNCTION EventClass_233
153473        (p_application_id         IN NUMBER
153474        ,p_base_ledger_id         IN NUMBER
153475        ,p_target_ledger_id       IN NUMBER
153476        ,p_language               IN VARCHAR2
153477        ,p_currency_code          IN VARCHAR2
153478        ,p_sla_ledger_id          IN NUMBER
153479        ,p_pad_start_date         IN DATE
153480        ,p_pad_end_date           IN DATE
153481        ,p_primary_ledger_id      IN NUMBER)
153482 RETURN BOOLEAN IS
153483 --
153484 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'INVOICES_ALL';
153485 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'INVOICES';
153486 
153487 l_calculate_acctd_flag   VARCHAR2(1) :='N';
153488 l_calculate_g_l_flag     VARCHAR2(1) :='N';
153489 --
153490 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
153491 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
153492 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
153493 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
153494 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
153495 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
153496 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
153497 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
153498 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
153499 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
153500 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
153501 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
153502 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
153503 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
153504 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
153505 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
153506 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
153507 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
153508 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
153509 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
153510 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
153511 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
153512 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
153513 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
153517 l_event_id                             NUMBER;
153514 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
153515 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
153516 
153518 l_previous_event_id                    NUMBER;
153519 l_first_event_id                       NUMBER;
153520 l_last_event_id                        NUMBER;
153521 
153522 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
153523 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
153524 --
153525 --
153526 l_result                    BOOLEAN := TRUE;
153527 l_rows                      NUMBER  := 1000;
153528 l_event_type_name           VARCHAR2(80) := 'All';
153529 l_event_class_name          VARCHAR2(80) := 'Invoices';
153530 l_description               VARCHAR2(4000);
153531 l_transaction_reversal      NUMBER;
153532 l_ae_header_id              NUMBER;
153533 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
153534 l_log_module                VARCHAR2(240);
153535 --
153536 l_acct_reversal_source      VARCHAR2(30);
153537 l_trx_reversal_source       VARCHAR2(30);
153538 
153539 l_continue_with_lines       BOOLEAN := TRUE;
153540 --
153541 l_acc_rev_gl_date_source    DATE;                      -- 4262811
153542 --
153543 type t_array_event_id is table of number index by binary_integer;
153544 
153545 l_rec_array_event                    t_rec_array_event;
153546 l_null_rec_array_event               t_rec_array_event;
153547 l_array_ae_header_id                 xla_number_array_type;
153548 l_actual_flag                        VARCHAR2(1) := NULL;
153549 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
153550 l_balance_type_code                  VARCHAR2(1) :=NULL;
153551 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
153552 
153553 --
153554 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
153555 --
153556 
153557 TYPE t_array_source_3 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_TRANSACTION_NUMBER%TYPE INDEX BY BINARY_INTEGER;
153558 TYPE t_array_source_4 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_DATE%TYPE INDEX BY BINARY_INTEGER;
153559 TYPE t_array_source_5 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
153560 TYPE t_array_source_6 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.DOC_SEQUENCE_NAME%TYPE INDEX BY BINARY_INTEGER;
153561 TYPE t_array_source_7 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
153562 TYPE t_array_source_8 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
153563 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
153564 TYPE t_array_source_20 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
153565 TYPE t_array_source_23 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
153566 TYPE t_array_source_34 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_ACCTS_PAY_CCID%TYPE INDEX BY BINARY_INTEGER;
153567 TYPE t_array_source_40 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_RETAINAGE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
153568 TYPE t_array_source_47 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
153569 TYPE t_array_source_58 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
153570 TYPE t_array_source_67 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
153571 TYPE t_array_source_81 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
153572 TYPE t_array_source_82 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
153573 TYPE t_array_source_83 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
153574 TYPE t_array_source_143 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
153575 TYPE t_array_source_144 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
153576 TYPE t_array_source_145 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
153577 TYPE t_array_source_165 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
153578 TYPE t_array_source_168 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
153579 
153580 TYPE t_array_source_1 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
153581 TYPE t_array_source_21 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.INV_DIST_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
153582 TYPE t_array_source_22 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
153583 TYPE t_array_source_30 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
153584 TYPE t_array_source_33 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
153585 TYPE t_array_source_42 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_RET_RELATED_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
153586 TYPE t_array_source_43 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
153587 TYPE t_array_source_50 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
153588 TYPE t_array_source_51 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ASAT_LIAB_CCID%TYPE INDEX BY BINARY_INTEGER;
153589 TYPE t_array_source_53 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
153590 TYPE t_array_source_55 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
153591 TYPE t_array_source_57 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ALLOC_TO_MAIN_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
153592 TYPE t_array_source_59 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_APP_ID%TYPE INDEX BY BINARY_INTEGER;
153593 TYPE t_array_source_60 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
153594 TYPE t_array_source_61 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
153598 TYPE t_array_source_65 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
153595 TYPE t_array_source_62 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
153596 TYPE t_array_source_63 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_PO_DOC_ID%TYPE INDEX BY BINARY_INTEGER;
153597 TYPE t_array_source_64 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
153599 TYPE t_array_source_66 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
153600 TYPE t_array_source_68 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
153601 TYPE t_array_source_69 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
153602 TYPE t_array_source_70 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
153603 TYPE t_array_source_71 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
153604 TYPE t_array_source_72 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
153605 TYPE t_array_source_73 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
153606 TYPE t_array_source_74 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
153607 TYPE t_array_source_75 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
153608 TYPE t_array_source_76 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
153609 TYPE t_array_source_77 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
153610 TYPE t_array_source_78 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
153611 TYPE t_array_source_79 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
153612 TYPE t_array_source_80 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
153613 TYPE t_array_source_84 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
153614 TYPE t_array_source_85 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_STAT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
153615 TYPE t_array_source_86 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
153616 TYPE t_array_source_87 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
153617 TYPE t_array_source_88 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
153618 TYPE t_array_source_89 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
153619 TYPE t_array_source_90 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
153620 TYPE t_array_source_91 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
153621 TYPE t_array_source_92 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
153622 TYPE t_array_source_93 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
153623 TYPE t_array_source_94 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
153624 TYPE t_array_source_95 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
153625 TYPE t_array_source_96 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
153626 TYPE t_array_source_142 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_FLAG%TYPE INDEX BY BINARY_INTEGER;
153627 TYPE t_array_source_166 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_RET_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
153628 TYPE t_array_source_167 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_RET_INV_ID%TYPE INDEX BY BINARY_INTEGER;
153629 
153630 l_array_source_3              t_array_source_3;
153631 l_array_source_4              t_array_source_4;
153632 l_array_source_5              t_array_source_5;
153633 l_array_source_6              t_array_source_6;
153634 l_array_source_7              t_array_source_7;
153635 l_array_source_8              t_array_source_8;
153636 l_array_source_15              t_array_source_15;
153637 l_array_source_15_meaning      t_array_lookup_meaning;
153638 l_array_source_20              t_array_source_20;
153639 l_array_source_23              t_array_source_23;
153640 l_array_source_34              t_array_source_34;
153641 l_array_source_40              t_array_source_40;
153642 l_array_source_47              t_array_source_47;
153643 l_array_source_47_meaning      t_array_lookup_meaning;
153644 l_array_source_58              t_array_source_58;
153645 l_array_source_67              t_array_source_67;
153646 l_array_source_81              t_array_source_81;
153647 l_array_source_82              t_array_source_82;
153648 l_array_source_83              t_array_source_83;
153649 l_array_source_143              t_array_source_143;
153650 l_array_source_144              t_array_source_144;
153651 l_array_source_145              t_array_source_145;
153652 l_array_source_165              t_array_source_165;
153653 l_array_source_165_meaning      t_array_lookup_meaning;
153654 l_array_source_168              t_array_source_168;
153655 
153656 l_array_source_1      t_array_source_1;
153657 l_array_source_21      t_array_source_21;
153658 l_array_source_22      t_array_source_22;
153659 l_array_source_22_meaning      t_array_lookup_meaning;
153660 l_array_source_30      t_array_source_30;
153661 l_array_source_33      t_array_source_33;
153662 l_array_source_33_meaning      t_array_lookup_meaning;
153663 l_array_source_42      t_array_source_42;
153664 l_array_source_43      t_array_source_43;
153665 l_array_source_50      t_array_source_50;
153666 l_array_source_51      t_array_source_51;
153667 l_array_source_53      t_array_source_53;
153668 l_array_source_55      t_array_source_55;
153669 l_array_source_57      t_array_source_57;
153670 l_array_source_59      t_array_source_59;
153671 l_array_source_60      t_array_source_60;
153672 l_array_source_61      t_array_source_61;
153673 l_array_source_62      t_array_source_62;
153674 l_array_source_63      t_array_source_63;
153675 l_array_source_64      t_array_source_64;
153679 l_array_source_69      t_array_source_69;
153676 l_array_source_65      t_array_source_65;
153677 l_array_source_66      t_array_source_66;
153678 l_array_source_68      t_array_source_68;
153680 l_array_source_70      t_array_source_70;
153681 l_array_source_71      t_array_source_71;
153682 l_array_source_72      t_array_source_72;
153683 l_array_source_73      t_array_source_73;
153684 l_array_source_74      t_array_source_74;
153685 l_array_source_75      t_array_source_75;
153686 l_array_source_76      t_array_source_76;
153687 l_array_source_77      t_array_source_77;
153688 l_array_source_78      t_array_source_78;
153689 l_array_source_79      t_array_source_79;
153690 l_array_source_80      t_array_source_80;
153691 l_array_source_80_meaning      t_array_lookup_meaning;
153692 l_array_source_84      t_array_source_84;
153693 l_array_source_85      t_array_source_85;
153694 l_array_source_86      t_array_source_86;
153695 l_array_source_87      t_array_source_87;
153696 l_array_source_88      t_array_source_88;
153697 l_array_source_89      t_array_source_89;
153698 l_array_source_90      t_array_source_90;
153699 l_array_source_91      t_array_source_91;
153700 l_array_source_92      t_array_source_92;
153701 l_array_source_93      t_array_source_93;
153702 l_array_source_94      t_array_source_94;
153703 l_array_source_95      t_array_source_95;
153704 l_array_source_96      t_array_source_96;
153705 l_array_source_96_meaning      t_array_lookup_meaning;
153706 l_array_source_142      t_array_source_142;
153707 l_array_source_142_meaning      t_array_lookup_meaning;
153708 l_array_source_166      t_array_source_166;
153709 l_array_source_167      t_array_source_167;
153710 
153711 --
153712 CURSOR header_cur
153713 IS
153714 SELECT /*+ leading(xet) cardinality(xet,1) */
153715 -- Event Class Code: INVOICES
153716     xet.entity_id
153717    ,xet.legal_entity_id
153718    ,xet.entity_code
153719    ,xet.transaction_number
153720    ,xet.event_id
153721    ,xet.event_class_code
153722    ,xet.event_type_code
153723    ,xet.event_number
153724    ,xet.event_date
153725    ,xet.transaction_date
153726    ,xet.reference_num_1
153727    ,xet.reference_num_2
153728    ,xet.reference_num_3
153729    ,xet.reference_num_4
153730    ,xet.reference_char_1
153731    ,xet.reference_char_2
153732    ,xet.reference_char_3
153733    ,xet.reference_char_4
153734    ,xet.reference_date_1
153735    ,xet.reference_date_2
153736    ,xet.reference_date_3
153737    ,xet.reference_date_4
153738    ,xet.event_created_by
153739    ,xet.budgetary_control_flag 
153740   , h2.INV_TRANSACTION_NUMBER    source_3
153741   , h2.AI_INVOICE_DATE    source_4
153742   , h2.INV_DOC_SEQUENCE_CATEGORY    source_5
153743   , h2.DOC_SEQUENCE_NAME    source_6
153744   , h2.INV_DOC_SEQUENCE_VALUE    source_7
153745   , h2.AI_DESCRIPTION    source_8
153746   , h4.ASP_AUTOMATIC_OFFSETS_VALUE    source_15
153747   , fvl15.meaning   source_15_meaning
153748   , h4.ASP_RATE_VAR_GAIN_CCID    source_20
153749   , h4.ASP_RATE_VAR_LOSS_CCID    source_23
153750   , h2.AI_ACCTS_PAY_CCID    source_34
153751   , h4.FSP_RETAINAGE_ACCOUNT    source_40
153752   , h4.ASP_AUTO_OFFSET_FLAG    source_47
153753   , fvl47.meaning   source_47_meaning
153754   , h2.AI_INVOICE_ID    source_58
153755   , h2.AI_INVOICE_CURRENCY_CODE    source_67
153756   , h2.AI_VENDOR_ID    source_81
153757   , h2.AI_VENDOR_SITE_ID    source_82
153758   , h2.THIRD_PARTY_TYPE    source_83
153759   , h2.INV_EXCHANGE_DATE    source_143
153760   , h2.INV_EXCHANGE_RATE    source_144
153761   , h2.INV_EXCHANGE_RATE_TYPE    source_145
153762   , h2.AI_INVOICE_TYPE_LOOKUP_CODE    source_165
153763   , fvl165.meaning   source_165_meaning
153764   , h2.INV_DOC_SEQUENCE_IDENTIFIER    source_168
153765   FROM xla_events_gt     xet 
153766   , AP_INVOICE_EXTRACT_HEADER_V  h2
153767   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
153768   , fnd_lookup_values    fvl15
153769   , fnd_lookup_values    fvl47
153770   , fnd_lookup_values    fvl165
153771  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
153772    and xet.event_class_code = C_EVENT_CLASS_CODE
153773    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
153774  AND h4.asp_org_id = h2.ai_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
153775   AND fvl15.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
153776   AND fvl15.view_application_id(+) = 200
153777   AND fvl15.language(+)            = USERENV('LANG')
153778      AND fvl47.lookup_type(+)         = 'YES_NO'
153779   AND fvl47.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
153780   AND fvl47.view_application_id(+) = 0
153781   AND fvl47.language(+)            = USERENV('LANG')
153782      AND fvl165.lookup_type(+)         = 'INVOICE TYPE'
153783   AND fvl165.lookup_code(+)         = h2.AI_INVOICE_TYPE_LOOKUP_CODE
153784   AND fvl165.view_application_id(+) = 200
153785   AND fvl165.language(+)            = USERENV('LANG')
153786   
153787  ORDER BY event_id
153788 ;
153789 
153790 
153791 --
153792 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
153793 IS
153794 SELECT  /*+ leading(xet) cardinality(xet,1) */
153795 -- Event Class Code: INVOICES
153796     xet.entity_id
153797    ,xet.legal_entity_id
153798    ,xet.entity_code
153799    ,xet.transaction_number
153800    ,xet.event_id
153801    ,xet.event_class_code
153802    ,xet.event_type_code
153803    ,xet.event_number
153804    ,xet.event_date
153805    ,xet.transaction_date
153806    ,xet.reference_num_1
153807    ,xet.reference_num_2
153808    ,xet.reference_num_3
153809    ,xet.reference_num_4
153810    ,xet.reference_char_1
153811    ,xet.reference_char_2
153812    ,xet.reference_char_3
153813    ,xet.reference_char_4
153814    ,xet.reference_date_1
153815    ,xet.reference_date_2
153816    ,xet.reference_date_3
153817    ,xet.reference_date_4
153818    ,xet.event_created_by
153819    ,xet.budgetary_control_flag
153823   , l1.RELATED_INV_DIST_DEST_TYPE    source_22
153820  , l1.LINE_NUMBER  
153821   , l1.AID_DESCRIPTION    source_1
153822   , l1.INV_DIST_BASE_AMOUNT    source_21
153824   , fvl22.meaning   source_22_meaning
153825   , l1.AID_DIST_CCID    source_30
153826   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_33
153827   , fvl33.meaning   source_33_meaning
153828   , l1.AID_RET_RELATED_DIST_CCID    source_42
153829   , l1.AWT_RELATED_DIST_ACCOUNT    source_43
153830   , l1.SELF_ASSESSED_TAX_ACCOUNT    source_50
153831   , l1.ASAT_LIAB_CCID    source_51
153832   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_53
153833   , l1.DISTRIBUTION_LINK_TYPE    source_55
153834   , l1.ALLOC_TO_MAIN_DIST_ID    source_57
153835   , l1.BUS_FLOW_PO_APP_ID    source_59
153836   , l1.BUS_FLOW_PO_DIST_TYPE    source_60
153837   , l1.BUS_FLOW_PO_ENTITY_CODE    source_61
153838   , l1.BUS_FLOW_PO_DIST_ID    source_62
153839   , l1.BUS_FLOW_PO_DOC_ID    source_63
153840   , l1.AID_INVOICE_DIST_ID    source_64
153841   , l1.UPG_ENC_CR_CCID    source_65
153842   , l1.UPG_ENC_CR_AMT    source_66
153843   , l1.UPG_ENC_CR_BASE_AMT    source_68
153844   , l1.UPG_ENC_DR_CCID    source_69
153845   , l1.UPG_ENC_DR_AMT    source_70
153846   , l1.UPG_ENC_DR_BASE_AMT    source_71
153847   , l1.UPG_AP_ENCUM_OPTION    source_72
153848   , l1.AID_AMOUNT    source_73
153849   , l3.POH_RATE_DATE    source_74
153850   , l3.POH_RATE    source_75
153851   , l3.POH_RATE_TYPE    source_76
153852   , l1.DEFERRED_END_DATE    source_77
153853   , l1.DEFERRED_OPTION    source_78
153854   , l1.DEFERRED_START_DATE    source_79
153855   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_80
153856   , fvl80.meaning   source_80_meaning
153857   , l1.AID_PARENT_REVERSAL_ID    source_84
153858   , l1.AID_STAT_AMOUNT    source_85
153859   , l5.TAX_LINE_ID    source_86
153860   , l6.REC_NREC_TAX_DIST_ID    source_87
153861   , l1.SUMMARY_TAX_LINE_ID    source_88
153862   , l1.UPG_CR_ENC_TYPE_ID    source_89
153863   , l1.UPG_DR_ENC_TYPE_ID    source_90
153864   , l1.BUS_FLOW_AP_APP_ID    source_91
153865   , l1.BUS_FLOW_INV_DIST_TYPE    source_92
153866   , l1.BUS_FLOW_INV_ENTITY_CODE    source_93
153867   , l1.BUS_FLOW_INV_DIST_ID    source_94
153868   , l1.BUS_FLOW_INV_ID    source_95
153869   , l1.POD_ACCRUE_ON_RECEIPT_FLAG    source_96
153870   , fvl96.meaning   source_96_meaning
153871   , l1.SELF_ASSESSED_TAX_FLAG    source_142
153872   , fvl142.meaning   source_142_meaning
153873   , l1.BUS_FLOW_RET_INV_DIST_ID    source_166
153874   , l1.BUS_FLOW_RET_INV_ID    source_167
153875   FROM xla_events_gt     xet 
153876   , AP_INVOICE_EXTRACT_DETAILS_V  l1
153877   , AP_PO_HEADERS_EXTRACT_V  l3
153878   , ZX_AP_DEF_TAX_EXTRACT_V  l5
153879   , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
153880   , fnd_lookup_values    fvl22
153881   , fnd_lookup_values    fvl33
153882   , fnd_lookup_values    fvl80
153883   , fnd_lookup_values    fvl96
153884   , fnd_lookup_values    fvl142
153885  WHERE xet.event_id between x_first_event_id and x_last_event_id
153886    and xet.event_date between p_pad_start_date and p_pad_end_date
153887    and xet.event_class_code = C_EVENT_CLASS_CODE
153888    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
153889  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 fvl22.lookup_type(+)         = 'DESTINATION TYPE'
153890   AND fvl22.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
153891   AND fvl22.view_application_id(+) = 201
153892   AND fvl22.language(+)            = USERENV('LANG')
153893      AND fvl33.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
153894   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
153895   AND fvl33.view_application_id(+) = 200
153896   AND fvl33.language(+)            = USERENV('LANG')
153897      AND fvl80.lookup_type(+)         = 'YES_NO'
153898   AND fvl80.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
153899   AND fvl80.view_application_id(+) = 0
153900   AND fvl80.language(+)            = USERENV('LANG')
153901      AND fvl96.lookup_type(+)         = 'YES_NO'
153902   AND fvl96.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
153903   AND fvl96.view_application_id(+) = 0
153904   AND fvl96.language(+)            = USERENV('LANG')
153905      AND fvl142.lookup_type(+)         = 'YES_NO'
153906   AND fvl142.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
153907   AND fvl142.view_application_id(+) = 0
153908   AND fvl142.language(+)            = USERENV('LANG')
153909   ;
153910 
153911 --
153912 BEGIN
153913 IF g_log_enabled THEN
153914    l_log_module := C_DEFAULT_MODULE||'.EventClass_233';
153915 END IF;
153916 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
153917    trace
153918       (p_msg      => 'BEGIN of EventClass_233'
153919       ,p_level    => C_LEVEL_PROCEDURE
153920       ,p_module   => l_log_module);
153921 END IF;
153922 
153923 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
153924    trace
153925       (p_msg      => 'p_application_id = '||p_application_id||
153926                      ' - p_base_ledger_id = '||p_base_ledger_id||
153927                      ' - p_target_ledger_id  = '||p_target_ledger_id||
153928                      ' - p_language = '||p_language||
153929                      ' - p_currency_code = '||p_currency_code||
153930                      ' - p_sla_ledger_id = '||p_sla_ledger_id
153931       ,p_level    => C_LEVEL_STATEMENT
153932       ,p_module   => l_log_module);
153933 END IF;
153934 --
153935 -- initialze arrays
153936 --
153937 g_array_event.DELETE;
153938 l_rec_array_event := l_null_rec_array_event;
153939 --
153940 --------------------------------------
153941 -- 4262811 Initialze MPA Line Number
153942 --------------------------------------
153943 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
153944 
153945 --
153946 
153947 --
153948 OPEN header_cur;
153949 --
153950 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
153951    trace
153952    (p_msg      => 'SQL - FETCH header_cur'
153956 --
153953    ,p_level    => C_LEVEL_STATEMENT
153954    ,p_module   => l_log_module);
153955 END IF;
153957 LOOP
153958 FETCH header_cur BULK COLLECT INTO
153959         l_array_entity_id
153960       , l_array_legal_entity_id
153961       , l_array_entity_code
153962       , l_array_transaction_num
153963       , l_array_event_id
153964       , l_array_class_code
153965       , l_array_event_type
153966       , l_array_event_number
153967       , l_array_event_date
153968       , l_array_transaction_date
153969       , l_array_reference_num_1
153970       , l_array_reference_num_2
153971       , l_array_reference_num_3
153972       , l_array_reference_num_4
153973       , l_array_reference_char_1
153974       , l_array_reference_char_2
153975       , l_array_reference_char_3
153976       , l_array_reference_char_4
153977       , l_array_reference_date_1
153978       , l_array_reference_date_2
153979       , l_array_reference_date_3
153980       , l_array_reference_date_4
153981       , l_array_event_created_by
153982       , l_array_budgetary_control_flag 
153983       , l_array_source_3
153984       , l_array_source_4
153985       , l_array_source_5
153986       , l_array_source_6
153987       , l_array_source_7
153988       , l_array_source_8
153989       , l_array_source_15
153990       , l_array_source_15_meaning
153991       , l_array_source_20
153992       , l_array_source_23
153993       , l_array_source_34
153994       , l_array_source_40
153995       , l_array_source_47
153996       , l_array_source_47_meaning
153997       , l_array_source_58
153998       , l_array_source_67
153999       , l_array_source_81
154000       , l_array_source_82
154001       , l_array_source_83
154002       , l_array_source_143
154003       , l_array_source_144
154004       , l_array_source_145
154005       , l_array_source_165
154006       , l_array_source_165_meaning
154007       , l_array_source_168
154008       LIMIT l_rows;
154009 --
154010 IF (C_LEVEL_EVENT >= g_log_level) THEN
154011    trace
154012    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
154013    ,p_level    => C_LEVEL_EVENT
154014    ,p_module   => l_log_module);
154015 END IF;
154016 --
154017 EXIT WHEN l_array_entity_id.COUNT = 0;
154018 
154019 -- initialize arrays
154020 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
154021 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
154022 
154023 --
154024 -- Bug 4458708
154025 --
154026 XLA_AE_LINES_PKG.g_LineNumber := 0;
154027 
154028 
154029 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
154030 g_last_hdr_idx := l_array_event_id.LAST;
154031 --
154032 -- loop for the headers. Each iteration is for each header extract row
154033 -- fetched in header cursor
154034 --
154035 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
154036 
154037 --
154038 -- set event info as cache for other routines to refer event attributes
154039 --
154040 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
154041    (p_application_id           => p_application_id
154042    ,p_primary_ledger_id        => p_primary_ledger_id
154043    ,p_base_ledger_id           => p_base_ledger_id
154044    ,p_target_ledger_id         => p_target_ledger_id
154045    ,p_entity_id                => l_array_entity_id(hdr_idx)
154046    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
154047    ,p_entity_code              => l_array_entity_code(hdr_idx)
154048    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
154049    ,p_event_id                 => l_array_event_id(hdr_idx)
154050    ,p_event_class_code         => l_array_class_code(hdr_idx)
154051    ,p_event_type_code          => l_array_event_type(hdr_idx)
154052    ,p_event_number             => l_array_event_number(hdr_idx)
154053    ,p_event_date               => l_array_event_date(hdr_idx)
154054    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
154055    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
154056    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
154057    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
154058    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
154059    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
154060    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
154061    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
154062    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
154063    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
154064    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
154065    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
154066    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
154067    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
154068    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
154069 
154070 --
154071 -- set the status of entry to C_VALID (0)
154072 --
154073 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
154074 
154075 --
154076 -- initialize a row for ae header
154077 --
154078 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
154079 
154080 l_event_id := l_array_event_id(hdr_idx);
154081 
154082 --
154083 -- storing the hdr_idx for event. May be used by line cursor.
154084 --
154085 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
154086 
154087 --
154088 -- store sources from header extract. This can be improved to
154089 -- store only those sources from header extract that may be used in lines
154090 --
154091 
154092 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
154093 g_array_event(l_event_id).array_value_date('source_4') := l_array_source_4(hdr_idx);
154097 g_array_event(l_event_id).array_value_char('source_8') := l_array_source_8(hdr_idx);
154094 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
154095 g_array_event(l_event_id).array_value_char('source_6') := l_array_source_6(hdr_idx);
154096 g_array_event(l_event_id).array_value_num('source_7') := l_array_source_7(hdr_idx);
154098 g_array_event(l_event_id).array_value_char('source_15') := l_array_source_15(hdr_idx);
154099 g_array_event(l_event_id).array_value_char('source_15_meaning') := l_array_source_15_meaning(hdr_idx);
154100 g_array_event(l_event_id).array_value_num('source_20') := l_array_source_20(hdr_idx);
154101 g_array_event(l_event_id).array_value_num('source_23') := l_array_source_23(hdr_idx);
154102 g_array_event(l_event_id).array_value_num('source_34') := l_array_source_34(hdr_idx);
154103 g_array_event(l_event_id).array_value_num('source_40') := l_array_source_40(hdr_idx);
154104 g_array_event(l_event_id).array_value_char('source_47') := l_array_source_47(hdr_idx);
154105 g_array_event(l_event_id).array_value_char('source_47_meaning') := l_array_source_47_meaning(hdr_idx);
154106 g_array_event(l_event_id).array_value_num('source_58') := l_array_source_58(hdr_idx);
154107 g_array_event(l_event_id).array_value_char('source_67') := l_array_source_67(hdr_idx);
154108 g_array_event(l_event_id).array_value_num('source_81') := l_array_source_81(hdr_idx);
154109 g_array_event(l_event_id).array_value_num('source_82') := l_array_source_82(hdr_idx);
154110 g_array_event(l_event_id).array_value_char('source_83') := l_array_source_83(hdr_idx);
154111 g_array_event(l_event_id).array_value_date('source_143') := l_array_source_143(hdr_idx);
154112 g_array_event(l_event_id).array_value_num('source_144') := l_array_source_144(hdr_idx);
154113 g_array_event(l_event_id).array_value_char('source_145') := l_array_source_145(hdr_idx);
154114 g_array_event(l_event_id).array_value_char('source_165') := l_array_source_165(hdr_idx);
154115 g_array_event(l_event_id).array_value_char('source_165_meaning') := l_array_source_165_meaning(hdr_idx);
154116 g_array_event(l_event_id).array_value_num('source_168') := l_array_source_168(hdr_idx);
154117 
154118 --
154119 -- initilaize the status of ae headers for diffrent balance types
154120 -- the status is initialised to C_NOT_CREATED (2)
154121 --
154122 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
154123 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
154124 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
154125 
154126 --
154127 -- call api to validate and store accounting attributes for header
154128 --
154129 
154130 ------------------------------------------------------------
154131 -- Accrual Reversal : to get date for Standard Source (NONE)
154132 ------------------------------------------------------------
154133 l_acc_rev_gl_date_source := NULL;
154134 
154135      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
154136       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_5');
154137      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
154138       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_168');
154139      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
154140       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_7');
154141      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
154142       l_rec_acct_attrs.array_date_value(4) := 
154143 xla_ae_sources_pkg.GetSystemSourceDate(
154144    p_source_code           => 'XLA_EVENT_DATE'
154145  , p_source_type_code      => 'Y'
154146  , p_source_application_id =>  602
154147 );
154148 
154149 
154150 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
154151 
154152 XLA_AE_HEADER_PKG.SetJeCategoryName;
154153 
154154 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
154155 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
154156 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
154157 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
154158 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
154159 
154160 
154161 --
154162 xla_ae_header_pkg.SetHdrDescription(
154163    p_description => Description_2 (
154164    p_application_id => p_application_id 
154165  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
154166  , p_source_4 => g_array_event(l_event_id).array_value_date('source_4')
154167  , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
154168  , p_source_6 => g_array_event(l_event_id).array_value_char('source_6')
154169  , p_source_7 => g_array_event(l_event_id).array_value_num('source_7')
154170  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
154171    )
154172 );
154173 --
154174 
154175 -- No header level analytical criteria
154176 
154177 --
154178 --accounting attribute enhancement, bug 3612931
154179 --
154180 l_trx_reversal_source := SUBSTR(NULL, 1,30);
154181 
154182 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
154183    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
154184 
154185    xla_accounting_err_pkg.build_message
154186       (p_appli_s_name            => 'XLA'
154187       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
154188       ,p_token_1                 => 'ACCT_ATTR_NAME'
154189       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
154190       ,p_token_2                 => 'PRODUCT_NAME'
154191       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
154192       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
154193       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
154197    --
154194       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
154195 
154196 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
154198    -- following sets the accounting attributes needed to reverse
154199    -- accounting for a distributeion
154200    --
154201    xla_ae_lines_pkg.SetTrxReversalAttrs
154202       (p_event_id              => l_event_id
154203       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
154204       ,p_trx_reversal_source   => l_trx_reversal_source);
154205 
154206 END IF;
154207 
154208 
154209 ----------------------------------------------------------------
154210 -- 4262811 -  update the header statuses to invalid in need be
154211 ----------------------------------------------------------------
154212 --
154213 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
154214 
154215 
154216   -----------------------------------------------
154217   -- No accrual reversal for the event class/type
154218   -----------------------------------------------
154219 ----------------------------------------------------------------
154220 
154221 --
154222 -- this ends the header loop iteration for one bulk fetch
154223 --
154224 END LOOP;
154225 
154226 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
154227 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
154228 
154229 --
154230 -- insert dummy rows into lines gt table that were created due to
154231 -- transaction reversals
154232 --
154233 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
154234    l_result := XLA_AE_LINES_PKG.InsertLines;
154235 END IF;
154236 
154237 --
154238 -- reset the temp_line_num for each set of events fetched from header
154239 -- cursor rather than doing it for each new event in line cursor
154240 -- Bug 3939231
154241 --
154242 xla_ae_lines_pkg.g_temp_line_num := 0;
154243 
154244 
154245 
154246 --
154247 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
154248 --
154249 --
154250 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
154251 
154252       trace
154253          (p_msg      => 'SQL - FETCH line_cur'
154254          ,p_level    => C_LEVEL_STATEMENT
154255          ,p_module   => l_log_module);
154256 
154257 END IF;
154258 --
154259 --
154260 LOOP
154261   --
154262   FETCH line_cur BULK COLLECT INTO
154263         l_array_entity_id
154264       , l_array_legal_entity_id
154265       , l_array_entity_code
154266       , l_array_transaction_num
154267       , l_array_event_id
154268       , l_array_class_code
154269       , l_array_event_type
154270       , l_array_event_number
154271       , l_array_event_date
154272       , l_array_transaction_date
154273       , l_array_reference_num_1
154274       , l_array_reference_num_2
154275       , l_array_reference_num_3
154276       , l_array_reference_num_4
154277       , l_array_reference_char_1
154278       , l_array_reference_char_2
154279       , l_array_reference_char_3
154280       , l_array_reference_char_4
154281       , l_array_reference_date_1
154282       , l_array_reference_date_2
154283       , l_array_reference_date_3
154284       , l_array_reference_date_4
154285       , l_array_event_created_by
154286       , l_array_budgetary_control_flag
154287       , l_array_extract_line_num 
154288       , l_array_source_1
154289       , l_array_source_21
154290       , l_array_source_22
154291       , l_array_source_22_meaning
154292       , l_array_source_30
154293       , l_array_source_33
154294       , l_array_source_33_meaning
154295       , l_array_source_42
154296       , l_array_source_43
154297       , l_array_source_50
154298       , l_array_source_51
154299       , l_array_source_53
154300       , l_array_source_55
154301       , l_array_source_57
154302       , l_array_source_59
154303       , l_array_source_60
154304       , l_array_source_61
154305       , l_array_source_62
154306       , l_array_source_63
154307       , l_array_source_64
154308       , l_array_source_65
154309       , l_array_source_66
154310       , l_array_source_68
154311       , l_array_source_69
154312       , l_array_source_70
154313       , l_array_source_71
154314       , l_array_source_72
154315       , l_array_source_73
154316       , l_array_source_74
154317       , l_array_source_75
154318       , l_array_source_76
154319       , l_array_source_77
154320       , l_array_source_78
154321       , l_array_source_79
154322       , l_array_source_80
154323       , l_array_source_80_meaning
154324       , l_array_source_84
154325       , l_array_source_85
154326       , l_array_source_86
154327       , l_array_source_87
154328       , l_array_source_88
154329       , l_array_source_89
154330       , l_array_source_90
154331       , l_array_source_91
154332       , l_array_source_92
154333       , l_array_source_93
154334       , l_array_source_94
154335       , l_array_source_95
154336       , l_array_source_96
154337       , l_array_source_96_meaning
154338       , l_array_source_142
154339       , l_array_source_142_meaning
154340       , l_array_source_166
154341       , l_array_source_167
154342       LIMIT l_rows;
154343 
154344   --
154345   IF (C_LEVEL_EVENT >= g_log_level) THEN
154346             trace
154347                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
154348                ,p_level    => C_LEVEL_EVENT
154349                ,p_module   => l_log_module);
154350   END IF;
154351   --
154352   EXIT WHEN l_array_entity_id.count = 0;
154353 
154354   XLA_AE_LINES_PKG.g_rec_lines := null;
154355 
154356 --
154357 -- Bug 4458708
154358 --
154359 XLA_AE_LINES_PKG.g_LineNumber := 0;
154363 FOR Idx IN 1..l_array_event_id.count LOOP
154360 --
154361 --
154362 
154364    --
154365    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
154366    --
154367    l_event_id := l_array_event_id(idx);  -- 5648433
154368 
154369    --
154370    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
154371    --
154372 
154373    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
154374              (g_array_event(l_event_id).array_value_num('header_index'))
154375          ,'N'
154376          ) <> 'Y'
154377    THEN
154378       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
154379          trace
154380             (p_msg      => 'Trancaction revesal option is not Y '
154381             ,p_level    => C_LEVEL_STATEMENT
154382             ,p_module   => l_log_module);
154383       END IF;
154384 
154385 --
154386 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
154387 --
154388 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
154389 --
154390 -- set event info as cache for other routines to refer event attributes
154391 --
154392 
154393 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
154394    l_previous_event_id := l_event_id;
154395 
154396    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
154397       (p_application_id           => p_application_id
154398       ,p_primary_ledger_id        => p_primary_ledger_id
154399       ,p_base_ledger_id           => p_base_ledger_id
154400       ,p_target_ledger_id         => p_target_ledger_id
154401       ,p_entity_id                => l_array_entity_id(Idx)
154402       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
154403       ,p_entity_code              => l_array_entity_code(Idx)
154404       ,p_transaction_num          => l_array_transaction_num(Idx)
154405       ,p_event_id                 => l_array_event_id(Idx)
154406       ,p_event_class_code         => l_array_class_code(Idx)
154407       ,p_event_type_code          => l_array_event_type(Idx)
154408       ,p_event_number             => l_array_event_number(Idx)
154409       ,p_event_date               => l_array_event_date(Idx)
154410       ,p_transaction_date         => l_array_transaction_date(Idx)
154411       ,p_reference_num_1          => l_array_reference_num_1(Idx)
154412       ,p_reference_num_2          => l_array_reference_num_2(Idx)
154413       ,p_reference_num_3          => l_array_reference_num_3(Idx)
154414       ,p_reference_num_4          => l_array_reference_num_4(Idx)
154415       ,p_reference_char_1         => l_array_reference_char_1(Idx)
154416       ,p_reference_char_2         => l_array_reference_char_2(Idx)
154417       ,p_reference_char_3         => l_array_reference_char_3(Idx)
154418       ,p_reference_char_4         => l_array_reference_char_4(Idx)
154419       ,p_reference_date_1         => l_array_reference_date_1(Idx)
154420       ,p_reference_date_2         => l_array_reference_date_2(Idx)
154421       ,p_reference_date_3         => l_array_reference_date_3(Idx)
154422       ,p_reference_date_4         => l_array_reference_date_4(Idx)
154423       ,p_event_created_by         => l_array_event_created_by(Idx)
154424       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
154425        --
154426 END IF;
154427 
154428 
154429 
154430 --
154431 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
154432 
154433 l_acct_reversal_source := SUBSTR(l_array_source_53(Idx), 1,30);
154434 
154435 IF l_continue_with_lines THEN
154436    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
154437       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
154438 
154439       xla_accounting_err_pkg.build_message
154440          (p_appli_s_name            => 'XLA'
154441          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
154442          ,p_token_1                 => 'LINE_NUMBER'
154443          ,p_value_1                 => l_array_extract_line_num(Idx)
154444          ,p_token_2                 => 'PRODUCT_NAME'
154445          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
154446          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
154447          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
154448          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
154449 
154450    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
154451       --
154452       -- following sets the accounting attributes needed to reverse
154453       -- accounting for a distributeion
154454       --
154455 
154456       --
154457       -- 5217187
154458       --
154459       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
154460       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
154461                                        g_array_event(l_event_id).array_value_num('header_index'));
154462       --
154463       --
154464 
154465       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
154466       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_53(Idx);
154467       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
154468       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_64(Idx);
154469       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
154470       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_55(Idx);
154471       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
154472       l_rec_rev_acct_attrs.array_num_value(5)  := l_array_source_65(Idx);
154473       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
154474       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_66(Idx);
154475       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
154476       l_rec_rev_acct_attrs.array_char_value(7)  := g_array_event(l_event_id).array_value_char('source_67');
154480       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_69(Idx);
154477       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
154478       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_68(Idx);
154479       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
154481       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
154482       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_70(Idx);
154483       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
154484       l_rec_rev_acct_attrs.array_char_value(11)  := g_array_event(l_event_id).array_value_char('source_67');
154485       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
154486       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_71(Idx);
154487       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
154488       l_rec_rev_acct_attrs.array_char_value(13)  := l_array_source_72(Idx);
154489       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
154490       l_rec_rev_acct_attrs.array_char_value(14)  := g_array_event(l_event_id).array_value_char('source_83');
154491       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
154492       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_84(Idx);
154493       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
154494       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_55(Idx);
154495       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
154496       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_86(Idx);
154497       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
154498       l_rec_rev_acct_attrs.array_num_value(18)  := l_array_source_87(Idx);
154499       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
154500       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_88(Idx);
154501       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
154502       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_89(Idx);
154503       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
154504       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_90(Idx);
154505 
154506 
154507       xla_ae_lines_pkg.SetAcctReversalAttrs
154508          (p_event_id             => l_event_id
154509          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
154510          ,p_calculate_acctd_flag => l_calculate_acctd_flag
154511          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
154512    END IF;
154513 
154514    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
154515        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
154516 
154517 --
154518 AcctLineType_49 (
154519  p_application_id  => p_application_id
154520  ,p_event_id     => l_event_id
154521  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154522  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154523  ,p_actual_flag => l_actual_flag
154524  ,p_balance_type_code => l_balance_type_code
154525  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154526  
154527  , p_source_1 => l_array_source_1(Idx)
154528  , p_source_21 => l_array_source_21(Idx)
154529  , p_source_30 => l_array_source_30(Idx)
154530  , p_source_33 => l_array_source_33(Idx)
154531  , p_source_33_meaning => l_array_source_33_meaning(Idx)
154532  , p_source_53 => l_array_source_53(Idx)
154533  , p_source_55 => l_array_source_55(Idx)
154534  , p_source_57 => l_array_source_57(Idx)
154535  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
154536  , p_source_59 => l_array_source_59(Idx)
154537  , p_source_60 => l_array_source_60(Idx)
154538  , p_source_61 => l_array_source_61(Idx)
154539  , p_source_62 => l_array_source_62(Idx)
154540  , p_source_63 => l_array_source_63(Idx)
154541  , p_source_64 => l_array_source_64(Idx)
154542  , p_source_65 => l_array_source_65(Idx)
154543  , p_source_66 => l_array_source_66(Idx)
154544  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
154545  , p_source_68 => l_array_source_68(Idx)
154546  , p_source_69 => l_array_source_69(Idx)
154547  , p_source_70 => l_array_source_70(Idx)
154548  , p_source_71 => l_array_source_71(Idx)
154549  , p_source_72 => l_array_source_72(Idx)
154550  , p_source_73 => l_array_source_73(Idx)
154551  , p_source_74 => l_array_source_74(Idx)
154552  , p_source_75 => l_array_source_75(Idx)
154553  , p_source_76 => l_array_source_76(Idx)
154554  , p_source_77 => l_array_source_77(Idx)
154555  , p_source_78 => l_array_source_78(Idx)
154556  , p_source_79 => l_array_source_79(Idx)
154557  , p_source_80 => l_array_source_80(Idx)
154558  , p_source_80_meaning => l_array_source_80_meaning(Idx)
154559  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
154560  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
154561  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
154562  , p_source_84 => l_array_source_84(Idx)
154563  , p_source_85 => l_array_source_85(Idx)
154564  , p_source_86 => l_array_source_86(Idx)
154565  , p_source_87 => l_array_source_87(Idx)
154566  , p_source_88 => l_array_source_88(Idx)
154567  , p_source_89 => l_array_source_89(Idx)
154568  , p_source_90 => l_array_source_90(Idx)
154569  );
154570 If(l_balance_type_code = 'A') THEN
154571   l_actual_gain_loss_ref := l_gain_or_loss_ref;
154572 END IF;
154573 
154574 --
154575 
154576 
154577 --
154578 AcctLineType_53 (
154579  p_application_id  => p_application_id
154580  ,p_event_id     => l_event_id
154581  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154582  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154583  ,p_actual_flag => l_actual_flag
154584  ,p_balance_type_code => l_balance_type_code
154585  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154586  
154587  , p_source_1 => l_array_source_1(Idx)
154588  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
154589  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
154593  , p_source_22_meaning => l_array_source_22_meaning(Idx)
154590  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
154591  , p_source_21 => l_array_source_21(Idx)
154592  , p_source_22 => l_array_source_22(Idx)
154594  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
154595  , p_source_30 => l_array_source_30(Idx)
154596  , p_source_33 => l_array_source_33(Idx)
154597  , p_source_33_meaning => l_array_source_33_meaning(Idx)
154598  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
154599  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
154600  , p_source_53 => l_array_source_53(Idx)
154601  , p_source_55 => l_array_source_55(Idx)
154602  , p_source_57 => l_array_source_57(Idx)
154603  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
154604  , p_source_64 => l_array_source_64(Idx)
154605  , p_source_65 => l_array_source_65(Idx)
154606  , p_source_66 => l_array_source_66(Idx)
154607  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
154608  , p_source_68 => l_array_source_68(Idx)
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 => l_array_source_72(Idx)
154613  , p_source_73 => l_array_source_73(Idx)
154614  , p_source_77 => l_array_source_77(Idx)
154615  , p_source_78 => l_array_source_78(Idx)
154616  , p_source_79 => l_array_source_79(Idx)
154617  , p_source_80 => l_array_source_80(Idx)
154618  , p_source_80_meaning => l_array_source_80_meaning(Idx)
154619  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
154620  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
154621  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
154622  , p_source_84 => l_array_source_84(Idx)
154623  , p_source_85 => l_array_source_85(Idx)
154624  , p_source_86 => l_array_source_86(Idx)
154625  , p_source_87 => l_array_source_87(Idx)
154626  , p_source_88 => l_array_source_88(Idx)
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  );
154635 If(l_balance_type_code = 'A') THEN
154636   l_actual_gain_loss_ref := l_gain_or_loss_ref;
154637 END IF;
154638 
154639 --
154640 
154641 
154642 --
154643 AcctLineType_57 (
154644  p_application_id  => p_application_id
154645  ,p_event_id     => l_event_id
154646  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154647  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154648  ,p_actual_flag => l_actual_flag
154649  ,p_balance_type_code => l_balance_type_code
154650  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154651  
154652  , p_source_1 => l_array_source_1(Idx)
154653  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
154654  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
154655  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
154656  , p_source_21 => l_array_source_21(Idx)
154657  , p_source_22 => l_array_source_22(Idx)
154658  , p_source_22_meaning => l_array_source_22_meaning(Idx)
154659  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
154660  , p_source_30 => l_array_source_30(Idx)
154661  , p_source_33 => l_array_source_33(Idx)
154662  , p_source_33_meaning => l_array_source_33_meaning(Idx)
154663  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
154664  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
154665  , p_source_53 => l_array_source_53(Idx)
154666  , p_source_55 => l_array_source_55(Idx)
154667  , p_source_57 => l_array_source_57(Idx)
154668  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
154669  , p_source_64 => l_array_source_64(Idx)
154670  , p_source_65 => l_array_source_65(Idx)
154671  , p_source_66 => l_array_source_66(Idx)
154672  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
154673  , p_source_68 => l_array_source_68(Idx)
154674  , p_source_69 => l_array_source_69(Idx)
154675  , p_source_70 => l_array_source_70(Idx)
154676  , p_source_71 => l_array_source_71(Idx)
154677  , p_source_72 => l_array_source_72(Idx)
154678  , p_source_73 => l_array_source_73(Idx)
154679  , p_source_77 => l_array_source_77(Idx)
154680  , p_source_78 => l_array_source_78(Idx)
154681  , p_source_79 => l_array_source_79(Idx)
154682  , p_source_80 => l_array_source_80(Idx)
154683  , p_source_80_meaning => l_array_source_80_meaning(Idx)
154684  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
154685  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
154686  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
154687  , p_source_84 => l_array_source_84(Idx)
154688  , p_source_85 => l_array_source_85(Idx)
154689  , p_source_86 => l_array_source_86(Idx)
154690  , p_source_87 => l_array_source_87(Idx)
154691  , p_source_88 => l_array_source_88(Idx)
154692  , p_source_89 => l_array_source_89(Idx)
154693  , p_source_90 => l_array_source_90(Idx)
154694  , p_source_91 => l_array_source_91(Idx)
154695  , p_source_92 => l_array_source_92(Idx)
154696  , p_source_93 => l_array_source_93(Idx)
154697  , p_source_94 => l_array_source_94(Idx)
154698  , p_source_95 => l_array_source_95(Idx)
154699  , p_source_96 => l_array_source_96(Idx)
154700  , p_source_96_meaning => l_array_source_96_meaning(Idx)
154701  );
154702 If(l_balance_type_code = 'A') THEN
154703   l_actual_gain_loss_ref := l_gain_or_loss_ref;
154704 END IF;
154705 
154706 --
154707 
154708 
154709 --
154710 AcctLineType_109 (
154711  p_application_id  => p_application_id
154712  ,p_event_id     => l_event_id
154713  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154717  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154714  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154715  ,p_actual_flag => l_actual_flag
154716  ,p_balance_type_code => l_balance_type_code
154718  
154719  , p_source_1 => l_array_source_1(Idx)
154720  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
154721  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
154722  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
154723  , p_source_21 => l_array_source_21(Idx)
154724  , p_source_22 => l_array_source_22(Idx)
154725  , p_source_22_meaning => l_array_source_22_meaning(Idx)
154726  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
154727  , p_source_30 => l_array_source_30(Idx)
154728  , p_source_33 => l_array_source_33(Idx)
154729  , p_source_33_meaning => l_array_source_33_meaning(Idx)
154730  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
154731  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
154732  , p_source_53 => l_array_source_53(Idx)
154733  , p_source_55 => l_array_source_55(Idx)
154734  , p_source_57 => l_array_source_57(Idx)
154735  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
154736  , p_source_64 => l_array_source_64(Idx)
154737  , p_source_65 => l_array_source_65(Idx)
154738  , p_source_66 => l_array_source_66(Idx)
154739  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
154740  , p_source_68 => l_array_source_68(Idx)
154741  , p_source_69 => l_array_source_69(Idx)
154742  , p_source_70 => l_array_source_70(Idx)
154743  , p_source_71 => l_array_source_71(Idx)
154744  , p_source_72 => l_array_source_72(Idx)
154745  , p_source_73 => l_array_source_73(Idx)
154746  , p_source_77 => l_array_source_77(Idx)
154747  , p_source_78 => l_array_source_78(Idx)
154748  , p_source_79 => l_array_source_79(Idx)
154749  , p_source_80 => l_array_source_80(Idx)
154750  , p_source_80_meaning => l_array_source_80_meaning(Idx)
154751  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
154752  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
154753  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
154754  , p_source_84 => l_array_source_84(Idx)
154755  , p_source_85 => l_array_source_85(Idx)
154756  , p_source_86 => l_array_source_86(Idx)
154757  , p_source_87 => l_array_source_87(Idx)
154758  , p_source_88 => l_array_source_88(Idx)
154759  , p_source_89 => l_array_source_89(Idx)
154760  , p_source_90 => l_array_source_90(Idx)
154761  , p_source_91 => l_array_source_91(Idx)
154762  , p_source_92 => l_array_source_92(Idx)
154763  , p_source_93 => l_array_source_93(Idx)
154764  , p_source_94 => l_array_source_94(Idx)
154765  , p_source_95 => l_array_source_95(Idx)
154766  , p_source_96 => l_array_source_96(Idx)
154767  , p_source_96_meaning => l_array_source_96_meaning(Idx)
154768  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
154769  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
154770  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
154771  );
154772 If(l_balance_type_code = 'A') THEN
154773   l_actual_gain_loss_ref := l_gain_or_loss_ref;
154774 END IF;
154775 
154776 --
154777 
154778 
154779 --
154780 AcctLineType_118 (
154781  p_application_id  => p_application_id
154782  ,p_event_id     => l_event_id
154783  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154784  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154785  ,p_actual_flag => l_actual_flag
154786  ,p_balance_type_code => l_balance_type_code
154787  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154788  
154789  , p_source_1 => l_array_source_1(Idx)
154790  , p_source_21 => l_array_source_21(Idx)
154791  , p_source_30 => l_array_source_30(Idx)
154792  , p_source_33 => l_array_source_33(Idx)
154793  , p_source_33_meaning => l_array_source_33_meaning(Idx)
154794  , p_source_53 => l_array_source_53(Idx)
154795  , p_source_55 => l_array_source_55(Idx)
154796  , p_source_57 => l_array_source_57(Idx)
154797  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
154798  , p_source_64 => l_array_source_64(Idx)
154799  , p_source_65 => l_array_source_65(Idx)
154800  , p_source_66 => l_array_source_66(Idx)
154801  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
154802  , p_source_68 => l_array_source_68(Idx)
154803  , p_source_69 => l_array_source_69(Idx)
154804  , p_source_70 => l_array_source_70(Idx)
154805  , p_source_71 => l_array_source_71(Idx)
154806  , p_source_72 => l_array_source_72(Idx)
154807  , p_source_73 => l_array_source_73(Idx)
154808  , p_source_77 => l_array_source_77(Idx)
154809  , p_source_78 => l_array_source_78(Idx)
154810  , p_source_79 => l_array_source_79(Idx)
154811  , p_source_80 => l_array_source_80(Idx)
154812  , p_source_80_meaning => l_array_source_80_meaning(Idx)
154813  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
154814  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
154815  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
154816  , p_source_84 => l_array_source_84(Idx)
154817  , p_source_85 => l_array_source_85(Idx)
154818  , p_source_86 => l_array_source_86(Idx)
154819  , p_source_87 => l_array_source_87(Idx)
154820  , p_source_88 => l_array_source_88(Idx)
154821  , p_source_89 => l_array_source_89(Idx)
154822  , p_source_90 => l_array_source_90(Idx)
154823  , p_source_91 => l_array_source_91(Idx)
154824  , p_source_92 => l_array_source_92(Idx)
154825  , p_source_93 => l_array_source_93(Idx)
154826  , p_source_94 => l_array_source_94(Idx)
154827  , p_source_95 => l_array_source_95(Idx)
154828  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
154829  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
154830  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
154831  );
154832 If(l_balance_type_code = 'A') THEN
154836 --
154833   l_actual_gain_loss_ref := l_gain_or_loss_ref;
154834 END IF;
154835 
154837 
154838 
154839 --
154840 AcctLineType_140 (
154841  p_application_id  => p_application_id
154842  ,p_event_id     => l_event_id
154843  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154844  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154845  ,p_actual_flag => l_actual_flag
154846  ,p_balance_type_code => l_balance_type_code
154847  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154848  
154849  , p_source_1 => l_array_source_1(Idx)
154850  , p_source_21 => l_array_source_21(Idx)
154851  , p_source_30 => l_array_source_30(Idx)
154852  , p_source_33 => l_array_source_33(Idx)
154853  , p_source_33_meaning => l_array_source_33_meaning(Idx)
154854  , p_source_53 => l_array_source_53(Idx)
154855  , p_source_55 => l_array_source_55(Idx)
154856  , p_source_57 => l_array_source_57(Idx)
154857  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
154858  , p_source_64 => l_array_source_64(Idx)
154859  , p_source_65 => l_array_source_65(Idx)
154860  , p_source_66 => l_array_source_66(Idx)
154861  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
154862  , p_source_68 => l_array_source_68(Idx)
154863  , p_source_69 => l_array_source_69(Idx)
154864  , p_source_70 => l_array_source_70(Idx)
154865  , p_source_71 => l_array_source_71(Idx)
154866  , p_source_72 => l_array_source_72(Idx)
154867  , p_source_73 => l_array_source_73(Idx)
154868  , p_source_77 => l_array_source_77(Idx)
154869  , p_source_78 => l_array_source_78(Idx)
154870  , p_source_79 => l_array_source_79(Idx)
154871  , p_source_80 => l_array_source_80(Idx)
154872  , p_source_80_meaning => l_array_source_80_meaning(Idx)
154873  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
154874  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
154875  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
154876  , p_source_84 => l_array_source_84(Idx)
154877  , p_source_85 => l_array_source_85(Idx)
154878  , p_source_86 => l_array_source_86(Idx)
154879  , p_source_87 => l_array_source_87(Idx)
154880  , p_source_88 => l_array_source_88(Idx)
154881  , p_source_89 => l_array_source_89(Idx)
154882  , p_source_90 => l_array_source_90(Idx)
154883  , p_source_91 => l_array_source_91(Idx)
154884  , p_source_92 => l_array_source_92(Idx)
154885  , p_source_93 => l_array_source_93(Idx)
154886  , p_source_94 => l_array_source_94(Idx)
154887  , p_source_95 => l_array_source_95(Idx)
154888  , p_source_96 => l_array_source_96(Idx)
154889  , p_source_96_meaning => l_array_source_96_meaning(Idx)
154890  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
154891  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
154892  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
154893  );
154894 If(l_balance_type_code = 'A') THEN
154895   l_actual_gain_loss_ref := l_gain_or_loss_ref;
154896 END IF;
154897 
154898 --
154899 
154900 
154901 --
154902 AcctLineType_144 (
154903  p_application_id  => p_application_id
154904  ,p_event_id     => l_event_id
154905  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154906  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154907  ,p_actual_flag => l_actual_flag
154908  ,p_balance_type_code => l_balance_type_code
154909  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154910  
154911  , p_source_1 => l_array_source_1(Idx)
154912  , p_source_21 => l_array_source_21(Idx)
154913  , p_source_30 => l_array_source_30(Idx)
154914  , p_source_33 => l_array_source_33(Idx)
154915  , p_source_33_meaning => l_array_source_33_meaning(Idx)
154916  , p_source_53 => l_array_source_53(Idx)
154917  , p_source_55 => l_array_source_55(Idx)
154918  , p_source_57 => l_array_source_57(Idx)
154919  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
154920  , p_source_64 => l_array_source_64(Idx)
154921  , p_source_65 => l_array_source_65(Idx)
154922  , p_source_66 => l_array_source_66(Idx)
154923  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
154924  , p_source_68 => l_array_source_68(Idx)
154925  , p_source_69 => l_array_source_69(Idx)
154926  , p_source_70 => l_array_source_70(Idx)
154927  , p_source_71 => l_array_source_71(Idx)
154928  , p_source_72 => l_array_source_72(Idx)
154929  , p_source_73 => l_array_source_73(Idx)
154930  , p_source_77 => l_array_source_77(Idx)
154931  , p_source_78 => l_array_source_78(Idx)
154932  , p_source_79 => l_array_source_79(Idx)
154933  , p_source_80 => l_array_source_80(Idx)
154934  , p_source_80_meaning => l_array_source_80_meaning(Idx)
154935  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
154936  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
154937  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
154938  , p_source_84 => l_array_source_84(Idx)
154939  , p_source_85 => l_array_source_85(Idx)
154940  , p_source_86 => l_array_source_86(Idx)
154941  , p_source_87 => l_array_source_87(Idx)
154942  , p_source_88 => l_array_source_88(Idx)
154943  , p_source_89 => l_array_source_89(Idx)
154944  , p_source_90 => l_array_source_90(Idx)
154945  , p_source_91 => l_array_source_91(Idx)
154946  , p_source_92 => l_array_source_92(Idx)
154947  , p_source_93 => l_array_source_93(Idx)
154948  , p_source_94 => l_array_source_94(Idx)
154949  , p_source_95 => l_array_source_95(Idx)
154950  , p_source_96 => l_array_source_96(Idx)
154951  , p_source_96_meaning => l_array_source_96_meaning(Idx)
154952  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
154953  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
154954  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
154955  );
154956 If(l_balance_type_code = 'A') THEN
154957   l_actual_gain_loss_ref := l_gain_or_loss_ref;
154958 END IF;
154959 
154960 --
154961 
154962 
154963 --
154964 AcctLineType_154 (
154968  ,p_calculate_g_l_flag => l_calculate_g_l_flag
154965  p_application_id  => p_application_id
154966  ,p_event_id     => l_event_id
154967  ,p_calculate_acctd_flag => l_calculate_acctd_flag
154969  ,p_actual_flag => l_actual_flag
154970  ,p_balance_type_code => l_balance_type_code
154971  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
154972  
154973  , p_source_1 => l_array_source_1(Idx)
154974  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
154975  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
154976  , p_source_21 => l_array_source_21(Idx)
154977  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
154978  , p_source_53 => l_array_source_53(Idx)
154979  , p_source_55 => l_array_source_55(Idx)
154980  , p_source_57 => l_array_source_57(Idx)
154981  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
154982  , p_source_64 => l_array_source_64(Idx)
154983  , p_source_65 => l_array_source_65(Idx)
154984  , p_source_66 => l_array_source_66(Idx)
154985  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
154986  , p_source_68 => l_array_source_68(Idx)
154987  , p_source_69 => l_array_source_69(Idx)
154988  , p_source_70 => l_array_source_70(Idx)
154989  , p_source_71 => l_array_source_71(Idx)
154990  , p_source_72 => l_array_source_72(Idx)
154991  , p_source_73 => l_array_source_73(Idx)
154992  , p_source_77 => l_array_source_77(Idx)
154993  , p_source_78 => l_array_source_78(Idx)
154994  , p_source_79 => l_array_source_79(Idx)
154995  , p_source_80 => l_array_source_80(Idx)
154996  , p_source_80_meaning => l_array_source_80_meaning(Idx)
154997  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
154998  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
154999  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
155000  , p_source_84 => l_array_source_84(Idx)
155001  , p_source_85 => l_array_source_85(Idx)
155002  , p_source_86 => l_array_source_86(Idx)
155003  , p_source_87 => l_array_source_87(Idx)
155004  , p_source_88 => l_array_source_88(Idx)
155005  , p_source_89 => l_array_source_89(Idx)
155006  , p_source_90 => l_array_source_90(Idx)
155007  , p_source_91 => l_array_source_91(Idx)
155008  , p_source_92 => l_array_source_92(Idx)
155009  , p_source_93 => l_array_source_93(Idx)
155010  , p_source_94 => l_array_source_94(Idx)
155011  , p_source_95 => l_array_source_95(Idx)
155012  , p_source_142 => l_array_source_142(Idx)
155013  , p_source_142_meaning => l_array_source_142_meaning(Idx)
155014  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
155015  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
155016  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
155017  , p_source_165 => g_array_event(l_event_id).array_value_char('source_165')
155018  , p_source_165_meaning => g_array_event(l_event_id).array_value_char('source_165_meaning')
155019  );
155020 If(l_balance_type_code = 'A') THEN
155021   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155022 END IF;
155023 
155024 --
155025 
155026 
155027 --
155028 AcctLineType_155 (
155029  p_application_id  => p_application_id
155030  ,p_event_id     => l_event_id
155031  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155032  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155033  ,p_actual_flag => l_actual_flag
155034  ,p_balance_type_code => l_balance_type_code
155035  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155036  
155037  , p_source_1 => l_array_source_1(Idx)
155038  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
155039  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
155040  , p_source_21 => l_array_source_21(Idx)
155041  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
155042  , p_source_53 => l_array_source_53(Idx)
155043  , p_source_55 => l_array_source_55(Idx)
155044  , p_source_57 => l_array_source_57(Idx)
155045  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
155046  , p_source_64 => l_array_source_64(Idx)
155047  , p_source_65 => l_array_source_65(Idx)
155048  , p_source_66 => l_array_source_66(Idx)
155049  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
155050  , p_source_68 => l_array_source_68(Idx)
155051  , p_source_69 => l_array_source_69(Idx)
155052  , p_source_70 => l_array_source_70(Idx)
155053  , p_source_71 => l_array_source_71(Idx)
155054  , p_source_72 => l_array_source_72(Idx)
155055  , p_source_73 => l_array_source_73(Idx)
155056  , p_source_77 => l_array_source_77(Idx)
155057  , p_source_78 => l_array_source_78(Idx)
155058  , p_source_79 => l_array_source_79(Idx)
155059  , p_source_80 => l_array_source_80(Idx)
155060  , p_source_80_meaning => l_array_source_80_meaning(Idx)
155061  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
155062  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
155063  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
155064  , p_source_84 => l_array_source_84(Idx)
155065  , p_source_85 => l_array_source_85(Idx)
155066  , p_source_86 => l_array_source_86(Idx)
155067  , p_source_87 => l_array_source_87(Idx)
155068  , p_source_88 => l_array_source_88(Idx)
155069  , p_source_89 => l_array_source_89(Idx)
155070  , p_source_90 => l_array_source_90(Idx)
155071  , p_source_91 => l_array_source_91(Idx)
155072  , p_source_92 => l_array_source_92(Idx)
155073  , p_source_93 => l_array_source_93(Idx)
155074  , p_source_94 => l_array_source_94(Idx)
155075  , p_source_95 => l_array_source_95(Idx)
155076  , p_source_142 => l_array_source_142(Idx)
155077  , p_source_142_meaning => l_array_source_142_meaning(Idx)
155078  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
155079  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
155080  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
155081  , p_source_165 => g_array_event(l_event_id).array_value_char('source_165')
155085   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155082  , p_source_165_meaning => g_array_event(l_event_id).array_value_char('source_165_meaning')
155083  );
155084 If(l_balance_type_code = 'A') THEN
155086 END IF;
155087 
155088 --
155089 
155090 
155091 --
155092 AcctLineType_156 (
155093  p_application_id  => p_application_id
155094  ,p_event_id     => l_event_id
155095  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155096  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155097  ,p_actual_flag => l_actual_flag
155098  ,p_balance_type_code => l_balance_type_code
155099  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155100  
155101  , p_source_1 => l_array_source_1(Idx)
155102  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
155103  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
155104  , p_source_21 => l_array_source_21(Idx)
155105  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
155106  , p_source_53 => l_array_source_53(Idx)
155107  , p_source_55 => l_array_source_55(Idx)
155108  , p_source_57 => l_array_source_57(Idx)
155109  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
155110  , p_source_64 => l_array_source_64(Idx)
155111  , p_source_65 => l_array_source_65(Idx)
155112  , p_source_66 => l_array_source_66(Idx)
155113  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
155114  , p_source_68 => l_array_source_68(Idx)
155115  , p_source_69 => l_array_source_69(Idx)
155116  , p_source_70 => l_array_source_70(Idx)
155117  , p_source_71 => l_array_source_71(Idx)
155118  , p_source_72 => l_array_source_72(Idx)
155119  , p_source_73 => l_array_source_73(Idx)
155120  , p_source_77 => l_array_source_77(Idx)
155121  , p_source_78 => l_array_source_78(Idx)
155122  , p_source_79 => l_array_source_79(Idx)
155123  , p_source_80 => l_array_source_80(Idx)
155124  , p_source_80_meaning => l_array_source_80_meaning(Idx)
155125  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
155126  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
155127  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
155128  , p_source_84 => l_array_source_84(Idx)
155129  , p_source_85 => l_array_source_85(Idx)
155130  , p_source_86 => l_array_source_86(Idx)
155131  , p_source_87 => l_array_source_87(Idx)
155132  , p_source_88 => l_array_source_88(Idx)
155133  , p_source_89 => l_array_source_89(Idx)
155134  , p_source_90 => l_array_source_90(Idx)
155135  , p_source_91 => l_array_source_91(Idx)
155136  , p_source_92 => l_array_source_92(Idx)
155137  , p_source_93 => l_array_source_93(Idx)
155138  , p_source_94 => l_array_source_94(Idx)
155139  , p_source_95 => l_array_source_95(Idx)
155140  , p_source_142 => l_array_source_142(Idx)
155141  , p_source_142_meaning => l_array_source_142_meaning(Idx)
155142  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
155143  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
155144  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
155145  , p_source_165 => g_array_event(l_event_id).array_value_char('source_165')
155146  , p_source_165_meaning => g_array_event(l_event_id).array_value_char('source_165_meaning')
155147  );
155148 If(l_balance_type_code = 'A') THEN
155149   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155150 END IF;
155151 
155152 --
155153 
155154 
155155 --
155156 AcctLineType_173 (
155157  p_application_id  => p_application_id
155158  ,p_event_id     => l_event_id
155159  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155160  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155161  ,p_actual_flag => l_actual_flag
155162  ,p_balance_type_code => l_balance_type_code
155163  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155164  
155165  , p_source_1 => l_array_source_1(Idx)
155166  , p_source_21 => l_array_source_21(Idx)
155167  , p_source_30 => l_array_source_30(Idx)
155168  , p_source_33 => l_array_source_33(Idx)
155169  , p_source_33_meaning => l_array_source_33_meaning(Idx)
155170  , p_source_53 => l_array_source_53(Idx)
155171  , p_source_55 => l_array_source_55(Idx)
155172  , p_source_57 => l_array_source_57(Idx)
155173  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
155174  , p_source_64 => l_array_source_64(Idx)
155175  , p_source_65 => l_array_source_65(Idx)
155176  , p_source_66 => l_array_source_66(Idx)
155177  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
155178  , p_source_68 => l_array_source_68(Idx)
155179  , p_source_69 => l_array_source_69(Idx)
155180  , p_source_70 => l_array_source_70(Idx)
155181  , p_source_71 => l_array_source_71(Idx)
155182  , p_source_72 => l_array_source_72(Idx)
155183  , p_source_73 => l_array_source_73(Idx)
155184  , p_source_77 => l_array_source_77(Idx)
155185  , p_source_78 => l_array_source_78(Idx)
155186  , p_source_79 => l_array_source_79(Idx)
155187  , p_source_80 => l_array_source_80(Idx)
155188  , p_source_80_meaning => l_array_source_80_meaning(Idx)
155189  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
155190  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
155191  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
155192  , p_source_84 => l_array_source_84(Idx)
155193  , p_source_85 => l_array_source_85(Idx)
155194  , p_source_86 => l_array_source_86(Idx)
155195  , p_source_87 => l_array_source_87(Idx)
155196  , p_source_88 => l_array_source_88(Idx)
155197  , p_source_89 => l_array_source_89(Idx)
155198  , p_source_90 => l_array_source_90(Idx)
155199  , p_source_91 => l_array_source_91(Idx)
155200  , p_source_92 => l_array_source_92(Idx)
155201  , p_source_93 => l_array_source_93(Idx)
155202  , p_source_94 => l_array_source_94(Idx)
155203  , p_source_95 => l_array_source_95(Idx)
155204  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
155205  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
155209   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155206  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
155207  );
155208 If(l_balance_type_code = 'A') THEN
155210 END IF;
155211 
155212 --
155213 
155214 
155215 --
155216 AcctLineType_177 (
155217  p_application_id  => p_application_id
155218  ,p_event_id     => l_event_id
155219  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155220  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155221  ,p_actual_flag => l_actual_flag
155222  ,p_balance_type_code => l_balance_type_code
155223  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155224  
155225  , p_source_1 => l_array_source_1(Idx)
155226  , p_source_21 => l_array_source_21(Idx)
155227  , p_source_30 => l_array_source_30(Idx)
155228  , p_source_33 => l_array_source_33(Idx)
155229  , p_source_33_meaning => l_array_source_33_meaning(Idx)
155230  , p_source_53 => l_array_source_53(Idx)
155231  , p_source_55 => l_array_source_55(Idx)
155232  , p_source_57 => l_array_source_57(Idx)
155233  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
155234  , p_source_64 => l_array_source_64(Idx)
155235  , p_source_65 => l_array_source_65(Idx)
155236  , p_source_66 => l_array_source_66(Idx)
155237  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
155238  , p_source_68 => l_array_source_68(Idx)
155239  , p_source_69 => l_array_source_69(Idx)
155240  , p_source_70 => l_array_source_70(Idx)
155241  , p_source_71 => l_array_source_71(Idx)
155242  , p_source_72 => l_array_source_72(Idx)
155243  , p_source_73 => l_array_source_73(Idx)
155244  , p_source_74 => l_array_source_74(Idx)
155245  , p_source_75 => l_array_source_75(Idx)
155246  , p_source_76 => l_array_source_76(Idx)
155247  , p_source_77 => l_array_source_77(Idx)
155248  , p_source_78 => l_array_source_78(Idx)
155249  , p_source_79 => l_array_source_79(Idx)
155250  , p_source_80 => l_array_source_80(Idx)
155251  , p_source_80_meaning => l_array_source_80_meaning(Idx)
155252  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
155253  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
155254  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
155255  , p_source_84 => l_array_source_84(Idx)
155256  , p_source_85 => l_array_source_85(Idx)
155257  , p_source_86 => l_array_source_86(Idx)
155258  , p_source_87 => l_array_source_87(Idx)
155259  , p_source_88 => l_array_source_88(Idx)
155260  , p_source_89 => l_array_source_89(Idx)
155261  , p_source_90 => l_array_source_90(Idx)
155262  , p_source_91 => l_array_source_91(Idx)
155263  , p_source_92 => l_array_source_92(Idx)
155264  , p_source_93 => l_array_source_93(Idx)
155265  , p_source_94 => l_array_source_94(Idx)
155266  , p_source_95 => l_array_source_95(Idx)
155267  , p_source_96 => l_array_source_96(Idx)
155268  , p_source_96_meaning => l_array_source_96_meaning(Idx)
155269  , p_source_142 => l_array_source_142(Idx)
155270  , p_source_142_meaning => l_array_source_142_meaning(Idx)
155271  );
155272 If(l_balance_type_code = 'A') THEN
155273   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155274 END IF;
155275 
155276 --
155277 
155278 
155279 --
155280 AcctLineType_180 (
155281  p_application_id  => p_application_id
155282  ,p_event_id     => l_event_id
155283  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155284  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155285  ,p_actual_flag => l_actual_flag
155286  ,p_balance_type_code => l_balance_type_code
155287  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155288  
155289  , p_source_1 => l_array_source_1(Idx)
155290  , p_source_21 => l_array_source_21(Idx)
155291  , p_source_30 => l_array_source_30(Idx)
155292  , p_source_33 => l_array_source_33(Idx)
155293  , p_source_33_meaning => l_array_source_33_meaning(Idx)
155294  , p_source_53 => l_array_source_53(Idx)
155295  , p_source_55 => l_array_source_55(Idx)
155296  , p_source_57 => l_array_source_57(Idx)
155297  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
155298  , p_source_64 => l_array_source_64(Idx)
155299  , p_source_65 => l_array_source_65(Idx)
155300  , p_source_66 => l_array_source_66(Idx)
155301  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
155302  , p_source_68 => l_array_source_68(Idx)
155303  , p_source_69 => l_array_source_69(Idx)
155304  , p_source_70 => l_array_source_70(Idx)
155305  , p_source_71 => l_array_source_71(Idx)
155306  , p_source_72 => l_array_source_72(Idx)
155307  , p_source_73 => l_array_source_73(Idx)
155308  , p_source_77 => l_array_source_77(Idx)
155309  , p_source_78 => l_array_source_78(Idx)
155310  , p_source_79 => l_array_source_79(Idx)
155311  , p_source_80 => l_array_source_80(Idx)
155312  , p_source_80_meaning => l_array_source_80_meaning(Idx)
155313  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
155314  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
155315  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
155316  , p_source_84 => l_array_source_84(Idx)
155317  , p_source_85 => l_array_source_85(Idx)
155318  , p_source_86 => l_array_source_86(Idx)
155319  , p_source_87 => l_array_source_87(Idx)
155320  , p_source_88 => l_array_source_88(Idx)
155321  , p_source_89 => l_array_source_89(Idx)
155322  , p_source_90 => l_array_source_90(Idx)
155323  , p_source_91 => l_array_source_91(Idx)
155324  , p_source_92 => l_array_source_92(Idx)
155325  , p_source_93 => l_array_source_93(Idx)
155326  , p_source_94 => l_array_source_94(Idx)
155327  , p_source_95 => l_array_source_95(Idx)
155328  , p_source_96 => l_array_source_96(Idx)
155329  , p_source_96_meaning => l_array_source_96_meaning(Idx)
155330  , p_source_142 => l_array_source_142(Idx)
155331  , p_source_142_meaning => l_array_source_142_meaning(Idx)
155332  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
155333  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
155337   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155334  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
155335  );
155336 If(l_balance_type_code = 'A') THEN
155338 END IF;
155339 
155340 --
155341 
155342 
155343 --
155344 AcctLineType_189 (
155345  p_application_id  => p_application_id
155346  ,p_event_id     => l_event_id
155347  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155348  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155349  ,p_actual_flag => l_actual_flag
155350  ,p_balance_type_code => l_balance_type_code
155351  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155352  
155353  , p_source_1 => l_array_source_1(Idx)
155354  , p_source_21 => l_array_source_21(Idx)
155355  , p_source_30 => l_array_source_30(Idx)
155356  , p_source_33 => l_array_source_33(Idx)
155357  , p_source_33_meaning => l_array_source_33_meaning(Idx)
155358  , p_source_53 => l_array_source_53(Idx)
155359  , p_source_55 => l_array_source_55(Idx)
155360  , p_source_57 => l_array_source_57(Idx)
155361  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
155362  , p_source_64 => l_array_source_64(Idx)
155363  , p_source_65 => l_array_source_65(Idx)
155364  , p_source_66 => l_array_source_66(Idx)
155365  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
155366  , p_source_68 => l_array_source_68(Idx)
155367  , p_source_69 => l_array_source_69(Idx)
155368  , p_source_70 => l_array_source_70(Idx)
155369  , p_source_71 => l_array_source_71(Idx)
155370  , p_source_72 => l_array_source_72(Idx)
155371  , p_source_73 => l_array_source_73(Idx)
155372  , p_source_77 => l_array_source_77(Idx)
155373  , p_source_78 => l_array_source_78(Idx)
155374  , p_source_79 => l_array_source_79(Idx)
155375  , p_source_80 => l_array_source_80(Idx)
155376  , p_source_80_meaning => l_array_source_80_meaning(Idx)
155377  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
155378  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
155379  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
155380  , p_source_84 => l_array_source_84(Idx)
155381  , p_source_85 => l_array_source_85(Idx)
155382  , p_source_86 => l_array_source_86(Idx)
155383  , p_source_87 => l_array_source_87(Idx)
155384  , p_source_88 => l_array_source_88(Idx)
155385  , p_source_89 => l_array_source_89(Idx)
155386  , p_source_90 => l_array_source_90(Idx)
155387  , p_source_91 => l_array_source_91(Idx)
155388  , p_source_92 => l_array_source_92(Idx)
155389  , p_source_93 => l_array_source_93(Idx)
155390  , p_source_94 => l_array_source_94(Idx)
155391  , p_source_95 => l_array_source_95(Idx)
155392  , p_source_142 => l_array_source_142(Idx)
155393  , p_source_142_meaning => l_array_source_142_meaning(Idx)
155394  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
155395  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
155396  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
155397  );
155398 If(l_balance_type_code = 'A') THEN
155399   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155400 END IF;
155401 
155402 --
155403 
155404 
155405 --
155406 AcctLineType_191 (
155407  p_application_id  => p_application_id
155408  ,p_event_id     => l_event_id
155409  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155410  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155411  ,p_actual_flag => l_actual_flag
155412  ,p_balance_type_code => l_balance_type_code
155413  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155414  
155415  , p_source_1 => l_array_source_1(Idx)
155416  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
155417  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
155418  , p_source_21 => l_array_source_21(Idx)
155419  , p_source_30 => l_array_source_30(Idx)
155420  , p_source_33 => l_array_source_33(Idx)
155421  , p_source_33_meaning => l_array_source_33_meaning(Idx)
155422  , p_source_40 => g_array_event(l_event_id).array_value_num('source_40')
155423  , p_source_42 => l_array_source_42(Idx)
155424  , p_source_53 => l_array_source_53(Idx)
155425  , p_source_55 => l_array_source_55(Idx)
155426  , p_source_57 => l_array_source_57(Idx)
155427  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
155428  , p_source_64 => l_array_source_64(Idx)
155429  , p_source_65 => l_array_source_65(Idx)
155430  , p_source_66 => l_array_source_66(Idx)
155431  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
155432  , p_source_68 => l_array_source_68(Idx)
155433  , p_source_69 => l_array_source_69(Idx)
155434  , p_source_70 => l_array_source_70(Idx)
155435  , p_source_71 => l_array_source_71(Idx)
155436  , p_source_72 => l_array_source_72(Idx)
155437  , p_source_73 => l_array_source_73(Idx)
155438  , p_source_77 => l_array_source_77(Idx)
155439  , p_source_78 => l_array_source_78(Idx)
155440  , p_source_79 => l_array_source_79(Idx)
155441  , p_source_80 => l_array_source_80(Idx)
155442  , p_source_80_meaning => l_array_source_80_meaning(Idx)
155443  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
155444  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
155445  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
155446  , p_source_84 => l_array_source_84(Idx)
155447  , p_source_85 => l_array_source_85(Idx)
155448  , p_source_86 => l_array_source_86(Idx)
155449  , p_source_87 => l_array_source_87(Idx)
155450  , p_source_88 => l_array_source_88(Idx)
155451  , p_source_89 => l_array_source_89(Idx)
155452  , p_source_90 => l_array_source_90(Idx)
155453  , p_source_91 => l_array_source_91(Idx)
155454  , p_source_92 => l_array_source_92(Idx)
155455  , p_source_93 => l_array_source_93(Idx)
155456  , p_source_94 => l_array_source_94(Idx)
155457  , p_source_95 => l_array_source_95(Idx)
155458  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
155459  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
155463  );
155460  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
155461  , p_source_165 => g_array_event(l_event_id).array_value_char('source_165')
155462  , p_source_165_meaning => g_array_event(l_event_id).array_value_char('source_165_meaning')
155464 If(l_balance_type_code = 'A') THEN
155465   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155466 END IF;
155467 
155468 --
155469 
155470 
155471 --
155472 AcctLineType_194 (
155473  p_application_id  => p_application_id
155474  ,p_event_id     => l_event_id
155475  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155476  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155477  ,p_actual_flag => l_actual_flag
155478  ,p_balance_type_code => l_balance_type_code
155479  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155480  
155481  , p_source_1 => l_array_source_1(Idx)
155482  , p_source_21 => l_array_source_21(Idx)
155483  , p_source_33 => l_array_source_33(Idx)
155484  , p_source_33_meaning => l_array_source_33_meaning(Idx)
155485  , p_source_53 => l_array_source_53(Idx)
155486  , p_source_55 => l_array_source_55(Idx)
155487  , p_source_57 => l_array_source_57(Idx)
155488  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
155489  , p_source_64 => l_array_source_64(Idx)
155490  , p_source_65 => l_array_source_65(Idx)
155491  , p_source_66 => l_array_source_66(Idx)
155492  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
155493  , p_source_68 => l_array_source_68(Idx)
155494  , p_source_69 => l_array_source_69(Idx)
155495  , p_source_70 => l_array_source_70(Idx)
155496  , p_source_71 => l_array_source_71(Idx)
155497  , p_source_72 => l_array_source_72(Idx)
155498  , p_source_73 => l_array_source_73(Idx)
155499  , p_source_77 => l_array_source_77(Idx)
155500  , p_source_78 => l_array_source_78(Idx)
155501  , p_source_79 => l_array_source_79(Idx)
155502  , p_source_80 => l_array_source_80(Idx)
155503  , p_source_80_meaning => l_array_source_80_meaning(Idx)
155504  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
155505  , p_source_84 => l_array_source_84(Idx)
155506  , p_source_85 => l_array_source_85(Idx)
155507  , p_source_86 => l_array_source_86(Idx)
155508  , p_source_87 => l_array_source_87(Idx)
155509  , p_source_88 => l_array_source_88(Idx)
155510  , p_source_89 => l_array_source_89(Idx)
155511  , p_source_90 => l_array_source_90(Idx)
155512  , p_source_91 => l_array_source_91(Idx)
155513  , p_source_92 => l_array_source_92(Idx)
155514  , p_source_93 => l_array_source_93(Idx)
155515  , p_source_165 => g_array_event(l_event_id).array_value_char('source_165')
155516  , p_source_165_meaning => g_array_event(l_event_id).array_value_char('source_165_meaning')
155517  , p_source_166 => l_array_source_166(Idx)
155518  , p_source_167 => l_array_source_167(Idx)
155519  );
155520 If(l_balance_type_code = 'A') THEN
155521   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155522 END IF;
155523 
155524 --
155525 
155526 
155527 --
155528 AcctLineType_198 (
155529  p_application_id  => p_application_id
155530  ,p_event_id     => l_event_id
155531  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155532  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155533  ,p_actual_flag => l_actual_flag
155534  ,p_balance_type_code => l_balance_type_code
155535  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155536  
155537  , p_source_1 => l_array_source_1(Idx)
155538  , p_source_21 => l_array_source_21(Idx)
155539  , p_source_33 => l_array_source_33(Idx)
155540  , p_source_33_meaning => l_array_source_33_meaning(Idx)
155541  , p_source_50 => l_array_source_50(Idx)
155542  , p_source_53 => l_array_source_53(Idx)
155543  , p_source_55 => l_array_source_55(Idx)
155544  , p_source_57 => l_array_source_57(Idx)
155545  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
155546  , p_source_64 => l_array_source_64(Idx)
155547  , p_source_65 => l_array_source_65(Idx)
155548  , p_source_66 => l_array_source_66(Idx)
155549  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
155550  , p_source_68 => l_array_source_68(Idx)
155551  , p_source_69 => l_array_source_69(Idx)
155552  , p_source_70 => l_array_source_70(Idx)
155553  , p_source_71 => l_array_source_71(Idx)
155554  , p_source_72 => l_array_source_72(Idx)
155555  , p_source_73 => l_array_source_73(Idx)
155556  , p_source_77 => l_array_source_77(Idx)
155557  , p_source_78 => l_array_source_78(Idx)
155558  , p_source_79 => l_array_source_79(Idx)
155559  , p_source_80 => l_array_source_80(Idx)
155560  , p_source_80_meaning => l_array_source_80_meaning(Idx)
155561  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
155562  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
155563  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
155564  , p_source_84 => l_array_source_84(Idx)
155565  , p_source_85 => l_array_source_85(Idx)
155566  , p_source_86 => l_array_source_86(Idx)
155567  , p_source_87 => l_array_source_87(Idx)
155568  , p_source_88 => l_array_source_88(Idx)
155569  , p_source_89 => l_array_source_89(Idx)
155570  , p_source_90 => l_array_source_90(Idx)
155571  , p_source_91 => l_array_source_91(Idx)
155572  , p_source_92 => l_array_source_92(Idx)
155573  , p_source_93 => l_array_source_93(Idx)
155574  , p_source_94 => l_array_source_94(Idx)
155575  , p_source_95 => l_array_source_95(Idx)
155576  , p_source_96 => l_array_source_96(Idx)
155577  , p_source_96_meaning => l_array_source_96_meaning(Idx)
155578  , p_source_142 => l_array_source_142(Idx)
155579  , p_source_142_meaning => l_array_source_142_meaning(Idx)
155580  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
155581  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
155582  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
155583  );
155584 If(l_balance_type_code = 'A') THEN
155585   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155586 END IF;
155587 
155588 --
155589 
155590 
155591 --
155595  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155592 AcctLineType_202 (
155593  p_application_id  => p_application_id
155594  ,p_event_id     => l_event_id
155596  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155597  ,p_actual_flag => l_actual_flag
155598  ,p_balance_type_code => l_balance_type_code
155599  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155600  
155601  , p_source_1 => l_array_source_1(Idx)
155602  , p_source_21 => l_array_source_21(Idx)
155603  , p_source_33 => l_array_source_33(Idx)
155604  , p_source_33_meaning => l_array_source_33_meaning(Idx)
155605  , p_source_50 => l_array_source_50(Idx)
155606  , p_source_53 => l_array_source_53(Idx)
155607  , p_source_55 => l_array_source_55(Idx)
155608  , p_source_57 => l_array_source_57(Idx)
155609  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
155610  , p_source_64 => l_array_source_64(Idx)
155611  , p_source_65 => l_array_source_65(Idx)
155612  , p_source_66 => l_array_source_66(Idx)
155613  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
155614  , p_source_68 => l_array_source_68(Idx)
155615  , p_source_69 => l_array_source_69(Idx)
155616  , p_source_70 => l_array_source_70(Idx)
155617  , p_source_71 => l_array_source_71(Idx)
155618  , p_source_72 => l_array_source_72(Idx)
155619  , p_source_73 => l_array_source_73(Idx)
155620  , p_source_77 => l_array_source_77(Idx)
155621  , p_source_78 => l_array_source_78(Idx)
155622  , p_source_79 => l_array_source_79(Idx)
155623  , p_source_80 => l_array_source_80(Idx)
155624  , p_source_80_meaning => l_array_source_80_meaning(Idx)
155625  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
155626  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
155627  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
155628  , p_source_84 => l_array_source_84(Idx)
155629  , p_source_85 => l_array_source_85(Idx)
155630  , p_source_86 => l_array_source_86(Idx)
155631  , p_source_87 => l_array_source_87(Idx)
155632  , p_source_88 => l_array_source_88(Idx)
155633  , p_source_89 => l_array_source_89(Idx)
155634  , p_source_90 => l_array_source_90(Idx)
155635  , p_source_91 => l_array_source_91(Idx)
155636  , p_source_92 => l_array_source_92(Idx)
155637  , p_source_93 => l_array_source_93(Idx)
155638  , p_source_94 => l_array_source_94(Idx)
155639  , p_source_95 => l_array_source_95(Idx)
155640  , p_source_142 => l_array_source_142(Idx)
155641  , p_source_142_meaning => l_array_source_142_meaning(Idx)
155642  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
155643  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
155644  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
155645  );
155646 If(l_balance_type_code = 'A') THEN
155647   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155648 END IF;
155649 
155650 --
155651 
155652 
155653 --
155654 AcctLineType_205 (
155655  p_application_id  => p_application_id
155656  ,p_event_id     => l_event_id
155657  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155658  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155659  ,p_actual_flag => l_actual_flag
155660  ,p_balance_type_code => l_balance_type_code
155661  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155662  
155663  , p_source_1 => l_array_source_1(Idx)
155664  , p_source_21 => l_array_source_21(Idx)
155665  , p_source_33 => l_array_source_33(Idx)
155666  , p_source_33_meaning => l_array_source_33_meaning(Idx)
155667  , p_source_51 => l_array_source_51(Idx)
155668  , p_source_53 => l_array_source_53(Idx)
155669  , p_source_55 => l_array_source_55(Idx)
155670  , p_source_57 => l_array_source_57(Idx)
155671  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
155672  , p_source_64 => l_array_source_64(Idx)
155673  , p_source_65 => l_array_source_65(Idx)
155674  , p_source_66 => l_array_source_66(Idx)
155675  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
155676  , p_source_68 => l_array_source_68(Idx)
155677  , p_source_69 => l_array_source_69(Idx)
155678  , p_source_70 => l_array_source_70(Idx)
155679  , p_source_71 => l_array_source_71(Idx)
155680  , p_source_72 => l_array_source_72(Idx)
155681  , p_source_73 => l_array_source_73(Idx)
155682  , p_source_77 => l_array_source_77(Idx)
155683  , p_source_78 => l_array_source_78(Idx)
155684  , p_source_79 => l_array_source_79(Idx)
155685  , p_source_80 => l_array_source_80(Idx)
155686  , p_source_80_meaning => l_array_source_80_meaning(Idx)
155687  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
155688  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
155689  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
155690  , p_source_84 => l_array_source_84(Idx)
155691  , p_source_85 => l_array_source_85(Idx)
155692  , p_source_86 => l_array_source_86(Idx)
155693  , p_source_87 => l_array_source_87(Idx)
155694  , p_source_88 => l_array_source_88(Idx)
155695  , p_source_89 => l_array_source_89(Idx)
155696  , p_source_90 => l_array_source_90(Idx)
155697  , p_source_91 => l_array_source_91(Idx)
155698  , p_source_92 => l_array_source_92(Idx)
155699  , p_source_93 => l_array_source_93(Idx)
155700  , p_source_94 => l_array_source_94(Idx)
155701  , p_source_95 => l_array_source_95(Idx)
155702  , p_source_142 => l_array_source_142(Idx)
155703  , p_source_142_meaning => l_array_source_142_meaning(Idx)
155704  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
155705  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
155706  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
155707  );
155708 If(l_balance_type_code = 'A') THEN
155709   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155710 END IF;
155711 
155712 --
155713 
155714 
155715 --
155716 AcctLineType_210 (
155717  p_application_id  => p_application_id
155718  ,p_event_id     => l_event_id
155719  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155723  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155720  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155721  ,p_actual_flag => l_actual_flag
155722  ,p_balance_type_code => l_balance_type_code
155724  
155725  , p_source_1 => l_array_source_1(Idx)
155726  , p_source_21 => l_array_source_21(Idx)
155727  , p_source_33 => l_array_source_33(Idx)
155728  , p_source_33_meaning => l_array_source_33_meaning(Idx)
155729  , p_source_50 => l_array_source_50(Idx)
155730  , p_source_53 => l_array_source_53(Idx)
155731  , p_source_55 => l_array_source_55(Idx)
155732  , p_source_57 => l_array_source_57(Idx)
155733  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
155734  , p_source_64 => l_array_source_64(Idx)
155735  , p_source_65 => l_array_source_65(Idx)
155736  , p_source_66 => l_array_source_66(Idx)
155737  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
155738  , p_source_68 => l_array_source_68(Idx)
155739  , p_source_69 => l_array_source_69(Idx)
155740  , p_source_70 => l_array_source_70(Idx)
155741  , p_source_71 => l_array_source_71(Idx)
155742  , p_source_72 => l_array_source_72(Idx)
155743  , p_source_73 => l_array_source_73(Idx)
155744  , p_source_74 => l_array_source_74(Idx)
155745  , p_source_75 => l_array_source_75(Idx)
155746  , p_source_76 => l_array_source_76(Idx)
155747  , p_source_77 => l_array_source_77(Idx)
155748  , p_source_78 => l_array_source_78(Idx)
155749  , p_source_79 => l_array_source_79(Idx)
155750  , p_source_80 => l_array_source_80(Idx)
155751  , p_source_80_meaning => l_array_source_80_meaning(Idx)
155752  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
155753  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
155754  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
155755  , p_source_84 => l_array_source_84(Idx)
155756  , p_source_85 => l_array_source_85(Idx)
155757  , p_source_86 => l_array_source_86(Idx)
155758  , p_source_87 => l_array_source_87(Idx)
155759  , p_source_88 => l_array_source_88(Idx)
155760  , p_source_89 => l_array_source_89(Idx)
155761  , p_source_90 => l_array_source_90(Idx)
155762  , p_source_91 => l_array_source_91(Idx)
155763  , p_source_92 => l_array_source_92(Idx)
155764  , p_source_93 => l_array_source_93(Idx)
155765  , p_source_94 => l_array_source_94(Idx)
155766  , p_source_95 => l_array_source_95(Idx)
155767  , p_source_96 => l_array_source_96(Idx)
155768  , p_source_96_meaning => l_array_source_96_meaning(Idx)
155769  , p_source_142 => l_array_source_142(Idx)
155770  , p_source_142_meaning => l_array_source_142_meaning(Idx)
155771  );
155772 If(l_balance_type_code = 'A') THEN
155773   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155774 END IF;
155775 
155776 --
155777 
155778 
155779 --
155780 AcctLineType_214 (
155781  p_application_id  => p_application_id
155782  ,p_event_id     => l_event_id
155783  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155784  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155785  ,p_actual_flag => l_actual_flag
155786  ,p_balance_type_code => l_balance_type_code
155787  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155788  
155789  , p_source_1 => l_array_source_1(Idx)
155790  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
155791  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
155792  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
155793  , p_source_21 => l_array_source_21(Idx)
155794  , p_source_22 => l_array_source_22(Idx)
155795  , p_source_22_meaning => l_array_source_22_meaning(Idx)
155796  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
155797  , p_source_30 => l_array_source_30(Idx)
155798  , p_source_33 => l_array_source_33(Idx)
155799  , p_source_33_meaning => l_array_source_33_meaning(Idx)
155800  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
155801  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
155802  , p_source_53 => l_array_source_53(Idx)
155803  , p_source_55 => l_array_source_55(Idx)
155804  , p_source_57 => l_array_source_57(Idx)
155805  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
155806  , p_source_64 => l_array_source_64(Idx)
155807  , p_source_65 => l_array_source_65(Idx)
155808  , p_source_66 => l_array_source_66(Idx)
155809  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
155810  , p_source_68 => l_array_source_68(Idx)
155811  , p_source_69 => l_array_source_69(Idx)
155812  , p_source_70 => l_array_source_70(Idx)
155813  , p_source_71 => l_array_source_71(Idx)
155814  , p_source_72 => l_array_source_72(Idx)
155815  , p_source_73 => l_array_source_73(Idx)
155816  , p_source_77 => l_array_source_77(Idx)
155817  , p_source_78 => l_array_source_78(Idx)
155818  , p_source_79 => l_array_source_79(Idx)
155819  , p_source_80 => l_array_source_80(Idx)
155820  , p_source_80_meaning => l_array_source_80_meaning(Idx)
155821  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
155822  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
155823  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
155824  , p_source_84 => l_array_source_84(Idx)
155825  , p_source_85 => l_array_source_85(Idx)
155826  , p_source_86 => l_array_source_86(Idx)
155827  , p_source_87 => l_array_source_87(Idx)
155828  , p_source_88 => l_array_source_88(Idx)
155829  , p_source_89 => l_array_source_89(Idx)
155830  , p_source_90 => l_array_source_90(Idx)
155831  , p_source_91 => l_array_source_91(Idx)
155832  , p_source_92 => l_array_source_92(Idx)
155833  , p_source_93 => l_array_source_93(Idx)
155834  , p_source_94 => l_array_source_94(Idx)
155835  , p_source_95 => l_array_source_95(Idx)
155836  , p_source_96 => l_array_source_96(Idx)
155837  , p_source_96_meaning => l_array_source_96_meaning(Idx)
155838  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
155839  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
155843   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155840  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
155841  );
155842 If(l_balance_type_code = 'A') THEN
155844 END IF;
155845 
155846 --
155847 
155848 
155849 --
155850 AcctLineType_218 (
155851  p_application_id  => p_application_id
155852  ,p_event_id     => l_event_id
155853  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155854  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155855  ,p_actual_flag => l_actual_flag
155856  ,p_balance_type_code => l_balance_type_code
155857  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155858  
155859  , p_source_1 => l_array_source_1(Idx)
155860  , p_source_21 => l_array_source_21(Idx)
155861  , p_source_30 => l_array_source_30(Idx)
155862  , p_source_33 => l_array_source_33(Idx)
155863  , p_source_33_meaning => l_array_source_33_meaning(Idx)
155864  , p_source_53 => l_array_source_53(Idx)
155865  , p_source_55 => l_array_source_55(Idx)
155866  , p_source_57 => l_array_source_57(Idx)
155867  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
155868  , p_source_64 => l_array_source_64(Idx)
155869  , p_source_65 => l_array_source_65(Idx)
155870  , p_source_66 => l_array_source_66(Idx)
155871  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
155872  , p_source_68 => l_array_source_68(Idx)
155873  , p_source_69 => l_array_source_69(Idx)
155874  , p_source_70 => l_array_source_70(Idx)
155875  , p_source_71 => l_array_source_71(Idx)
155876  , p_source_72 => l_array_source_72(Idx)
155877  , p_source_73 => l_array_source_73(Idx)
155878  , p_source_77 => l_array_source_77(Idx)
155879  , p_source_78 => l_array_source_78(Idx)
155880  , p_source_79 => l_array_source_79(Idx)
155881  , p_source_80 => l_array_source_80(Idx)
155882  , p_source_80_meaning => l_array_source_80_meaning(Idx)
155883  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
155884  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
155885  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
155886  , p_source_84 => l_array_source_84(Idx)
155887  , p_source_85 => l_array_source_85(Idx)
155888  , p_source_86 => l_array_source_86(Idx)
155889  , p_source_87 => l_array_source_87(Idx)
155890  , p_source_88 => l_array_source_88(Idx)
155891  , p_source_89 => l_array_source_89(Idx)
155892  , p_source_90 => l_array_source_90(Idx)
155893  , p_source_91 => l_array_source_91(Idx)
155894  , p_source_92 => l_array_source_92(Idx)
155895  , p_source_93 => l_array_source_93(Idx)
155896  , p_source_94 => l_array_source_94(Idx)
155897  , p_source_95 => l_array_source_95(Idx)
155898  , p_source_96 => l_array_source_96(Idx)
155899  , p_source_96_meaning => l_array_source_96_meaning(Idx)
155900  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
155901  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
155902  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
155903  );
155904 If(l_balance_type_code = 'A') THEN
155905   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155906 END IF;
155907 
155908 --
155909 
155910 
155911 --
155912 AcctLineType_222 (
155913  p_application_id  => p_application_id
155914  ,p_event_id     => l_event_id
155915  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155916  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155917  ,p_actual_flag => l_actual_flag
155918  ,p_balance_type_code => l_balance_type_code
155919  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155920  
155921  , p_source_1 => l_array_source_1(Idx)
155922  , p_source_21 => l_array_source_21(Idx)
155923  , p_source_30 => l_array_source_30(Idx)
155924  , p_source_33 => l_array_source_33(Idx)
155925  , p_source_33_meaning => l_array_source_33_meaning(Idx)
155926  , p_source_53 => l_array_source_53(Idx)
155927  , p_source_55 => l_array_source_55(Idx)
155928  , p_source_57 => l_array_source_57(Idx)
155929  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
155930  , p_source_64 => l_array_source_64(Idx)
155931  , p_source_65 => l_array_source_65(Idx)
155932  , p_source_66 => l_array_source_66(Idx)
155933  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
155934  , p_source_68 => l_array_source_68(Idx)
155935  , p_source_69 => l_array_source_69(Idx)
155936  , p_source_70 => l_array_source_70(Idx)
155937  , p_source_71 => l_array_source_71(Idx)
155938  , p_source_72 => l_array_source_72(Idx)
155939  , p_source_73 => l_array_source_73(Idx)
155940  , p_source_77 => l_array_source_77(Idx)
155941  , p_source_78 => l_array_source_78(Idx)
155942  , p_source_79 => l_array_source_79(Idx)
155943  , p_source_80 => l_array_source_80(Idx)
155944  , p_source_80_meaning => l_array_source_80_meaning(Idx)
155945  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
155946  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
155947  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
155948  , p_source_84 => l_array_source_84(Idx)
155949  , p_source_85 => l_array_source_85(Idx)
155950  , p_source_86 => l_array_source_86(Idx)
155951  , p_source_87 => l_array_source_87(Idx)
155952  , p_source_88 => l_array_source_88(Idx)
155953  , p_source_89 => l_array_source_89(Idx)
155954  , p_source_90 => l_array_source_90(Idx)
155955  , p_source_91 => l_array_source_91(Idx)
155956  , p_source_92 => l_array_source_92(Idx)
155957  , p_source_93 => l_array_source_93(Idx)
155958  , p_source_94 => l_array_source_94(Idx)
155959  , p_source_95 => l_array_source_95(Idx)
155960  , p_source_96 => l_array_source_96(Idx)
155961  , p_source_96_meaning => l_array_source_96_meaning(Idx)
155962  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
155963  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
155964  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
155965  );
155966 If(l_balance_type_code = 'A') THEN
155967   l_actual_gain_loss_ref := l_gain_or_loss_ref;
155968 END IF;
155972 
155969 
155970 --
155971 
155973 --
155974 AcctLineType_228 (
155975  p_application_id  => p_application_id
155976  ,p_event_id     => l_event_id
155977  ,p_calculate_acctd_flag => l_calculate_acctd_flag
155978  ,p_calculate_g_l_flag => l_calculate_g_l_flag
155979  ,p_actual_flag => l_actual_flag
155980  ,p_balance_type_code => l_balance_type_code
155981  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
155982  
155983  , p_source_1 => l_array_source_1(Idx)
155984  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
155985  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
155986  , p_source_21 => l_array_source_21(Idx)
155987  , p_source_30 => l_array_source_30(Idx)
155988  , p_source_33 => l_array_source_33(Idx)
155989  , p_source_33_meaning => l_array_source_33_meaning(Idx)
155990  , p_source_43 => l_array_source_43(Idx)
155991  , p_source_53 => l_array_source_53(Idx)
155992  , p_source_55 => l_array_source_55(Idx)
155993  , p_source_57 => l_array_source_57(Idx)
155994  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
155995  , p_source_64 => l_array_source_64(Idx)
155996  , p_source_65 => l_array_source_65(Idx)
155997  , p_source_66 => l_array_source_66(Idx)
155998  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
155999  , p_source_68 => l_array_source_68(Idx)
156000  , p_source_69 => l_array_source_69(Idx)
156001  , p_source_70 => l_array_source_70(Idx)
156002  , p_source_71 => l_array_source_71(Idx)
156003  , p_source_72 => l_array_source_72(Idx)
156004  , p_source_73 => l_array_source_73(Idx)
156005  , p_source_77 => l_array_source_77(Idx)
156006  , p_source_78 => l_array_source_78(Idx)
156007  , p_source_79 => l_array_source_79(Idx)
156008  , p_source_80 => l_array_source_80(Idx)
156009  , p_source_80_meaning => l_array_source_80_meaning(Idx)
156010  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
156011  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
156012  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
156013  , p_source_84 => l_array_source_84(Idx)
156014  , p_source_85 => l_array_source_85(Idx)
156015  , p_source_86 => l_array_source_86(Idx)
156016  , p_source_87 => l_array_source_87(Idx)
156017  , p_source_88 => l_array_source_88(Idx)
156018  , p_source_89 => l_array_source_89(Idx)
156019  , p_source_90 => l_array_source_90(Idx)
156020  , p_source_91 => l_array_source_91(Idx)
156021  , p_source_92 => l_array_source_92(Idx)
156022  , p_source_93 => l_array_source_93(Idx)
156023  , p_source_94 => l_array_source_94(Idx)
156024  , p_source_95 => l_array_source_95(Idx)
156025  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
156026  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
156027  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
156028  );
156029 If(l_balance_type_code = 'A') THEN
156030   l_actual_gain_loss_ref := l_gain_or_loss_ref;
156031 END IF;
156032 
156033 --
156034 
156035       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
156036       -- or secondary ledger that has different currency with primary
156037       -- or alc that is calculated by sla
156038       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
156039             (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'))
156040 
156041 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
156042 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
156043           AND (l_actual_flag = 'A')) THEN
156044         XLA_AE_LINES_PKG.CreateGainOrLossLines(
156045           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
156046          ,p_application_id   => p_application_id
156047          ,p_amb_context_code => 'DEFAULT'
156048          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
156049          ,p_event_class_code => C_EVENT_CLASS_CODE
156050          ,p_event_type_code  => C_EVENT_TYPE_CODE
156051          
156052          ,p_gain_ccid        => -1
156053          ,p_loss_ccid        => -1
156054 
156055          ,p_actual_flag      => l_actual_flag
156056          ,p_enc_flag         => null
156057          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
156058          ,p_enc_g_l_ref      => null
156059          );
156060       END IF;
156061    END IF;
156062 END IF;
156063 
156064    ELSE
156065       --
156066       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
156067       --
156068       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
156069          trace
156070             (p_msg      => 'Trancaction revesal option is Y'
156071             ,p_level    => C_LEVEL_STATEMENT
156072             ,p_module   => l_log_module);
156073       END IF;
156074    END IF;
156075 
156076 END LOOP;
156077 l_result := XLA_AE_LINES_PKG.InsertLines ;
156078 end loop;
156079 close line_cur;
156080 
156081 
156082 --
156083 -- insert headers into xla_ae_headers_gt table
156084 --
156085 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
156086 
156087 -- insert into errors table here.
156088 
156089 END LOOP;
156090 
156091 --
156092 -- 4865292
156093 --
156094 -- Compare g_hdr_extract_count with event count in
156095 -- CreateHeadersAndLines.
156096 --
156097 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
156098 
156099 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
156100    trace (p_msg     => '# rows extracted from header extract objects '
156101                     || ' (running total): '
156102                     || g_hdr_extract_count
156103          ,p_level   => C_LEVEL_STATEMENT
156104          ,p_module  => l_log_module);
156105 END IF;
156109 
156106 
156107 CLOSE header_cur;
156108 --
156110 --
156111 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
156112    trace
156113       (p_msg      => 'END of EventClass_233'
156114       ,p_level    => C_LEVEL_PROCEDURE
156115       ,p_module   => l_log_module);
156116 END IF;
156117 --
156118 RETURN l_result;
156119 EXCEPTION
156120 WHEN xla_exceptions_pkg.application_exception THEN
156121    
156122 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
156123 
156124    
156125 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
156126 
156127    RAISE;
156128 
156129 WHEN NO_DATA_FOUND THEN
156130 
156131 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
156132 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
156133 
156134 FOR header_record IN header_cur
156135 LOOP
156136     l_array_header_events(header_record.event_id) := header_record.event_id;
156137 END LOOP;
156138 
156139 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
156140 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
156141 
156142 fnd_file.put_line(fnd_file.LOG, '                    ');
156143 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
156144 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
156145 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
156146 
156147 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
156148 LOOP
156149 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
156150 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
156151         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
156152 	END IF;
156153 END LOOP;
156154 
156155 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
156156 fnd_file.put_line(fnd_file.LOG, '                    ');
156157 
156158 
156159 xla_exceptions_pkg.raise_message
156160       (p_location => 'XLA_00200_AAD_S_000002_PKG.EventClass_233');
156161 
156162 
156163 WHEN OTHERS THEN
156164    xla_exceptions_pkg.raise_message
156165       (p_location => 'XLA_00200_AAD_S_000002_PKG.EventClass_233');
156166 END EventClass_233;
156167 --
156168 
156169 ---------------------------------------
156170 --
156171 -- PRIVATE PROCEDURE
156172 --         insert_sources_234
156173 --
156174 ----------------------------------------
156175 --
156176 PROCEDURE insert_sources_234(
156177                                 p_target_ledger_id       IN NUMBER
156178                               , p_language               IN VARCHAR2
156179                               , p_sla_ledger_id          IN NUMBER
156180                               , p_pad_start_date         IN DATE
156181                               , p_pad_end_date           IN DATE
156182                          )
156183 IS
156184 
156185 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PAYMENTS_ALL';
156186 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'PAYMENTS';
156187 p_apps_owner                   VARCHAR2(30);
156188 l_log_module                   VARCHAR2(240);
156189 BEGIN
156190 IF g_log_enabled THEN
156191       l_log_module := C_DEFAULT_MODULE||'.insert_sources_234';
156192 END IF;
156193 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
156194 
156195       trace
156196          (p_msg      => 'BEGIN of insert_sources_234'
156197          ,p_level    => C_LEVEL_PROCEDURE
156198          ,p_module   => l_log_module);
156199 
156200 END IF;
156201 
156202 -- select APPS owner
156203 SELECT oracle_username
156204   INTO p_apps_owner
156205   FROM fnd_oracle_userid
156206  WHERE read_only_flag = 'U'
156207 ;
156208 
156209 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
156210       trace
156211          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
156212                         ' - p_language = '||p_language||
156213                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
156214                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
156215                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
156216                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
156217          ,p_level    => C_LEVEL_STATEMENT
156218          ,p_module   => l_log_module);
156219 END IF;
156220 
156221 
156222 --
156223 INSERT INTO xla_diag_sources --hdr2
156224 (
156225         event_id
156226       , ledger_id
156227       , sla_ledger_id
156228       , description_language
156229       , object_name
156230       , object_type_code
156231       , line_number
156232       , source_application_id
156233       , source_type_code
156234       , source_code
156235       , source_value
156236       , source_meaning
156237       , created_by
156238       , creation_date
156239       , last_update_date
156240       , last_updated_by
156241       , last_update_login
156242       , program_update_date
156243       , program_application_id
156244       , program_id
156245       , request_id
156246 )
156247 SELECT
156248         event_id
156249       , p_target_ledger_id
156250       , p_sla_ledger_id
156251       , p_language
156252       , object_name
156253       , object_type_code
156254       , line_number
156255       , source_application_id
156256       , source_type_code
156257       , source_code
156258       , SUBSTR(source_value ,1,1996)
156259       , SUBSTR(source_meaning ,1,200)
156260       , xla_environment_pkg.g_Usr_Id
156261       , TRUNC(SYSDATE)
156262       , TRUNC(SYSDATE)
156263       , xla_environment_pkg.g_Usr_Id
156264       , xla_environment_pkg.g_Login_Id
156265       , TRUNC(SYSDATE)
156269   FROM (
156266       , xla_environment_pkg.g_Prog_Appl_Id
156267       , xla_environment_pkg.g_Prog_Id
156268       , xla_environment_pkg.g_Req_Id
156270        SELECT xet.event_id                  event_id
156271             , 0                          line_number
156272             , CASE r
156273                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156274                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156275                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156276                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156277                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156278                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156279                 WHEN 7 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
156280                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156281                 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
156282                 WHEN 10 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
156283                 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156284                 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
156285                 WHEN 13 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
156286                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156287                 WHEN 15 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
156288                 WHEN 16 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
156289                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156290                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156291                 WHEN 19 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
156292                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156293                 WHEN 21 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
156294                 WHEN 22 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
156295                 WHEN 23 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
156296                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156297                 WHEN 25 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
156298                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156299                 WHEN 27 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
156300                 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156301                 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156302                 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156303                 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156304                 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156305                 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156306                 WHEN 34 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156307                 WHEN 35 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156308                 WHEN 36 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156309                 WHEN 37 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156310                 WHEN 38 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156311                 WHEN 39 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
156312                 
156313                ELSE null
156314               END                           object_name
156315             , CASE r
156316                 WHEN 1 THEN 'HEADER' 
156317                 WHEN 2 THEN 'HEADER' 
156318                 WHEN 3 THEN 'HEADER' 
156319                 WHEN 4 THEN 'HEADER' 
156320                 WHEN 5 THEN 'HEADER' 
156321                 WHEN 6 THEN 'HEADER' 
156322                 WHEN 7 THEN 'HEADER' 
156323                 WHEN 8 THEN 'HEADER' 
156324                 WHEN 9 THEN 'HEADER' 
156325                 WHEN 10 THEN 'HEADER' 
156326                 WHEN 11 THEN 'HEADER' 
156327                 WHEN 12 THEN 'HEADER' 
156328                 WHEN 13 THEN 'HEADER' 
156329                 WHEN 14 THEN 'HEADER' 
156330                 WHEN 15 THEN 'HEADER' 
156331                 WHEN 16 THEN 'HEADER' 
156332                 WHEN 17 THEN 'HEADER' 
156333                 WHEN 18 THEN 'HEADER' 
156334                 WHEN 19 THEN 'HEADER' 
156335                 WHEN 20 THEN 'HEADER' 
156336                 WHEN 21 THEN 'HEADER' 
156337                 WHEN 22 THEN 'HEADER' 
156338                 WHEN 23 THEN 'HEADER' 
156339                 WHEN 24 THEN 'HEADER' 
156340                 WHEN 25 THEN 'HEADER' 
156341                 WHEN 26 THEN 'HEADER' 
156342                 WHEN 27 THEN 'HEADER' 
156343                 WHEN 28 THEN 'HEADER' 
156344                 WHEN 29 THEN 'HEADER' 
156345                 WHEN 30 THEN 'HEADER' 
156346                 WHEN 31 THEN 'HEADER' 
156347                 WHEN 32 THEN 'HEADER' 
156348                 WHEN 33 THEN 'HEADER' 
156349                 WHEN 34 THEN 'HEADER' 
156350                 WHEN 35 THEN 'HEADER' 
156351                 WHEN 36 THEN 'HEADER' 
156352                 WHEN 37 THEN 'HEADER' 
156353                 WHEN 38 THEN 'HEADER' 
156354                 WHEN 39 THEN 'HEADER' 
156355                 
156356                 ELSE null
156357               END                           object_type_code
156358             , CASE r
156359                 WHEN 1 THEN '200' 
156360                 WHEN 2 THEN '200' 
156361                 WHEN 3 THEN '200' 
156362                 WHEN 4 THEN '200' 
156363                 WHEN 5 THEN '200' 
156364                 WHEN 6 THEN '200' 
156365                 WHEN 7 THEN '200' 
156366                 WHEN 8 THEN '200' 
156367                 WHEN 9 THEN '200' 
156368                 WHEN 10 THEN '200' 
156369                 WHEN 11 THEN '200' 
156370                 WHEN 12 THEN '200' 
156371                 WHEN 13 THEN '200' 
156372                 WHEN 14 THEN '200' 
156373                 WHEN 15 THEN '200' 
156374                 WHEN 16 THEN '200' 
156375                 WHEN 17 THEN '200' 
156376                 WHEN 18 THEN '200' 
156377                 WHEN 19 THEN '200' 
156378                 WHEN 20 THEN '200' 
156379                 WHEN 21 THEN '200' 
156380                 WHEN 22 THEN '200' 
156381                 WHEN 23 THEN '200' 
156382                 WHEN 24 THEN '200' 
156383                 WHEN 25 THEN '200' 
156384                 WHEN 26 THEN '200' 
156385                 WHEN 27 THEN '200' 
156389                 WHEN 31 THEN '200' 
156386                 WHEN 28 THEN '200' 
156387                 WHEN 29 THEN '200' 
156388                 WHEN 30 THEN '200' 
156390                 WHEN 32 THEN '200' 
156391                 WHEN 33 THEN '200' 
156392                 WHEN 34 THEN '200' 
156393                 WHEN 35 THEN '200' 
156394                 WHEN 36 THEN '200' 
156395                 WHEN 37 THEN '200' 
156396                 WHEN 38 THEN '200' 
156397                 WHEN 39 THEN '200' 
156398                 
156399                 ELSE null
156400               END                           source_application_id
156401             , 'S'             source_type_code
156402             , CASE r
156403                 WHEN 1 THEN 'DOC_SEQUENCE_NAME' 
156404                 WHEN 2 THEN 'AC_DOC_SEQUENCE_VALUE' 
156405                 WHEN 3 THEN 'PAYMENT_TRANSACTION_NUMBER' 
156406                 WHEN 4 THEN 'AC_CHECK_DATE' 
156407                 WHEN 5 THEN 'CBA_BANK_ACCOUNT_NAME' 
156408                 WHEN 6 THEN 'AC_CURRENCY_CODE' 
156409                 WHEN 7 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
156410                 WHEN 8 THEN 'CGAC_AP_ASSET_CCID' 
156411                 WHEN 9 THEN 'FSP_DISC_TAKEN_CCID' 
156412                 WHEN 10 THEN 'ASP_DISCOUNT_DIST_METHOD' 
156413                 WHEN 11 THEN 'CGAC_FUTURE_DATED_PMT_CCID' 
156414                 WHEN 12 THEN 'ASP_FD_PMT_ACCT_SOURCE' 
156415                 WHEN 13 THEN 'FSP_FUTURE_DATED_PAYMENT_CCID' 
156416                 WHEN 14 THEN 'POS_FDP_CCID' 
156417                 WHEN 15 THEN 'ASP_INTEREST_CCID' 
156418                 WHEN 16 THEN 'ASP_PRORATE_INT_ACROSS_DISTS' 
156419                 WHEN 17 THEN 'CGAC_CASH_CLEARING_CCID' 
156420                 WHEN 18 THEN 'CGAC_GAIN_CCID' 
156421                 WHEN 19 THEN 'ASP_GAIN_CCID' 
156422                 WHEN 20 THEN 'CGAC_LOSS_CCID' 
156423                 WHEN 21 THEN 'ASP_LOSS_CCID' 
156424                 WHEN 22 THEN 'ASP_DISC_TAKEN_CCID' 
156425                 WHEN 23 THEN 'ASP_AUTO_OFFSET_FLAG' 
156426                 WHEN 24 THEN 'PAYCARD_ACCRUED_ACCOUNT_CCID' 
156427                 WHEN 25 THEN 'ASP_ROUNDING_ERROR_CCID' 
156428                 WHEN 26 THEN 'THIRD_PARTY_TYPE' 
156429                 WHEN 27 THEN 'ASP_WHEN_TO_ACCOUNT_PMT' 
156430                 WHEN 28 THEN 'AC_VENDOR_ID' 
156431                 WHEN 29 THEN 'AC_VENDOR_SITE_ID' 
156432                 WHEN 30 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG' 
156433                 WHEN 31 THEN 'AC_FUTURE_PAY_DUE_DATE' 
156434                 WHEN 32 THEN 'AC_EXCHANGE_DATE' 
156435                 WHEN 33 THEN 'AC_EXCHANGE_RATE' 
156436                 WHEN 34 THEN 'AC_EXCHANGE_RATE_TYPE' 
156437                 WHEN 35 THEN 'PAYMENT_TYPE' 
156438                 WHEN 36 THEN 'PAYMENT_PROCESSING_TYPE' 
156439                 WHEN 37 THEN 'AC_DOC_CATEGORY_CODE' 
156440                 WHEN 38 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID' 
156441                 WHEN 39 THEN 'TRANSAC_REVERSAL_FLAG' 
156442                 
156443                 ELSE null
156444               END                           source_code
156445             , CASE r
156446                 WHEN 1 THEN TO_CHAR(h2.DOC_SEQUENCE_NAME)
156447                 WHEN 2 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
156448                 WHEN 3 THEN TO_CHAR(h2.PAYMENT_TRANSACTION_NUMBER)
156449                 WHEN 4 THEN TO_CHAR(h2.AC_CHECK_DATE)
156450                 WHEN 5 THEN TO_CHAR(h2.CBA_BANK_ACCOUNT_NAME)
156451                 WHEN 6 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
156452                 WHEN 7 THEN TO_CHAR(h3.ASP_AUTOMATIC_OFFSETS_VALUE)
156453                 WHEN 8 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
156454                 WHEN 9 THEN TO_CHAR(h3.FSP_DISC_TAKEN_CCID)
156455                 WHEN 10 THEN TO_CHAR(h3.ASP_DISCOUNT_DIST_METHOD)
156456                 WHEN 11 THEN TO_CHAR(h2.CGAC_FUTURE_DATED_PMT_CCID)
156457                 WHEN 12 THEN TO_CHAR(h3.ASP_FD_PMT_ACCT_SOURCE)
156458                 WHEN 13 THEN TO_CHAR(h3.FSP_FUTURE_DATED_PAYMENT_CCID)
156459                 WHEN 14 THEN TO_CHAR(h2.POS_FDP_CCID)
156460                 WHEN 15 THEN TO_CHAR(h3.ASP_INTEREST_CCID)
156461                 WHEN 16 THEN TO_CHAR(h3.ASP_PRORATE_INT_ACROSS_DISTS)
156462                 WHEN 17 THEN TO_CHAR(h2.CGAC_CASH_CLEARING_CCID)
156463                 WHEN 18 THEN TO_CHAR(h2.CGAC_GAIN_CCID)
156464                 WHEN 19 THEN TO_CHAR(h3.ASP_GAIN_CCID)
156465                 WHEN 20 THEN TO_CHAR(h2.CGAC_LOSS_CCID)
156466                 WHEN 21 THEN TO_CHAR(h3.ASP_LOSS_CCID)
156467                 WHEN 22 THEN TO_CHAR(h3.ASP_DISC_TAKEN_CCID)
156468                 WHEN 23 THEN TO_CHAR(h3.ASP_AUTO_OFFSET_FLAG)
156469                 WHEN 24 THEN TO_CHAR(h2.PAYCARD_ACCRUED_ACCOUNT_CCID)
156470                 WHEN 25 THEN TO_CHAR(h3.ASP_ROUNDING_ERROR_CCID)
156471                 WHEN 26 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
156472                 WHEN 27 THEN TO_CHAR(h3.ASP_WHEN_TO_ACCOUNT_PMT)
156473                 WHEN 28 THEN TO_CHAR(h2.AC_VENDOR_ID)
156474                 WHEN 29 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
156475                 WHEN 30 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
156476                 WHEN 31 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
156477                 WHEN 32 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
156478                 WHEN 33 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
156479                 WHEN 34 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
156480                 WHEN 35 THEN TO_CHAR(h2.PAYMENT_TYPE)
156481                 WHEN 36 THEN TO_CHAR(h2.PAYMENT_PROCESSING_TYPE)
156482                 WHEN 37 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
156483                 WHEN 38 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
156484                 WHEN 39 THEN TO_CHAR(h2.TRANSAC_REVERSAL_FLAG)
156485                 
156486                 ELSE null
156487               END                           source_value
156488             , CASE r
156489                 WHEN 7 THEN fvl15.meaning
156490                 WHEN 10 THEN fvl19.meaning
156491                 WHEN 12 THEN fvl25.meaning
156492                 WHEN 23 THEN fvl47.meaning
156493                 WHEN 30 THEN fvl113.meaning
156497                 ELSE null
156494                 WHEN 35 THEN fvl122.meaning
156495                 WHEN 39 THEN fvl172.meaning
156496                 
156498               END               source_meaning
156499          FROM xla_events_gt     xet  
156500       , AP_PAYMENT_EXTRACT_HEADER_V  h2
156501       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
156502   , fnd_lookup_values    fvl15
156503   , fnd_lookup_values    fvl19
156504   , fnd_lookup_values    fvl25
156505   , fnd_lookup_values    fvl47
156506   , fnd_lookup_values    fvl113
156507   , fnd_lookup_values    fvl122
156508   , fnd_lookup_values    fvl172
156509              ,(select rownum r from all_objects where rownum <= 39 and owner = p_apps_owner)
156510          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
156511            AND xet.event_class_code = C_EVENT_CLASS_CODE
156512               AND h2.event_id = xet.event_id
156513  AND h3.asp_org_id = h2.ac_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
156514   AND fvl15.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
156515   AND fvl15.view_application_id(+) = 200
156516   AND fvl15.language(+)            = USERENV('LANG')
156517      AND fvl19.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
156518   AND fvl19.lookup_code(+)         = h3.ASP_DISCOUNT_DIST_METHOD
156519   AND fvl19.view_application_id(+) = 200
156520   AND fvl19.language(+)            = USERENV('LANG')
156521      AND fvl25.lookup_type(+)         = 'FUTURE PAY ACCT SOURCE'
156522   AND fvl25.lookup_code(+)         = h3.ASP_FD_PMT_ACCT_SOURCE
156523   AND fvl25.view_application_id(+) = 200
156524   AND fvl25.language(+)            = USERENV('LANG')
156525      AND fvl47.lookup_type(+)         = 'YES_NO'
156526   AND fvl47.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
156527   AND fvl47.view_application_id(+) = 0
156528   AND fvl47.language(+)            = USERENV('LANG')
156529      AND fvl113.lookup_type(+)         = 'YES_NO'
156530   AND fvl113.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
156531   AND fvl113.view_application_id(+) = 0
156532   AND fvl113.language(+)            = USERENV('LANG')
156533      AND fvl122.lookup_type(+)         = 'PAYMENT TYPE'
156534   AND fvl122.lookup_code(+)         = h2.PAYMENT_TYPE
156535   AND fvl122.view_application_id(+) = 200
156536   AND fvl122.language(+)            = USERENV('LANG')
156537      AND fvl172.lookup_type(+)         = 'YES_NO'
156538   AND fvl172.lookup_code(+)         = h2.TRANSAC_REVERSAL_FLAG
156539   AND fvl172.view_application_id(+) = 0
156540   AND fvl172.language(+)            = USERENV('LANG')
156541   
156542 )
156543 ;
156544 --
156545 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
156546 
156547       trace
156548          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
156549          ,p_level    => C_LEVEL_STATEMENT
156550          ,p_module   => l_log_module);
156551 
156552 END IF;
156553 --
156554 
156555 
156556 
156557 --
156558 INSERT INTO xla_diag_sources  --line2
156559 (
156560         event_id
156561       , ledger_id
156562       , sla_ledger_id
156563       , description_language
156564       , object_name
156565       , object_type_code
156566       , line_number
156567       , source_application_id
156568       , source_type_code
156569       , source_code
156570       , source_value
156571       , source_meaning
156572       , created_by
156573       , creation_date
156574       , last_update_date
156575       , last_updated_by
156576       , last_update_login
156577       , program_update_date
156578       , program_application_id
156579       , program_id
156580       , request_id
156581 )
156582 SELECT  event_id
156583       , p_target_ledger_id
156584       , p_sla_ledger_id
156585       , p_language
156586       , object_name
156587       , object_type_code
156588       , line_number
156589       , source_application_id
156590       , source_type_code
156591       , source_code
156592       , SUBSTR(source_value,1,1996)
156593       , SUBSTR(source_meaning ,1,200)
156594       , xla_environment_pkg.g_Usr_Id
156595       , TRUNC(SYSDATE)
156596       , TRUNC(SYSDATE)
156597       , xla_environment_pkg.g_Usr_Id
156598       , xla_environment_pkg.g_Login_Id
156599       , TRUNC(SYSDATE)
156600       , xla_environment_pkg.g_Prog_Appl_Id
156601       , xla_environment_pkg.g_Prog_Id
156602       , xla_environment_pkg.g_Req_Id
156603   FROM (
156604        SELECT xet.event_id                  event_id
156605             , l1.line_number                 line_number
156606             , CASE r
156607                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156608                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156609                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156610                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156611                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156612                 WHEN 6 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
156613                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156614                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156615                 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156616                 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156617                 WHEN 11 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
156618                 WHEN 12 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
156619                 WHEN 13 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
156620                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156621                 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156622                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156623                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156624                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156625                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156626                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156627                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156631                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156628                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156629                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156630                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156632                 WHEN 26 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
156633                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156634                 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156635                 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156636                 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156637                 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156638                 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156639                 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156640                 WHEN 34 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
156641                 
156642                ELSE null
156643               END                           object_name
156644             , CASE r
156645                 WHEN 1 THEN 'LINE' 
156646                 WHEN 2 THEN 'LINE' 
156647                 WHEN 3 THEN 'LINE' 
156648                 WHEN 4 THEN 'LINE' 
156649                 WHEN 5 THEN 'LINE' 
156650                 WHEN 6 THEN 'LINE' 
156651                 WHEN 7 THEN 'LINE' 
156652                 WHEN 8 THEN 'LINE' 
156653                 WHEN 9 THEN 'LINE' 
156654                 WHEN 10 THEN 'LINE' 
156655                 WHEN 11 THEN 'LINE' 
156656                 WHEN 12 THEN 'LINE' 
156657                 WHEN 13 THEN 'LINE' 
156658                 WHEN 14 THEN 'LINE' 
156659                 WHEN 15 THEN 'LINE' 
156660                 WHEN 16 THEN 'LINE' 
156661                 WHEN 17 THEN 'LINE' 
156662                 WHEN 18 THEN 'LINE' 
156663                 WHEN 19 THEN 'LINE' 
156664                 WHEN 20 THEN 'LINE' 
156665                 WHEN 21 THEN 'LINE' 
156666                 WHEN 22 THEN 'LINE' 
156667                 WHEN 23 THEN 'LINE' 
156668                 WHEN 24 THEN 'LINE' 
156669                 WHEN 25 THEN 'LINE' 
156670                 WHEN 26 THEN 'LINE' 
156671                 WHEN 27 THEN 'LINE' 
156672                 WHEN 28 THEN 'LINE' 
156673                 WHEN 29 THEN 'LINE' 
156674                 WHEN 30 THEN 'LINE' 
156675                 WHEN 31 THEN 'LINE' 
156676                 WHEN 32 THEN 'LINE' 
156677                 WHEN 33 THEN 'LINE' 
156678                 WHEN 34 THEN 'LINE' 
156679                 
156680                 ELSE null
156681               END                           object_type_code
156682             , CASE r
156683                 WHEN 1 THEN '200' 
156684                 WHEN 2 THEN '200' 
156685                 WHEN 3 THEN '200' 
156686                 WHEN 4 THEN '200' 
156687                 WHEN 5 THEN '200' 
156688                 WHEN 6 THEN '200' 
156689                 WHEN 7 THEN '200' 
156690                 WHEN 8 THEN '200' 
156691                 WHEN 9 THEN '200' 
156692                 WHEN 10 THEN '200' 
156693                 WHEN 11 THEN '200' 
156694                 WHEN 12 THEN '200' 
156695                 WHEN 13 THEN '200' 
156696                 WHEN 14 THEN '200' 
156697                 WHEN 15 THEN '200' 
156698                 WHEN 16 THEN '200' 
156699                 WHEN 17 THEN '200' 
156700                 WHEN 18 THEN '200' 
156701                 WHEN 19 THEN '200' 
156702                 WHEN 20 THEN '200' 
156703                 WHEN 21 THEN '200' 
156704                 WHEN 22 THEN '200' 
156705                 WHEN 23 THEN '200' 
156706                 WHEN 24 THEN '200' 
156707                 WHEN 25 THEN '200' 
156708                 WHEN 26 THEN '200' 
156709                 WHEN 27 THEN '200' 
156710                 WHEN 28 THEN '200' 
156711                 WHEN 29 THEN '200' 
156712                 WHEN 30 THEN '200' 
156713                 WHEN 31 THEN '200' 
156714                 WHEN 32 THEN '200' 
156715                 WHEN 33 THEN '200' 
156716                 WHEN 34 THEN '200' 
156717                 
156718                 ELSE null
156719               END                           source_application_id
156720             , 'S'             source_type_code
156721             , CASE r
156722                 WHEN 1 THEN 'AID_DIST_CCID' 
156723                 WHEN 2 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
156724                 WHEN 3 THEN 'AWT_RELATED_DIST_ACCOUNT' 
156725                 WHEN 4 THEN 'POD_CCID' 
156726                 WHEN 5 THEN 'PO_VARIANCE_ACCOUNT' 
156727                 WHEN 6 THEN 'TAX_ACCOUNT_CCID' 
156728                 WHEN 7 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
156729                 WHEN 8 THEN 'DISTRIBUTION_LINK_TYPE' 
156730                 WHEN 9 THEN 'AI_INVOICE_CURRENCY_CODE' 
156731                 WHEN 10 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
156732                 WHEN 11 THEN 'TAX_LINE_ID' 
156733                 WHEN 12 THEN 'REC_NREC_TAX_DIST_ID' 
156734                 WHEN 13 THEN 'SUMMARY_TAX_LINE_ID' 
156735                 WHEN 14 THEN 'BUS_FLOW_AP_APP_ID' 
156736                 WHEN 15 THEN 'BUS_FLOW_INV_DIST_TYPE' 
156737                 WHEN 16 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
156738                 WHEN 17 THEN 'BUS_FLOW_INV_DIST_ID' 
156739                 WHEN 18 THEN 'BUS_FLOW_INV_ID' 
156740                 WHEN 19 THEN 'APHD_PAY_DIST_LOOKUP_CODE' 
156741                 WHEN 20 THEN 'APHD_AMOUNT' 
156742                 WHEN 21 THEN 'APHD_PAYMENT_HIST_DIST_ID' 
156743                 WHEN 22 THEN 'APHD_REV_PAY_HIST_DIST_ID' 
156744                 WHEN 23 THEN 'APHD_PAYMENT_BASE_AMT' 
156745                 WHEN 24 THEN 'APHD_INVOICE_BASE_AMT' 
156746                 WHEN 25 THEN 'APHD_INVOICE_DIST_AMOUNT' 
156747                 WHEN 26 THEN 'DEF_REC_SETTLEMENT_OPTION_CODE' 
156748                 WHEN 27 THEN 'AWT_RELATED_DIST_TYPE' 
156749                 WHEN 28 THEN 'INV_EXCHANGE_DATE' 
156750                 WHEN 29 THEN 'INV_EXCHANGE_RATE' 
156751                 WHEN 30 THEN 'INV_EXCHANGE_RATE_TYPE' 
156755                 WHEN 34 THEN 'AWT_AT_PMT_TIME' 
156752                 WHEN 31 THEN 'INV_PMT_BASE_AMT_DIFF' 
156753                 WHEN 32 THEN 'INV_PMT_GAIN_LOSS_INDICATOR' 
156754                 WHEN 33 THEN 'AI_INVOICE_TYPE_PAID' 
156756                 
156757                 ELSE null
156758               END                           source_code
156759             , CASE r
156760                 WHEN 1 THEN TO_CHAR(l1.AID_DIST_CCID)
156761                 WHEN 2 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
156762                 WHEN 3 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
156763                 WHEN 4 THEN TO_CHAR(l1.POD_CCID)
156764                 WHEN 5 THEN TO_CHAR(l1.PO_VARIANCE_ACCOUNT)
156765                 WHEN 6 THEN TO_CHAR(l4.TAX_ACCOUNT_CCID)
156766                 WHEN 7 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
156767                 WHEN 8 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
156768                 WHEN 9 THEN TO_CHAR(l1.AI_INVOICE_CURRENCY_CODE)
156769                 WHEN 10 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
156770                 WHEN 11 THEN TO_CHAR(l4.TAX_LINE_ID)
156771                 WHEN 12 THEN TO_CHAR(l5.REC_NREC_TAX_DIST_ID)
156772                 WHEN 13 THEN TO_CHAR(l4.SUMMARY_TAX_LINE_ID)
156773                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
156774                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
156775                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
156776                 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
156777                 WHEN 18 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
156778                 WHEN 19 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
156779                 WHEN 20 THEN TO_CHAR(l1.APHD_AMOUNT)
156780                 WHEN 21 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
156781                 WHEN 22 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
156782                 WHEN 23 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
156783                 WHEN 24 THEN TO_CHAR(l1.APHD_INVOICE_BASE_AMT)
156784                 WHEN 25 THEN TO_CHAR(l1.APHD_INVOICE_DIST_AMOUNT)
156785                 WHEN 26 THEN TO_CHAR(l4.DEF_REC_SETTLEMENT_OPTION_CODE)
156786                 WHEN 27 THEN TO_CHAR(l1.AWT_RELATED_DIST_TYPE)
156787                 WHEN 28 THEN TO_CHAR(l1.INV_EXCHANGE_DATE)
156788                 WHEN 29 THEN TO_CHAR(l1.INV_EXCHANGE_RATE)
156789                 WHEN 30 THEN TO_CHAR(l1.INV_EXCHANGE_RATE_TYPE)
156790                 WHEN 31 THEN TO_CHAR(l1.INV_PMT_BASE_AMT_DIFF)
156791                 WHEN 32 THEN TO_CHAR(l1.INV_PMT_GAIN_LOSS_INDICATOR)
156792                 WHEN 33 THEN TO_CHAR(l1.AI_INVOICE_TYPE_PAID)
156793                 WHEN 34 THEN TO_CHAR(l1.AWT_AT_PMT_TIME)
156794                 
156795                 ELSE null
156796               END                           source_value
156797             , CASE r
156798                 WHEN 2 THEN fvl33.meaning
156799                 WHEN 10 THEN fvl80.meaning
156800                 WHEN 19 THEN fvl98.meaning
156801                 WHEN 26 THEN fvl137.meaning
156802                 WHEN 33 THEN fvl163.meaning
156803                 WHEN 34 THEN fvl164.meaning
156804                 
156805                 ELSE null
156806               END               source_meaning
156807          FROM  xla_events_gt     xet  
156808         , AP_PAYMENT_EXTRACT_DETAILS_V  l1
156809         , ZX_AP_DEF_TAX_EXTRACT_V  l4
156810         , ZX_AP_TAX_JRNL_LINE_DESC_V  l5
156811   , fnd_lookup_values    fvl33
156812   , fnd_lookup_values    fvl80
156813   , fnd_lookup_values    fvl98
156814   , fnd_lookup_values    fvl137
156815   , fnd_lookup_values    fvl163
156816   , fnd_lookup_values    fvl164
156817             , (select rownum r from all_objects where rownum <= 34 and owner = p_apps_owner)
156818         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
156819           AND xet.event_class_code = C_EVENT_CLASS_CODE
156820             AND l1.event_id          = xet.event_id
156821  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 fvl33.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
156822   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
156823   AND fvl33.view_application_id(+) = 200
156824   AND fvl33.language(+)            = USERENV('LANG')
156825      AND fvl80.lookup_type(+)         = 'YES_NO'
156826   AND fvl80.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
156827   AND fvl80.view_application_id(+) = 0
156828   AND fvl80.language(+)            = USERENV('LANG')
156829      AND fvl98.lookup_type(+)         = 'PAY_DIST_TYPES'
156830   AND fvl98.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
156831   AND fvl98.view_application_id(+) = 200
156832   AND fvl98.language(+)            = USERENV('LANG')
156833      AND fvl137.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
156834   AND fvl137.lookup_code(+)         = l4.DEF_REC_SETTLEMENT_OPTION_CODE
156835   AND fvl137.view_application_id(+) = 0
156836   AND fvl137.language(+)            = USERENV('LANG')
156837      AND fvl163.lookup_type(+)         = 'INVOICE TYPE'
156838   AND fvl163.lookup_code(+)         = l1.AI_INVOICE_TYPE_PAID
156839   AND fvl163.view_application_id(+) = 200
156840   AND fvl163.language(+)            = USERENV('LANG')
156841      AND fvl164.lookup_type(+)         = 'YES_NO'
156842   AND fvl164.lookup_code(+)         = l1.AWT_AT_PMT_TIME
156843   AND fvl164.view_application_id(+) = 0
156844   AND fvl164.language(+)            = USERENV('LANG')
156845   
156846 )
156847 ;
156848 --
156849 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
156850 
156851       trace
156852          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
156853          ,p_level    => C_LEVEL_STATEMENT
156854          ,p_module   => l_log_module);
156855 
156856 END IF;
156857 
156858 
156859 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
156860       trace
156861          (p_msg      => 'END of insert_sources_234'
156862          ,p_level    => C_LEVEL_PROCEDURE
156863          ,p_module   => l_log_module);
156864 END IF;
156865 EXCEPTION
156866   WHEN xla_exceptions_pkg.application_exception THEN
156870                ,p_level    => C_LEVEL_EXCEPTION
156867       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
156868             trace
156869                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
156871                ,p_module   => l_log_module);
156872       END IF;
156873       RAISE;
156874   WHEN OTHERS THEN
156875       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
156876             trace
156877                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
156878                ,p_level    => C_LEVEL_EXCEPTION
156879                ,p_module   => l_log_module);
156880        END IF;
156881        xla_exceptions_pkg.raise_message
156882            (p_location => 'XLA_00200_AAD_S_000002_PKG.insert_sources_234');
156883 END insert_sources_234;
156884 --
156885 
156886 ---------------------------------------
156887 --
156888 -- PRIVATE FUNCTION
156889 --         EventClass_234
156890 --
156891 ----------------------------------------
156892 --
156893 FUNCTION EventClass_234
156894        (p_application_id         IN NUMBER
156895        ,p_base_ledger_id         IN NUMBER
156896        ,p_target_ledger_id       IN NUMBER
156897        ,p_language               IN VARCHAR2
156898        ,p_currency_code          IN VARCHAR2
156899        ,p_sla_ledger_id          IN NUMBER
156900        ,p_pad_start_date         IN DATE
156901        ,p_pad_end_date           IN DATE
156902        ,p_primary_ledger_id      IN NUMBER)
156903 RETURN BOOLEAN IS
156904 --
156905 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PAYMENTS_ALL';
156906 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'PAYMENTS';
156907 
156908 l_calculate_acctd_flag   VARCHAR2(1) :='N';
156909 l_calculate_g_l_flag     VARCHAR2(1) :='N';
156910 --
156911 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
156912 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
156913 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
156914 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
156915 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
156916 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
156917 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
156918 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
156919 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
156920 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
156921 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
156922 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
156923 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
156924 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
156925 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
156926 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
156927 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
156928 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
156929 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
156930 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
156931 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
156932 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
156933 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
156934 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
156935 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
156936 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
156937 
156938 l_event_id                             NUMBER;
156939 l_previous_event_id                    NUMBER;
156940 l_first_event_id                       NUMBER;
156941 l_last_event_id                        NUMBER;
156942 
156943 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
156944 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
156945 --
156946 --
156947 l_result                    BOOLEAN := TRUE;
156948 l_rows                      NUMBER  := 1000;
156949 l_event_type_name           VARCHAR2(80) := 'All';
156950 l_event_class_name          VARCHAR2(80) := 'Payments';
156951 l_description               VARCHAR2(4000);
156952 l_transaction_reversal      NUMBER;
156953 l_ae_header_id              NUMBER;
156954 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
156955 l_log_module                VARCHAR2(240);
156956 --
156957 l_acct_reversal_source      VARCHAR2(30);
156958 l_trx_reversal_source       VARCHAR2(30);
156959 
156960 l_continue_with_lines       BOOLEAN := TRUE;
156961 --
156962 l_acc_rev_gl_date_source    DATE;                      -- 4262811
156963 --
156964 type t_array_event_id is table of number index by binary_integer;
156965 
156966 l_rec_array_event                    t_rec_array_event;
156967 l_null_rec_array_event               t_rec_array_event;
156968 l_array_ae_header_id                 xla_number_array_type;
156969 l_actual_flag                        VARCHAR2(1) := NULL;
156970 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
156971 l_balance_type_code                  VARCHAR2(1) :=NULL;
156972 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
156973 
156974 --
156975 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
156976 --
156977 
156978 TYPE t_array_source_6 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.DOC_SEQUENCE_NAME%TYPE INDEX BY BINARY_INTEGER;
156979 TYPE t_array_source_9 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
156980 TYPE t_array_source_10 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TRANSACTION_NUMBER%TYPE INDEX BY BINARY_INTEGER;
156984 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
156981 TYPE t_array_source_11 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CHECK_DATE%TYPE INDEX BY BINARY_INTEGER;
156982 TYPE t_array_source_12 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_BANK_ACCOUNT_NAME%TYPE INDEX BY BINARY_INTEGER;
156983 TYPE t_array_source_13 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
156985 TYPE t_array_source_17 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
156986 TYPE t_array_source_18 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
156987 TYPE t_array_source_19 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISCOUNT_DIST_METHOD%TYPE INDEX BY BINARY_INTEGER;
156988 TYPE t_array_source_24 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_FUTURE_DATED_PMT_CCID%TYPE INDEX BY BINARY_INTEGER;
156989 TYPE t_array_source_25 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_FD_PMT_ACCT_SOURCE%TYPE INDEX BY BINARY_INTEGER;
156990 TYPE t_array_source_26 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_FUTURE_DATED_PAYMENT_CCID%TYPE INDEX BY BINARY_INTEGER;
156991 TYPE t_array_source_27 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.POS_FDP_CCID%TYPE INDEX BY BINARY_INTEGER;
156992 TYPE t_array_source_28 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_INTEREST_CCID%TYPE INDEX BY BINARY_INTEGER;
156993 TYPE t_array_source_29 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_PRORATE_INT_ACROSS_DISTS%TYPE INDEX BY BINARY_INTEGER;
156994 TYPE t_array_source_35 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_CASH_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
156995 TYPE t_array_source_36 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
156996 TYPE t_array_source_37 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
156997 TYPE t_array_source_38 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
156998 TYPE t_array_source_39 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
156999 TYPE t_array_source_44 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
157000 TYPE t_array_source_47 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
157001 TYPE t_array_source_48 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYCARD_ACCRUED_ACCOUNT_CCID%TYPE INDEX BY BINARY_INTEGER;
157002 TYPE t_array_source_49 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
157003 TYPE t_array_source_83 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
157004 TYPE t_array_source_97 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
157005 TYPE t_array_source_110 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
157006 TYPE t_array_source_111 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
157007 TYPE t_array_source_113 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
157008 TYPE t_array_source_114 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
157009 TYPE t_array_source_117 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
157010 TYPE t_array_source_118 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
157011 TYPE t_array_source_119 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
157012 TYPE t_array_source_122 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
157013 TYPE t_array_source_123 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_PROCESSING_TYPE%TYPE INDEX BY BINARY_INTEGER;
157014 TYPE t_array_source_170 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
157015 TYPE t_array_source_171 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
157016 TYPE t_array_source_172 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.TRANSAC_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
157017 
157018 TYPE t_array_source_30 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
157019 TYPE t_array_source_33 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
157020 TYPE t_array_source_43 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
157021 TYPE t_array_source_45 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_CCID%TYPE INDEX BY BINARY_INTEGER;
157022 TYPE t_array_source_46 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PO_VARIANCE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
157023 TYPE t_array_source_52 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_ACCOUNT_CCID%TYPE INDEX BY BINARY_INTEGER;
157024 TYPE t_array_source_53 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
157025 TYPE t_array_source_55 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
157026 TYPE t_array_source_67 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
157027 TYPE t_array_source_80 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
157028 TYPE t_array_source_86 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
157029 TYPE t_array_source_87 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
157030 TYPE t_array_source_88 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
157031 TYPE t_array_source_91 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
157032 TYPE t_array_source_92 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
157033 TYPE t_array_source_93 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
157034 TYPE t_array_source_94 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
157035 TYPE t_array_source_95 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
157036 TYPE t_array_source_98 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
157040 TYPE t_array_source_115 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
157037 TYPE t_array_source_99 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
157038 TYPE t_array_source_104 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
157039 TYPE t_array_source_112 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
157041 TYPE t_array_source_116 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INVOICE_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
157042 TYPE t_array_source_124 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INVOICE_DIST_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
157043 TYPE t_array_source_137 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.DEF_REC_SETTLEMENT_OPTION_CODE%TYPE INDEX BY BINARY_INTEGER;
157044 TYPE t_array_source_138 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_RELATED_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
157045 TYPE t_array_source_143 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
157046 TYPE t_array_source_144 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
157047 TYPE t_array_source_145 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
157048 TYPE t_array_source_153 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_PMT_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
157049 TYPE t_array_source_158 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_PMT_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
157050 TYPE t_array_source_163 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_TYPE_PAID%TYPE INDEX BY BINARY_INTEGER;
157051 TYPE t_array_source_164 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_AT_PMT_TIME%TYPE INDEX BY BINARY_INTEGER;
157052 
157053 l_array_source_6              t_array_source_6;
157054 l_array_source_9              t_array_source_9;
157055 l_array_source_10              t_array_source_10;
157056 l_array_source_11              t_array_source_11;
157057 l_array_source_12              t_array_source_12;
157058 l_array_source_13              t_array_source_13;
157059 l_array_source_15              t_array_source_15;
157060 l_array_source_15_meaning      t_array_lookup_meaning;
157061 l_array_source_17              t_array_source_17;
157062 l_array_source_18              t_array_source_18;
157063 l_array_source_19              t_array_source_19;
157064 l_array_source_19_meaning      t_array_lookup_meaning;
157065 l_array_source_24              t_array_source_24;
157066 l_array_source_25              t_array_source_25;
157067 l_array_source_25_meaning      t_array_lookup_meaning;
157068 l_array_source_26              t_array_source_26;
157069 l_array_source_27              t_array_source_27;
157070 l_array_source_28              t_array_source_28;
157071 l_array_source_29              t_array_source_29;
157072 l_array_source_35              t_array_source_35;
157073 l_array_source_36              t_array_source_36;
157074 l_array_source_37              t_array_source_37;
157075 l_array_source_38              t_array_source_38;
157076 l_array_source_39              t_array_source_39;
157077 l_array_source_44              t_array_source_44;
157078 l_array_source_47              t_array_source_47;
157079 l_array_source_47_meaning      t_array_lookup_meaning;
157080 l_array_source_48              t_array_source_48;
157081 l_array_source_49              t_array_source_49;
157082 l_array_source_83              t_array_source_83;
157083 l_array_source_97              t_array_source_97;
157084 l_array_source_110              t_array_source_110;
157085 l_array_source_111              t_array_source_111;
157086 l_array_source_113              t_array_source_113;
157087 l_array_source_113_meaning      t_array_lookup_meaning;
157088 l_array_source_114              t_array_source_114;
157089 l_array_source_117              t_array_source_117;
157090 l_array_source_118              t_array_source_118;
157091 l_array_source_119              t_array_source_119;
157092 l_array_source_122              t_array_source_122;
157093 l_array_source_122_meaning      t_array_lookup_meaning;
157094 l_array_source_123              t_array_source_123;
157095 l_array_source_170              t_array_source_170;
157096 l_array_source_171              t_array_source_171;
157097 l_array_source_172              t_array_source_172;
157098 l_array_source_172_meaning      t_array_lookup_meaning;
157099 
157100 l_array_source_30      t_array_source_30;
157101 l_array_source_33      t_array_source_33;
157102 l_array_source_33_meaning      t_array_lookup_meaning;
157103 l_array_source_43      t_array_source_43;
157104 l_array_source_45      t_array_source_45;
157105 l_array_source_46      t_array_source_46;
157106 l_array_source_52      t_array_source_52;
157107 l_array_source_53      t_array_source_53;
157108 l_array_source_55      t_array_source_55;
157109 l_array_source_67      t_array_source_67;
157110 l_array_source_80      t_array_source_80;
157111 l_array_source_80_meaning      t_array_lookup_meaning;
157112 l_array_source_86      t_array_source_86;
157113 l_array_source_87      t_array_source_87;
157114 l_array_source_88      t_array_source_88;
157115 l_array_source_91      t_array_source_91;
157116 l_array_source_92      t_array_source_92;
157117 l_array_source_93      t_array_source_93;
157118 l_array_source_94      t_array_source_94;
157119 l_array_source_95      t_array_source_95;
157120 l_array_source_98      t_array_source_98;
157121 l_array_source_98_meaning      t_array_lookup_meaning;
157122 l_array_source_99      t_array_source_99;
157123 l_array_source_104      t_array_source_104;
157124 l_array_source_112      t_array_source_112;
157125 l_array_source_115      t_array_source_115;
157126 l_array_source_116      t_array_source_116;
157127 l_array_source_124      t_array_source_124;
157128 l_array_source_137      t_array_source_137;
157129 l_array_source_137_meaning      t_array_lookup_meaning;
157130 l_array_source_138      t_array_source_138;
157131 l_array_source_143      t_array_source_143;
157132 l_array_source_144      t_array_source_144;
157133 l_array_source_145      t_array_source_145;
157134 l_array_source_153      t_array_source_153;
157135 l_array_source_158      t_array_source_158;
157139 l_array_source_164_meaning      t_array_lookup_meaning;
157136 l_array_source_163      t_array_source_163;
157137 l_array_source_163_meaning      t_array_lookup_meaning;
157138 l_array_source_164      t_array_source_164;
157140 
157141 --
157142 CURSOR header_cur
157143 IS
157144 SELECT /*+ leading(xet) cardinality(xet,1) */
157145 -- Event Class Code: PAYMENTS
157146     xet.entity_id
157147    ,xet.legal_entity_id
157148    ,xet.entity_code
157149    ,xet.transaction_number
157150    ,xet.event_id
157151    ,xet.event_class_code
157152    ,xet.event_type_code
157153    ,xet.event_number
157154    ,xet.event_date
157155    ,xet.transaction_date
157156    ,xet.reference_num_1
157157    ,xet.reference_num_2
157158    ,xet.reference_num_3
157159    ,xet.reference_num_4
157160    ,xet.reference_char_1
157161    ,xet.reference_char_2
157162    ,xet.reference_char_3
157163    ,xet.reference_char_4
157164    ,xet.reference_date_1
157165    ,xet.reference_date_2
157166    ,xet.reference_date_3
157167    ,xet.reference_date_4
157168    ,xet.event_created_by
157169    ,xet.budgetary_control_flag 
157170   , h2.DOC_SEQUENCE_NAME    source_6
157171   , h2.AC_DOC_SEQUENCE_VALUE    source_9
157172   , h2.PAYMENT_TRANSACTION_NUMBER    source_10
157173   , h2.AC_CHECK_DATE    source_11
157174   , h2.CBA_BANK_ACCOUNT_NAME    source_12
157175   , h2.AC_CURRENCY_CODE    source_13
157176   , h3.ASP_AUTOMATIC_OFFSETS_VALUE    source_15
157177   , fvl15.meaning   source_15_meaning
157178   , h2.CGAC_AP_ASSET_CCID    source_17
157179   , h3.FSP_DISC_TAKEN_CCID    source_18
157180   , h3.ASP_DISCOUNT_DIST_METHOD    source_19
157181   , fvl19.meaning   source_19_meaning
157182   , h2.CGAC_FUTURE_DATED_PMT_CCID    source_24
157183   , h3.ASP_FD_PMT_ACCT_SOURCE    source_25
157184   , fvl25.meaning   source_25_meaning
157185   , h3.FSP_FUTURE_DATED_PAYMENT_CCID    source_26
157186   , h2.POS_FDP_CCID    source_27
157187   , h3.ASP_INTEREST_CCID    source_28
157188   , h3.ASP_PRORATE_INT_ACROSS_DISTS    source_29
157189   , h2.CGAC_CASH_CLEARING_CCID    source_35
157190   , h2.CGAC_GAIN_CCID    source_36
157191   , h3.ASP_GAIN_CCID    source_37
157192   , h2.CGAC_LOSS_CCID    source_38
157193   , h3.ASP_LOSS_CCID    source_39
157194   , h3.ASP_DISC_TAKEN_CCID    source_44
157195   , h3.ASP_AUTO_OFFSET_FLAG    source_47
157196   , fvl47.meaning   source_47_meaning
157197   , h2.PAYCARD_ACCRUED_ACCOUNT_CCID    source_48
157198   , h3.ASP_ROUNDING_ERROR_CCID    source_49
157199   , h2.THIRD_PARTY_TYPE    source_83
157200   , h3.ASP_WHEN_TO_ACCOUNT_PMT    source_97
157201   , h2.AC_VENDOR_ID    source_110
157202   , h2.AC_VENDOR_SITE_ID    source_111
157203   , h2.CBA_POOLED_BANK_ACOUNT_FLAG    source_113
157204   , fvl113.meaning   source_113_meaning
157205   , h2.AC_FUTURE_PAY_DUE_DATE    source_114
157206   , h2.AC_EXCHANGE_DATE    source_117
157207   , h2.AC_EXCHANGE_RATE    source_118
157208   , h2.AC_EXCHANGE_RATE_TYPE    source_119
157209   , h2.PAYMENT_TYPE    source_122
157210   , fvl122.meaning   source_122_meaning
157211   , h2.PAYMENT_PROCESSING_TYPE    source_123
157212   , h2.AC_DOC_CATEGORY_CODE    source_170
157213   , h2.PAYMENT_DOCUMENT_SEQUENCE_ID    source_171
157214   , h2.TRANSAC_REVERSAL_FLAG    source_172
157215   , fvl172.meaning   source_172_meaning
157216   FROM xla_events_gt     xet 
157217   , AP_PAYMENT_EXTRACT_HEADER_V  h2
157218   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
157219   , fnd_lookup_values    fvl15
157220   , fnd_lookup_values    fvl19
157221   , fnd_lookup_values    fvl25
157222   , fnd_lookup_values    fvl47
157223   , fnd_lookup_values    fvl113
157224   , fnd_lookup_values    fvl122
157225   , fnd_lookup_values    fvl172
157226  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
157227    and xet.event_class_code = C_EVENT_CLASS_CODE
157228    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
157229  AND h3.asp_org_id = h2.ac_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
157230   AND fvl15.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
157231   AND fvl15.view_application_id(+) = 200
157232   AND fvl15.language(+)            = USERENV('LANG')
157233      AND fvl19.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
157234   AND fvl19.lookup_code(+)         = h3.ASP_DISCOUNT_DIST_METHOD
157235   AND fvl19.view_application_id(+) = 200
157236   AND fvl19.language(+)            = USERENV('LANG')
157237      AND fvl25.lookup_type(+)         = 'FUTURE PAY ACCT SOURCE'
157238   AND fvl25.lookup_code(+)         = h3.ASP_FD_PMT_ACCT_SOURCE
157239   AND fvl25.view_application_id(+) = 200
157240   AND fvl25.language(+)            = USERENV('LANG')
157241      AND fvl47.lookup_type(+)         = 'YES_NO'
157242   AND fvl47.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
157243   AND fvl47.view_application_id(+) = 0
157244   AND fvl47.language(+)            = USERENV('LANG')
157245      AND fvl113.lookup_type(+)         = 'YES_NO'
157246   AND fvl113.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
157247   AND fvl113.view_application_id(+) = 0
157248   AND fvl113.language(+)            = USERENV('LANG')
157249      AND fvl122.lookup_type(+)         = 'PAYMENT TYPE'
157250   AND fvl122.lookup_code(+)         = h2.PAYMENT_TYPE
157251   AND fvl122.view_application_id(+) = 200
157252   AND fvl122.language(+)            = USERENV('LANG')
157253      AND fvl172.lookup_type(+)         = 'YES_NO'
157254   AND fvl172.lookup_code(+)         = h2.TRANSAC_REVERSAL_FLAG
157255   AND fvl172.view_application_id(+) = 0
157256   AND fvl172.language(+)            = USERENV('LANG')
157257   
157258  ORDER BY event_id
157259 ;
157260 
157261 
157262 --
157263 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
157264 IS
157265 SELECT  /*+ leading(xet) cardinality(xet,1) */
157266 -- Event Class Code: PAYMENTS
157267     xet.entity_id
157268    ,xet.legal_entity_id
157269    ,xet.entity_code
157270    ,xet.transaction_number
157271    ,xet.event_id
157275    ,xet.event_date
157272    ,xet.event_class_code
157273    ,xet.event_type_code
157274    ,xet.event_number
157276    ,xet.transaction_date
157277    ,xet.reference_num_1
157278    ,xet.reference_num_2
157279    ,xet.reference_num_3
157280    ,xet.reference_num_4
157281    ,xet.reference_char_1
157282    ,xet.reference_char_2
157283    ,xet.reference_char_3
157284    ,xet.reference_char_4
157285    ,xet.reference_date_1
157286    ,xet.reference_date_2
157287    ,xet.reference_date_3
157288    ,xet.reference_date_4
157289    ,xet.event_created_by
157290    ,xet.budgetary_control_flag
157291  , l1.LINE_NUMBER  
157292   , l1.AID_DIST_CCID    source_30
157293   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_33
157294   , fvl33.meaning   source_33_meaning
157295   , l1.AWT_RELATED_DIST_ACCOUNT    source_43
157296   , l1.POD_CCID    source_45
157297   , l1.PO_VARIANCE_ACCOUNT    source_46
157298   , l4.TAX_ACCOUNT_CCID    source_52
157299   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_53
157300   , l1.DISTRIBUTION_LINK_TYPE    source_55
157301   , l1.AI_INVOICE_CURRENCY_CODE    source_67
157302   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_80
157303   , fvl80.meaning   source_80_meaning
157304   , l4.TAX_LINE_ID    source_86
157305   , l5.REC_NREC_TAX_DIST_ID    source_87
157306   , l4.SUMMARY_TAX_LINE_ID    source_88
157307   , l1.BUS_FLOW_AP_APP_ID    source_91
157308   , l1.BUS_FLOW_INV_DIST_TYPE    source_92
157309   , l1.BUS_FLOW_INV_ENTITY_CODE    source_93
157310   , l1.BUS_FLOW_INV_DIST_ID    source_94
157311   , l1.BUS_FLOW_INV_ID    source_95
157312   , l1.APHD_PAY_DIST_LOOKUP_CODE    source_98
157313   , fvl98.meaning   source_98_meaning
157314   , l1.APHD_AMOUNT    source_99
157315   , l1.APHD_PAYMENT_HIST_DIST_ID    source_104
157316   , l1.APHD_REV_PAY_HIST_DIST_ID    source_112
157317   , l1.APHD_PAYMENT_BASE_AMT    source_115
157318   , l1.APHD_INVOICE_BASE_AMT    source_116
157319   , l1.APHD_INVOICE_DIST_AMOUNT    source_124
157320   , l4.DEF_REC_SETTLEMENT_OPTION_CODE    source_137
157321   , fvl137.meaning   source_137_meaning
157322   , l1.AWT_RELATED_DIST_TYPE    source_138
157323   , l1.INV_EXCHANGE_DATE    source_143
157324   , l1.INV_EXCHANGE_RATE    source_144
157325   , l1.INV_EXCHANGE_RATE_TYPE    source_145
157326   , l1.INV_PMT_BASE_AMT_DIFF    source_153
157327   , l1.INV_PMT_GAIN_LOSS_INDICATOR    source_158
157328   , l1.AI_INVOICE_TYPE_PAID    source_163
157329   , fvl163.meaning   source_163_meaning
157330   , l1.AWT_AT_PMT_TIME    source_164
157331   , fvl164.meaning   source_164_meaning
157332   FROM xla_events_gt     xet 
157333   , AP_PAYMENT_EXTRACT_DETAILS_V  l1
157334   , ZX_AP_DEF_TAX_EXTRACT_V  l4
157335   , ZX_AP_TAX_JRNL_LINE_DESC_V  l5
157336   , fnd_lookup_values    fvl33
157337   , fnd_lookup_values    fvl80
157338   , fnd_lookup_values    fvl98
157339   , fnd_lookup_values    fvl137
157340   , fnd_lookup_values    fvl163
157341   , fnd_lookup_values    fvl164
157342  WHERE xet.event_id between x_first_event_id and x_last_event_id
157343    and xet.event_date between p_pad_start_date and p_pad_end_date
157344    and xet.event_class_code = C_EVENT_CLASS_CODE
157345    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
157346  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 fvl33.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
157347   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
157348   AND fvl33.view_application_id(+) = 200
157349   AND fvl33.language(+)            = USERENV('LANG')
157350      AND fvl80.lookup_type(+)         = 'YES_NO'
157351   AND fvl80.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
157352   AND fvl80.view_application_id(+) = 0
157353   AND fvl80.language(+)            = USERENV('LANG')
157354      AND fvl98.lookup_type(+)         = 'PAY_DIST_TYPES'
157355   AND fvl98.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
157356   AND fvl98.view_application_id(+) = 200
157357   AND fvl98.language(+)            = USERENV('LANG')
157358      AND fvl137.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
157359   AND fvl137.lookup_code(+)         = l4.DEF_REC_SETTLEMENT_OPTION_CODE
157360   AND fvl137.view_application_id(+) = 0
157361   AND fvl137.language(+)            = USERENV('LANG')
157362      AND fvl163.lookup_type(+)         = 'INVOICE TYPE'
157363   AND fvl163.lookup_code(+)         = l1.AI_INVOICE_TYPE_PAID
157364   AND fvl163.view_application_id(+) = 200
157365   AND fvl163.language(+)            = USERENV('LANG')
157366      AND fvl164.lookup_type(+)         = 'YES_NO'
157367   AND fvl164.lookup_code(+)         = l1.AWT_AT_PMT_TIME
157368   AND fvl164.view_application_id(+) = 0
157369   AND fvl164.language(+)            = USERENV('LANG')
157370   ;
157371 
157372 --
157373 BEGIN
157374 IF g_log_enabled THEN
157375    l_log_module := C_DEFAULT_MODULE||'.EventClass_234';
157376 END IF;
157377 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
157378    trace
157379       (p_msg      => 'BEGIN of EventClass_234'
157380       ,p_level    => C_LEVEL_PROCEDURE
157381       ,p_module   => l_log_module);
157382 END IF;
157383 
157384 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
157385    trace
157386       (p_msg      => 'p_application_id = '||p_application_id||
157387                      ' - p_base_ledger_id = '||p_base_ledger_id||
157388                      ' - p_target_ledger_id  = '||p_target_ledger_id||
157389                      ' - p_language = '||p_language||
157390                      ' - p_currency_code = '||p_currency_code||
157391                      ' - p_sla_ledger_id = '||p_sla_ledger_id
157392       ,p_level    => C_LEVEL_STATEMENT
157393       ,p_module   => l_log_module);
157394 END IF;
157395 --
157396 -- initialze arrays
157397 --
157398 g_array_event.DELETE;
157399 l_rec_array_event := l_null_rec_array_event;
157400 --
157401 --------------------------------------
157402 -- 4262811 Initialze MPA Line Number
157403 --------------------------------------
157407 
157404 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
157405 
157406 --
157408 --
157409 OPEN header_cur;
157410 --
157411 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
157412    trace
157413    (p_msg      => 'SQL - FETCH header_cur'
157414    ,p_level    => C_LEVEL_STATEMENT
157415    ,p_module   => l_log_module);
157416 END IF;
157417 --
157418 LOOP
157419 FETCH header_cur BULK COLLECT INTO
157420         l_array_entity_id
157421       , l_array_legal_entity_id
157422       , l_array_entity_code
157423       , l_array_transaction_num
157424       , l_array_event_id
157425       , l_array_class_code
157426       , l_array_event_type
157427       , l_array_event_number
157428       , l_array_event_date
157429       , l_array_transaction_date
157430       , l_array_reference_num_1
157431       , l_array_reference_num_2
157432       , l_array_reference_num_3
157433       , l_array_reference_num_4
157434       , l_array_reference_char_1
157435       , l_array_reference_char_2
157436       , l_array_reference_char_3
157437       , l_array_reference_char_4
157438       , l_array_reference_date_1
157439       , l_array_reference_date_2
157440       , l_array_reference_date_3
157441       , l_array_reference_date_4
157442       , l_array_event_created_by
157443       , l_array_budgetary_control_flag 
157444       , l_array_source_6
157445       , l_array_source_9
157446       , l_array_source_10
157447       , l_array_source_11
157448       , l_array_source_12
157449       , l_array_source_13
157450       , l_array_source_15
157451       , l_array_source_15_meaning
157452       , l_array_source_17
157453       , l_array_source_18
157454       , l_array_source_19
157455       , l_array_source_19_meaning
157456       , l_array_source_24
157457       , l_array_source_25
157458       , l_array_source_25_meaning
157459       , l_array_source_26
157460       , l_array_source_27
157461       , l_array_source_28
157462       , l_array_source_29
157463       , l_array_source_35
157464       , l_array_source_36
157465       , l_array_source_37
157466       , l_array_source_38
157467       , l_array_source_39
157468       , l_array_source_44
157469       , l_array_source_47
157470       , l_array_source_47_meaning
157471       , l_array_source_48
157472       , l_array_source_49
157473       , l_array_source_83
157474       , l_array_source_97
157475       , l_array_source_110
157476       , l_array_source_111
157477       , l_array_source_113
157478       , l_array_source_113_meaning
157479       , l_array_source_114
157480       , l_array_source_117
157481       , l_array_source_118
157482       , l_array_source_119
157483       , l_array_source_122
157484       , l_array_source_122_meaning
157485       , l_array_source_123
157486       , l_array_source_170
157487       , l_array_source_171
157488       , l_array_source_172
157489       , l_array_source_172_meaning
157490       LIMIT l_rows;
157491 --
157492 IF (C_LEVEL_EVENT >= g_log_level) THEN
157493    trace
157494    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
157495    ,p_level    => C_LEVEL_EVENT
157496    ,p_module   => l_log_module);
157497 END IF;
157498 --
157499 EXIT WHEN l_array_entity_id.COUNT = 0;
157500 
157501 -- initialize arrays
157502 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
157503 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
157504 
157505 --
157506 -- Bug 4458708
157507 --
157508 XLA_AE_LINES_PKG.g_LineNumber := 0;
157509 
157510 
157511 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
157512 g_last_hdr_idx := l_array_event_id.LAST;
157513 --
157514 -- loop for the headers. Each iteration is for each header extract row
157515 -- fetched in header cursor
157516 --
157517 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
157518 
157519 --
157520 -- set event info as cache for other routines to refer event attributes
157521 --
157522 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
157523    (p_application_id           => p_application_id
157524    ,p_primary_ledger_id        => p_primary_ledger_id
157525    ,p_base_ledger_id           => p_base_ledger_id
157526    ,p_target_ledger_id         => p_target_ledger_id
157527    ,p_entity_id                => l_array_entity_id(hdr_idx)
157528    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
157529    ,p_entity_code              => l_array_entity_code(hdr_idx)
157530    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
157531    ,p_event_id                 => l_array_event_id(hdr_idx)
157532    ,p_event_class_code         => l_array_class_code(hdr_idx)
157533    ,p_event_type_code          => l_array_event_type(hdr_idx)
157534    ,p_event_number             => l_array_event_number(hdr_idx)
157535    ,p_event_date               => l_array_event_date(hdr_idx)
157536    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
157537    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
157538    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
157539    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
157540    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
157541    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
157542    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
157543    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
157544    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
157545    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
157546    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
157547    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
157548    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
157549    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
157553 -- set the status of entry to C_VALID (0)
157550    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
157551 
157552 --
157554 --
157555 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
157556 
157557 --
157558 -- initialize a row for ae header
157559 --
157560 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
157561 
157562 l_event_id := l_array_event_id(hdr_idx);
157563 
157564 --
157565 -- storing the hdr_idx for event. May be used by line cursor.
157566 --
157567 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
157568 
157569 --
157570 -- store sources from header extract. This can be improved to
157571 -- store only those sources from header extract that may be used in lines
157572 --
157573 
157574 g_array_event(l_event_id).array_value_char('source_6') := l_array_source_6(hdr_idx);
157575 g_array_event(l_event_id).array_value_num('source_9') := l_array_source_9(hdr_idx);
157576 g_array_event(l_event_id).array_value_num('source_10') := l_array_source_10(hdr_idx);
157577 g_array_event(l_event_id).array_value_date('source_11') := l_array_source_11(hdr_idx);
157578 g_array_event(l_event_id).array_value_char('source_12') := l_array_source_12(hdr_idx);
157579 g_array_event(l_event_id).array_value_char('source_13') := l_array_source_13(hdr_idx);
157580 g_array_event(l_event_id).array_value_char('source_15') := l_array_source_15(hdr_idx);
157581 g_array_event(l_event_id).array_value_char('source_15_meaning') := l_array_source_15_meaning(hdr_idx);
157582 g_array_event(l_event_id).array_value_num('source_17') := l_array_source_17(hdr_idx);
157583 g_array_event(l_event_id).array_value_num('source_18') := l_array_source_18(hdr_idx);
157584 g_array_event(l_event_id).array_value_char('source_19') := l_array_source_19(hdr_idx);
157585 g_array_event(l_event_id).array_value_char('source_19_meaning') := l_array_source_19_meaning(hdr_idx);
157586 g_array_event(l_event_id).array_value_num('source_24') := l_array_source_24(hdr_idx);
157587 g_array_event(l_event_id).array_value_char('source_25') := l_array_source_25(hdr_idx);
157588 g_array_event(l_event_id).array_value_char('source_25_meaning') := l_array_source_25_meaning(hdr_idx);
157589 g_array_event(l_event_id).array_value_num('source_26') := l_array_source_26(hdr_idx);
157590 g_array_event(l_event_id).array_value_num('source_27') := l_array_source_27(hdr_idx);
157591 g_array_event(l_event_id).array_value_num('source_28') := l_array_source_28(hdr_idx);
157592 g_array_event(l_event_id).array_value_char('source_29') := l_array_source_29(hdr_idx);
157593 g_array_event(l_event_id).array_value_num('source_35') := l_array_source_35(hdr_idx);
157594 g_array_event(l_event_id).array_value_num('source_36') := l_array_source_36(hdr_idx);
157595 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
157596 g_array_event(l_event_id).array_value_num('source_38') := l_array_source_38(hdr_idx);
157597 g_array_event(l_event_id).array_value_num('source_39') := l_array_source_39(hdr_idx);
157598 g_array_event(l_event_id).array_value_num('source_44') := l_array_source_44(hdr_idx);
157599 g_array_event(l_event_id).array_value_char('source_47') := l_array_source_47(hdr_idx);
157600 g_array_event(l_event_id).array_value_char('source_47_meaning') := l_array_source_47_meaning(hdr_idx);
157601 g_array_event(l_event_id).array_value_num('source_48') := l_array_source_48(hdr_idx);
157602 g_array_event(l_event_id).array_value_num('source_49') := l_array_source_49(hdr_idx);
157603 g_array_event(l_event_id).array_value_char('source_83') := l_array_source_83(hdr_idx);
157604 g_array_event(l_event_id).array_value_char('source_97') := l_array_source_97(hdr_idx);
157605 g_array_event(l_event_id).array_value_num('source_110') := l_array_source_110(hdr_idx);
157606 g_array_event(l_event_id).array_value_num('source_111') := l_array_source_111(hdr_idx);
157607 g_array_event(l_event_id).array_value_char('source_113') := l_array_source_113(hdr_idx);
157608 g_array_event(l_event_id).array_value_char('source_113_meaning') := l_array_source_113_meaning(hdr_idx);
157609 g_array_event(l_event_id).array_value_date('source_114') := l_array_source_114(hdr_idx);
157610 g_array_event(l_event_id).array_value_date('source_117') := l_array_source_117(hdr_idx);
157611 g_array_event(l_event_id).array_value_num('source_118') := l_array_source_118(hdr_idx);
157612 g_array_event(l_event_id).array_value_char('source_119') := l_array_source_119(hdr_idx);
157613 g_array_event(l_event_id).array_value_char('source_122') := l_array_source_122(hdr_idx);
157614 g_array_event(l_event_id).array_value_char('source_122_meaning') := l_array_source_122_meaning(hdr_idx);
157615 g_array_event(l_event_id).array_value_char('source_123') := l_array_source_123(hdr_idx);
157616 g_array_event(l_event_id).array_value_char('source_170') := l_array_source_170(hdr_idx);
157617 g_array_event(l_event_id).array_value_num('source_171') := l_array_source_171(hdr_idx);
157618 g_array_event(l_event_id).array_value_char('source_172') := l_array_source_172(hdr_idx);
157619 g_array_event(l_event_id).array_value_char('source_172_meaning') := l_array_source_172_meaning(hdr_idx);
157620 
157621 --
157622 -- initilaize the status of ae headers for diffrent balance types
157623 -- the status is initialised to C_NOT_CREATED (2)
157624 --
157625 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
157626 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
157627 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
157628 
157629 --
157630 -- call api to validate and store accounting attributes for header
157631 --
157632 
157633 ------------------------------------------------------------
157634 -- Accrual Reversal : to get date for Standard Source (NONE)
157635 ------------------------------------------------------------
157636 l_acc_rev_gl_date_source := NULL;
157637 
157638      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
157639       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_170');
157640      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
157641       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_171');
157645       l_rec_acct_attrs.array_date_value(4) := 
157642      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
157643       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_9');
157644      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
157646 xla_ae_sources_pkg.GetSystemSourceDate(
157647    p_source_code           => 'XLA_EVENT_DATE'
157648  , p_source_type_code      => 'Y'
157649  , p_source_application_id =>  602
157650 );
157651      l_rec_acct_attrs.array_acct_attr_code(5)   := 'TRX_ACCT_REVERSAL_OPTION';
157652       l_rec_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_172');
157653 
157654 
157655 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
157656 
157657 XLA_AE_HEADER_PKG.SetJeCategoryName;
157658 
157659 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
157660 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
157661 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
157662 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
157663 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
157664 
157665 
157666 --
157667 xla_ae_header_pkg.SetHdrDescription(
157668    p_description => Description_3 (
157669    p_application_id => p_application_id 
157670  , p_source_6 => g_array_event(l_event_id).array_value_char('source_6')
157671  , p_source_9 => g_array_event(l_event_id).array_value_num('source_9')
157672  , p_source_10 => g_array_event(l_event_id).array_value_num('source_10')
157673  , p_source_11 => g_array_event(l_event_id).array_value_date('source_11')
157674  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
157675  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
157676    )
157677 );
157678 --
157679 
157680 -- No header level analytical criteria
157681 
157682 --
157683 --accounting attribute enhancement, bug 3612931
157684 --
157685 l_trx_reversal_source := SUBSTR(g_array_event(l_event_id).array_value_char('source_172'), 1,30);
157686 
157687 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
157688    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
157689 
157690    xla_accounting_err_pkg.build_message
157691       (p_appli_s_name            => 'XLA'
157692       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
157693       ,p_token_1                 => 'ACCT_ATTR_NAME'
157694       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
157695       ,p_token_2                 => 'PRODUCT_NAME'
157696       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
157697       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
157698       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
157699       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
157700 
157701 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
157702    --
157703    -- following sets the accounting attributes needed to reverse
157704    -- accounting for a distributeion
157705    --
157706    xla_ae_lines_pkg.SetTrxReversalAttrs
157707       (p_event_id              => l_event_id
157708       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
157709       ,p_trx_reversal_source   => l_trx_reversal_source);
157710 
157711 END IF;
157712 
157713 
157714 ----------------------------------------------------------------
157715 -- 4262811 -  update the header statuses to invalid in need be
157716 ----------------------------------------------------------------
157717 --
157718 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
157719 
157720 
157721   -----------------------------------------------
157722   -- No accrual reversal for the event class/type
157723   -----------------------------------------------
157724 ----------------------------------------------------------------
157725 
157726 --
157727 -- this ends the header loop iteration for one bulk fetch
157728 --
157729 END LOOP;
157730 
157731 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
157732 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
157733 
157734 --
157735 -- insert dummy rows into lines gt table that were created due to
157736 -- transaction reversals
157737 --
157738 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
157739    l_result := XLA_AE_LINES_PKG.InsertLines;
157740 END IF;
157741 
157742 --
157743 -- reset the temp_line_num for each set of events fetched from header
157744 -- cursor rather than doing it for each new event in line cursor
157745 -- Bug 3939231
157746 --
157747 xla_ae_lines_pkg.g_temp_line_num := 0;
157748 
157749 
157750 
157751 --
157752 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
157753 --
157754 --
157755 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
157756 
157757       trace
157758          (p_msg      => 'SQL - FETCH line_cur'
157759          ,p_level    => C_LEVEL_STATEMENT
157760          ,p_module   => l_log_module);
157761 
157762 END IF;
157763 --
157764 --
157765 LOOP
157766   --
157767   FETCH line_cur BULK COLLECT INTO
157768         l_array_entity_id
157769       , l_array_legal_entity_id
157770       , l_array_entity_code
157771       , l_array_transaction_num
157772       , l_array_event_id
157773       , l_array_class_code
157774       , l_array_event_type
157775       , l_array_event_number
157776       , l_array_event_date
157777       , l_array_transaction_date
157778       , l_array_reference_num_1
157779       , l_array_reference_num_2
157780       , l_array_reference_num_3
157784       , l_array_reference_char_3
157781       , l_array_reference_num_4
157782       , l_array_reference_char_1
157783       , l_array_reference_char_2
157785       , l_array_reference_char_4
157786       , l_array_reference_date_1
157787       , l_array_reference_date_2
157788       , l_array_reference_date_3
157789       , l_array_reference_date_4
157790       , l_array_event_created_by
157791       , l_array_budgetary_control_flag
157792       , l_array_extract_line_num 
157793       , l_array_source_30
157794       , l_array_source_33
157795       , l_array_source_33_meaning
157796       , l_array_source_43
157797       , l_array_source_45
157798       , l_array_source_46
157799       , l_array_source_52
157800       , l_array_source_53
157801       , l_array_source_55
157802       , l_array_source_67
157803       , l_array_source_80
157804       , l_array_source_80_meaning
157805       , l_array_source_86
157806       , l_array_source_87
157807       , l_array_source_88
157808       , l_array_source_91
157809       , l_array_source_92
157810       , l_array_source_93
157811       , l_array_source_94
157812       , l_array_source_95
157813       , l_array_source_98
157814       , l_array_source_98_meaning
157815       , l_array_source_99
157816       , l_array_source_104
157817       , l_array_source_112
157818       , l_array_source_115
157819       , l_array_source_116
157820       , l_array_source_124
157821       , l_array_source_137
157822       , l_array_source_137_meaning
157823       , l_array_source_138
157824       , l_array_source_143
157825       , l_array_source_144
157826       , l_array_source_145
157827       , l_array_source_153
157828       , l_array_source_158
157829       , l_array_source_163
157830       , l_array_source_163_meaning
157831       , l_array_source_164
157832       , l_array_source_164_meaning
157833       LIMIT l_rows;
157834 
157835   --
157836   IF (C_LEVEL_EVENT >= g_log_level) THEN
157837             trace
157838                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
157839                ,p_level    => C_LEVEL_EVENT
157840                ,p_module   => l_log_module);
157841   END IF;
157842   --
157843   EXIT WHEN l_array_entity_id.count = 0;
157844 
157845   XLA_AE_LINES_PKG.g_rec_lines := null;
157846 
157847 --
157848 -- Bug 4458708
157849 --
157850 XLA_AE_LINES_PKG.g_LineNumber := 0;
157851 --
157852 --
157853 
157854 FOR Idx IN 1..l_array_event_id.count LOOP
157855    --
157856    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
157857    --
157858    l_event_id := l_array_event_id(idx);  -- 5648433
157859 
157860    --
157861    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
157862    --
157863 
157864    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
157865              (g_array_event(l_event_id).array_value_num('header_index'))
157866          ,'N'
157867          ) <> 'Y'
157868    THEN
157869       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
157870          trace
157871             (p_msg      => 'Trancaction revesal option is not Y '
157872             ,p_level    => C_LEVEL_STATEMENT
157873             ,p_module   => l_log_module);
157874       END IF;
157875 
157876 --
157877 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
157878 --
157879 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
157880 --
157881 -- set event info as cache for other routines to refer event attributes
157882 --
157883 
157884 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
157885    l_previous_event_id := l_event_id;
157886 
157887    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
157888       (p_application_id           => p_application_id
157889       ,p_primary_ledger_id        => p_primary_ledger_id
157890       ,p_base_ledger_id           => p_base_ledger_id
157891       ,p_target_ledger_id         => p_target_ledger_id
157892       ,p_entity_id                => l_array_entity_id(Idx)
157893       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
157894       ,p_entity_code              => l_array_entity_code(Idx)
157895       ,p_transaction_num          => l_array_transaction_num(Idx)
157896       ,p_event_id                 => l_array_event_id(Idx)
157897       ,p_event_class_code         => l_array_class_code(Idx)
157898       ,p_event_type_code          => l_array_event_type(Idx)
157899       ,p_event_number             => l_array_event_number(Idx)
157900       ,p_event_date               => l_array_event_date(Idx)
157901       ,p_transaction_date         => l_array_transaction_date(Idx)
157902       ,p_reference_num_1          => l_array_reference_num_1(Idx)
157903       ,p_reference_num_2          => l_array_reference_num_2(Idx)
157904       ,p_reference_num_3          => l_array_reference_num_3(Idx)
157905       ,p_reference_num_4          => l_array_reference_num_4(Idx)
157906       ,p_reference_char_1         => l_array_reference_char_1(Idx)
157907       ,p_reference_char_2         => l_array_reference_char_2(Idx)
157908       ,p_reference_char_3         => l_array_reference_char_3(Idx)
157909       ,p_reference_char_4         => l_array_reference_char_4(Idx)
157910       ,p_reference_date_1         => l_array_reference_date_1(Idx)
157911       ,p_reference_date_2         => l_array_reference_date_2(Idx)
157912       ,p_reference_date_3         => l_array_reference_date_3(Idx)
157913       ,p_reference_date_4         => l_array_reference_date_4(Idx)
157914       ,p_event_created_by         => l_array_event_created_by(Idx)
157915       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
157916        --
157917 END IF;
157918 
157919 
157920 
157921 --
157922 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
157923 
157924 l_acct_reversal_source := SUBSTR(l_array_source_53(Idx), 1,30);
157928       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
157925 
157926 IF l_continue_with_lines THEN
157927    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
157929 
157930       xla_accounting_err_pkg.build_message
157931          (p_appli_s_name            => 'XLA'
157932          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
157933          ,p_token_1                 => 'LINE_NUMBER'
157934          ,p_value_1                 => l_array_extract_line_num(Idx)
157935          ,p_token_2                 => 'PRODUCT_NAME'
157936          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
157937          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
157938          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
157939          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
157940 
157941    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
157942       --
157943       -- following sets the accounting attributes needed to reverse
157944       -- accounting for a distributeion
157945       --
157946 
157947       --
157948       -- 5217187
157949       --
157950       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
157951       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
157952                                        g_array_event(l_event_id).array_value_num('header_index'));
157953       --
157954       --
157955 
157956       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
157957       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_53(Idx);
157958       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
157959       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_104(Idx);
157960       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
157961       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_55(Idx);
157962       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
157963       l_rec_rev_acct_attrs.array_char_value(5)  := g_array_event(l_event_id).array_value_char('source_83');
157964       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
157965       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_112(Idx);
157966       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
157967       l_rec_rev_acct_attrs.array_char_value(7)  := l_array_source_55(Idx);
157968       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'TAX_LINE_REF_ID';
157969       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_86(Idx);
157970       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'TAX_REC_NREC_DIST_REF_ID';
157971       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_87(Idx);
157972       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'TAX_SUMMARY_LINE_REF_ID';
157973       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_88(Idx);
157974 
157975 
157976       xla_ae_lines_pkg.SetAcctReversalAttrs
157977          (p_event_id             => l_event_id
157978          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
157979          ,p_calculate_acctd_flag => l_calculate_acctd_flag
157980          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
157981    END IF;
157982 
157983    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
157984        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
157985 
157986 --
157987 AcctLineType_69 (
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_13 => g_array_event(l_event_id).array_value_char('source_13')
157997  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
157998  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
157999  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
158000  , p_source_53 => l_array_source_53(Idx)
158001  , p_source_55 => l_array_source_55(Idx)
158002  , p_source_80 => l_array_source_80(Idx)
158003  , p_source_80_meaning => l_array_source_80_meaning(Idx)
158004  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
158005  , p_source_86 => l_array_source_86(Idx)
158006  , p_source_87 => l_array_source_87(Idx)
158007  , p_source_88 => l_array_source_88(Idx)
158008  , p_source_91 => l_array_source_91(Idx)
158009  , p_source_92 => l_array_source_92(Idx)
158010  , p_source_93 => l_array_source_93(Idx)
158011  , p_source_94 => l_array_source_94(Idx)
158012  , p_source_95 => l_array_source_95(Idx)
158013  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
158014  , p_source_98 => l_array_source_98(Idx)
158015  , p_source_98_meaning => l_array_source_98_meaning(Idx)
158016  , p_source_99 => l_array_source_99(Idx)
158017  , p_source_104 => l_array_source_104(Idx)
158018  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158019  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
158020  , p_source_112 => l_array_source_112(Idx)
158021  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
158022  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
158023  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
158024  , p_source_115 => l_array_source_115(Idx)
158025  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
158026  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
158027  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
158028  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158029  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158033 If(l_balance_type_code = 'A') THEN
158030  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158031  , p_source_124 => l_array_source_124(Idx)
158032  );
158034   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158035 END IF;
158036 
158037 --
158038 
158039 
158040 --
158041 AcctLineType_70 (
158042  p_application_id  => p_application_id
158043  ,p_event_id     => l_event_id
158044  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158045  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158046  ,p_actual_flag => l_actual_flag
158047  ,p_balance_type_code => l_balance_type_code
158048  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158049  
158050  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158051  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
158052  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
158053  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
158054  , p_source_53 => l_array_source_53(Idx)
158055  , p_source_55 => l_array_source_55(Idx)
158056  , p_source_80 => l_array_source_80(Idx)
158057  , p_source_80_meaning => l_array_source_80_meaning(Idx)
158058  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
158059  , p_source_86 => l_array_source_86(Idx)
158060  , p_source_87 => l_array_source_87(Idx)
158061  , p_source_88 => l_array_source_88(Idx)
158062  , p_source_91 => l_array_source_91(Idx)
158063  , p_source_92 => l_array_source_92(Idx)
158064  , p_source_93 => l_array_source_93(Idx)
158065  , p_source_94 => l_array_source_94(Idx)
158066  , p_source_95 => l_array_source_95(Idx)
158067  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
158068  , p_source_98 => l_array_source_98(Idx)
158069  , p_source_98_meaning => l_array_source_98_meaning(Idx)
158070  , p_source_99 => l_array_source_99(Idx)
158071  , p_source_104 => l_array_source_104(Idx)
158072  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158073  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
158074  , p_source_112 => l_array_source_112(Idx)
158075  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
158076  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
158077  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
158078  , p_source_115 => l_array_source_115(Idx)
158079  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
158080  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
158081  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
158082  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158083  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158084  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158085  , p_source_124 => l_array_source_124(Idx)
158086  );
158087 If(l_balance_type_code = 'A') THEN
158088   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158089 END IF;
158090 
158091 --
158092 
158093 
158094 --
158095 AcctLineType_71 (
158096  p_application_id  => p_application_id
158097  ,p_event_id     => l_event_id
158098  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158099  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158100  ,p_actual_flag => l_actual_flag
158101  ,p_balance_type_code => l_balance_type_code
158102  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158103  
158104  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158105  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
158106  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
158107  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
158108  , p_source_53 => l_array_source_53(Idx)
158109  , p_source_55 => l_array_source_55(Idx)
158110  , p_source_80 => l_array_source_80(Idx)
158111  , p_source_80_meaning => l_array_source_80_meaning(Idx)
158112  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
158113  , p_source_86 => l_array_source_86(Idx)
158114  , p_source_87 => l_array_source_87(Idx)
158115  , p_source_88 => l_array_source_88(Idx)
158116  , p_source_91 => l_array_source_91(Idx)
158117  , p_source_92 => l_array_source_92(Idx)
158118  , p_source_93 => l_array_source_93(Idx)
158119  , p_source_94 => l_array_source_94(Idx)
158120  , p_source_95 => l_array_source_95(Idx)
158121  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
158122  , p_source_98 => l_array_source_98(Idx)
158123  , p_source_98_meaning => l_array_source_98_meaning(Idx)
158124  , p_source_99 => l_array_source_99(Idx)
158125  , p_source_104 => l_array_source_104(Idx)
158126  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158127  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
158128  , p_source_112 => l_array_source_112(Idx)
158129  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
158130  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
158131  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
158132  , p_source_115 => l_array_source_115(Idx)
158133  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
158134  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
158135  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
158136  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158137  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158138  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158139  , p_source_124 => l_array_source_124(Idx)
158140  );
158141 If(l_balance_type_code = 'A') THEN
158142   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158143 END IF;
158144 
158145 --
158146 
158147 
158148 --
158149 AcctLineType_72 (
158153  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158150  p_application_id  => p_application_id
158151  ,p_event_id     => l_event_id
158152  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158154  ,p_actual_flag => l_actual_flag
158155  ,p_balance_type_code => l_balance_type_code
158156  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158157  
158158  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158159  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
158160  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
158161  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
158162  , p_source_53 => l_array_source_53(Idx)
158163  , p_source_55 => l_array_source_55(Idx)
158164  , p_source_80 => l_array_source_80(Idx)
158165  , p_source_80_meaning => l_array_source_80_meaning(Idx)
158166  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
158167  , p_source_86 => l_array_source_86(Idx)
158168  , p_source_87 => l_array_source_87(Idx)
158169  , p_source_88 => l_array_source_88(Idx)
158170  , p_source_91 => l_array_source_91(Idx)
158171  , p_source_92 => l_array_source_92(Idx)
158172  , p_source_93 => l_array_source_93(Idx)
158173  , p_source_94 => l_array_source_94(Idx)
158174  , p_source_95 => l_array_source_95(Idx)
158175  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
158176  , p_source_98 => l_array_source_98(Idx)
158177  , p_source_98_meaning => l_array_source_98_meaning(Idx)
158178  , p_source_99 => l_array_source_99(Idx)
158179  , p_source_104 => l_array_source_104(Idx)
158180  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158181  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
158182  , p_source_112 => l_array_source_112(Idx)
158183  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
158184  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
158185  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
158186  , p_source_116 => l_array_source_116(Idx)
158187  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
158188  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
158189  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
158190  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158191  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158192  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158193  , p_source_124 => l_array_source_124(Idx)
158194  );
158195 If(l_balance_type_code = 'A') THEN
158196   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158197 END IF;
158198 
158199 --
158200 
158201 
158202 --
158203 AcctLineType_73 (
158204  p_application_id  => p_application_id
158205  ,p_event_id     => l_event_id
158206  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158207  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158208  ,p_actual_flag => l_actual_flag
158209  ,p_balance_type_code => l_balance_type_code
158210  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158211  
158212  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158213  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
158214  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
158215  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
158216  , p_source_53 => l_array_source_53(Idx)
158217  , p_source_55 => l_array_source_55(Idx)
158218  , p_source_80 => l_array_source_80(Idx)
158219  , p_source_80_meaning => l_array_source_80_meaning(Idx)
158220  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
158221  , p_source_86 => l_array_source_86(Idx)
158222  , p_source_87 => l_array_source_87(Idx)
158223  , p_source_88 => l_array_source_88(Idx)
158224  , p_source_91 => l_array_source_91(Idx)
158225  , p_source_92 => l_array_source_92(Idx)
158226  , p_source_93 => l_array_source_93(Idx)
158227  , p_source_94 => l_array_source_94(Idx)
158228  , p_source_95 => l_array_source_95(Idx)
158229  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
158230  , p_source_98 => l_array_source_98(Idx)
158231  , p_source_98_meaning => l_array_source_98_meaning(Idx)
158232  , p_source_99 => l_array_source_99(Idx)
158233  , p_source_104 => l_array_source_104(Idx)
158234  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158235  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
158236  , p_source_112 => l_array_source_112(Idx)
158237  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
158238  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
158239  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
158240  , p_source_116 => l_array_source_116(Idx)
158241  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
158242  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
158243  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
158244  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158245  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158246  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158247  , p_source_124 => l_array_source_124(Idx)
158248  );
158249 If(l_balance_type_code = 'A') THEN
158250   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158251 END IF;
158252 
158253 --
158254 
158255 
158256 --
158257 AcctLineType_74 (
158258  p_application_id  => p_application_id
158259  ,p_event_id     => l_event_id
158260  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158261  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158262  ,p_actual_flag => l_actual_flag
158263  ,p_balance_type_code => l_balance_type_code
158264  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158265  
158269  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
158266  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158267  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
158268  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
158270  , p_source_53 => l_array_source_53(Idx)
158271  , p_source_55 => l_array_source_55(Idx)
158272  , p_source_80 => l_array_source_80(Idx)
158273  , p_source_80_meaning => l_array_source_80_meaning(Idx)
158274  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
158275  , p_source_86 => l_array_source_86(Idx)
158276  , p_source_87 => l_array_source_87(Idx)
158277  , p_source_88 => l_array_source_88(Idx)
158278  , p_source_91 => l_array_source_91(Idx)
158279  , p_source_92 => l_array_source_92(Idx)
158280  , p_source_93 => l_array_source_93(Idx)
158281  , p_source_94 => l_array_source_94(Idx)
158282  , p_source_95 => l_array_source_95(Idx)
158283  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
158284  , p_source_98 => l_array_source_98(Idx)
158285  , p_source_98_meaning => l_array_source_98_meaning(Idx)
158286  , p_source_99 => l_array_source_99(Idx)
158287  , p_source_104 => l_array_source_104(Idx)
158288  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158289  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
158290  , p_source_112 => l_array_source_112(Idx)
158291  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
158292  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
158293  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
158294  , p_source_116 => l_array_source_116(Idx)
158295  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
158296  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
158297  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
158298  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158299  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158300  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158301  , p_source_124 => l_array_source_124(Idx)
158302  );
158303 If(l_balance_type_code = 'A') THEN
158304   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158305 END IF;
158306 
158307 --
158308 
158309 
158310 --
158311 AcctLineType_85 (
158312  p_application_id  => p_application_id
158313  ,p_event_id     => l_event_id
158314  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158315  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158316  ,p_actual_flag => l_actual_flag
158317  ,p_balance_type_code => l_balance_type_code
158318  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158319  
158320  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158321  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
158322  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
158323  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
158324  , p_source_53 => l_array_source_53(Idx)
158325  , p_source_55 => l_array_source_55(Idx)
158326  , p_source_80 => l_array_source_80(Idx)
158327  , p_source_80_meaning => l_array_source_80_meaning(Idx)
158328  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
158329  , p_source_86 => l_array_source_86(Idx)
158330  , p_source_87 => l_array_source_87(Idx)
158331  , p_source_88 => l_array_source_88(Idx)
158332  , p_source_91 => l_array_source_91(Idx)
158333  , p_source_92 => l_array_source_92(Idx)
158334  , p_source_93 => l_array_source_93(Idx)
158335  , p_source_94 => l_array_source_94(Idx)
158336  , p_source_95 => l_array_source_95(Idx)
158337  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
158338  , p_source_98 => l_array_source_98(Idx)
158339  , p_source_98_meaning => l_array_source_98_meaning(Idx)
158340  , p_source_99 => l_array_source_99(Idx)
158341  , p_source_104 => l_array_source_104(Idx)
158342  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158343  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
158344  , p_source_112 => l_array_source_112(Idx)
158345  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
158346  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
158347  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
158348  , p_source_115 => l_array_source_115(Idx)
158349  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
158350  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
158351  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
158352  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158353  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158354  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158355  , p_source_124 => l_array_source_124(Idx)
158356  );
158357 If(l_balance_type_code = 'A') THEN
158358   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158359 END IF;
158360 
158361 --
158362 
158363 
158364 --
158365 AcctLineType_86 (
158366  p_application_id  => p_application_id
158367  ,p_event_id     => l_event_id
158368  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158369  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158370  ,p_actual_flag => l_actual_flag
158371  ,p_balance_type_code => l_balance_type_code
158372  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158373  
158374  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158375  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
158376  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
158377  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
158378  , p_source_53 => l_array_source_53(Idx)
158382  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
158379  , p_source_55 => l_array_source_55(Idx)
158380  , p_source_80 => l_array_source_80(Idx)
158381  , p_source_80_meaning => l_array_source_80_meaning(Idx)
158383  , p_source_86 => l_array_source_86(Idx)
158384  , p_source_87 => l_array_source_87(Idx)
158385  , p_source_88 => l_array_source_88(Idx)
158386  , p_source_91 => l_array_source_91(Idx)
158387  , p_source_92 => l_array_source_92(Idx)
158388  , p_source_93 => l_array_source_93(Idx)
158389  , p_source_94 => l_array_source_94(Idx)
158390  , p_source_95 => l_array_source_95(Idx)
158391  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
158392  , p_source_98 => l_array_source_98(Idx)
158393  , p_source_98_meaning => l_array_source_98_meaning(Idx)
158394  , p_source_99 => l_array_source_99(Idx)
158395  , p_source_104 => l_array_source_104(Idx)
158396  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158397  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
158398  , p_source_112 => l_array_source_112(Idx)
158399  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
158400  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
158401  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
158402  , p_source_115 => l_array_source_115(Idx)
158403  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
158404  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
158405  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
158406  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158407  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158408  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158409  , p_source_124 => l_array_source_124(Idx)
158410  );
158411 If(l_balance_type_code = 'A') THEN
158412   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158413 END IF;
158414 
158415 --
158416 
158417 
158418 --
158419 AcctLineType_87 (
158420  p_application_id  => p_application_id
158421  ,p_event_id     => l_event_id
158422  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158423  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158424  ,p_actual_flag => l_actual_flag
158425  ,p_balance_type_code => l_balance_type_code
158426  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158427  
158428  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158429  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
158430  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
158431  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
158432  , p_source_53 => l_array_source_53(Idx)
158433  , p_source_55 => l_array_source_55(Idx)
158434  , p_source_80 => l_array_source_80(Idx)
158435  , p_source_80_meaning => l_array_source_80_meaning(Idx)
158436  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
158437  , p_source_86 => l_array_source_86(Idx)
158438  , p_source_87 => l_array_source_87(Idx)
158439  , p_source_88 => l_array_source_88(Idx)
158440  , p_source_91 => l_array_source_91(Idx)
158441  , p_source_92 => l_array_source_92(Idx)
158442  , p_source_93 => l_array_source_93(Idx)
158443  , p_source_94 => l_array_source_94(Idx)
158444  , p_source_95 => l_array_source_95(Idx)
158445  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
158446  , p_source_98 => l_array_source_98(Idx)
158447  , p_source_98_meaning => l_array_source_98_meaning(Idx)
158448  , p_source_99 => l_array_source_99(Idx)
158449  , p_source_104 => l_array_source_104(Idx)
158450  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158451  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
158452  , p_source_112 => l_array_source_112(Idx)
158453  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
158454  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
158455  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
158456  , p_source_115 => l_array_source_115(Idx)
158457  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
158458  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
158459  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
158460  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158461  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158462  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158463  , p_source_124 => l_array_source_124(Idx)
158464  );
158465 If(l_balance_type_code = 'A') THEN
158466   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158467 END IF;
158468 
158469 --
158470 
158471 
158472 --
158473 AcctLineType_98 (
158474  p_application_id  => p_application_id
158475  ,p_event_id     => l_event_id
158476  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158477  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158478  ,p_actual_flag => l_actual_flag
158479  ,p_balance_type_code => l_balance_type_code
158480  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158481  
158482  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158483  , p_source_33 => l_array_source_33(Idx)
158484  , p_source_33_meaning => l_array_source_33_meaning(Idx)
158485  , p_source_53 => l_array_source_53(Idx)
158486  , p_source_55 => l_array_source_55(Idx)
158487  , p_source_80 => l_array_source_80(Idx)
158488  , p_source_80_meaning => l_array_source_80_meaning(Idx)
158489  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
158490  , p_source_86 => l_array_source_86(Idx)
158491  , p_source_87 => l_array_source_87(Idx)
158492  , p_source_88 => l_array_source_88(Idx)
158493  , p_source_91 => l_array_source_91(Idx)
158494  , p_source_92 => l_array_source_92(Idx)
158498  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
158495  , p_source_93 => l_array_source_93(Idx)
158496  , p_source_94 => l_array_source_94(Idx)
158497  , p_source_95 => l_array_source_95(Idx)
158499  , p_source_98 => l_array_source_98(Idx)
158500  , p_source_98_meaning => l_array_source_98_meaning(Idx)
158501  , p_source_99 => l_array_source_99(Idx)
158502  , p_source_104 => l_array_source_104(Idx)
158503  , p_source_112 => l_array_source_112(Idx)
158504  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
158505  , p_source_116 => l_array_source_116(Idx)
158506  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158507  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158508  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158509  , p_source_124 => l_array_source_124(Idx)
158510  , p_source_137 => l_array_source_137(Idx)
158511  , p_source_137_meaning => l_array_source_137_meaning(Idx)
158512  , p_source_138 => l_array_source_138(Idx)
158513  );
158514 If(l_balance_type_code = 'A') THEN
158515   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158516 END IF;
158517 
158518 --
158519 
158520 
158521 --
158522 AcctLineType_102 (
158523  p_application_id  => p_application_id
158524  ,p_event_id     => l_event_id
158525  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158526  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158527  ,p_actual_flag => l_actual_flag
158528  ,p_balance_type_code => l_balance_type_code
158529  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158530  
158531  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158532  , p_source_33 => l_array_source_33(Idx)
158533  , p_source_33_meaning => l_array_source_33_meaning(Idx)
158534  , p_source_52 => l_array_source_52(Idx)
158535  , p_source_53 => l_array_source_53(Idx)
158536  , p_source_55 => l_array_source_55(Idx)
158537  , p_source_80 => l_array_source_80(Idx)
158538  , p_source_80_meaning => l_array_source_80_meaning(Idx)
158539  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
158540  , p_source_86 => l_array_source_86(Idx)
158541  , p_source_87 => l_array_source_87(Idx)
158542  , p_source_88 => l_array_source_88(Idx)
158543  , p_source_91 => l_array_source_91(Idx)
158544  , p_source_92 => l_array_source_92(Idx)
158545  , p_source_93 => l_array_source_93(Idx)
158546  , p_source_94 => l_array_source_94(Idx)
158547  , p_source_95 => l_array_source_95(Idx)
158548  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
158549  , p_source_98 => l_array_source_98(Idx)
158550  , p_source_98_meaning => l_array_source_98_meaning(Idx)
158551  , p_source_99 => l_array_source_99(Idx)
158552  , p_source_104 => l_array_source_104(Idx)
158553  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158554  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
158555  , p_source_112 => l_array_source_112(Idx)
158556  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
158557  , p_source_116 => l_array_source_116(Idx)
158558  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158559  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158560  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158561  , p_source_124 => l_array_source_124(Idx)
158562  , p_source_137 => l_array_source_137(Idx)
158563  , p_source_137_meaning => l_array_source_137_meaning(Idx)
158564  , p_source_138 => l_array_source_138(Idx)
158565  , p_source_143 => l_array_source_143(Idx)
158566  , p_source_144 => l_array_source_144(Idx)
158567  , p_source_145 => l_array_source_145(Idx)
158568  );
158569 If(l_balance_type_code = 'A') THEN
158570   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158571 END IF;
158572 
158573 --
158574 
158575 
158576 --
158577 AcctLineType_105 (
158578  p_application_id  => p_application_id
158579  ,p_event_id     => l_event_id
158580  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158581  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158582  ,p_actual_flag => l_actual_flag
158583  ,p_balance_type_code => l_balance_type_code
158584  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158585  
158586  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158587  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
158588  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
158589  , p_source_18 => g_array_event(l_event_id).array_value_num('source_18')
158590  , p_source_19 => g_array_event(l_event_id).array_value_char('source_19')
158591  , p_source_19_meaning => g_array_event(l_event_id).array_value_char('source_19_meaning')
158592  , p_source_30 => l_array_source_30(Idx)
158593  , p_source_33 => l_array_source_33(Idx)
158594  , p_source_33_meaning => l_array_source_33_meaning(Idx)
158595  , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
158596  , p_source_45 => l_array_source_45(Idx)
158597  , p_source_46 => l_array_source_46(Idx)
158598  , p_source_53 => l_array_source_53(Idx)
158599  , p_source_55 => l_array_source_55(Idx)
158600  , p_source_80 => l_array_source_80(Idx)
158601  , p_source_80_meaning => l_array_source_80_meaning(Idx)
158602  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
158603  , p_source_86 => l_array_source_86(Idx)
158604  , p_source_87 => l_array_source_87(Idx)
158605  , p_source_88 => l_array_source_88(Idx)
158606  , p_source_91 => l_array_source_91(Idx)
158607  , p_source_92 => l_array_source_92(Idx)
158608  , p_source_93 => l_array_source_93(Idx)
158609  , p_source_94 => l_array_source_94(Idx)
158610  , p_source_95 => l_array_source_95(Idx)
158611  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
158612  , p_source_98 => l_array_source_98(Idx)
158613  , p_source_98_meaning => l_array_source_98_meaning(Idx)
158614  , p_source_99 => l_array_source_99(Idx)
158615  , p_source_104 => l_array_source_104(Idx)
158619  , p_source_115 => l_array_source_115(Idx)
158616  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158617  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
158618  , p_source_112 => l_array_source_112(Idx)
158620  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158621  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158622  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158623  , p_source_124 => l_array_source_124(Idx)
158624  , p_source_143 => l_array_source_143(Idx)
158625  , p_source_144 => l_array_source_144(Idx)
158626  , p_source_145 => l_array_source_145(Idx)
158627  );
158628 If(l_balance_type_code = 'A') THEN
158629   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158630 END IF;
158631 
158632 --
158633 
158634 
158635 --
158636 AcctLineType_113 (
158637  p_application_id  => p_application_id
158638  ,p_event_id     => l_event_id
158639  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158640  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158641  ,p_actual_flag => l_actual_flag
158642  ,p_balance_type_code => l_balance_type_code
158643  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158644  
158645  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
158646  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
158647  , p_source_30 => l_array_source_30(Idx)
158648  , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
158649  , p_source_53 => l_array_source_53(Idx)
158650  , p_source_55 => l_array_source_55(Idx)
158651  , p_source_67 => l_array_source_67(Idx)
158652  , p_source_80 => l_array_source_80(Idx)
158653  , p_source_80_meaning => l_array_source_80_meaning(Idx)
158654  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
158655  , p_source_86 => l_array_source_86(Idx)
158656  , p_source_87 => l_array_source_87(Idx)
158657  , p_source_88 => l_array_source_88(Idx)
158658  , p_source_91 => l_array_source_91(Idx)
158659  , p_source_92 => l_array_source_92(Idx)
158660  , p_source_93 => l_array_source_93(Idx)
158661  , p_source_94 => l_array_source_94(Idx)
158662  , p_source_95 => l_array_source_95(Idx)
158663  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
158664  , p_source_98 => l_array_source_98(Idx)
158665  , p_source_98_meaning => l_array_source_98_meaning(Idx)
158666  , p_source_99 => l_array_source_99(Idx)
158667  , p_source_104 => l_array_source_104(Idx)
158668  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158669  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
158670  , p_source_112 => l_array_source_112(Idx)
158671  , p_source_116 => l_array_source_116(Idx)
158672  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158673  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158674  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158675  , p_source_124 => l_array_source_124(Idx)
158676  , p_source_143 => l_array_source_143(Idx)
158677  , p_source_144 => l_array_source_144(Idx)
158678  , p_source_145 => l_array_source_145(Idx)
158679  );
158680 If(l_balance_type_code = 'A') THEN
158681   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158682 END IF;
158683 
158684 --
158685 
158686 
158687 --
158688 AcctLineType_120 (
158689  p_application_id  => p_application_id
158690  ,p_event_id     => l_event_id
158691  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158692  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158693  ,p_actual_flag => l_actual_flag
158694  ,p_balance_type_code => l_balance_type_code
158695  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158696  
158697  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158698  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
158699  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
158700  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
158701  , p_source_25 => g_array_event(l_event_id).array_value_char('source_25')
158702  , p_source_25_meaning => g_array_event(l_event_id).array_value_char('source_25_meaning')
158703  , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
158704  , p_source_27 => g_array_event(l_event_id).array_value_num('source_27')
158705  , p_source_30 => l_array_source_30(Idx)
158706  , p_source_53 => l_array_source_53(Idx)
158707  , p_source_55 => l_array_source_55(Idx)
158708  , p_source_80 => l_array_source_80(Idx)
158709  , p_source_80_meaning => l_array_source_80_meaning(Idx)
158710  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
158711  , p_source_86 => l_array_source_86(Idx)
158712  , p_source_87 => l_array_source_87(Idx)
158713  , p_source_88 => l_array_source_88(Idx)
158714  , p_source_91 => l_array_source_91(Idx)
158715  , p_source_92 => l_array_source_92(Idx)
158716  , p_source_93 => l_array_source_93(Idx)
158717  , p_source_94 => l_array_source_94(Idx)
158718  , p_source_95 => l_array_source_95(Idx)
158719  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
158720  , p_source_98 => l_array_source_98(Idx)
158721  , p_source_98_meaning => l_array_source_98_meaning(Idx)
158722  , p_source_99 => l_array_source_99(Idx)
158723  , p_source_104 => l_array_source_104(Idx)
158724  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158725  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
158726  , p_source_112 => l_array_source_112(Idx)
158727  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
158728  , p_source_115 => l_array_source_115(Idx)
158729  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
158730  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
158731  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
158732  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158736   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158733  , p_source_124 => l_array_source_124(Idx)
158734  );
158735 If(l_balance_type_code = 'A') THEN
158737 END IF;
158738 
158739 --
158740 
158741 
158742 --
158743 AcctLineType_121 (
158744  p_application_id  => p_application_id
158745  ,p_event_id     => l_event_id
158746  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158747  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158748  ,p_actual_flag => l_actual_flag
158749  ,p_balance_type_code => l_balance_type_code
158750  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158751  
158752  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158753  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
158754  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
158755  , p_source_24 => g_array_event(l_event_id).array_value_num('source_24')
158756  , p_source_25 => g_array_event(l_event_id).array_value_char('source_25')
158757  , p_source_25_meaning => g_array_event(l_event_id).array_value_char('source_25_meaning')
158758  , p_source_26 => g_array_event(l_event_id).array_value_num('source_26')
158759  , p_source_27 => g_array_event(l_event_id).array_value_num('source_27')
158760  , p_source_30 => l_array_source_30(Idx)
158761  , p_source_53 => l_array_source_53(Idx)
158762  , p_source_55 => l_array_source_55(Idx)
158763  , p_source_80 => l_array_source_80(Idx)
158764  , p_source_80_meaning => l_array_source_80_meaning(Idx)
158765  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
158766  , p_source_86 => l_array_source_86(Idx)
158767  , p_source_87 => l_array_source_87(Idx)
158768  , p_source_88 => l_array_source_88(Idx)
158769  , p_source_91 => l_array_source_91(Idx)
158770  , p_source_92 => l_array_source_92(Idx)
158771  , p_source_93 => l_array_source_93(Idx)
158772  , p_source_94 => l_array_source_94(Idx)
158773  , p_source_95 => l_array_source_95(Idx)
158774  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
158775  , p_source_98 => l_array_source_98(Idx)
158776  , p_source_98_meaning => l_array_source_98_meaning(Idx)
158777  , p_source_99 => l_array_source_99(Idx)
158778  , p_source_104 => l_array_source_104(Idx)
158779  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158780  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
158781  , p_source_112 => l_array_source_112(Idx)
158782  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
158783  , p_source_116 => l_array_source_116(Idx)
158784  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
158785  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
158786  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
158787  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158788  , p_source_124 => l_array_source_124(Idx)
158789  );
158790 If(l_balance_type_code = 'A') THEN
158791   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158792 END IF;
158793 
158794 --
158795 
158796 
158797 --
158798 AcctLineType_126 (
158799  p_application_id  => p_application_id
158800  ,p_event_id     => l_event_id
158801  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158802  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158803  ,p_actual_flag => l_actual_flag
158804  ,p_balance_type_code => l_balance_type_code
158805  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158806  
158807  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
158808  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
158809  , p_source_30 => l_array_source_30(Idx)
158810  , p_source_36 => g_array_event(l_event_id).array_value_num('source_36')
158811  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
158812  , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
158813  , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
158814  , p_source_53 => l_array_source_53(Idx)
158815  , p_source_55 => l_array_source_55(Idx)
158816  , p_source_80 => l_array_source_80(Idx)
158817  , p_source_80_meaning => l_array_source_80_meaning(Idx)
158818  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
158819  , p_source_86 => l_array_source_86(Idx)
158820  , p_source_87 => l_array_source_87(Idx)
158821  , p_source_88 => l_array_source_88(Idx)
158822  , p_source_91 => l_array_source_91(Idx)
158823  , p_source_92 => l_array_source_92(Idx)
158824  , p_source_93 => l_array_source_93(Idx)
158825  , p_source_94 => l_array_source_94(Idx)
158826  , p_source_95 => l_array_source_95(Idx)
158827  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
158828  , p_source_98 => l_array_source_98(Idx)
158829  , p_source_98_meaning => l_array_source_98_meaning(Idx)
158830  , p_source_104 => l_array_source_104(Idx)
158831  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158832  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
158833  , p_source_112 => l_array_source_112(Idx)
158834  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158835  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158836  , p_source_124 => l_array_source_124(Idx)
158837  , p_source_153 => l_array_source_153(Idx)
158838  );
158839 If(l_balance_type_code = 'A') THEN
158840   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158841 END IF;
158842 
158843 --
158844 
158845 
158846 --
158847 AcctLineType_131 (
158848  p_application_id  => p_application_id
158849  ,p_event_id     => l_event_id
158850  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158851  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158852  ,p_actual_flag => l_actual_flag
158853  ,p_balance_type_code => l_balance_type_code
158854  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158855  
158856  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158860  , p_source_36 => g_array_event(l_event_id).array_value_num('source_36')
158857  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
158858  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
158859  , p_source_30 => l_array_source_30(Idx)
158861  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
158862  , p_source_53 => l_array_source_53(Idx)
158863  , p_source_55 => l_array_source_55(Idx)
158864  , p_source_80 => l_array_source_80(Idx)
158865  , p_source_80_meaning => l_array_source_80_meaning(Idx)
158866  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
158867  , p_source_86 => l_array_source_86(Idx)
158868  , p_source_87 => l_array_source_87(Idx)
158869  , p_source_88 => l_array_source_88(Idx)
158870  , p_source_91 => l_array_source_91(Idx)
158871  , p_source_92 => l_array_source_92(Idx)
158872  , p_source_93 => l_array_source_93(Idx)
158873  , p_source_94 => l_array_source_94(Idx)
158874  , p_source_95 => l_array_source_95(Idx)
158875  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
158876  , p_source_98 => l_array_source_98(Idx)
158877  , p_source_98_meaning => l_array_source_98_meaning(Idx)
158878  , p_source_99 => l_array_source_99(Idx)
158879  , p_source_104 => l_array_source_104(Idx)
158880  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158881  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
158882  , p_source_112 => l_array_source_112(Idx)
158883  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
158884  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
158885  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
158886  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158887  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158888  , p_source_124 => l_array_source_124(Idx)
158889  , p_source_153 => l_array_source_153(Idx)
158890  , p_source_158 => l_array_source_158(Idx)
158891  );
158892 If(l_balance_type_code = 'A') THEN
158893   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158894 END IF;
158895 
158896 --
158897 
158898 
158899 --
158900 AcctLineType_137 (
158901  p_application_id  => p_application_id
158902  ,p_event_id     => l_event_id
158903  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158904  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158905  ,p_actual_flag => l_actual_flag
158906  ,p_balance_type_code => l_balance_type_code
158907  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158908  
158909  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158910  , p_source_28 => g_array_event(l_event_id).array_value_num('source_28')
158911  , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
158912  , p_source_30 => l_array_source_30(Idx)
158913  , p_source_33 => l_array_source_33(Idx)
158914  , p_source_33_meaning => l_array_source_33_meaning(Idx)
158915  , p_source_53 => l_array_source_53(Idx)
158916  , p_source_55 => l_array_source_55(Idx)
158917  , p_source_80 => l_array_source_80(Idx)
158918  , p_source_80_meaning => l_array_source_80_meaning(Idx)
158919  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
158920  , p_source_86 => l_array_source_86(Idx)
158921  , p_source_87 => l_array_source_87(Idx)
158922  , p_source_88 => l_array_source_88(Idx)
158923  , p_source_91 => l_array_source_91(Idx)
158924  , p_source_92 => l_array_source_92(Idx)
158925  , p_source_93 => l_array_source_93(Idx)
158926  , p_source_94 => l_array_source_94(Idx)
158927  , p_source_95 => l_array_source_95(Idx)
158928  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
158929  , p_source_98 => l_array_source_98(Idx)
158930  , p_source_98_meaning => l_array_source_98_meaning(Idx)
158931  , p_source_99 => l_array_source_99(Idx)
158932  , p_source_104 => l_array_source_104(Idx)
158933  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
158934  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
158935  , p_source_112 => l_array_source_112(Idx)
158936  , p_source_115 => l_array_source_115(Idx)
158937  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
158938  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
158939  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
158940  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158941  , p_source_124 => l_array_source_124(Idx)
158942  , p_source_163 => l_array_source_163(Idx)
158943  , p_source_163_meaning => l_array_source_163_meaning(Idx)
158944  );
158945 If(l_balance_type_code = 'A') THEN
158946   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158947 END IF;
158948 
158949 --
158950 
158951 
158952 --
158953 AcctLineType_146 (
158954  p_application_id  => p_application_id
158955  ,p_event_id     => l_event_id
158956  ,p_calculate_acctd_flag => l_calculate_acctd_flag
158957  ,p_calculate_g_l_flag => l_calculate_g_l_flag
158958  ,p_actual_flag => l_actual_flag
158959  ,p_balance_type_code => l_balance_type_code
158960  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
158961  
158962  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
158963  , p_source_53 => l_array_source_53(Idx)
158964  , p_source_55 => l_array_source_55(Idx)
158965  , p_source_80 => l_array_source_80(Idx)
158966  , p_source_80_meaning => l_array_source_80_meaning(Idx)
158967  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
158968  , p_source_86 => l_array_source_86(Idx)
158969  , p_source_87 => l_array_source_87(Idx)
158970  , p_source_88 => l_array_source_88(Idx)
158971  , p_source_91 => l_array_source_91(Idx)
158972  , p_source_92 => l_array_source_92(Idx)
158973  , p_source_93 => l_array_source_93(Idx)
158974  , p_source_94 => l_array_source_94(Idx)
158975  , p_source_95 => l_array_source_95(Idx)
158976  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
158980  , p_source_104 => l_array_source_104(Idx)
158977  , p_source_98 => l_array_source_98(Idx)
158978  , p_source_98_meaning => l_array_source_98_meaning(Idx)
158979  , p_source_99 => l_array_source_99(Idx)
158981  , p_source_112 => l_array_source_112(Idx)
158982  , p_source_116 => l_array_source_116(Idx)
158983  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
158984  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
158985  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
158986  , p_source_124 => l_array_source_124(Idx)
158987  , p_source_163 => l_array_source_163(Idx)
158988  , p_source_163_meaning => l_array_source_163_meaning(Idx)
158989  , p_source_164 => l_array_source_164(Idx)
158990  , p_source_164_meaning => l_array_source_164_meaning(Idx)
158991  );
158992 If(l_balance_type_code = 'A') THEN
158993   l_actual_gain_loss_ref := l_gain_or_loss_ref;
158994 END IF;
158995 
158996 --
158997 
158998 
158999 --
159000 AcctLineType_157 (
159001  p_application_id  => p_application_id
159002  ,p_event_id     => l_event_id
159003  ,p_calculate_acctd_flag => l_calculate_acctd_flag
159004  ,p_calculate_g_l_flag => l_calculate_g_l_flag
159005  ,p_actual_flag => l_actual_flag
159006  ,p_balance_type_code => l_balance_type_code
159007  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
159008  
159009  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
159010  , p_source_53 => l_array_source_53(Idx)
159011  , p_source_55 => l_array_source_55(Idx)
159012  , p_source_80 => l_array_source_80(Idx)
159013  , p_source_80_meaning => l_array_source_80_meaning(Idx)
159014  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
159015  , p_source_86 => l_array_source_86(Idx)
159016  , p_source_87 => l_array_source_87(Idx)
159017  , p_source_88 => l_array_source_88(Idx)
159018  , p_source_91 => l_array_source_91(Idx)
159019  , p_source_92 => l_array_source_92(Idx)
159020  , p_source_93 => l_array_source_93(Idx)
159021  , p_source_94 => l_array_source_94(Idx)
159022  , p_source_95 => l_array_source_95(Idx)
159023  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
159024  , p_source_98 => l_array_source_98(Idx)
159025  , p_source_98_meaning => l_array_source_98_meaning(Idx)
159026  , p_source_99 => l_array_source_99(Idx)
159027  , p_source_104 => l_array_source_104(Idx)
159028  , p_source_112 => l_array_source_112(Idx)
159029  , p_source_116 => l_array_source_116(Idx)
159030  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
159031  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
159032  , p_source_124 => l_array_source_124(Idx)
159033  , p_source_163 => l_array_source_163(Idx)
159034  , p_source_163_meaning => l_array_source_163_meaning(Idx)
159035  );
159036 If(l_balance_type_code = 'A') THEN
159037   l_actual_gain_loss_ref := l_gain_or_loss_ref;
159038 END IF;
159039 
159040 --
159041 
159042 
159043 --
159044 AcctLineType_165 (
159045  p_application_id  => p_application_id
159046  ,p_event_id     => l_event_id
159047  ,p_calculate_acctd_flag => l_calculate_acctd_flag
159048  ,p_calculate_g_l_flag => l_calculate_g_l_flag
159049  ,p_actual_flag => l_actual_flag
159050  ,p_balance_type_code => l_balance_type_code
159051  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
159052  
159053  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
159054  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
159055  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
159056  , p_source_30 => l_array_source_30(Idx)
159057  , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
159058  , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
159059  , p_source_53 => l_array_source_53(Idx)
159060  , p_source_55 => l_array_source_55(Idx)
159061  , p_source_80 => l_array_source_80(Idx)
159062  , p_source_80_meaning => l_array_source_80_meaning(Idx)
159063  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
159064  , p_source_86 => l_array_source_86(Idx)
159065  , p_source_87 => l_array_source_87(Idx)
159066  , p_source_88 => l_array_source_88(Idx)
159067  , p_source_91 => l_array_source_91(Idx)
159068  , p_source_92 => l_array_source_92(Idx)
159069  , p_source_93 => l_array_source_93(Idx)
159070  , p_source_94 => l_array_source_94(Idx)
159071  , p_source_95 => l_array_source_95(Idx)
159072  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
159073  , p_source_98 => l_array_source_98(Idx)
159074  , p_source_98_meaning => l_array_source_98_meaning(Idx)
159075  , p_source_99 => l_array_source_99(Idx)
159076  , p_source_104 => l_array_source_104(Idx)
159077  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
159078  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
159079  , p_source_112 => l_array_source_112(Idx)
159080  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
159081  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
159082  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
159083  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
159084  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
159085  , p_source_124 => l_array_source_124(Idx)
159086  , p_source_153 => l_array_source_153(Idx)
159087  , p_source_158 => l_array_source_158(Idx)
159088  );
159089 If(l_balance_type_code = 'A') THEN
159090   l_actual_gain_loss_ref := l_gain_or_loss_ref;
159091 END IF;
159092 
159093 --
159094 
159095 
159096 --
159097 AcctLineType_183 (
159098  p_application_id  => p_application_id
159099  ,p_event_id     => l_event_id
159100  ,p_calculate_acctd_flag => l_calculate_acctd_flag
159101  ,p_calculate_g_l_flag => l_calculate_g_l_flag
159102  ,p_actual_flag => l_actual_flag
159103  ,p_balance_type_code => l_balance_type_code
159107  , p_source_48 => g_array_event(l_event_id).array_value_num('source_48')
159104  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
159105  
159106  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
159108  , p_source_53 => l_array_source_53(Idx)
159109  , p_source_55 => l_array_source_55(Idx)
159110  , p_source_80 => l_array_source_80(Idx)
159111  , p_source_80_meaning => l_array_source_80_meaning(Idx)
159112  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
159113  , p_source_86 => l_array_source_86(Idx)
159114  , p_source_87 => l_array_source_87(Idx)
159115  , p_source_88 => l_array_source_88(Idx)
159116  , p_source_91 => l_array_source_91(Idx)
159117  , p_source_92 => l_array_source_92(Idx)
159118  , p_source_93 => l_array_source_93(Idx)
159119  , p_source_94 => l_array_source_94(Idx)
159120  , p_source_95 => l_array_source_95(Idx)
159121  , p_source_99 => l_array_source_99(Idx)
159122  , p_source_104 => l_array_source_104(Idx)
159123  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
159124  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
159125  , p_source_112 => l_array_source_112(Idx)
159126  , p_source_115 => l_array_source_115(Idx)
159127  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
159128  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
159129  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
159130  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
159131  , p_source_124 => l_array_source_124(Idx)
159132  );
159133 If(l_balance_type_code = 'A') THEN
159134   l_actual_gain_loss_ref := l_gain_or_loss_ref;
159135 END IF;
159136 
159137 --
159138 
159139 
159140 --
159141 AcctLineType_225 (
159142  p_application_id  => p_application_id
159143  ,p_event_id     => l_event_id
159144  ,p_calculate_acctd_flag => l_calculate_acctd_flag
159145  ,p_calculate_g_l_flag => l_calculate_g_l_flag
159146  ,p_actual_flag => l_actual_flag
159147  ,p_balance_type_code => l_balance_type_code
159148  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
159149  
159150  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
159151  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
159152  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
159153  , p_source_30 => l_array_source_30(Idx)
159154  , p_source_43 => l_array_source_43(Idx)
159155  , p_source_53 => l_array_source_53(Idx)
159156  , p_source_55 => l_array_source_55(Idx)
159157  , p_source_80 => l_array_source_80(Idx)
159158  , p_source_80_meaning => l_array_source_80_meaning(Idx)
159159  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
159160  , p_source_86 => l_array_source_86(Idx)
159161  , p_source_87 => l_array_source_87(Idx)
159162  , p_source_88 => l_array_source_88(Idx)
159163  , p_source_91 => l_array_source_91(Idx)
159164  , p_source_92 => l_array_source_92(Idx)
159165  , p_source_93 => l_array_source_93(Idx)
159166  , p_source_94 => l_array_source_94(Idx)
159167  , p_source_95 => l_array_source_95(Idx)
159168  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
159169  , p_source_98 => l_array_source_98(Idx)
159170  , p_source_98_meaning => l_array_source_98_meaning(Idx)
159171  , p_source_99 => l_array_source_99(Idx)
159172  , p_source_104 => l_array_source_104(Idx)
159173  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
159174  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
159175  , p_source_112 => l_array_source_112(Idx)
159176  , p_source_116 => l_array_source_116(Idx)
159177  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
159178  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
159179  , p_source_123 => g_array_event(l_event_id).array_value_char('source_123')
159180  , p_source_124 => l_array_source_124(Idx)
159181  , p_source_143 => l_array_source_143(Idx)
159182  , p_source_144 => l_array_source_144(Idx)
159183  , p_source_145 => l_array_source_145(Idx)
159184  , p_source_164 => l_array_source_164(Idx)
159185  , p_source_164_meaning => l_array_source_164_meaning(Idx)
159186  );
159187 If(l_balance_type_code = 'A') THEN
159188   l_actual_gain_loss_ref := l_gain_or_loss_ref;
159189 END IF;
159190 
159191 --
159192 
159193       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
159194       -- or secondary ledger that has different currency with primary
159195       -- or alc that is calculated by sla
159196       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
159197             (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'))
159198 
159199 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
159200 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
159201           AND (l_actual_flag = 'A')) THEN
159202         XLA_AE_LINES_PKG.CreateGainOrLossLines(
159203           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
159204          ,p_application_id   => p_application_id
159205          ,p_amb_context_code => 'DEFAULT'
159206          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
159207          ,p_event_class_code => C_EVENT_CLASS_CODE
159208          ,p_event_type_code  => C_EVENT_TYPE_CODE
159209          
159210          ,p_gain_ccid        => -1
159211          ,p_loss_ccid        => -1
159212 
159213          ,p_actual_flag      => l_actual_flag
159214          ,p_enc_flag         => null
159215          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
159216          ,p_enc_g_l_ref      => null
159217          );
159218       END IF;
159219    END IF;
159220 END IF;
159221 
159222    ELSE
159223       --
159227          trace
159224       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
159225       --
159226       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
159228             (p_msg      => 'Trancaction revesal option is Y'
159229             ,p_level    => C_LEVEL_STATEMENT
159230             ,p_module   => l_log_module);
159231       END IF;
159232    END IF;
159233 
159234 END LOOP;
159235 l_result := XLA_AE_LINES_PKG.InsertLines ;
159236 end loop;
159237 close line_cur;
159238 
159239 
159240 --
159241 -- insert headers into xla_ae_headers_gt table
159242 --
159243 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
159244 
159245 -- insert into errors table here.
159246 
159247 END LOOP;
159248 
159249 --
159250 -- 4865292
159251 --
159252 -- Compare g_hdr_extract_count with event count in
159253 -- CreateHeadersAndLines.
159254 --
159255 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
159256 
159257 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
159258    trace (p_msg     => '# rows extracted from header extract objects '
159259                     || ' (running total): '
159260                     || g_hdr_extract_count
159261          ,p_level   => C_LEVEL_STATEMENT
159262          ,p_module  => l_log_module);
159263 END IF;
159264 
159265 CLOSE header_cur;
159266 --
159267 
159268 --
159269 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
159270    trace
159271       (p_msg      => 'END of EventClass_234'
159272       ,p_level    => C_LEVEL_PROCEDURE
159273       ,p_module   => l_log_module);
159274 END IF;
159275 --
159276 RETURN l_result;
159277 EXCEPTION
159278 WHEN xla_exceptions_pkg.application_exception THEN
159279    
159280 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
159281 
159282    
159283 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
159284 
159285    RAISE;
159286 
159287 WHEN NO_DATA_FOUND THEN
159288 
159289 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
159290 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
159291 
159292 FOR header_record IN header_cur
159293 LOOP
159294     l_array_header_events(header_record.event_id) := header_record.event_id;
159295 END LOOP;
159296 
159297 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
159298 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
159299 
159300 fnd_file.put_line(fnd_file.LOG, '                    ');
159301 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
159302 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
159303 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
159304 
159305 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
159306 LOOP
159307 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
159308 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
159309         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
159310 	END IF;
159311 END LOOP;
159312 
159313 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
159314 fnd_file.put_line(fnd_file.LOG, '                    ');
159315 
159316 
159317 xla_exceptions_pkg.raise_message
159318       (p_location => 'XLA_00200_AAD_S_000002_PKG.EventClass_234');
159319 
159320 
159321 WHEN OTHERS THEN
159322    xla_exceptions_pkg.raise_message
159323       (p_location => 'XLA_00200_AAD_S_000002_PKG.EventClass_234');
159324 END EventClass_234;
159325 --
159326 
159327 ---------------------------------------
159328 --
159329 -- PRIVATE PROCEDURE
159330 --         insert_sources_235
159331 --
159332 ----------------------------------------
159333 --
159334 PROCEDURE insert_sources_235(
159335                                 p_target_ledger_id       IN NUMBER
159336                               , p_language               IN VARCHAR2
159337                               , p_sla_ledger_id          IN NUMBER
159338                               , p_pad_start_date         IN DATE
159339                               , p_pad_end_date           IN DATE
159340                          )
159341 IS
159342 
159343 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENT APPLICATIONS_ALL';
159344 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'PREPAYMENT APPLICATIONS';
159345 p_apps_owner                   VARCHAR2(30);
159346 l_log_module                   VARCHAR2(240);
159347 BEGIN
159348 IF g_log_enabled THEN
159349       l_log_module := C_DEFAULT_MODULE||'.insert_sources_235';
159350 END IF;
159351 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
159352 
159353       trace
159354          (p_msg      => 'BEGIN of insert_sources_235'
159355          ,p_level    => C_LEVEL_PROCEDURE
159356          ,p_module   => l_log_module);
159357 
159358 END IF;
159359 
159360 -- select APPS owner
159361 SELECT oracle_username
159362   INTO p_apps_owner
159363   FROM fnd_oracle_userid
159364  WHERE read_only_flag = 'U'
159365 ;
159366 
159367 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
159368       trace
159369          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
159370                         ' - p_language = '||p_language||
159371                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
159372                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
159373                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
159374                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
159375          ,p_level    => C_LEVEL_STATEMENT
159376          ,p_module   => l_log_module);
159377 END IF;
159378 
159379 
159380 --
159384       , ledger_id
159381 INSERT INTO xla_diag_sources --hdr2
159382 (
159383         event_id
159385       , sla_ledger_id
159386       , description_language
159387       , object_name
159388       , object_type_code
159389       , line_number
159390       , source_application_id
159391       , source_type_code
159392       , source_code
159393       , source_value
159394       , source_meaning
159395       , created_by
159396       , creation_date
159397       , last_update_date
159398       , last_updated_by
159399       , last_update_login
159400       , program_update_date
159401       , program_application_id
159402       , program_id
159403       , request_id
159404 )
159405 SELECT
159406         event_id
159407       , p_target_ledger_id
159408       , p_sla_ledger_id
159409       , p_language
159410       , object_name
159411       , object_type_code
159412       , line_number
159413       , source_application_id
159414       , source_type_code
159415       , source_code
159416       , SUBSTR(source_value ,1,1996)
159417       , SUBSTR(source_meaning ,1,200)
159418       , xla_environment_pkg.g_Usr_Id
159419       , TRUNC(SYSDATE)
159420       , TRUNC(SYSDATE)
159421       , xla_environment_pkg.g_Usr_Id
159422       , xla_environment_pkg.g_Login_Id
159423       , TRUNC(SYSDATE)
159424       , xla_environment_pkg.g_Prog_Appl_Id
159425       , xla_environment_pkg.g_Prog_Id
159426       , xla_environment_pkg.g_Req_Id
159427   FROM (
159428        SELECT xet.event_id                  event_id
159429             , 0                          line_number
159430             , CASE r
159431                WHEN 1 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
159432                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
159433                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
159434                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
159435                 WHEN 5 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
159436                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
159437                 WHEN 7 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
159438                 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
159439                 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
159440                 WHEN 10 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
159441                 WHEN 11 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
159442                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
159443                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
159444                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
159445                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
159446                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
159447                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
159448                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
159449                 WHEN 19 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
159450                 WHEN 20 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
159451                 
159452                ELSE null
159453               END                           object_name
159454             , CASE r
159455                 WHEN 1 THEN 'HEADER' 
159456                 WHEN 2 THEN 'HEADER' 
159457                 WHEN 3 THEN 'HEADER' 
159458                 WHEN 4 THEN 'HEADER' 
159459                 WHEN 5 THEN 'HEADER' 
159460                 WHEN 6 THEN 'HEADER' 
159461                 WHEN 7 THEN 'HEADER' 
159462                 WHEN 8 THEN 'HEADER' 
159463                 WHEN 9 THEN 'HEADER' 
159464                 WHEN 10 THEN 'HEADER' 
159465                 WHEN 11 THEN 'HEADER' 
159466                 WHEN 12 THEN 'HEADER' 
159467                 WHEN 13 THEN 'HEADER' 
159468                 WHEN 14 THEN 'HEADER' 
159469                 WHEN 15 THEN 'HEADER' 
159470                 WHEN 16 THEN 'HEADER' 
159471                 WHEN 17 THEN 'HEADER' 
159472                 WHEN 18 THEN 'HEADER' 
159473                 WHEN 19 THEN 'HEADER' 
159474                 WHEN 20 THEN 'HEADER' 
159475                 
159476                 ELSE null
159477               END                           object_type_code
159478             , CASE r
159479                 WHEN 1 THEN '200' 
159480                 WHEN 2 THEN '200' 
159481                 WHEN 3 THEN '200' 
159482                 WHEN 4 THEN '200' 
159483                 WHEN 5 THEN '200' 
159484                 WHEN 6 THEN '200' 
159485                 WHEN 7 THEN '200' 
159486                 WHEN 8 THEN '200' 
159487                 WHEN 9 THEN '200' 
159488                 WHEN 10 THEN '200' 
159489                 WHEN 11 THEN '200' 
159490                 WHEN 12 THEN '200' 
159491                 WHEN 13 THEN '200' 
159492                 WHEN 14 THEN '200' 
159493                 WHEN 15 THEN '200' 
159494                 WHEN 16 THEN '200' 
159495                 WHEN 17 THEN '200' 
159496                 WHEN 18 THEN '200' 
159497                 WHEN 19 THEN '200' 
159498                 WHEN 20 THEN '200' 
159499                 
159500                 ELSE null
159501               END                           source_application_id
159502             , 'S'             source_type_code
159503             , CASE r
159504                 WHEN 1 THEN 'INV_TRANSACTION_NUMBER' 
159505                 WHEN 2 THEN 'AI_INVOICE_DATE' 
159506                 WHEN 3 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
159507                 WHEN 4 THEN 'DOC_SEQUENCE_NAME' 
159508                 WHEN 5 THEN 'INV_DOC_SEQUENCE_VALUE' 
159509                 WHEN 6 THEN 'AI_DESCRIPTION' 
159510                 WHEN 7 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
159511                 WHEN 8 THEN 'ASP_GAIN_CCID' 
159512                 WHEN 9 THEN 'ASP_LOSS_CCID' 
159513                 WHEN 10 THEN 'ASP_PREPAY_TAX_DIFF_CCID' 
159514                 WHEN 11 THEN 'ASP_ROUNDING_ERROR_CCID' 
159515                 WHEN 12 THEN 'AI_INVOICE_ID' 
159516                 WHEN 13 THEN 'AI_INVOICE_CURRENCY_CODE' 
159517                 WHEN 14 THEN 'AI_VENDOR_ID' 
159521                 WHEN 18 THEN 'INV_EXCHANGE_RATE' 
159518                 WHEN 15 THEN 'AI_VENDOR_SITE_ID' 
159519                 WHEN 16 THEN 'THIRD_PARTY_TYPE' 
159520                 WHEN 17 THEN 'INV_EXCHANGE_DATE' 
159522                 WHEN 19 THEN 'INV_EXCHANGE_RATE_TYPE' 
159523                 WHEN 20 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
159524                 
159525                 ELSE null
159526               END                           source_code
159527             , CASE r
159528                 WHEN 1 THEN TO_CHAR(h1.INV_TRANSACTION_NUMBER)
159529                 WHEN 2 THEN TO_CHAR(h1.AI_INVOICE_DATE)
159530                 WHEN 3 THEN TO_CHAR(h1.INV_DOC_SEQUENCE_CATEGORY)
159531                 WHEN 4 THEN TO_CHAR(h1.DOC_SEQUENCE_NAME)
159532                 WHEN 5 THEN TO_CHAR(h1.INV_DOC_SEQUENCE_VALUE)
159533                 WHEN 6 THEN TO_CHAR(h1.AI_DESCRIPTION)
159534                 WHEN 7 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
159535                 WHEN 8 THEN TO_CHAR(h4.ASP_GAIN_CCID)
159536                 WHEN 9 THEN TO_CHAR(h4.ASP_LOSS_CCID)
159537                 WHEN 10 THEN TO_CHAR(h4.ASP_PREPAY_TAX_DIFF_CCID)
159538                 WHEN 11 THEN TO_CHAR(h4.ASP_ROUNDING_ERROR_CCID)
159539                 WHEN 12 THEN TO_CHAR(h1.AI_INVOICE_ID)
159540                 WHEN 13 THEN TO_CHAR(h1.AI_INVOICE_CURRENCY_CODE)
159541                 WHEN 14 THEN TO_CHAR(h1.AI_VENDOR_ID)
159542                 WHEN 15 THEN TO_CHAR(h1.AI_VENDOR_SITE_ID)
159543                 WHEN 16 THEN TO_CHAR(h1.THIRD_PARTY_TYPE)
159544                 WHEN 17 THEN TO_CHAR(h1.INV_EXCHANGE_DATE)
159545                 WHEN 18 THEN TO_CHAR(h1.INV_EXCHANGE_RATE)
159546                 WHEN 19 THEN TO_CHAR(h1.INV_EXCHANGE_RATE_TYPE)
159547                 WHEN 20 THEN TO_CHAR(h1.INV_DOC_SEQUENCE_IDENTIFIER)
159548                 
159549                 ELSE null
159550               END                           source_value
159551             , CASE r
159552                 WHEN 7 THEN fvl15.meaning
159553                 
159554                 ELSE null
159555               END               source_meaning
159556          FROM xla_events_gt     xet  
159557       , AP_INVOICE_EXTRACT_HEADER_V  h1
159558       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
159559   , fnd_lookup_values    fvl15
159560              ,(select rownum r from all_objects where rownum <= 20 and owner = p_apps_owner)
159561          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
159562            AND xet.event_class_code = C_EVENT_CLASS_CODE
159563               AND h1.event_id = xet.event_id
159564  AND h4.asp_org_id = h1.ai_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
159565   AND fvl15.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
159566   AND fvl15.view_application_id(+) = 200
159567   AND fvl15.language(+)            = USERENV('LANG')
159568   
159569 )
159570 ;
159571 --
159572 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
159573 
159574       trace
159575          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
159576          ,p_level    => C_LEVEL_STATEMENT
159577          ,p_module   => l_log_module);
159578 
159579 END IF;
159580 --
159581 
159582 
159583 
159584 --
159585 INSERT INTO xla_diag_sources  --line2
159586 (
159587         event_id
159588       , ledger_id
159589       , sla_ledger_id
159590       , description_language
159591       , object_name
159592       , object_type_code
159593       , line_number
159594       , source_application_id
159595       , source_type_code
159596       , source_code
159597       , source_value
159598       , source_meaning
159599       , created_by
159600       , creation_date
159601       , last_update_date
159602       , last_updated_by
159603       , last_update_login
159604       , program_update_date
159605       , program_application_id
159606       , program_id
159607       , request_id
159608 )
159609 SELECT  event_id
159610       , p_target_ledger_id
159611       , p_sla_ledger_id
159612       , p_language
159613       , object_name
159614       , object_type_code
159615       , line_number
159616       , source_application_id
159617       , source_type_code
159618       , source_code
159619       , SUBSTR(source_value,1,1996)
159620       , SUBSTR(source_meaning ,1,200)
159621       , xla_environment_pkg.g_Usr_Id
159622       , TRUNC(SYSDATE)
159623       , TRUNC(SYSDATE)
159624       , xla_environment_pkg.g_Usr_Id
159625       , xla_environment_pkg.g_Login_Id
159626       , TRUNC(SYSDATE)
159627       , xla_environment_pkg.g_Prog_Appl_Id
159628       , xla_environment_pkg.g_Prog_Id
159629       , xla_environment_pkg.g_Req_Id
159630   FROM (
159631        SELECT xet.event_id                  event_id
159632             , l2.line_number                 line_number
159633             , CASE r
159634                WHEN 1 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159635                 WHEN 2 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159636                 WHEN 3 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159637                 WHEN 4 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
159638                 WHEN 5 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159639                 WHEN 6 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159640                 WHEN 7 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159641                 WHEN 8 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159642                 WHEN 9 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159643                 WHEN 10 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159644                 WHEN 11 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159645                 WHEN 12 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159646                 WHEN 13 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159647                 WHEN 14 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159648                 WHEN 15 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159649                 WHEN 16 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159650                 WHEN 17 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159654                 WHEN 21 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159651                 WHEN 18 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
159652                 WHEN 19 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
159653                 WHEN 20 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159655                 WHEN 22 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159656                 WHEN 23 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159657                 WHEN 24 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159658                 WHEN 25 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159659                 WHEN 26 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159660                 WHEN 27 THEN 'AP_PREPAY_DEF_TAX_EXTRACT_V' 
159661                 WHEN 28 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159662                 WHEN 29 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159663                 WHEN 30 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159664                 WHEN 31 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159665                 WHEN 32 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159666                 WHEN 33 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159667                 WHEN 34 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159668                 WHEN 35 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159669                 WHEN 36 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159670                 WHEN 37 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159671                 WHEN 38 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
159672                 WHEN 39 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159673                 WHEN 40 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159674                 WHEN 41 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159675                 WHEN 42 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159676                 WHEN 43 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159677                 WHEN 44 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159678                 WHEN 45 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159679                 WHEN 46 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159680                 WHEN 47 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159681                 WHEN 48 THEN 'AP_PREPAYAPP_EXTRACT_DETAILS_V' 
159682                 
159683                ELSE null
159684               END                           object_name
159685             , CASE r
159686                 WHEN 1 THEN 'LINE' 
159687                 WHEN 2 THEN 'LINE' 
159688                 WHEN 3 THEN 'LINE' 
159689                 WHEN 4 THEN 'LINE' 
159690                 WHEN 5 THEN 'LINE' 
159691                 WHEN 6 THEN 'LINE' 
159692                 WHEN 7 THEN 'LINE' 
159693                 WHEN 8 THEN 'LINE' 
159694                 WHEN 9 THEN 'LINE' 
159695                 WHEN 10 THEN 'LINE' 
159696                 WHEN 11 THEN 'LINE' 
159697                 WHEN 12 THEN 'LINE' 
159698                 WHEN 13 THEN 'LINE' 
159699                 WHEN 14 THEN 'LINE' 
159700                 WHEN 15 THEN 'LINE' 
159701                 WHEN 16 THEN 'LINE' 
159702                 WHEN 17 THEN 'LINE' 
159703                 WHEN 18 THEN 'LINE' 
159704                 WHEN 19 THEN 'LINE' 
159705                 WHEN 20 THEN 'LINE' 
159706                 WHEN 21 THEN 'LINE' 
159707                 WHEN 22 THEN 'LINE' 
159708                 WHEN 23 THEN 'LINE' 
159709                 WHEN 24 THEN 'LINE' 
159710                 WHEN 25 THEN 'LINE' 
159711                 WHEN 26 THEN 'LINE' 
159712                 WHEN 27 THEN 'LINE' 
159713                 WHEN 28 THEN 'LINE' 
159714                 WHEN 29 THEN 'LINE' 
159715                 WHEN 30 THEN 'LINE' 
159716                 WHEN 31 THEN 'LINE' 
159717                 WHEN 32 THEN 'LINE' 
159718                 WHEN 33 THEN 'LINE' 
159719                 WHEN 34 THEN 'LINE' 
159720                 WHEN 35 THEN 'LINE' 
159721                 WHEN 36 THEN 'LINE' 
159722                 WHEN 37 THEN 'LINE' 
159723                 WHEN 38 THEN 'LINE' 
159724                 WHEN 39 THEN 'LINE' 
159725                 WHEN 40 THEN 'LINE' 
159726                 WHEN 41 THEN 'LINE' 
159727                 WHEN 42 THEN 'LINE' 
159728                 WHEN 43 THEN 'LINE' 
159729                 WHEN 44 THEN 'LINE' 
159730                 WHEN 45 THEN 'LINE' 
159731                 WHEN 46 THEN 'LINE' 
159732                 WHEN 47 THEN 'LINE' 
159733                 WHEN 48 THEN 'LINE' 
159734                 
159735                 ELSE null
159736               END                           object_type_code
159737             , CASE r
159738                 WHEN 1 THEN '200' 
159739                 WHEN 2 THEN '200' 
159740                 WHEN 3 THEN '200' 
159741                 WHEN 4 THEN '200' 
159742                 WHEN 5 THEN '200' 
159743                 WHEN 6 THEN '200' 
159744                 WHEN 7 THEN '200' 
159745                 WHEN 8 THEN '200' 
159746                 WHEN 9 THEN '200' 
159747                 WHEN 10 THEN '200' 
159748                 WHEN 11 THEN '200' 
159749                 WHEN 12 THEN '200' 
159750                 WHEN 13 THEN '200' 
159751                 WHEN 14 THEN '200' 
159752                 WHEN 15 THEN '200' 
159753                 WHEN 16 THEN '200' 
159754                 WHEN 17 THEN '200' 
159755                 WHEN 18 THEN '200' 
159756                 WHEN 19 THEN '200' 
159757                 WHEN 20 THEN '200' 
159758                 WHEN 21 THEN '200' 
159759                 WHEN 22 THEN '200' 
159760                 WHEN 23 THEN '200' 
159761                 WHEN 24 THEN '200' 
159762                 WHEN 25 THEN '200' 
159763                 WHEN 26 THEN '200' 
159764                 WHEN 27 THEN '200' 
159765                 WHEN 28 THEN '200' 
159766                 WHEN 29 THEN '200' 
159767                 WHEN 30 THEN '200' 
159768                 WHEN 31 THEN '200' 
159769                 WHEN 32 THEN '200' 
159770                 WHEN 33 THEN '200' 
159771                 WHEN 34 THEN '200' 
159772                 WHEN 35 THEN '200' 
159773                 WHEN 36 THEN '200' 
159774                 WHEN 37 THEN '200' 
159778                 WHEN 41 THEN '200' 
159775                 WHEN 38 THEN '200' 
159776                 WHEN 39 THEN '200' 
159777                 WHEN 40 THEN '200' 
159779                 WHEN 42 THEN '200' 
159780                 WHEN 43 THEN '200' 
159781                 WHEN 44 THEN '200' 
159782                 WHEN 45 THEN '200' 
159783                 WHEN 46 THEN '200' 
159784                 WHEN 47 THEN '200' 
159785                 WHEN 48 THEN '200' 
159786                 
159787                 ELSE null
159788               END                           source_application_id
159789             , 'S'             source_type_code
159790             , CASE r
159791                 WHEN 1 THEN 'AID_DIST_CCID' 
159792                 WHEN 2 THEN 'CGAC_GAIN_CCID' 
159793                 WHEN 3 THEN 'CGAC_LOSS_CCID' 
159794                 WHEN 4 THEN 'TAX_ACCOUNT_CCID' 
159795                 WHEN 5 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
159796                 WHEN 6 THEN 'DISTRIBUTION_LINK_TYPE' 
159797                 WHEN 7 THEN 'UPG_ENC_CR_CCID' 
159798                 WHEN 8 THEN 'UPG_ENC_CR_AMT' 
159799                 WHEN 9 THEN 'UPG_ENC_CR_BASE_AMT' 
159800                 WHEN 10 THEN 'UPG_ENC_DR_CCID' 
159801                 WHEN 11 THEN 'UPG_ENC_DR_AMT' 
159802                 WHEN 12 THEN 'UPG_ENC_DR_BASE_AMT' 
159803                 WHEN 13 THEN 'UPG_AP_ENCUM_OPTION' 
159804                 WHEN 14 THEN 'DEFERRED_END_DATE' 
159805                 WHEN 15 THEN 'DEFERRED_OPTION' 
159806                 WHEN 16 THEN 'DEFERRED_START_DATE' 
159807                 WHEN 17 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
159808                 WHEN 18 THEN 'TAX_LINE_ID' 
159809                 WHEN 19 THEN 'REC_NREC_TAX_DIST_ID' 
159810                 WHEN 20 THEN 'SUMMARY_TAX_LINE_ID' 
159811                 WHEN 21 THEN 'UPG_CR_ENC_TYPE_ID' 
159812                 WHEN 22 THEN 'UPG_DR_ENC_TYPE_ID' 
159813                 WHEN 23 THEN 'BUS_FLOW_AP_APP_ID' 
159814                 WHEN 24 THEN 'BUS_FLOW_INV_DIST_TYPE' 
159815                 WHEN 25 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
159816                 WHEN 26 THEN 'APAD_DIST_LOOKUP_CODE' 
159817                 WHEN 27 THEN 'DEF_REC_PP_SET_OPTION_CODE' 
159818                 WHEN 28 THEN 'APAD_DISTRIBUTION_IDENTIFIER' 
159819                 WHEN 29 THEN 'BF_CASH_ALWAYS_PP_DIST_TYPE' 
159820                 WHEN 30 THEN 'BF_CASH_ALWAYS_PREPAY_ENTITY' 
159821                 WHEN 31 THEN 'BF_CASHALWAYS_PP_PMT_DIST_ID' 
159822                 WHEN 32 THEN 'BF_CASHALWAYS_PP_PMT_ID' 
159823                 WHEN 33 THEN 'UPG_ENC_CR_ACCT_CLASS' 
159824                 WHEN 34 THEN 'UPG_ENC_DR_ACCT_CLASS' 
159825                 WHEN 35 THEN 'APAD_AMOUNT' 
159826                 WHEN 36 THEN 'BASE_AMT_AT_PP_XRATE' 
159827                 WHEN 37 THEN 'REVERSED_PREPAY_APP_DIST_ID' 
159828                 WHEN 38 THEN 'DEF_REC_SETTLEMENT_OPTION_CODE' 
159829                 WHEN 39 THEN 'BF_PREPAY_REC_DIST_ID' 
159830                 WHEN 40 THEN 'BF_PREPAY_REC_INV' 
159831                 WHEN 41 THEN 'APAD_BASE_AMOUNT' 
159832                 WHEN 42 THEN 'BF_ACCRUAL_PREPAY_DIST_TYPE' 
159833                 WHEN 43 THEN 'BF_ACCRUAL_PREPAY_ENTITY_CODE' 
159834                 WHEN 44 THEN 'BF_ACCRUAL_PP_DIST_ID' 
159835                 WHEN 45 THEN 'BF_ACCRUAL_PP_INV' 
159836                 WHEN 46 THEN 'BASE_AMT_AT_PP_PAY_XRATE' 
159837                 WHEN 47 THEN 'APAD_BASE_AMOUNT_DIFF' 
159838                 WHEN 48 THEN 'INV_PREPMT_GAIN_LOSS_INDICATOR' 
159839                 
159840                 ELSE null
159841               END                           source_code
159842             , CASE r
159843                 WHEN 1 THEN TO_CHAR(l2.AID_DIST_CCID)
159844                 WHEN 2 THEN TO_CHAR(l2.CGAC_GAIN_CCID)
159845                 WHEN 3 THEN TO_CHAR(l2.CGAC_LOSS_CCID)
159846                 WHEN 4 THEN TO_CHAR(l5.TAX_ACCOUNT_CCID)
159847                 WHEN 5 THEN TO_CHAR(l2.DIST_ACCOUNT_REVERSAL_OPTION)
159848                 WHEN 6 THEN TO_CHAR(l2.DISTRIBUTION_LINK_TYPE)
159849                 WHEN 7 THEN TO_CHAR(l2.UPG_ENC_CR_CCID)
159850                 WHEN 8 THEN TO_CHAR(l2.UPG_ENC_CR_AMT)
159851                 WHEN 9 THEN TO_CHAR(l2.UPG_ENC_CR_BASE_AMT)
159852                 WHEN 10 THEN TO_CHAR(l2.UPG_ENC_DR_CCID)
159853                 WHEN 11 THEN TO_CHAR(l2.UPG_ENC_DR_AMT)
159854                 WHEN 12 THEN TO_CHAR(l2.UPG_ENC_DR_BASE_AMT)
159855                 WHEN 13 THEN TO_CHAR(l2.UPG_AP_ENCUM_OPTION)
159856                 WHEN 14 THEN TO_CHAR(l2.DEFERRED_END_DATE)
159857                 WHEN 15 THEN TO_CHAR(l2.DEFERRED_OPTION)
159858                 WHEN 16 THEN TO_CHAR(l2.DEFERRED_START_DATE)
159859                 WHEN 17 THEN TO_CHAR(l2.OVERRIDE_ACCTD_AMT_FLAG)
159860                 WHEN 18 THEN TO_CHAR(l5.TAX_LINE_ID)
159861                 WHEN 19 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
159862                 WHEN 20 THEN TO_CHAR(l2.SUMMARY_TAX_LINE_ID)
159863                 WHEN 21 THEN TO_CHAR(l2.UPG_CR_ENC_TYPE_ID)
159864                 WHEN 22 THEN TO_CHAR(l2.UPG_DR_ENC_TYPE_ID)
159865                 WHEN 23 THEN TO_CHAR(l2.BUS_FLOW_AP_APP_ID)
159866                 WHEN 24 THEN TO_CHAR(l2.BUS_FLOW_INV_DIST_TYPE)
159867                 WHEN 25 THEN TO_CHAR(l2.BUS_FLOW_INV_ENTITY_CODE)
159868                 WHEN 26 THEN TO_CHAR(l2.APAD_DIST_LOOKUP_CODE)
159869                 WHEN 27 THEN TO_CHAR(l3.DEF_REC_PP_SET_OPTION_CODE)
159870                 WHEN 28 THEN TO_CHAR(l2.APAD_DISTRIBUTION_IDENTIFIER)
159871                 WHEN 29 THEN TO_CHAR(l2.BF_CASH_ALWAYS_PP_DIST_TYPE)
159872                 WHEN 30 THEN TO_CHAR(l2.BF_CASH_ALWAYS_PREPAY_ENTITY)
159873                 WHEN 31 THEN TO_CHAR(l2.BF_CASHALWAYS_PP_PMT_DIST_ID)
159874                 WHEN 32 THEN TO_CHAR(l2.BF_CASHALWAYS_PP_PMT_ID)
159875                 WHEN 33 THEN TO_CHAR(l2.UPG_ENC_CR_ACCT_CLASS)
159876                 WHEN 34 THEN TO_CHAR(l2.UPG_ENC_DR_ACCT_CLASS)
159877                 WHEN 35 THEN TO_CHAR(l2.APAD_AMOUNT)
159878                 WHEN 36 THEN TO_CHAR(l2.BASE_AMT_AT_PP_XRATE)
159879                 WHEN 37 THEN TO_CHAR(l2.REVERSED_PREPAY_APP_DIST_ID)
159880                 WHEN 38 THEN TO_CHAR(l5.DEF_REC_SETTLEMENT_OPTION_CODE)
159884                 WHEN 42 THEN TO_CHAR(l2.BF_ACCRUAL_PREPAY_DIST_TYPE)
159881                 WHEN 39 THEN TO_CHAR(l2.BF_PREPAY_REC_DIST_ID)
159882                 WHEN 40 THEN TO_CHAR(l2.BF_PREPAY_REC_INV)
159883                 WHEN 41 THEN TO_CHAR(l2.APAD_BASE_AMOUNT)
159885                 WHEN 43 THEN TO_CHAR(l2.BF_ACCRUAL_PREPAY_ENTITY_CODE)
159886                 WHEN 44 THEN TO_CHAR(l2.BF_ACCRUAL_PP_DIST_ID)
159887                 WHEN 45 THEN TO_CHAR(l2.BF_ACCRUAL_PP_INV)
159888                 WHEN 46 THEN TO_CHAR(l2.BASE_AMT_AT_PP_PAY_XRATE)
159889                 WHEN 47 THEN TO_CHAR(l2.APAD_BASE_AMOUNT_DIFF)
159890                 WHEN 48 THEN TO_CHAR(l2.INV_PREPMT_GAIN_LOSS_INDICATOR)
159891                 
159892                 ELSE null
159893               END                           source_value
159894             , CASE r
159895                 WHEN 17 THEN fvl80.meaning
159896                 WHEN 27 THEN fvl126.meaning
159897                 WHEN 38 THEN fvl137.meaning
159898                 
159899                 ELSE null
159900               END               source_meaning
159901          FROM  xla_events_gt     xet  
159902         , AP_PREPAYAPP_EXTRACT_DETAILS_V  l2
159903         , AP_PREPAY_DEF_TAX_EXTRACT_V  l3
159904         , ZX_AP_DEF_TAX_EXTRACT_V  l5
159905         , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
159906   , fnd_lookup_values    fvl80
159907   , fnd_lookup_values    fvl126
159908   , fnd_lookup_values    fvl137
159909             , (select rownum r from all_objects where rownum <= 48 and owner = p_apps_owner)
159910         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
159911           AND xet.event_class_code = C_EVENT_CLASS_CODE
159912             AND l2.event_id          = xet.event_id
159913  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 fvl80.lookup_type(+)         = 'YES_NO'
159914   AND fvl80.lookup_code(+)         = l2.OVERRIDE_ACCTD_AMT_FLAG
159915   AND fvl80.view_application_id(+) = 0
159916   AND fvl80.language(+)            = USERENV('LANG')
159917      AND fvl126.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
159918   AND fvl126.lookup_code(+)         = l3.DEF_REC_PP_SET_OPTION_CODE
159919   AND fvl126.view_application_id(+) = 0
159920   AND fvl126.language(+)            = USERENV('LANG')
159921      AND fvl137.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
159922   AND fvl137.lookup_code(+)         = l5.DEF_REC_SETTLEMENT_OPTION_CODE
159923   AND fvl137.view_application_id(+) = 0
159924   AND fvl137.language(+)            = USERENV('LANG')
159925   
159926 )
159927 ;
159928 --
159929 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
159930 
159931       trace
159932          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
159933          ,p_level    => C_LEVEL_STATEMENT
159934          ,p_module   => l_log_module);
159935 
159936 END IF;
159937 
159938 
159939 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
159940       trace
159941          (p_msg      => 'END of insert_sources_235'
159942          ,p_level    => C_LEVEL_PROCEDURE
159943          ,p_module   => l_log_module);
159944 END IF;
159945 EXCEPTION
159946   WHEN xla_exceptions_pkg.application_exception THEN
159947       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
159948             trace
159949                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
159950                ,p_level    => C_LEVEL_EXCEPTION
159951                ,p_module   => l_log_module);
159952       END IF;
159953       RAISE;
159954   WHEN OTHERS THEN
159955       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
159956             trace
159957                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
159958                ,p_level    => C_LEVEL_EXCEPTION
159959                ,p_module   => l_log_module);
159960        END IF;
159961        xla_exceptions_pkg.raise_message
159962            (p_location => 'XLA_00200_AAD_S_000002_PKG.insert_sources_235');
159963 END insert_sources_235;
159964 --
159965 
159966 ---------------------------------------
159967 --
159968 -- PRIVATE FUNCTION
159969 --         EventClass_235
159970 --
159971 ----------------------------------------
159972 --
159973 FUNCTION EventClass_235
159974        (p_application_id         IN NUMBER
159975        ,p_base_ledger_id         IN NUMBER
159976        ,p_target_ledger_id       IN NUMBER
159977        ,p_language               IN VARCHAR2
159978        ,p_currency_code          IN VARCHAR2
159979        ,p_sla_ledger_id          IN NUMBER
159980        ,p_pad_start_date         IN DATE
159981        ,p_pad_end_date           IN DATE
159982        ,p_primary_ledger_id      IN NUMBER)
159983 RETURN BOOLEAN IS
159984 --
159985 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENT APPLICATIONS_ALL';
159986 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'PREPAYMENT APPLICATIONS';
159987 
159988 l_calculate_acctd_flag   VARCHAR2(1) :='N';
159989 l_calculate_g_l_flag     VARCHAR2(1) :='N';
159990 --
159991 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
159992 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
159993 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
159994 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
159995 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
159996 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
159997 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
159998 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
159999 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
160000 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
160001 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
160002 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
160006 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
160003 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
160004 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
160005 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
160007 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
160008 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
160009 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
160010 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
160011 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
160012 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
160013 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
160014 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
160015 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
160016 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
160017 
160018 l_event_id                             NUMBER;
160019 l_previous_event_id                    NUMBER;
160020 l_first_event_id                       NUMBER;
160021 l_last_event_id                        NUMBER;
160022 
160023 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
160024 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
160025 --
160026 --
160027 l_result                    BOOLEAN := TRUE;
160028 l_rows                      NUMBER  := 1000;
160029 l_event_type_name           VARCHAR2(80) := 'All';
160030 l_event_class_name          VARCHAR2(80) := 'Prepayment Applications';
160031 l_description               VARCHAR2(4000);
160032 l_transaction_reversal      NUMBER;
160033 l_ae_header_id              NUMBER;
160034 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
160035 l_log_module                VARCHAR2(240);
160036 --
160037 l_acct_reversal_source      VARCHAR2(30);
160038 l_trx_reversal_source       VARCHAR2(30);
160039 
160040 l_continue_with_lines       BOOLEAN := TRUE;
160041 --
160042 l_acc_rev_gl_date_source    DATE;                      -- 4262811
160043 --
160044 type t_array_event_id is table of number index by binary_integer;
160045 
160046 l_rec_array_event                    t_rec_array_event;
160047 l_null_rec_array_event               t_rec_array_event;
160048 l_array_ae_header_id                 xla_number_array_type;
160049 l_actual_flag                        VARCHAR2(1) := NULL;
160050 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
160051 l_balance_type_code                  VARCHAR2(1) :=NULL;
160052 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
160053 
160054 --
160055 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
160056 --
160057 
160058 TYPE t_array_source_3 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_TRANSACTION_NUMBER%TYPE INDEX BY BINARY_INTEGER;
160059 TYPE t_array_source_4 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_DATE%TYPE INDEX BY BINARY_INTEGER;
160060 TYPE t_array_source_5 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
160061 TYPE t_array_source_6 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.DOC_SEQUENCE_NAME%TYPE INDEX BY BINARY_INTEGER;
160062 TYPE t_array_source_7 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
160063 TYPE t_array_source_8 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
160064 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
160065 TYPE t_array_source_37 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
160066 TYPE t_array_source_39 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
160067 TYPE t_array_source_41 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_PREPAY_TAX_DIFF_CCID%TYPE INDEX BY BINARY_INTEGER;
160068 TYPE t_array_source_49 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
160069 TYPE t_array_source_58 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
160070 TYPE t_array_source_67 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
160071 TYPE t_array_source_81 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
160072 TYPE t_array_source_82 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
160073 TYPE t_array_source_83 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
160074 TYPE t_array_source_143 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
160075 TYPE t_array_source_144 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
160076 TYPE t_array_source_145 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
160077 TYPE t_array_source_168 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
160078 
160079 TYPE t_array_source_30 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
160080 TYPE t_array_source_36 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.CGAC_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
160081 TYPE t_array_source_38 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.CGAC_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
160082 TYPE t_array_source_52 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_ACCOUNT_CCID%TYPE INDEX BY BINARY_INTEGER;
160083 TYPE t_array_source_53 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
160084 TYPE t_array_source_55 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
160085 TYPE t_array_source_65 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
160086 TYPE t_array_source_66 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
160090 TYPE t_array_source_71 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
160087 TYPE t_array_source_68 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
160088 TYPE t_array_source_69 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
160089 TYPE t_array_source_70 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
160091 TYPE t_array_source_72 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
160092 TYPE t_array_source_77 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
160093 TYPE t_array_source_78 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
160094 TYPE t_array_source_79 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
160095 TYPE t_array_source_80 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
160096 TYPE t_array_source_86 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
160097 TYPE t_array_source_87 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
160098 TYPE t_array_source_88 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
160099 TYPE t_array_source_89 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
160100 TYPE t_array_source_90 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
160101 TYPE t_array_source_91 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
160102 TYPE t_array_source_92 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
160103 TYPE t_array_source_93 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
160104 TYPE t_array_source_125 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
160105 TYPE t_array_source_126 IS TABLE OF AP_PREPAY_DEF_TAX_EXTRACT_V.DEF_REC_PP_SET_OPTION_CODE%TYPE INDEX BY BINARY_INTEGER;
160106 TYPE t_array_source_127 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_DISTRIBUTION_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
160107 TYPE t_array_source_128 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASH_ALWAYS_PP_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
160108 TYPE t_array_source_129 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASH_ALWAYS_PREPAY_ENTITY%TYPE INDEX BY BINARY_INTEGER;
160109 TYPE t_array_source_130 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASHALWAYS_PP_PMT_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
160110 TYPE t_array_source_131 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_CASHALWAYS_PP_PMT_ID%TYPE INDEX BY BINARY_INTEGER;
160111 TYPE t_array_source_132 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
160112 TYPE t_array_source_133 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.UPG_ENC_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
160113 TYPE t_array_source_134 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
160114 TYPE t_array_source_135 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BASE_AMT_AT_PP_XRATE%TYPE INDEX BY BINARY_INTEGER;
160115 TYPE t_array_source_136 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.REVERSED_PREPAY_APP_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
160116 TYPE t_array_source_137 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.DEF_REC_SETTLEMENT_OPTION_CODE%TYPE INDEX BY BINARY_INTEGER;
160117 TYPE t_array_source_139 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_PREPAY_REC_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
160118 TYPE t_array_source_140 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_PREPAY_REC_INV%TYPE INDEX BY BINARY_INTEGER;
160119 TYPE t_array_source_141 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
160120 TYPE t_array_source_146 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PREPAY_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
160121 TYPE t_array_source_147 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PREPAY_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
160122 TYPE t_array_source_148 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PP_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
160123 TYPE t_array_source_149 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BF_ACCRUAL_PP_INV%TYPE INDEX BY BINARY_INTEGER;
160124 TYPE t_array_source_150 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.BASE_AMT_AT_PP_PAY_XRATE%TYPE INDEX BY BINARY_INTEGER;
160125 TYPE t_array_source_155 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.APAD_BASE_AMOUNT_DIFF%TYPE INDEX BY BINARY_INTEGER;
160126 TYPE t_array_source_162 IS TABLE OF AP_PREPAYAPP_EXTRACT_DETAILS_V.INV_PREPMT_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
160127 
160128 l_array_source_3              t_array_source_3;
160129 l_array_source_4              t_array_source_4;
160130 l_array_source_5              t_array_source_5;
160131 l_array_source_6              t_array_source_6;
160132 l_array_source_7              t_array_source_7;
160133 l_array_source_8              t_array_source_8;
160134 l_array_source_15              t_array_source_15;
160135 l_array_source_15_meaning      t_array_lookup_meaning;
160136 l_array_source_37              t_array_source_37;
160137 l_array_source_39              t_array_source_39;
160138 l_array_source_41              t_array_source_41;
160139 l_array_source_49              t_array_source_49;
160140 l_array_source_58              t_array_source_58;
160141 l_array_source_67              t_array_source_67;
160142 l_array_source_81              t_array_source_81;
160143 l_array_source_82              t_array_source_82;
160144 l_array_source_83              t_array_source_83;
160145 l_array_source_143              t_array_source_143;
160146 l_array_source_144              t_array_source_144;
160147 l_array_source_145              t_array_source_145;
160148 l_array_source_168              t_array_source_168;
160149 
160150 l_array_source_30      t_array_source_30;
160151 l_array_source_36      t_array_source_36;
160152 l_array_source_38      t_array_source_38;
160153 l_array_source_52      t_array_source_52;
160154 l_array_source_53      t_array_source_53;
160155 l_array_source_55      t_array_source_55;
160156 l_array_source_65      t_array_source_65;
160157 l_array_source_66      t_array_source_66;
160161 l_array_source_71      t_array_source_71;
160158 l_array_source_68      t_array_source_68;
160159 l_array_source_69      t_array_source_69;
160160 l_array_source_70      t_array_source_70;
160162 l_array_source_72      t_array_source_72;
160163 l_array_source_77      t_array_source_77;
160164 l_array_source_78      t_array_source_78;
160165 l_array_source_79      t_array_source_79;
160166 l_array_source_80      t_array_source_80;
160167 l_array_source_80_meaning      t_array_lookup_meaning;
160168 l_array_source_86      t_array_source_86;
160169 l_array_source_87      t_array_source_87;
160170 l_array_source_88      t_array_source_88;
160171 l_array_source_89      t_array_source_89;
160172 l_array_source_90      t_array_source_90;
160173 l_array_source_91      t_array_source_91;
160174 l_array_source_92      t_array_source_92;
160175 l_array_source_93      t_array_source_93;
160176 l_array_source_125      t_array_source_125;
160177 l_array_source_126      t_array_source_126;
160178 l_array_source_126_meaning      t_array_lookup_meaning;
160179 l_array_source_127      t_array_source_127;
160180 l_array_source_128      t_array_source_128;
160181 l_array_source_129      t_array_source_129;
160182 l_array_source_130      t_array_source_130;
160183 l_array_source_131      t_array_source_131;
160184 l_array_source_132      t_array_source_132;
160185 l_array_source_133      t_array_source_133;
160186 l_array_source_134      t_array_source_134;
160187 l_array_source_135      t_array_source_135;
160188 l_array_source_136      t_array_source_136;
160189 l_array_source_137      t_array_source_137;
160190 l_array_source_137_meaning      t_array_lookup_meaning;
160191 l_array_source_139      t_array_source_139;
160192 l_array_source_140      t_array_source_140;
160193 l_array_source_141      t_array_source_141;
160194 l_array_source_146      t_array_source_146;
160195 l_array_source_147      t_array_source_147;
160196 l_array_source_148      t_array_source_148;
160197 l_array_source_149      t_array_source_149;
160198 l_array_source_150      t_array_source_150;
160199 l_array_source_155      t_array_source_155;
160200 l_array_source_162      t_array_source_162;
160201 
160202 --
160203 CURSOR header_cur
160204 IS
160205 SELECT /*+ leading(xet) cardinality(xet,1) */
160206 -- Event Class Code: PREPAYMENT APPLICATIONS
160207     xet.entity_id
160208    ,xet.legal_entity_id
160209    ,xet.entity_code
160210    ,xet.transaction_number
160211    ,xet.event_id
160212    ,xet.event_class_code
160213    ,xet.event_type_code
160214    ,xet.event_number
160215    ,xet.event_date
160216    ,xet.transaction_date
160217    ,xet.reference_num_1
160218    ,xet.reference_num_2
160219    ,xet.reference_num_3
160220    ,xet.reference_num_4
160221    ,xet.reference_char_1
160222    ,xet.reference_char_2
160223    ,xet.reference_char_3
160224    ,xet.reference_char_4
160225    ,xet.reference_date_1
160226    ,xet.reference_date_2
160227    ,xet.reference_date_3
160228    ,xet.reference_date_4
160229    ,xet.event_created_by
160230    ,xet.budgetary_control_flag 
160231   , h1.INV_TRANSACTION_NUMBER    source_3
160232   , h1.AI_INVOICE_DATE    source_4
160233   , h1.INV_DOC_SEQUENCE_CATEGORY    source_5
160234   , h1.DOC_SEQUENCE_NAME    source_6
160235   , h1.INV_DOC_SEQUENCE_VALUE    source_7
160236   , h1.AI_DESCRIPTION    source_8
160237   , h4.ASP_AUTOMATIC_OFFSETS_VALUE    source_15
160238   , fvl15.meaning   source_15_meaning
160239   , h4.ASP_GAIN_CCID    source_37
160240   , h4.ASP_LOSS_CCID    source_39
160241   , h4.ASP_PREPAY_TAX_DIFF_CCID    source_41
160242   , h4.ASP_ROUNDING_ERROR_CCID    source_49
160243   , h1.AI_INVOICE_ID    source_58
160244   , h1.AI_INVOICE_CURRENCY_CODE    source_67
160245   , h1.AI_VENDOR_ID    source_81
160246   , h1.AI_VENDOR_SITE_ID    source_82
160247   , h1.THIRD_PARTY_TYPE    source_83
160248   , h1.INV_EXCHANGE_DATE    source_143
160249   , h1.INV_EXCHANGE_RATE    source_144
160250   , h1.INV_EXCHANGE_RATE_TYPE    source_145
160251   , h1.INV_DOC_SEQUENCE_IDENTIFIER    source_168
160252   FROM xla_events_gt     xet 
160253   , AP_INVOICE_EXTRACT_HEADER_V  h1
160254   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
160255   , fnd_lookup_values    fvl15
160256  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
160257    and xet.event_class_code = C_EVENT_CLASS_CODE
160258    and xet.event_status_code <> 'N'  AND h1.event_id = xet.event_id
160259  AND h4.asp_org_id = h1.ai_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
160260   AND fvl15.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
160261   AND fvl15.view_application_id(+) = 200
160262   AND fvl15.language(+)            = USERENV('LANG')
160263   
160264  ORDER BY event_id
160265 ;
160266 
160267 
160268 --
160269 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
160270 IS
160271 SELECT  /*+ leading(xet) cardinality(xet,1) */
160272 -- Event Class Code: PREPAYMENT APPLICATIONS
160273     xet.entity_id
160274    ,xet.legal_entity_id
160275    ,xet.entity_code
160276    ,xet.transaction_number
160277    ,xet.event_id
160278    ,xet.event_class_code
160279    ,xet.event_type_code
160280    ,xet.event_number
160281    ,xet.event_date
160282    ,xet.transaction_date
160283    ,xet.reference_num_1
160284    ,xet.reference_num_2
160285    ,xet.reference_num_3
160286    ,xet.reference_num_4
160287    ,xet.reference_char_1
160288    ,xet.reference_char_2
160289    ,xet.reference_char_3
160290    ,xet.reference_char_4
160291    ,xet.reference_date_1
160292    ,xet.reference_date_2
160293    ,xet.reference_date_3
160294    ,xet.reference_date_4
160295    ,xet.event_created_by
160296    ,xet.budgetary_control_flag
160297  , l2.LINE_NUMBER  
160298   , l2.AID_DIST_CCID    source_30
160299   , l2.CGAC_GAIN_CCID    source_36
160300   , l2.CGAC_LOSS_CCID    source_38
160301   , l5.TAX_ACCOUNT_CCID    source_52
160305   , l2.UPG_ENC_CR_AMT    source_66
160302   , l2.DIST_ACCOUNT_REVERSAL_OPTION    source_53
160303   , l2.DISTRIBUTION_LINK_TYPE    source_55
160304   , l2.UPG_ENC_CR_CCID    source_65
160306   , l2.UPG_ENC_CR_BASE_AMT    source_68
160307   , l2.UPG_ENC_DR_CCID    source_69
160308   , l2.UPG_ENC_DR_AMT    source_70
160309   , l2.UPG_ENC_DR_BASE_AMT    source_71
160310   , l2.UPG_AP_ENCUM_OPTION    source_72
160311   , l2.DEFERRED_END_DATE    source_77
160312   , l2.DEFERRED_OPTION    source_78
160313   , l2.DEFERRED_START_DATE    source_79
160314   , l2.OVERRIDE_ACCTD_AMT_FLAG    source_80
160315   , fvl80.meaning   source_80_meaning
160316   , l5.TAX_LINE_ID    source_86
160317   , l6.REC_NREC_TAX_DIST_ID    source_87
160318   , l2.SUMMARY_TAX_LINE_ID    source_88
160319   , l2.UPG_CR_ENC_TYPE_ID    source_89
160320   , l2.UPG_DR_ENC_TYPE_ID    source_90
160321   , l2.BUS_FLOW_AP_APP_ID    source_91
160322   , l2.BUS_FLOW_INV_DIST_TYPE    source_92
160323   , l2.BUS_FLOW_INV_ENTITY_CODE    source_93
160324   , l2.APAD_DIST_LOOKUP_CODE    source_125
160325   , l3.DEF_REC_PP_SET_OPTION_CODE    source_126
160326   , fvl126.meaning   source_126_meaning
160327   , l2.APAD_DISTRIBUTION_IDENTIFIER    source_127
160328   , l2.BF_CASH_ALWAYS_PP_DIST_TYPE    source_128
160329   , l2.BF_CASH_ALWAYS_PREPAY_ENTITY    source_129
160330   , l2.BF_CASHALWAYS_PP_PMT_DIST_ID    source_130
160331   , l2.BF_CASHALWAYS_PP_PMT_ID    source_131
160332   , l2.UPG_ENC_CR_ACCT_CLASS    source_132
160333   , l2.UPG_ENC_DR_ACCT_CLASS    source_133
160334   , l2.APAD_AMOUNT    source_134
160335   , l2.BASE_AMT_AT_PP_XRATE    source_135
160336   , l2.REVERSED_PREPAY_APP_DIST_ID    source_136
160337   , l5.DEF_REC_SETTLEMENT_OPTION_CODE    source_137
160338   , fvl137.meaning   source_137_meaning
160339   , l2.BF_PREPAY_REC_DIST_ID    source_139
160340   , l2.BF_PREPAY_REC_INV    source_140
160341   , l2.APAD_BASE_AMOUNT    source_141
160342   , l2.BF_ACCRUAL_PREPAY_DIST_TYPE    source_146
160343   , l2.BF_ACCRUAL_PREPAY_ENTITY_CODE    source_147
160344   , l2.BF_ACCRUAL_PP_DIST_ID    source_148
160345   , l2.BF_ACCRUAL_PP_INV    source_149
160346   , l2.BASE_AMT_AT_PP_PAY_XRATE    source_150
160347   , l2.APAD_BASE_AMOUNT_DIFF    source_155
160348   , l2.INV_PREPMT_GAIN_LOSS_INDICATOR    source_162
160349   FROM xla_events_gt     xet 
160350   , AP_PREPAYAPP_EXTRACT_DETAILS_V  l2
160351   , AP_PREPAY_DEF_TAX_EXTRACT_V  l3
160352   , ZX_AP_DEF_TAX_EXTRACT_V  l5
160353   , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
160354   , fnd_lookup_values    fvl80
160355   , fnd_lookup_values    fvl126
160356   , fnd_lookup_values    fvl137
160357  WHERE xet.event_id between x_first_event_id and x_last_event_id
160358    and xet.event_date between p_pad_start_date and p_pad_end_date
160359    and xet.event_class_code = C_EVENT_CLASS_CODE
160360    and xet.event_status_code <> 'N'   AND l2.event_id      = xet.event_id
160361  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 fvl80.lookup_type(+)         = 'YES_NO'
160362   AND fvl80.lookup_code(+)         = l2.OVERRIDE_ACCTD_AMT_FLAG
160363   AND fvl80.view_application_id(+) = 0
160364   AND fvl80.language(+)            = USERENV('LANG')
160365      AND fvl126.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
160366   AND fvl126.lookup_code(+)         = l3.DEF_REC_PP_SET_OPTION_CODE
160367   AND fvl126.view_application_id(+) = 0
160368   AND fvl126.language(+)            = USERENV('LANG')
160369      AND fvl137.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
160370   AND fvl137.lookup_code(+)         = l5.DEF_REC_SETTLEMENT_OPTION_CODE
160371   AND fvl137.view_application_id(+) = 0
160372   AND fvl137.language(+)            = USERENV('LANG')
160373   ;
160374 
160375 --
160376 BEGIN
160377 IF g_log_enabled THEN
160378    l_log_module := C_DEFAULT_MODULE||'.EventClass_235';
160379 END IF;
160380 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
160381    trace
160382       (p_msg      => 'BEGIN of EventClass_235'
160383       ,p_level    => C_LEVEL_PROCEDURE
160384       ,p_module   => l_log_module);
160385 END IF;
160386 
160387 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
160388    trace
160389       (p_msg      => 'p_application_id = '||p_application_id||
160390                      ' - p_base_ledger_id = '||p_base_ledger_id||
160391                      ' - p_target_ledger_id  = '||p_target_ledger_id||
160392                      ' - p_language = '||p_language||
160393                      ' - p_currency_code = '||p_currency_code||
160394                      ' - p_sla_ledger_id = '||p_sla_ledger_id
160395       ,p_level    => C_LEVEL_STATEMENT
160396       ,p_module   => l_log_module);
160397 END IF;
160398 --
160399 -- initialze arrays
160400 --
160401 g_array_event.DELETE;
160402 l_rec_array_event := l_null_rec_array_event;
160403 --
160404 --------------------------------------
160405 -- 4262811 Initialze MPA Line Number
160406 --------------------------------------
160407 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
160408 
160409 --
160410 
160411 --
160412 OPEN header_cur;
160413 --
160414 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
160415    trace
160416    (p_msg      => 'SQL - FETCH header_cur'
160417    ,p_level    => C_LEVEL_STATEMENT
160418    ,p_module   => l_log_module);
160419 END IF;
160420 --
160421 LOOP
160422 FETCH header_cur BULK COLLECT INTO
160423         l_array_entity_id
160424       , l_array_legal_entity_id
160425       , l_array_entity_code
160426       , l_array_transaction_num
160427       , l_array_event_id
160428       , l_array_class_code
160429       , l_array_event_type
160430       , l_array_event_number
160431       , l_array_event_date
160432       , l_array_transaction_date
160433       , l_array_reference_num_1
160434       , l_array_reference_num_2
160435       , l_array_reference_num_3
160436       , l_array_reference_num_4
160437       , l_array_reference_char_1
160441       , l_array_reference_date_1
160438       , l_array_reference_char_2
160439       , l_array_reference_char_3
160440       , l_array_reference_char_4
160442       , l_array_reference_date_2
160443       , l_array_reference_date_3
160444       , l_array_reference_date_4
160445       , l_array_event_created_by
160446       , l_array_budgetary_control_flag 
160447       , l_array_source_3
160448       , l_array_source_4
160449       , l_array_source_5
160450       , l_array_source_6
160451       , l_array_source_7
160452       , l_array_source_8
160453       , l_array_source_15
160454       , l_array_source_15_meaning
160455       , l_array_source_37
160456       , l_array_source_39
160457       , l_array_source_41
160458       , l_array_source_49
160459       , l_array_source_58
160460       , l_array_source_67
160461       , l_array_source_81
160462       , l_array_source_82
160463       , l_array_source_83
160464       , l_array_source_143
160465       , l_array_source_144
160466       , l_array_source_145
160467       , l_array_source_168
160468       LIMIT l_rows;
160469 --
160470 IF (C_LEVEL_EVENT >= g_log_level) THEN
160471    trace
160472    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
160473    ,p_level    => C_LEVEL_EVENT
160474    ,p_module   => l_log_module);
160475 END IF;
160476 --
160477 EXIT WHEN l_array_entity_id.COUNT = 0;
160478 
160479 -- initialize arrays
160480 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
160481 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
160482 
160483 --
160484 -- Bug 4458708
160485 --
160486 XLA_AE_LINES_PKG.g_LineNumber := 0;
160487 
160488 
160489 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
160490 g_last_hdr_idx := l_array_event_id.LAST;
160491 --
160492 -- loop for the headers. Each iteration is for each header extract row
160493 -- fetched in header cursor
160494 --
160495 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
160496 
160497 --
160498 -- set event info as cache for other routines to refer event attributes
160499 --
160500 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
160501    (p_application_id           => p_application_id
160502    ,p_primary_ledger_id        => p_primary_ledger_id
160503    ,p_base_ledger_id           => p_base_ledger_id
160504    ,p_target_ledger_id         => p_target_ledger_id
160505    ,p_entity_id                => l_array_entity_id(hdr_idx)
160506    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
160507    ,p_entity_code              => l_array_entity_code(hdr_idx)
160508    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
160509    ,p_event_id                 => l_array_event_id(hdr_idx)
160510    ,p_event_class_code         => l_array_class_code(hdr_idx)
160511    ,p_event_type_code          => l_array_event_type(hdr_idx)
160512    ,p_event_number             => l_array_event_number(hdr_idx)
160513    ,p_event_date               => l_array_event_date(hdr_idx)
160514    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
160515    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
160516    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
160517    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
160518    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
160519    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
160520    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
160521    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
160522    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
160523    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
160524    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
160525    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
160526    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
160527    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
160528    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
160529 
160530 --
160531 -- set the status of entry to C_VALID (0)
160532 --
160533 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
160534 
160535 --
160536 -- initialize a row for ae header
160537 --
160538 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
160539 
160540 l_event_id := l_array_event_id(hdr_idx);
160541 
160542 --
160543 -- storing the hdr_idx for event. May be used by line cursor.
160544 --
160545 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
160546 
160547 --
160548 -- store sources from header extract. This can be improved to
160549 -- store only those sources from header extract that may be used in lines
160550 --
160551 
160552 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
160553 g_array_event(l_event_id).array_value_date('source_4') := l_array_source_4(hdr_idx);
160554 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
160555 g_array_event(l_event_id).array_value_char('source_6') := l_array_source_6(hdr_idx);
160556 g_array_event(l_event_id).array_value_num('source_7') := l_array_source_7(hdr_idx);
160557 g_array_event(l_event_id).array_value_char('source_8') := l_array_source_8(hdr_idx);
160558 g_array_event(l_event_id).array_value_char('source_15') := l_array_source_15(hdr_idx);
160559 g_array_event(l_event_id).array_value_char('source_15_meaning') := l_array_source_15_meaning(hdr_idx);
160560 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
160561 g_array_event(l_event_id).array_value_num('source_39') := l_array_source_39(hdr_idx);
160562 g_array_event(l_event_id).array_value_num('source_41') := l_array_source_41(hdr_idx);
160563 g_array_event(l_event_id).array_value_num('source_49') := l_array_source_49(hdr_idx);
160564 g_array_event(l_event_id).array_value_num('source_58') := l_array_source_58(hdr_idx);
160568 g_array_event(l_event_id).array_value_char('source_83') := l_array_source_83(hdr_idx);
160565 g_array_event(l_event_id).array_value_char('source_67') := l_array_source_67(hdr_idx);
160566 g_array_event(l_event_id).array_value_num('source_81') := l_array_source_81(hdr_idx);
160567 g_array_event(l_event_id).array_value_num('source_82') := l_array_source_82(hdr_idx);
160569 g_array_event(l_event_id).array_value_date('source_143') := l_array_source_143(hdr_idx);
160570 g_array_event(l_event_id).array_value_num('source_144') := l_array_source_144(hdr_idx);
160571 g_array_event(l_event_id).array_value_char('source_145') := l_array_source_145(hdr_idx);
160572 g_array_event(l_event_id).array_value_num('source_168') := l_array_source_168(hdr_idx);
160573 
160574 --
160575 -- initilaize the status of ae headers for diffrent balance types
160576 -- the status is initialised to C_NOT_CREATED (2)
160577 --
160578 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
160579 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
160580 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
160581 
160582 --
160583 -- call api to validate and store accounting attributes for header
160584 --
160585 
160586 ------------------------------------------------------------
160587 -- Accrual Reversal : to get date for Standard Source (NONE)
160588 ------------------------------------------------------------
160589 l_acc_rev_gl_date_source := NULL;
160590 
160591      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
160592       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_5');
160593      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
160594       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_168');
160595      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
160596       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_7');
160597      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
160598       l_rec_acct_attrs.array_date_value(4) := 
160599 xla_ae_sources_pkg.GetSystemSourceDate(
160600    p_source_code           => 'XLA_EVENT_DATE'
160601  , p_source_type_code      => 'Y'
160602  , p_source_application_id =>  602
160603 );
160604 
160605 
160606 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
160607 
160608 XLA_AE_HEADER_PKG.SetJeCategoryName;
160609 
160610 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
160611 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
160612 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
160613 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
160614 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
160615 
160616 
160617 --
160618 xla_ae_header_pkg.SetHdrDescription(
160619    p_description => Description_2 (
160620    p_application_id => p_application_id 
160621  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
160622  , p_source_4 => g_array_event(l_event_id).array_value_date('source_4')
160623  , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
160624  , p_source_6 => g_array_event(l_event_id).array_value_char('source_6')
160625  , p_source_7 => g_array_event(l_event_id).array_value_num('source_7')
160626  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
160627    )
160628 );
160629 --
160630 
160631 -- No header level analytical criteria
160632 
160633 --
160634 --accounting attribute enhancement, bug 3612931
160635 --
160636 l_trx_reversal_source := SUBSTR(NULL, 1,30);
160637 
160638 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
160639    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
160640 
160641    xla_accounting_err_pkg.build_message
160642       (p_appli_s_name            => 'XLA'
160643       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
160644       ,p_token_1                 => 'ACCT_ATTR_NAME'
160645       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
160646       ,p_token_2                 => 'PRODUCT_NAME'
160647       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
160648       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
160649       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
160650       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
160651 
160652 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
160653    --
160654    -- following sets the accounting attributes needed to reverse
160655    -- accounting for a distributeion
160656    --
160657    xla_ae_lines_pkg.SetTrxReversalAttrs
160658       (p_event_id              => l_event_id
160659       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
160660       ,p_trx_reversal_source   => l_trx_reversal_source);
160661 
160662 END IF;
160663 
160664 
160665 ----------------------------------------------------------------
160666 -- 4262811 -  update the header statuses to invalid in need be
160667 ----------------------------------------------------------------
160668 --
160669 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
160670 
160671 
160672   -----------------------------------------------
160673   -- No accrual reversal for the event class/type
160674   -----------------------------------------------
160675 ----------------------------------------------------------------
160676 
160677 --
160678 -- this ends the header loop iteration for one bulk fetch
160679 --
160680 END LOOP;
160681 
160682 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
160686 -- insert dummy rows into lines gt table that were created due to
160683 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
160684 
160685 --
160687 -- transaction reversals
160688 --
160689 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
160690    l_result := XLA_AE_LINES_PKG.InsertLines;
160691 END IF;
160692 
160693 --
160694 -- reset the temp_line_num for each set of events fetched from header
160695 -- cursor rather than doing it for each new event in line cursor
160696 -- Bug 3939231
160697 --
160698 xla_ae_lines_pkg.g_temp_line_num := 0;
160699 
160700 
160701 
160702 --
160703 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
160704 --
160705 --
160706 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
160707 
160708       trace
160709          (p_msg      => 'SQL - FETCH line_cur'
160710          ,p_level    => C_LEVEL_STATEMENT
160711          ,p_module   => l_log_module);
160712 
160713 END IF;
160714 --
160715 --
160716 LOOP
160717   --
160718   FETCH line_cur BULK COLLECT INTO
160719         l_array_entity_id
160720       , l_array_legal_entity_id
160721       , l_array_entity_code
160722       , l_array_transaction_num
160723       , l_array_event_id
160724       , l_array_class_code
160725       , l_array_event_type
160726       , l_array_event_number
160727       , l_array_event_date
160728       , l_array_transaction_date
160729       , l_array_reference_num_1
160730       , l_array_reference_num_2
160731       , l_array_reference_num_3
160732       , l_array_reference_num_4
160733       , l_array_reference_char_1
160734       , l_array_reference_char_2
160735       , l_array_reference_char_3
160736       , l_array_reference_char_4
160737       , l_array_reference_date_1
160738       , l_array_reference_date_2
160739       , l_array_reference_date_3
160740       , l_array_reference_date_4
160741       , l_array_event_created_by
160742       , l_array_budgetary_control_flag
160743       , l_array_extract_line_num 
160744       , l_array_source_30
160745       , l_array_source_36
160746       , l_array_source_38
160747       , l_array_source_52
160748       , l_array_source_53
160749       , l_array_source_55
160750       , l_array_source_65
160751       , l_array_source_66
160752       , l_array_source_68
160753       , l_array_source_69
160754       , l_array_source_70
160755       , l_array_source_71
160756       , l_array_source_72
160757       , l_array_source_77
160758       , l_array_source_78
160759       , l_array_source_79
160760       , l_array_source_80
160761       , l_array_source_80_meaning
160762       , l_array_source_86
160763       , l_array_source_87
160764       , l_array_source_88
160765       , l_array_source_89
160766       , l_array_source_90
160767       , l_array_source_91
160768       , l_array_source_92
160769       , l_array_source_93
160770       , l_array_source_125
160771       , l_array_source_126
160772       , l_array_source_126_meaning
160773       , l_array_source_127
160774       , l_array_source_128
160775       , l_array_source_129
160776       , l_array_source_130
160777       , l_array_source_131
160778       , l_array_source_132
160779       , l_array_source_133
160780       , l_array_source_134
160781       , l_array_source_135
160782       , l_array_source_136
160783       , l_array_source_137
160784       , l_array_source_137_meaning
160785       , l_array_source_139
160786       , l_array_source_140
160787       , l_array_source_141
160788       , l_array_source_146
160789       , l_array_source_147
160790       , l_array_source_148
160791       , l_array_source_149
160792       , l_array_source_150
160793       , l_array_source_155
160794       , l_array_source_162
160795       LIMIT l_rows;
160796 
160797   --
160798   IF (C_LEVEL_EVENT >= g_log_level) THEN
160799             trace
160800                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
160801                ,p_level    => C_LEVEL_EVENT
160802                ,p_module   => l_log_module);
160803   END IF;
160804   --
160805   EXIT WHEN l_array_entity_id.count = 0;
160806 
160807   XLA_AE_LINES_PKG.g_rec_lines := null;
160808 
160809 --
160810 -- Bug 4458708
160811 --
160812 XLA_AE_LINES_PKG.g_LineNumber := 0;
160813 --
160814 --
160815 
160816 FOR Idx IN 1..l_array_event_id.count LOOP
160817    --
160818    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
160819    --
160820    l_event_id := l_array_event_id(idx);  -- 5648433
160821 
160822    --
160823    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
160824    --
160825 
160826    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
160827              (g_array_event(l_event_id).array_value_num('header_index'))
160828          ,'N'
160829          ) <> 'Y'
160830    THEN
160831       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
160832          trace
160833             (p_msg      => 'Trancaction revesal option is not Y '
160834             ,p_level    => C_LEVEL_STATEMENT
160835             ,p_module   => l_log_module);
160836       END IF;
160837 
160838 --
160839 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
160840 --
160841 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
160842 --
160843 -- set event info as cache for other routines to refer event attributes
160844 --
160845 
160846 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
160847    l_previous_event_id := l_event_id;
160848 
160849    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
160850       (p_application_id           => p_application_id
160854       ,p_entity_id                => l_array_entity_id(Idx)
160851       ,p_primary_ledger_id        => p_primary_ledger_id
160852       ,p_base_ledger_id           => p_base_ledger_id
160853       ,p_target_ledger_id         => p_target_ledger_id
160855       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
160856       ,p_entity_code              => l_array_entity_code(Idx)
160857       ,p_transaction_num          => l_array_transaction_num(Idx)
160858       ,p_event_id                 => l_array_event_id(Idx)
160859       ,p_event_class_code         => l_array_class_code(Idx)
160860       ,p_event_type_code          => l_array_event_type(Idx)
160861       ,p_event_number             => l_array_event_number(Idx)
160862       ,p_event_date               => l_array_event_date(Idx)
160863       ,p_transaction_date         => l_array_transaction_date(Idx)
160864       ,p_reference_num_1          => l_array_reference_num_1(Idx)
160865       ,p_reference_num_2          => l_array_reference_num_2(Idx)
160866       ,p_reference_num_3          => l_array_reference_num_3(Idx)
160867       ,p_reference_num_4          => l_array_reference_num_4(Idx)
160868       ,p_reference_char_1         => l_array_reference_char_1(Idx)
160869       ,p_reference_char_2         => l_array_reference_char_2(Idx)
160870       ,p_reference_char_3         => l_array_reference_char_3(Idx)
160871       ,p_reference_char_4         => l_array_reference_char_4(Idx)
160872       ,p_reference_date_1         => l_array_reference_date_1(Idx)
160873       ,p_reference_date_2         => l_array_reference_date_2(Idx)
160874       ,p_reference_date_3         => l_array_reference_date_3(Idx)
160875       ,p_reference_date_4         => l_array_reference_date_4(Idx)
160876       ,p_event_created_by         => l_array_event_created_by(Idx)
160877       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
160878        --
160879 END IF;
160880 
160881 
160882 
160883 --
160884 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
160885 
160886 l_acct_reversal_source := SUBSTR(l_array_source_53(Idx), 1,30);
160887 
160888 IF l_continue_with_lines THEN
160889    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
160890       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
160891 
160892       xla_accounting_err_pkg.build_message
160893          (p_appli_s_name            => 'XLA'
160894          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
160895          ,p_token_1                 => 'LINE_NUMBER'
160896          ,p_value_1                 => l_array_extract_line_num(Idx)
160897          ,p_token_2                 => 'PRODUCT_NAME'
160898          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
160899          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
160900          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
160901          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
160902 
160903    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
160904       --
160905       -- following sets the accounting attributes needed to reverse
160906       -- accounting for a distributeion
160907       --
160908 
160909       --
160910       -- 5217187
160911       --
160912       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
160913       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
160914                                        g_array_event(l_event_id).array_value_num('header_index'));
160915       --
160916       --
160917 
160918       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
160919       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_53(Idx);
160920       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
160921       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_127(Idx);
160922       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
160923       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_55(Idx);
160924       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_ACCT_CLASS';
160925       l_rec_rev_acct_attrs.array_char_value(5)  := l_array_source_132(Idx);
160926       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_CCID';
160927       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_65(Idx);
160928       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_AMT';
160929       l_rec_rev_acct_attrs.array_num_value(7)  := l_array_source_66(Idx);
160930       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_ENTERED_CURR';
160931       l_rec_rev_acct_attrs.array_char_value(8)  := g_array_event(l_event_id).array_value_char('source_67');
160932       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_CR_LEDGER_AMT';
160933       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_68(Idx);
160934       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ACCT_CLASS';
160935       l_rec_rev_acct_attrs.array_char_value(10)  := l_array_source_133(Idx);
160936       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_CCID';
160937       l_rec_rev_acct_attrs.array_num_value(11)  := l_array_source_69(Idx);
160938       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_ENTERED_AMT';
160939       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_70(Idx);
160940       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_DR_ENTERED_CURR';
160941       l_rec_rev_acct_attrs.array_char_value(13)  := g_array_event(l_event_id).array_value_char('source_67');
160942       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ENC_UPG_DR_LEDGER_AMT';
160943       l_rec_rev_acct_attrs.array_num_value(14)  := l_array_source_71(Idx);
160944       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ENC_UPG_OPTION';
160945       l_rec_rev_acct_attrs.array_char_value(15)  := l_array_source_72(Idx);
160946       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'PARTY_TYPE';
160947       l_rec_rev_acct_attrs.array_char_value(16)  := g_array_event(l_event_id).array_value_char('source_83');
160951       l_rec_rev_acct_attrs.array_char_value(18)  := l_array_source_55(Idx);
160948       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'REVERSED_DISTRIBUTION_ID1';
160949       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_136(Idx);
160950       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'REVERSED_DISTRIBUTION_TYPE';
160952       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_LINE_REF_ID';
160953       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_86(Idx);
160954       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'TAX_REC_NREC_DIST_REF_ID';
160955       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_87(Idx);
160956       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'TAX_SUMMARY_LINE_REF_ID';
160957       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_88(Idx);
160958       l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'UPG_CR_ENC_TYPE_ID';
160959       l_rec_rev_acct_attrs.array_num_value(22)  := l_array_source_89(Idx);
160960       l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'UPG_DR_ENC_TYPE_ID';
160961       l_rec_rev_acct_attrs.array_num_value(23)  := l_array_source_90(Idx);
160962 
160963 
160964       xla_ae_lines_pkg.SetAcctReversalAttrs
160965          (p_event_id             => l_event_id
160966          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
160967          ,p_calculate_acctd_flag => l_calculate_acctd_flag
160968          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
160969    END IF;
160970 
160971    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
160972        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
160973 
160974 --
160975 AcctLineType_94 (
160976  p_application_id  => p_application_id
160977  ,p_event_id     => l_event_id
160978  ,p_calculate_acctd_flag => l_calculate_acctd_flag
160979  ,p_calculate_g_l_flag => l_calculate_g_l_flag
160980  ,p_actual_flag => l_actual_flag
160981  ,p_balance_type_code => l_balance_type_code
160982  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
160983  
160984  , p_source_53 => l_array_source_53(Idx)
160985  , p_source_55 => l_array_source_55(Idx)
160986  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
160987  , p_source_65 => l_array_source_65(Idx)
160988  , p_source_66 => l_array_source_66(Idx)
160989  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
160990  , p_source_68 => l_array_source_68(Idx)
160991  , p_source_69 => l_array_source_69(Idx)
160992  , p_source_70 => l_array_source_70(Idx)
160993  , p_source_71 => l_array_source_71(Idx)
160994  , p_source_72 => l_array_source_72(Idx)
160995  , p_source_77 => l_array_source_77(Idx)
160996  , p_source_78 => l_array_source_78(Idx)
160997  , p_source_79 => l_array_source_79(Idx)
160998  , p_source_80 => l_array_source_80(Idx)
160999  , p_source_80_meaning => l_array_source_80_meaning(Idx)
161000  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
161001  , p_source_86 => l_array_source_86(Idx)
161002  , p_source_87 => l_array_source_87(Idx)
161003  , p_source_88 => l_array_source_88(Idx)
161004  , p_source_89 => l_array_source_89(Idx)
161005  , p_source_90 => l_array_source_90(Idx)
161006  , p_source_91 => l_array_source_91(Idx)
161007  , p_source_125 => l_array_source_125(Idx)
161008  , p_source_126 => l_array_source_126(Idx)
161009  , p_source_126_meaning => l_array_source_126_meaning(Idx)
161010  , p_source_127 => l_array_source_127(Idx)
161011  , p_source_128 => l_array_source_128(Idx)
161012  , p_source_129 => l_array_source_129(Idx)
161013  , p_source_130 => l_array_source_130(Idx)
161014  , p_source_131 => l_array_source_131(Idx)
161015  , p_source_132 => l_array_source_132(Idx)
161016  , p_source_133 => l_array_source_133(Idx)
161017  , p_source_134 => l_array_source_134(Idx)
161018  , p_source_135 => l_array_source_135(Idx)
161019  , p_source_136 => l_array_source_136(Idx)
161020  );
161021 If(l_balance_type_code = 'A') THEN
161022   l_actual_gain_loss_ref := l_gain_or_loss_ref;
161023 END IF;
161024 
161025 --
161026 
161027 
161028 --
161029 AcctLineType_99 (
161030  p_application_id  => p_application_id
161031  ,p_event_id     => l_event_id
161032  ,p_calculate_acctd_flag => l_calculate_acctd_flag
161033  ,p_calculate_g_l_flag => l_calculate_g_l_flag
161034  ,p_actual_flag => l_actual_flag
161035  ,p_balance_type_code => l_balance_type_code
161036  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
161037  
161038  , p_source_53 => l_array_source_53(Idx)
161039  , p_source_55 => l_array_source_55(Idx)
161040  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
161041  , p_source_65 => l_array_source_65(Idx)
161042  , p_source_66 => l_array_source_66(Idx)
161043  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
161044  , p_source_68 => l_array_source_68(Idx)
161045  , p_source_69 => l_array_source_69(Idx)
161046  , p_source_70 => l_array_source_70(Idx)
161047  , p_source_71 => l_array_source_71(Idx)
161048  , p_source_72 => l_array_source_72(Idx)
161049  , p_source_77 => l_array_source_77(Idx)
161050  , p_source_78 => l_array_source_78(Idx)
161051  , p_source_79 => l_array_source_79(Idx)
161052  , p_source_80 => l_array_source_80(Idx)
161053  , p_source_80_meaning => l_array_source_80_meaning(Idx)
161054  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
161055  , p_source_86 => l_array_source_86(Idx)
161056  , p_source_87 => l_array_source_87(Idx)
161057  , p_source_88 => l_array_source_88(Idx)
161058  , p_source_89 => l_array_source_89(Idx)
161059  , p_source_90 => l_array_source_90(Idx)
161060  , p_source_91 => l_array_source_91(Idx)
161061  , p_source_92 => l_array_source_92(Idx)
161062  , p_source_93 => l_array_source_93(Idx)
161063  , p_source_127 => l_array_source_127(Idx)
161064  , p_source_132 => l_array_source_132(Idx)
161065  , p_source_133 => l_array_source_133(Idx)
161066  , p_source_134 => l_array_source_134(Idx)
161067  , p_source_136 => l_array_source_136(Idx)
161068  , p_source_137 => l_array_source_137(Idx)
161069  , p_source_137_meaning => l_array_source_137_meaning(Idx)
161073  );
161070  , p_source_139 => l_array_source_139(Idx)
161071  , p_source_140 => l_array_source_140(Idx)
161072  , p_source_141 => l_array_source_141(Idx)
161074 If(l_balance_type_code = 'A') THEN
161075   l_actual_gain_loss_ref := l_gain_or_loss_ref;
161076 END IF;
161077 
161078 --
161079 
161080 
161081 --
161082 AcctLineType_103 (
161083  p_application_id  => p_application_id
161084  ,p_event_id     => l_event_id
161085  ,p_calculate_acctd_flag => l_calculate_acctd_flag
161086  ,p_calculate_g_l_flag => l_calculate_g_l_flag
161087  ,p_actual_flag => l_actual_flag
161088  ,p_balance_type_code => l_balance_type_code
161089  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
161090  
161091  , p_source_52 => l_array_source_52(Idx)
161092  , p_source_53 => l_array_source_53(Idx)
161093  , p_source_55 => l_array_source_55(Idx)
161094  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
161095  , p_source_65 => l_array_source_65(Idx)
161096  , p_source_66 => l_array_source_66(Idx)
161097  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
161098  , p_source_68 => l_array_source_68(Idx)
161099  , p_source_69 => l_array_source_69(Idx)
161100  , p_source_70 => l_array_source_70(Idx)
161101  , p_source_71 => l_array_source_71(Idx)
161102  , p_source_72 => l_array_source_72(Idx)
161103  , p_source_77 => l_array_source_77(Idx)
161104  , p_source_78 => l_array_source_78(Idx)
161105  , p_source_79 => l_array_source_79(Idx)
161106  , p_source_80 => l_array_source_80(Idx)
161107  , p_source_80_meaning => l_array_source_80_meaning(Idx)
161108  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
161109  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
161110  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
161111  , p_source_86 => l_array_source_86(Idx)
161112  , p_source_87 => l_array_source_87(Idx)
161113  , p_source_88 => l_array_source_88(Idx)
161114  , p_source_89 => l_array_source_89(Idx)
161115  , p_source_90 => l_array_source_90(Idx)
161116  , p_source_91 => l_array_source_91(Idx)
161117  , p_source_127 => l_array_source_127(Idx)
161118  , p_source_132 => l_array_source_132(Idx)
161119  , p_source_133 => l_array_source_133(Idx)
161120  , p_source_134 => l_array_source_134(Idx)
161121  , p_source_136 => l_array_source_136(Idx)
161122  , p_source_137 => l_array_source_137(Idx)
161123  , p_source_137_meaning => l_array_source_137_meaning(Idx)
161124  , p_source_141 => l_array_source_141(Idx)
161125  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
161126  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
161127  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
161128  , p_source_146 => l_array_source_146(Idx)
161129  , p_source_147 => l_array_source_147(Idx)
161130  , p_source_148 => l_array_source_148(Idx)
161131  , p_source_149 => l_array_source_149(Idx)
161132  );
161133 If(l_balance_type_code = 'A') THEN
161134   l_actual_gain_loss_ref := l_gain_or_loss_ref;
161135 END IF;
161136 
161137 --
161138 
161139 
161140 --
161141 AcctLineType_111 (
161142  p_application_id  => p_application_id
161143  ,p_event_id     => l_event_id
161144  ,p_calculate_acctd_flag => l_calculate_acctd_flag
161145  ,p_calculate_g_l_flag => l_calculate_g_l_flag
161146  ,p_actual_flag => l_actual_flag
161147  ,p_balance_type_code => l_balance_type_code
161148  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
161149  
161150  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
161151  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
161152  , p_source_30 => l_array_source_30(Idx)
161153  , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
161154  , p_source_53 => l_array_source_53(Idx)
161155  , p_source_55 => l_array_source_55(Idx)
161156  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
161157  , p_source_65 => l_array_source_65(Idx)
161158  , p_source_66 => l_array_source_66(Idx)
161159  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
161160  , p_source_68 => l_array_source_68(Idx)
161161  , p_source_69 => l_array_source_69(Idx)
161162  , p_source_70 => l_array_source_70(Idx)
161163  , p_source_71 => l_array_source_71(Idx)
161164  , p_source_72 => l_array_source_72(Idx)
161165  , p_source_77 => l_array_source_77(Idx)
161166  , p_source_78 => l_array_source_78(Idx)
161167  , p_source_79 => l_array_source_79(Idx)
161168  , p_source_80 => l_array_source_80(Idx)
161169  , p_source_80_meaning => l_array_source_80_meaning(Idx)
161170  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
161171  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
161172  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
161173  , p_source_86 => l_array_source_86(Idx)
161174  , p_source_87 => l_array_source_87(Idx)
161175  , p_source_88 => l_array_source_88(Idx)
161176  , p_source_89 => l_array_source_89(Idx)
161177  , p_source_90 => l_array_source_90(Idx)
161178  , p_source_91 => l_array_source_91(Idx)
161179  , p_source_125 => l_array_source_125(Idx)
161180  , p_source_127 => l_array_source_127(Idx)
161181  , p_source_132 => l_array_source_132(Idx)
161182  , p_source_133 => l_array_source_133(Idx)
161183  , p_source_134 => l_array_source_134(Idx)
161184  , p_source_135 => l_array_source_135(Idx)
161185  , p_source_136 => l_array_source_136(Idx)
161186  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
161187  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
161188  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
161189  , p_source_146 => l_array_source_146(Idx)
161190  , p_source_147 => l_array_source_147(Idx)
161191  , p_source_148 => l_array_source_148(Idx)
161192  , p_source_149 => l_array_source_149(Idx)
161193  );
161194 If(l_balance_type_code = 'A') THEN
161195   l_actual_gain_loss_ref := l_gain_or_loss_ref;
161196 END IF;
161197 
161201 --
161198 --
161199 
161200 
161202 AcctLineType_115 (
161203  p_application_id  => p_application_id
161204  ,p_event_id     => l_event_id
161205  ,p_calculate_acctd_flag => l_calculate_acctd_flag
161206  ,p_calculate_g_l_flag => l_calculate_g_l_flag
161207  ,p_actual_flag => l_actual_flag
161208  ,p_balance_type_code => l_balance_type_code
161209  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
161210  
161211  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
161212  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
161213  , p_source_30 => l_array_source_30(Idx)
161214  , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
161215  , p_source_53 => l_array_source_53(Idx)
161216  , p_source_55 => l_array_source_55(Idx)
161217  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
161218  , p_source_65 => l_array_source_65(Idx)
161219  , p_source_66 => l_array_source_66(Idx)
161220  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
161221  , p_source_68 => l_array_source_68(Idx)
161222  , p_source_69 => l_array_source_69(Idx)
161223  , p_source_70 => l_array_source_70(Idx)
161224  , p_source_71 => l_array_source_71(Idx)
161225  , p_source_72 => l_array_source_72(Idx)
161226  , p_source_77 => l_array_source_77(Idx)
161227  , p_source_78 => l_array_source_78(Idx)
161228  , p_source_79 => l_array_source_79(Idx)
161229  , p_source_80 => l_array_source_80(Idx)
161230  , p_source_80_meaning => l_array_source_80_meaning(Idx)
161231  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
161232  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
161233  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
161234  , p_source_86 => l_array_source_86(Idx)
161235  , p_source_87 => l_array_source_87(Idx)
161236  , p_source_88 => l_array_source_88(Idx)
161237  , p_source_89 => l_array_source_89(Idx)
161238  , p_source_90 => l_array_source_90(Idx)
161239  , p_source_91 => l_array_source_91(Idx)
161240  , p_source_125 => l_array_source_125(Idx)
161241  , p_source_127 => l_array_source_127(Idx)
161242  , p_source_132 => l_array_source_132(Idx)
161243  , p_source_133 => l_array_source_133(Idx)
161244  , p_source_134 => l_array_source_134(Idx)
161245  , p_source_136 => l_array_source_136(Idx)
161246  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
161247  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
161248  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
161249  , p_source_146 => l_array_source_146(Idx)
161250  , p_source_147 => l_array_source_147(Idx)
161251  , p_source_148 => l_array_source_148(Idx)
161252  , p_source_149 => l_array_source_149(Idx)
161253  , p_source_150 => l_array_source_150(Idx)
161254  );
161255 If(l_balance_type_code = 'A') THEN
161256   l_actual_gain_loss_ref := l_gain_or_loss_ref;
161257 END IF;
161258 
161259 --
161260 
161261 
161262 --
161263 AcctLineType_128 (
161264  p_application_id  => p_application_id
161265  ,p_event_id     => l_event_id
161266  ,p_calculate_acctd_flag => l_calculate_acctd_flag
161267  ,p_calculate_g_l_flag => l_calculate_g_l_flag
161268  ,p_actual_flag => l_actual_flag
161269  ,p_balance_type_code => l_balance_type_code
161270  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
161271  
161272  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
161273  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
161274  , p_source_30 => l_array_source_30(Idx)
161275  , p_source_36 => l_array_source_36(Idx)
161276  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
161277  , p_source_38 => l_array_source_38(Idx)
161278  , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
161279  , p_source_53 => l_array_source_53(Idx)
161280  , p_source_55 => l_array_source_55(Idx)
161281  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
161282  , p_source_65 => l_array_source_65(Idx)
161283  , p_source_66 => l_array_source_66(Idx)
161284  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
161285  , p_source_68 => l_array_source_68(Idx)
161286  , p_source_69 => l_array_source_69(Idx)
161287  , p_source_70 => l_array_source_70(Idx)
161288  , p_source_71 => l_array_source_71(Idx)
161289  , p_source_72 => l_array_source_72(Idx)
161290  , p_source_77 => l_array_source_77(Idx)
161291  , p_source_78 => l_array_source_78(Idx)
161292  , p_source_79 => l_array_source_79(Idx)
161293  , p_source_80 => l_array_source_80(Idx)
161294  , p_source_80_meaning => l_array_source_80_meaning(Idx)
161295  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
161296  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
161297  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
161298  , p_source_86 => l_array_source_86(Idx)
161299  , p_source_87 => l_array_source_87(Idx)
161300  , p_source_88 => l_array_source_88(Idx)
161301  , p_source_89 => l_array_source_89(Idx)
161302  , p_source_90 => l_array_source_90(Idx)
161303  , p_source_91 => l_array_source_91(Idx)
161304  , p_source_125 => l_array_source_125(Idx)
161305  , p_source_127 => l_array_source_127(Idx)
161306  , p_source_132 => l_array_source_132(Idx)
161307  , p_source_133 => l_array_source_133(Idx)
161308  , p_source_136 => l_array_source_136(Idx)
161309  , p_source_146 => l_array_source_146(Idx)
161310  , p_source_147 => l_array_source_147(Idx)
161311  , p_source_148 => l_array_source_148(Idx)
161312  , p_source_149 => l_array_source_149(Idx)
161313  , p_source_155 => l_array_source_155(Idx)
161314  );
161315 If(l_balance_type_code = 'A') THEN
161316   l_actual_gain_loss_ref := l_gain_or_loss_ref;
161317 END IF;
161318 
161319 --
161320 
161321 
161322 --
161323 AcctLineType_134 (
161324  p_application_id  => p_application_id
161325  ,p_event_id     => l_event_id
161326  ,p_calculate_acctd_flag => l_calculate_acctd_flag
161330  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
161327  ,p_calculate_g_l_flag => l_calculate_g_l_flag
161328  ,p_actual_flag => l_actual_flag
161329  ,p_balance_type_code => l_balance_type_code
161331  
161332  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
161333  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
161334  , p_source_30 => l_array_source_30(Idx)
161335  , p_source_36 => l_array_source_36(Idx)
161336  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
161337  , p_source_53 => l_array_source_53(Idx)
161338  , p_source_55 => l_array_source_55(Idx)
161339  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
161340  , p_source_65 => l_array_source_65(Idx)
161341  , p_source_66 => l_array_source_66(Idx)
161342  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
161343  , p_source_68 => l_array_source_68(Idx)
161344  , p_source_69 => l_array_source_69(Idx)
161345  , p_source_70 => l_array_source_70(Idx)
161346  , p_source_71 => l_array_source_71(Idx)
161347  , p_source_72 => l_array_source_72(Idx)
161348  , p_source_77 => l_array_source_77(Idx)
161349  , p_source_78 => l_array_source_78(Idx)
161350  , p_source_79 => l_array_source_79(Idx)
161351  , p_source_80 => l_array_source_80(Idx)
161352  , p_source_80_meaning => l_array_source_80_meaning(Idx)
161353  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
161354  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
161355  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
161356  , p_source_86 => l_array_source_86(Idx)
161357  , p_source_87 => l_array_source_87(Idx)
161358  , p_source_88 => l_array_source_88(Idx)
161359  , p_source_89 => l_array_source_89(Idx)
161360  , p_source_90 => l_array_source_90(Idx)
161361  , p_source_91 => l_array_source_91(Idx)
161362  , p_source_125 => l_array_source_125(Idx)
161363  , p_source_127 => l_array_source_127(Idx)
161364  , p_source_132 => l_array_source_132(Idx)
161365  , p_source_133 => l_array_source_133(Idx)
161366  , p_source_134 => l_array_source_134(Idx)
161367  , p_source_136 => l_array_source_136(Idx)
161368  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
161369  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
161370  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
161371  , p_source_146 => l_array_source_146(Idx)
161372  , p_source_147 => l_array_source_147(Idx)
161373  , p_source_148 => l_array_source_148(Idx)
161374  , p_source_149 => l_array_source_149(Idx)
161375  , p_source_155 => l_array_source_155(Idx)
161376  , p_source_162 => l_array_source_162(Idx)
161377  );
161378 If(l_balance_type_code = 'A') THEN
161379   l_actual_gain_loss_ref := l_gain_or_loss_ref;
161380 END IF;
161381 
161382 --
161383 
161384 
161385 --
161386 AcctLineType_161 (
161387  p_application_id  => p_application_id
161388  ,p_event_id     => l_event_id
161389  ,p_calculate_acctd_flag => l_calculate_acctd_flag
161390  ,p_calculate_g_l_flag => l_calculate_g_l_flag
161391  ,p_actual_flag => l_actual_flag
161392  ,p_balance_type_code => l_balance_type_code
161393  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
161394  
161395  , p_source_53 => l_array_source_53(Idx)
161396  , p_source_55 => l_array_source_55(Idx)
161397  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
161398  , p_source_65 => l_array_source_65(Idx)
161399  , p_source_66 => l_array_source_66(Idx)
161400  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
161401  , p_source_68 => l_array_source_68(Idx)
161402  , p_source_69 => l_array_source_69(Idx)
161403  , p_source_70 => l_array_source_70(Idx)
161404  , p_source_71 => l_array_source_71(Idx)
161405  , p_source_72 => l_array_source_72(Idx)
161406  , p_source_77 => l_array_source_77(Idx)
161407  , p_source_78 => l_array_source_78(Idx)
161408  , p_source_79 => l_array_source_79(Idx)
161409  , p_source_80 => l_array_source_80(Idx)
161410  , p_source_80_meaning => l_array_source_80_meaning(Idx)
161411  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
161412  , p_source_86 => l_array_source_86(Idx)
161413  , p_source_87 => l_array_source_87(Idx)
161414  , p_source_88 => l_array_source_88(Idx)
161415  , p_source_89 => l_array_source_89(Idx)
161416  , p_source_90 => l_array_source_90(Idx)
161417  , p_source_91 => l_array_source_91(Idx)
161418  , p_source_125 => l_array_source_125(Idx)
161419  , p_source_127 => l_array_source_127(Idx)
161420  , p_source_132 => l_array_source_132(Idx)
161421  , p_source_133 => l_array_source_133(Idx)
161422  , p_source_134 => l_array_source_134(Idx)
161423  , p_source_136 => l_array_source_136(Idx)
161424  , p_source_139 => l_array_source_139(Idx)
161425  , p_source_140 => l_array_source_140(Idx)
161426  , p_source_141 => l_array_source_141(Idx)
161427  , p_source_146 => l_array_source_146(Idx)
161428  , p_source_147 => l_array_source_147(Idx)
161429  );
161430 If(l_balance_type_code = 'A') THEN
161431   l_actual_gain_loss_ref := l_gain_or_loss_ref;
161432 END IF;
161433 
161434 --
161435 
161436 
161437 --
161438 AcctLineType_168 (
161439  p_application_id  => p_application_id
161440  ,p_event_id     => l_event_id
161441  ,p_calculate_acctd_flag => l_calculate_acctd_flag
161442  ,p_calculate_g_l_flag => l_calculate_g_l_flag
161443  ,p_actual_flag => l_actual_flag
161444  ,p_balance_type_code => l_balance_type_code
161445  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
161446  
161447  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
161448  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
161449  , p_source_30 => l_array_source_30(Idx)
161450  , p_source_38 => l_array_source_38(Idx)
161451  , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
161452  , p_source_53 => l_array_source_53(Idx)
161453  , p_source_55 => l_array_source_55(Idx)
161457  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
161454  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
161455  , p_source_65 => l_array_source_65(Idx)
161456  , p_source_66 => l_array_source_66(Idx)
161458  , p_source_68 => l_array_source_68(Idx)
161459  , p_source_69 => l_array_source_69(Idx)
161460  , p_source_70 => l_array_source_70(Idx)
161461  , p_source_71 => l_array_source_71(Idx)
161462  , p_source_72 => l_array_source_72(Idx)
161463  , p_source_77 => l_array_source_77(Idx)
161464  , p_source_78 => l_array_source_78(Idx)
161465  , p_source_79 => l_array_source_79(Idx)
161466  , p_source_80 => l_array_source_80(Idx)
161467  , p_source_80_meaning => l_array_source_80_meaning(Idx)
161468  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
161469  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
161470  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
161471  , p_source_86 => l_array_source_86(Idx)
161472  , p_source_87 => l_array_source_87(Idx)
161473  , p_source_88 => l_array_source_88(Idx)
161474  , p_source_89 => l_array_source_89(Idx)
161475  , p_source_90 => l_array_source_90(Idx)
161476  , p_source_91 => l_array_source_91(Idx)
161477  , p_source_125 => l_array_source_125(Idx)
161478  , p_source_127 => l_array_source_127(Idx)
161479  , p_source_132 => l_array_source_132(Idx)
161480  , p_source_133 => l_array_source_133(Idx)
161481  , p_source_134 => l_array_source_134(Idx)
161482  , p_source_136 => l_array_source_136(Idx)
161483  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
161484  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
161485  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
161486  , p_source_146 => l_array_source_146(Idx)
161487  , p_source_147 => l_array_source_147(Idx)
161488  , p_source_148 => l_array_source_148(Idx)
161489  , p_source_149 => l_array_source_149(Idx)
161490  , p_source_155 => l_array_source_155(Idx)
161491  , p_source_162 => l_array_source_162(Idx)
161492  );
161493 If(l_balance_type_code = 'A') THEN
161494   l_actual_gain_loss_ref := l_gain_or_loss_ref;
161495 END IF;
161496 
161497 --
161498 
161499 
161500 --
161501 AcctLineType_186 (
161502  p_application_id  => p_application_id
161503  ,p_event_id     => l_event_id
161504  ,p_calculate_acctd_flag => l_calculate_acctd_flag
161505  ,p_calculate_g_l_flag => l_calculate_g_l_flag
161506  ,p_actual_flag => l_actual_flag
161507  ,p_balance_type_code => l_balance_type_code
161508  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
161509  
161510  , p_source_53 => l_array_source_53(Idx)
161511  , p_source_55 => l_array_source_55(Idx)
161512  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
161513  , p_source_65 => l_array_source_65(Idx)
161514  , p_source_66 => l_array_source_66(Idx)
161515  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
161516  , p_source_68 => l_array_source_68(Idx)
161517  , p_source_69 => l_array_source_69(Idx)
161518  , p_source_70 => l_array_source_70(Idx)
161519  , p_source_71 => l_array_source_71(Idx)
161520  , p_source_72 => l_array_source_72(Idx)
161521  , p_source_77 => l_array_source_77(Idx)
161522  , p_source_78 => l_array_source_78(Idx)
161523  , p_source_79 => l_array_source_79(Idx)
161524  , p_source_80 => l_array_source_80(Idx)
161525  , p_source_80_meaning => l_array_source_80_meaning(Idx)
161526  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
161527  , p_source_86 => l_array_source_86(Idx)
161528  , p_source_87 => l_array_source_87(Idx)
161529  , p_source_88 => l_array_source_88(Idx)
161530  , p_source_89 => l_array_source_89(Idx)
161531  , p_source_90 => l_array_source_90(Idx)
161532  , p_source_91 => l_array_source_91(Idx)
161533  , p_source_125 => l_array_source_125(Idx)
161534  , p_source_126 => l_array_source_126(Idx)
161535  , p_source_126_meaning => l_array_source_126_meaning(Idx)
161536  , p_source_127 => l_array_source_127(Idx)
161537  , p_source_132 => l_array_source_132(Idx)
161538  , p_source_133 => l_array_source_133(Idx)
161539  , p_source_134 => l_array_source_134(Idx)
161540  , p_source_135 => l_array_source_135(Idx)
161541  , p_source_136 => l_array_source_136(Idx)
161542  , p_source_146 => l_array_source_146(Idx)
161543  , p_source_147 => l_array_source_147(Idx)
161544  , p_source_148 => l_array_source_148(Idx)
161545  , p_source_149 => l_array_source_149(Idx)
161546  );
161547 If(l_balance_type_code = 'A') THEN
161548   l_actual_gain_loss_ref := l_gain_or_loss_ref;
161549 END IF;
161550 
161551 --
161552 
161553 
161554 --
161555 AcctLineType_211 (
161556  p_application_id  => p_application_id
161557  ,p_event_id     => l_event_id
161558  ,p_calculate_acctd_flag => l_calculate_acctd_flag
161559  ,p_calculate_g_l_flag => l_calculate_g_l_flag
161560  ,p_actual_flag => l_actual_flag
161561  ,p_balance_type_code => l_balance_type_code
161562  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
161563  
161564  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
161565  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
161566  , p_source_30 => l_array_source_30(Idx)
161567  , p_source_41 => g_array_event(l_event_id).array_value_num('source_41')
161568  , p_source_53 => l_array_source_53(Idx)
161569  , p_source_55 => l_array_source_55(Idx)
161570  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
161571  , p_source_65 => l_array_source_65(Idx)
161572  , p_source_66 => l_array_source_66(Idx)
161573  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
161574  , p_source_68 => l_array_source_68(Idx)
161575  , p_source_69 => l_array_source_69(Idx)
161576  , p_source_70 => l_array_source_70(Idx)
161577  , p_source_71 => l_array_source_71(Idx)
161578  , p_source_72 => l_array_source_72(Idx)
161579  , p_source_77 => l_array_source_77(Idx)
161580  , p_source_78 => l_array_source_78(Idx)
161581  , p_source_79 => l_array_source_79(Idx)
161585  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
161582  , p_source_80 => l_array_source_80(Idx)
161583  , p_source_80_meaning => l_array_source_80_meaning(Idx)
161584  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
161586  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
161587  , p_source_86 => l_array_source_86(Idx)
161588  , p_source_87 => l_array_source_87(Idx)
161589  , p_source_88 => l_array_source_88(Idx)
161590  , p_source_89 => l_array_source_89(Idx)
161591  , p_source_90 => l_array_source_90(Idx)
161592  , p_source_91 => l_array_source_91(Idx)
161593  , p_source_125 => l_array_source_125(Idx)
161594  , p_source_127 => l_array_source_127(Idx)
161595  , p_source_132 => l_array_source_132(Idx)
161596  , p_source_133 => l_array_source_133(Idx)
161597  , p_source_134 => l_array_source_134(Idx)
161598  , p_source_136 => l_array_source_136(Idx)
161599  , p_source_141 => l_array_source_141(Idx)
161600  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
161601  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
161602  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
161603  , p_source_146 => l_array_source_146(Idx)
161604  , p_source_147 => l_array_source_147(Idx)
161605  , p_source_148 => l_array_source_148(Idx)
161606  , p_source_149 => l_array_source_149(Idx)
161607  );
161608 If(l_balance_type_code = 'A') THEN
161609   l_actual_gain_loss_ref := l_gain_or_loss_ref;
161610 END IF;
161611 
161612 --
161613 
161614       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
161615       -- or secondary ledger that has different currency with primary
161616       -- or alc that is calculated by sla
161617       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
161618             (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'))
161619 
161620 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
161621 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
161622           AND (l_actual_flag = 'A')) THEN
161623         XLA_AE_LINES_PKG.CreateGainOrLossLines(
161624           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
161625          ,p_application_id   => p_application_id
161626          ,p_amb_context_code => 'DEFAULT'
161627          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
161628          ,p_event_class_code => C_EVENT_CLASS_CODE
161629          ,p_event_type_code  => C_EVENT_TYPE_CODE
161630          
161631          ,p_gain_ccid        => -1
161632          ,p_loss_ccid        => -1
161633 
161634          ,p_actual_flag      => l_actual_flag
161635          ,p_enc_flag         => null
161636          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
161637          ,p_enc_g_l_ref      => null
161638          );
161639       END IF;
161640    END IF;
161641 END IF;
161642 
161643    ELSE
161644       --
161645       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
161646       --
161647       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
161648          trace
161649             (p_msg      => 'Trancaction revesal option is Y'
161650             ,p_level    => C_LEVEL_STATEMENT
161651             ,p_module   => l_log_module);
161652       END IF;
161653    END IF;
161654 
161655 END LOOP;
161656 l_result := XLA_AE_LINES_PKG.InsertLines ;
161657 end loop;
161658 close line_cur;
161659 
161660 
161661 --
161662 -- insert headers into xla_ae_headers_gt table
161663 --
161664 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
161665 
161666 -- insert into errors table here.
161667 
161668 END LOOP;
161669 
161670 --
161671 -- 4865292
161672 --
161673 -- Compare g_hdr_extract_count with event count in
161674 -- CreateHeadersAndLines.
161675 --
161676 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
161677 
161678 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
161679    trace (p_msg     => '# rows extracted from header extract objects '
161680                     || ' (running total): '
161681                     || g_hdr_extract_count
161682          ,p_level   => C_LEVEL_STATEMENT
161683          ,p_module  => l_log_module);
161684 END IF;
161685 
161686 CLOSE header_cur;
161687 --
161688 
161689 --
161690 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
161691    trace
161692       (p_msg      => 'END of EventClass_235'
161693       ,p_level    => C_LEVEL_PROCEDURE
161694       ,p_module   => l_log_module);
161695 END IF;
161696 --
161697 RETURN l_result;
161698 EXCEPTION
161699 WHEN xla_exceptions_pkg.application_exception THEN
161700    
161701 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
161702 
161703    
161704 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
161705 
161706    RAISE;
161707 
161708 WHEN NO_DATA_FOUND THEN
161709 
161710 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
161711 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
161712 
161713 FOR header_record IN header_cur
161714 LOOP
161715     l_array_header_events(header_record.event_id) := header_record.event_id;
161716 END LOOP;
161717 
161718 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
161719 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
161720 
161721 fnd_file.put_line(fnd_file.LOG, '                    ');
161722 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
161723 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
161724 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
161728 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
161725 
161726 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
161727 LOOP
161729 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
161730         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
161731 	END IF;
161732 END LOOP;
161733 
161734 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
161735 fnd_file.put_line(fnd_file.LOG, '                    ');
161736 
161737 
161738 xla_exceptions_pkg.raise_message
161739       (p_location => 'XLA_00200_AAD_S_000002_PKG.EventClass_235');
161740 
161741 
161742 WHEN OTHERS THEN
161743    xla_exceptions_pkg.raise_message
161744       (p_location => 'XLA_00200_AAD_S_000002_PKG.EventClass_235');
161745 END EventClass_235;
161746 --
161747 
161748 ---------------------------------------
161749 --
161750 -- PRIVATE PROCEDURE
161751 --         insert_sources_236
161752 --
161753 ----------------------------------------
161754 --
161755 PROCEDURE insert_sources_236(
161756                                 p_target_ledger_id       IN NUMBER
161757                               , p_language               IN VARCHAR2
161758                               , p_sla_ledger_id          IN NUMBER
161759                               , p_pad_start_date         IN DATE
161760                               , p_pad_end_date           IN DATE
161761                          )
161762 IS
161763 
161764 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENTS_ALL';
161765 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'PREPAYMENTS';
161766 p_apps_owner                   VARCHAR2(30);
161767 l_log_module                   VARCHAR2(240);
161768 BEGIN
161769 IF g_log_enabled THEN
161770       l_log_module := C_DEFAULT_MODULE||'.insert_sources_236';
161771 END IF;
161772 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
161773 
161774       trace
161775          (p_msg      => 'BEGIN of insert_sources_236'
161776          ,p_level    => C_LEVEL_PROCEDURE
161777          ,p_module   => l_log_module);
161778 
161779 END IF;
161780 
161781 -- select APPS owner
161782 SELECT oracle_username
161783   INTO p_apps_owner
161784   FROM fnd_oracle_userid
161785  WHERE read_only_flag = 'U'
161786 ;
161787 
161788 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
161789       trace
161790          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
161791                         ' - p_language = '||p_language||
161792                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
161793                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
161794                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
161795                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
161796          ,p_level    => C_LEVEL_STATEMENT
161797          ,p_module   => l_log_module);
161798 END IF;
161799 
161800 
161801 --
161802 INSERT INTO xla_diag_sources --hdr2
161803 (
161804         event_id
161805       , ledger_id
161806       , sla_ledger_id
161807       , description_language
161808       , object_name
161809       , object_type_code
161810       , line_number
161811       , source_application_id
161812       , source_type_code
161813       , source_code
161814       , source_value
161815       , source_meaning
161816       , created_by
161817       , creation_date
161818       , last_update_date
161819       , last_updated_by
161820       , last_update_login
161821       , program_update_date
161822       , program_application_id
161823       , program_id
161824       , request_id
161825 )
161826 SELECT
161827         event_id
161828       , p_target_ledger_id
161829       , p_sla_ledger_id
161830       , p_language
161831       , object_name
161832       , object_type_code
161833       , line_number
161834       , source_application_id
161835       , source_type_code
161836       , source_code
161837       , SUBSTR(source_value ,1,1996)
161838       , SUBSTR(source_meaning ,1,200)
161839       , xla_environment_pkg.g_Usr_Id
161840       , TRUNC(SYSDATE)
161841       , TRUNC(SYSDATE)
161842       , xla_environment_pkg.g_Usr_Id
161843       , xla_environment_pkg.g_Login_Id
161844       , TRUNC(SYSDATE)
161845       , xla_environment_pkg.g_Prog_Appl_Id
161846       , xla_environment_pkg.g_Prog_Id
161847       , xla_environment_pkg.g_Req_Id
161848   FROM (
161849        SELECT xet.event_id                  event_id
161850             , 0                          line_number
161851             , CASE r
161852                WHEN 1 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161853                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161854                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161855                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161856                 WHEN 5 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161857                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161858                 WHEN 7 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
161859                 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
161860                 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
161861                 WHEN 10 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
161862                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161863                 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
161864                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161865                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161866                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161867                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161868                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161869                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161870                 WHEN 19 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161874                ELSE null
161871                 WHEN 20 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161872                 WHEN 21 THEN 'AP_INVOICE_EXTRACT_HEADER_V' 
161873                 
161875               END                           object_name
161876             , CASE r
161877                 WHEN 1 THEN 'HEADER' 
161878                 WHEN 2 THEN 'HEADER' 
161879                 WHEN 3 THEN 'HEADER' 
161880                 WHEN 4 THEN 'HEADER' 
161881                 WHEN 5 THEN 'HEADER' 
161882                 WHEN 6 THEN 'HEADER' 
161883                 WHEN 7 THEN 'HEADER' 
161884                 WHEN 8 THEN 'HEADER' 
161885                 WHEN 9 THEN 'HEADER' 
161886                 WHEN 10 THEN 'HEADER' 
161887                 WHEN 11 THEN 'HEADER' 
161888                 WHEN 12 THEN 'HEADER' 
161889                 WHEN 13 THEN 'HEADER' 
161890                 WHEN 14 THEN 'HEADER' 
161891                 WHEN 15 THEN 'HEADER' 
161892                 WHEN 16 THEN 'HEADER' 
161893                 WHEN 17 THEN 'HEADER' 
161894                 WHEN 18 THEN 'HEADER' 
161895                 WHEN 19 THEN 'HEADER' 
161896                 WHEN 20 THEN 'HEADER' 
161897                 WHEN 21 THEN 'HEADER' 
161898                 
161899                 ELSE null
161900               END                           object_type_code
161901             , CASE r
161902                 WHEN 1 THEN '200' 
161903                 WHEN 2 THEN '200' 
161904                 WHEN 3 THEN '200' 
161905                 WHEN 4 THEN '200' 
161906                 WHEN 5 THEN '200' 
161907                 WHEN 6 THEN '200' 
161908                 WHEN 7 THEN '200' 
161909                 WHEN 8 THEN '200' 
161910                 WHEN 9 THEN '200' 
161911                 WHEN 10 THEN '200' 
161912                 WHEN 11 THEN '200' 
161913                 WHEN 12 THEN '200' 
161914                 WHEN 13 THEN '200' 
161915                 WHEN 14 THEN '200' 
161916                 WHEN 15 THEN '200' 
161917                 WHEN 16 THEN '200' 
161918                 WHEN 17 THEN '200' 
161919                 WHEN 18 THEN '200' 
161920                 WHEN 19 THEN '200' 
161921                 WHEN 20 THEN '200' 
161922                 WHEN 21 THEN '200' 
161923                 
161924                 ELSE null
161925               END                           source_application_id
161926             , 'S'             source_type_code
161927             , CASE r
161928                 WHEN 1 THEN 'INV_TRANSACTION_NUMBER' 
161929                 WHEN 2 THEN 'AI_INVOICE_DATE' 
161930                 WHEN 3 THEN 'INV_DOC_SEQUENCE_CATEGORY' 
161931                 WHEN 4 THEN 'DOC_SEQUENCE_NAME' 
161932                 WHEN 5 THEN 'INV_DOC_SEQUENCE_VALUE' 
161933                 WHEN 6 THEN 'AI_DESCRIPTION' 
161934                 WHEN 7 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
161935                 WHEN 8 THEN 'ASP_RATE_VAR_GAIN_CCID' 
161936                 WHEN 9 THEN 'ASP_RATE_VAR_LOSS_CCID' 
161937                 WHEN 10 THEN 'ASP_BUILD_PREPAY_ACCOUNTS_FLAG' 
161938                 WHEN 11 THEN 'AI_ACCTS_PAY_CCID' 
161939                 WHEN 12 THEN 'ASP_AUTO_OFFSET_FLAG' 
161940                 WHEN 13 THEN 'AI_INVOICE_ID' 
161941                 WHEN 14 THEN 'AI_INVOICE_CURRENCY_CODE' 
161942                 WHEN 15 THEN 'AI_VENDOR_ID' 
161943                 WHEN 16 THEN 'AI_VENDOR_SITE_ID' 
161944                 WHEN 17 THEN 'THIRD_PARTY_TYPE' 
161945                 WHEN 18 THEN 'INV_EXCHANGE_DATE' 
161946                 WHEN 19 THEN 'INV_EXCHANGE_RATE' 
161947                 WHEN 20 THEN 'INV_EXCHANGE_RATE_TYPE' 
161948                 WHEN 21 THEN 'INV_DOC_SEQUENCE_IDENTIFIER' 
161949                 
161950                 ELSE null
161951               END                           source_code
161952             , CASE r
161953                 WHEN 1 THEN TO_CHAR(h2.INV_TRANSACTION_NUMBER)
161954                 WHEN 2 THEN TO_CHAR(h2.AI_INVOICE_DATE)
161955                 WHEN 3 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_CATEGORY)
161956                 WHEN 4 THEN TO_CHAR(h2.DOC_SEQUENCE_NAME)
161957                 WHEN 5 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_VALUE)
161958                 WHEN 6 THEN TO_CHAR(h2.AI_DESCRIPTION)
161959                 WHEN 7 THEN TO_CHAR(h4.ASP_AUTOMATIC_OFFSETS_VALUE)
161960                 WHEN 8 THEN TO_CHAR(h4.ASP_RATE_VAR_GAIN_CCID)
161961                 WHEN 9 THEN TO_CHAR(h4.ASP_RATE_VAR_LOSS_CCID)
161962                 WHEN 10 THEN TO_CHAR(h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG)
161963                 WHEN 11 THEN TO_CHAR(h2.AI_ACCTS_PAY_CCID)
161964                 WHEN 12 THEN TO_CHAR(h4.ASP_AUTO_OFFSET_FLAG)
161965                 WHEN 13 THEN TO_CHAR(h2.AI_INVOICE_ID)
161966                 WHEN 14 THEN TO_CHAR(h2.AI_INVOICE_CURRENCY_CODE)
161967                 WHEN 15 THEN TO_CHAR(h2.AI_VENDOR_ID)
161968                 WHEN 16 THEN TO_CHAR(h2.AI_VENDOR_SITE_ID)
161969                 WHEN 17 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
161970                 WHEN 18 THEN TO_CHAR(h2.INV_EXCHANGE_DATE)
161971                 WHEN 19 THEN TO_CHAR(h2.INV_EXCHANGE_RATE)
161972                 WHEN 20 THEN TO_CHAR(h2.INV_EXCHANGE_RATE_TYPE)
161973                 WHEN 21 THEN TO_CHAR(h2.INV_DOC_SEQUENCE_IDENTIFIER)
161974                 
161975                 ELSE null
161976               END                           source_value
161977             , CASE r
161978                 WHEN 7 THEN fvl15.meaning
161979                 WHEN 10 THEN fvl31.meaning
161980                 WHEN 12 THEN fvl47.meaning
161981                 
161982                 ELSE null
161983               END               source_meaning
161984          FROM xla_events_gt     xet  
161985       , AP_INVOICE_EXTRACT_HEADER_V  h2
161986       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
161987   , fnd_lookup_values    fvl15
161988   , fnd_lookup_values    fvl31
161989   , fnd_lookup_values    fvl47
161990              ,(select rownum r from all_objects where rownum <= 21 and owner = p_apps_owner)
161991          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
161995   AND fvl15.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
161992            AND xet.event_class_code = C_EVENT_CLASS_CODE
161993               AND h2.event_id = xet.event_id
161994  AND h4.asp_org_id = h2.ai_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
161996   AND fvl15.view_application_id(+) = 200
161997   AND fvl15.language(+)            = USERENV('LANG')
161998      AND fvl31.lookup_type(+)         = 'YES_NO'
161999   AND fvl31.lookup_code(+)         = h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG
162000   AND fvl31.view_application_id(+) = 0
162001   AND fvl31.language(+)            = USERENV('LANG')
162002      AND fvl47.lookup_type(+)         = 'YES_NO'
162003   AND fvl47.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
162004   AND fvl47.view_application_id(+) = 0
162005   AND fvl47.language(+)            = USERENV('LANG')
162006   
162007 )
162008 ;
162009 --
162010 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
162011 
162012       trace
162013          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
162014          ,p_level    => C_LEVEL_STATEMENT
162015          ,p_module   => l_log_module);
162016 
162017 END IF;
162018 --
162019 
162020 
162021 
162022 --
162023 INSERT INTO xla_diag_sources  --line2
162024 (
162025         event_id
162026       , ledger_id
162027       , sla_ledger_id
162028       , description_language
162029       , object_name
162030       , object_type_code
162031       , line_number
162032       , source_application_id
162033       , source_type_code
162034       , source_code
162035       , source_value
162036       , source_meaning
162037       , created_by
162038       , creation_date
162039       , last_update_date
162040       , last_updated_by
162041       , last_update_login
162042       , program_update_date
162043       , program_application_id
162044       , program_id
162045       , request_id
162046 )
162047 SELECT  event_id
162048       , p_target_ledger_id
162049       , p_sla_ledger_id
162050       , p_language
162051       , object_name
162052       , object_type_code
162053       , line_number
162054       , source_application_id
162055       , source_type_code
162056       , source_code
162057       , SUBSTR(source_value,1,1996)
162058       , SUBSTR(source_meaning ,1,200)
162059       , xla_environment_pkg.g_Usr_Id
162060       , TRUNC(SYSDATE)
162061       , TRUNC(SYSDATE)
162062       , xla_environment_pkg.g_Usr_Id
162063       , xla_environment_pkg.g_Login_Id
162064       , TRUNC(SYSDATE)
162065       , xla_environment_pkg.g_Prog_Appl_Id
162066       , xla_environment_pkg.g_Prog_Id
162067       , xla_environment_pkg.g_Req_Id
162068   FROM (
162069        SELECT xet.event_id                  event_id
162070             , l1.line_number                 line_number
162071             , CASE r
162072                WHEN 1 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162073                 WHEN 2 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162074                 WHEN 3 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162075                 WHEN 4 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162076                 WHEN 5 THEN 'AP_PO_HEADERS_EXTRACT_V' 
162077                 WHEN 6 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162078                 WHEN 7 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162079                 WHEN 8 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162080                 WHEN 9 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162081                 WHEN 10 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162082                 WHEN 11 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162083                 WHEN 12 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162084                 WHEN 13 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162085                 WHEN 14 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162086                 WHEN 15 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162087                 WHEN 16 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162088                 WHEN 17 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162089                 WHEN 18 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162090                 WHEN 19 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162091                 WHEN 20 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162092                 WHEN 21 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162093                 WHEN 22 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162094                 WHEN 23 THEN 'AP_PO_HEADERS_EXTRACT_V' 
162095                 WHEN 24 THEN 'AP_PO_HEADERS_EXTRACT_V' 
162096                 WHEN 25 THEN 'AP_PO_HEADERS_EXTRACT_V' 
162097                 WHEN 26 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162098                 WHEN 27 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162099                 WHEN 28 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162100                 WHEN 29 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162101                 WHEN 30 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162102                 WHEN 31 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162103                 WHEN 32 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
162104                 WHEN 33 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
162105                 WHEN 34 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162106                 WHEN 35 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162107                 WHEN 36 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162108                 WHEN 37 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162109                 WHEN 38 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162110                 WHEN 39 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162111                 WHEN 40 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162112                 WHEN 41 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162113                 WHEN 42 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162114                 WHEN 43 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
162115                 WHEN 44 THEN 'AP_INVOICE_EXTRACT_DETAILS_V' 
162116                 
162117                ELSE null
162118               END                           object_name
162119             , CASE r
162120                 WHEN 1 THEN 'LINE' 
162121                 WHEN 2 THEN 'LINE' 
162122                 WHEN 3 THEN 'LINE' 
162126                 WHEN 7 THEN 'LINE' 
162123                 WHEN 4 THEN 'LINE' 
162124                 WHEN 5 THEN 'LINE' 
162125                 WHEN 6 THEN 'LINE' 
162127                 WHEN 8 THEN 'LINE' 
162128                 WHEN 9 THEN 'LINE' 
162129                 WHEN 10 THEN 'LINE' 
162130                 WHEN 11 THEN 'LINE' 
162131                 WHEN 12 THEN 'LINE' 
162132                 WHEN 13 THEN 'LINE' 
162133                 WHEN 14 THEN 'LINE' 
162134                 WHEN 15 THEN 'LINE' 
162135                 WHEN 16 THEN 'LINE' 
162136                 WHEN 17 THEN 'LINE' 
162137                 WHEN 18 THEN 'LINE' 
162138                 WHEN 19 THEN 'LINE' 
162139                 WHEN 20 THEN 'LINE' 
162140                 WHEN 21 THEN 'LINE' 
162141                 WHEN 22 THEN 'LINE' 
162142                 WHEN 23 THEN 'LINE' 
162143                 WHEN 24 THEN 'LINE' 
162144                 WHEN 25 THEN 'LINE' 
162145                 WHEN 26 THEN 'LINE' 
162146                 WHEN 27 THEN 'LINE' 
162147                 WHEN 28 THEN 'LINE' 
162148                 WHEN 29 THEN 'LINE' 
162149                 WHEN 30 THEN 'LINE' 
162150                 WHEN 31 THEN 'LINE' 
162151                 WHEN 32 THEN 'LINE' 
162152                 WHEN 33 THEN 'LINE' 
162153                 WHEN 34 THEN 'LINE' 
162154                 WHEN 35 THEN 'LINE' 
162155                 WHEN 36 THEN 'LINE' 
162156                 WHEN 37 THEN 'LINE' 
162157                 WHEN 38 THEN 'LINE' 
162158                 WHEN 39 THEN 'LINE' 
162159                 WHEN 40 THEN 'LINE' 
162160                 WHEN 41 THEN 'LINE' 
162161                 WHEN 42 THEN 'LINE' 
162162                 WHEN 43 THEN 'LINE' 
162163                 WHEN 44 THEN 'LINE' 
162164                 
162165                 ELSE null
162166               END                           object_type_code
162167             , CASE r
162168                 WHEN 1 THEN '200' 
162169                 WHEN 2 THEN '200' 
162170                 WHEN 3 THEN '200' 
162171                 WHEN 4 THEN '200' 
162172                 WHEN 5 THEN '200' 
162173                 WHEN 6 THEN '200' 
162174                 WHEN 7 THEN '200' 
162175                 WHEN 8 THEN '200' 
162176                 WHEN 9 THEN '200' 
162177                 WHEN 10 THEN '200' 
162178                 WHEN 11 THEN '200' 
162179                 WHEN 12 THEN '200' 
162180                 WHEN 13 THEN '200' 
162181                 WHEN 14 THEN '200' 
162182                 WHEN 15 THEN '200' 
162183                 WHEN 16 THEN '200' 
162184                 WHEN 17 THEN '200' 
162185                 WHEN 18 THEN '200' 
162186                 WHEN 19 THEN '200' 
162187                 WHEN 20 THEN '200' 
162188                 WHEN 21 THEN '200' 
162189                 WHEN 22 THEN '200' 
162190                 WHEN 23 THEN '200' 
162191                 WHEN 24 THEN '200' 
162192                 WHEN 25 THEN '200' 
162193                 WHEN 26 THEN '200' 
162194                 WHEN 27 THEN '200' 
162195                 WHEN 28 THEN '200' 
162196                 WHEN 29 THEN '200' 
162197                 WHEN 30 THEN '200' 
162198                 WHEN 31 THEN '200' 
162199                 WHEN 32 THEN '200' 
162200                 WHEN 33 THEN '200' 
162201                 WHEN 34 THEN '200' 
162202                 WHEN 35 THEN '200' 
162203                 WHEN 36 THEN '200' 
162204                 WHEN 37 THEN '200' 
162205                 WHEN 38 THEN '200' 
162206                 WHEN 39 THEN '200' 
162207                 WHEN 40 THEN '200' 
162208                 WHEN 41 THEN '200' 
162209                 WHEN 42 THEN '200' 
162210                 WHEN 43 THEN '200' 
162211                 WHEN 44 THEN '200' 
162212                 
162213                 ELSE null
162214               END                           source_application_id
162215             , 'S'             source_type_code
162216             , CASE r
162217                 WHEN 1 THEN 'AID_DESCRIPTION' 
162218                 WHEN 2 THEN 'INV_DIST_BASE_AMOUNT' 
162219                 WHEN 3 THEN 'RELATED_INV_DIST_DEST_TYPE' 
162220                 WHEN 4 THEN 'AID_DIST_CCID' 
162221                 WHEN 5 THEN 'PO_NUMBER' 
162222                 WHEN 6 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
162223                 WHEN 7 THEN 'AWT_RELATED_DIST_ACCOUNT' 
162224                 WHEN 8 THEN 'POD_CCID' 
162225                 WHEN 9 THEN 'SELF_ASSESSED_TAX_ACCOUNT' 
162226                 WHEN 10 THEN 'ASAT_LIAB_CCID' 
162227                 WHEN 11 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
162228                 WHEN 12 THEN 'DISTRIBUTION_LINK_TYPE' 
162229                 WHEN 13 THEN 'ALLOC_TO_MAIN_DIST_ID' 
162230                 WHEN 14 THEN 'AID_INVOICE_DIST_ID' 
162231                 WHEN 15 THEN 'UPG_ENC_CR_CCID' 
162232                 WHEN 16 THEN 'UPG_ENC_CR_AMT' 
162233                 WHEN 17 THEN 'UPG_ENC_CR_BASE_AMT' 
162234                 WHEN 18 THEN 'UPG_ENC_DR_CCID' 
162235                 WHEN 19 THEN 'UPG_ENC_DR_AMT' 
162236                 WHEN 20 THEN 'UPG_ENC_DR_BASE_AMT' 
162237                 WHEN 21 THEN 'UPG_AP_ENCUM_OPTION' 
162238                 WHEN 22 THEN 'AID_AMOUNT' 
162239                 WHEN 23 THEN 'POH_RATE_DATE' 
162240                 WHEN 24 THEN 'POH_RATE' 
162241                 WHEN 25 THEN 'POH_RATE_TYPE' 
162242                 WHEN 26 THEN 'DEFERRED_END_DATE' 
162243                 WHEN 27 THEN 'DEFERRED_OPTION' 
162244                 WHEN 28 THEN 'DEFERRED_START_DATE' 
162245                 WHEN 29 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
162246                 WHEN 30 THEN 'AID_PARENT_REVERSAL_ID' 
162247                 WHEN 31 THEN 'AID_STAT_AMOUNT' 
162248                 WHEN 32 THEN 'TAX_LINE_ID' 
162249                 WHEN 33 THEN 'REC_NREC_TAX_DIST_ID' 
162250                 WHEN 34 THEN 'SUMMARY_TAX_LINE_ID' 
162251                 WHEN 35 THEN 'UPG_CR_ENC_TYPE_ID' 
162252                 WHEN 36 THEN 'UPG_DR_ENC_TYPE_ID' 
162256                 WHEN 40 THEN 'BUS_FLOW_INV_DIST_ID' 
162253                 WHEN 37 THEN 'BUS_FLOW_AP_APP_ID' 
162254                 WHEN 38 THEN 'BUS_FLOW_INV_DIST_TYPE' 
162255                 WHEN 39 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
162257                 WHEN 41 THEN 'BUS_FLOW_INV_ID' 
162258                 WHEN 42 THEN 'POD_ACCRUE_ON_RECEIPT_FLAG' 
162259                 WHEN 43 THEN 'DEF_REC_SETTLEMENT_OPTION_CODE' 
162260                 WHEN 44 THEN 'SELF_ASSESSED_TAX_FLAG' 
162261                 
162262                 ELSE null
162263               END                           source_code
162264             , CASE r
162265                 WHEN 1 THEN TO_CHAR(l1.AID_DESCRIPTION)
162266                 WHEN 2 THEN TO_CHAR(l1.INV_DIST_BASE_AMOUNT)
162267                 WHEN 3 THEN TO_CHAR(l1.RELATED_INV_DIST_DEST_TYPE)
162268                 WHEN 4 THEN TO_CHAR(l1.AID_DIST_CCID)
162269                 WHEN 5 THEN TO_CHAR(l3.PO_NUMBER)
162270                 WHEN 6 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
162271                 WHEN 7 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
162272                 WHEN 8 THEN TO_CHAR(l1.POD_CCID)
162273                 WHEN 9 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_ACCOUNT)
162274                 WHEN 10 THEN TO_CHAR(l1.ASAT_LIAB_CCID)
162275                 WHEN 11 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
162276                 WHEN 12 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
162277                 WHEN 13 THEN TO_CHAR(l1.ALLOC_TO_MAIN_DIST_ID)
162278                 WHEN 14 THEN TO_CHAR(l1.AID_INVOICE_DIST_ID)
162279                 WHEN 15 THEN TO_CHAR(l1.UPG_ENC_CR_CCID)
162280                 WHEN 16 THEN TO_CHAR(l1.UPG_ENC_CR_AMT)
162281                 WHEN 17 THEN TO_CHAR(l1.UPG_ENC_CR_BASE_AMT)
162282                 WHEN 18 THEN TO_CHAR(l1.UPG_ENC_DR_CCID)
162283                 WHEN 19 THEN TO_CHAR(l1.UPG_ENC_DR_AMT)
162284                 WHEN 20 THEN TO_CHAR(l1.UPG_ENC_DR_BASE_AMT)
162285                 WHEN 21 THEN TO_CHAR(l1.UPG_AP_ENCUM_OPTION)
162286                 WHEN 22 THEN TO_CHAR(l1.AID_AMOUNT)
162287                 WHEN 23 THEN TO_CHAR(l3.POH_RATE_DATE)
162288                 WHEN 24 THEN TO_CHAR(l3.POH_RATE)
162289                 WHEN 25 THEN TO_CHAR(l3.POH_RATE_TYPE)
162290                 WHEN 26 THEN TO_CHAR(l1.DEFERRED_END_DATE)
162291                 WHEN 27 THEN TO_CHAR(l1.DEFERRED_OPTION)
162292                 WHEN 28 THEN TO_CHAR(l1.DEFERRED_START_DATE)
162293                 WHEN 29 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
162294                 WHEN 30 THEN TO_CHAR(l1.AID_PARENT_REVERSAL_ID)
162295                 WHEN 31 THEN TO_CHAR(l1.AID_STAT_AMOUNT)
162296                 WHEN 32 THEN TO_CHAR(l5.TAX_LINE_ID)
162297                 WHEN 33 THEN TO_CHAR(l6.REC_NREC_TAX_DIST_ID)
162298                 WHEN 34 THEN TO_CHAR(l1.SUMMARY_TAX_LINE_ID)
162299                 WHEN 35 THEN TO_CHAR(l1.UPG_CR_ENC_TYPE_ID)
162300                 WHEN 36 THEN TO_CHAR(l1.UPG_DR_ENC_TYPE_ID)
162301                 WHEN 37 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
162302                 WHEN 38 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
162303                 WHEN 39 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
162304                 WHEN 40 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
162305                 WHEN 41 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
162306                 WHEN 42 THEN TO_CHAR(l1.POD_ACCRUE_ON_RECEIPT_FLAG)
162307                 WHEN 43 THEN TO_CHAR(l5.DEF_REC_SETTLEMENT_OPTION_CODE)
162308                 WHEN 44 THEN TO_CHAR(l1.SELF_ASSESSED_TAX_FLAG)
162309                 
162310                 ELSE null
162311               END                           source_value
162312             , CASE r
162313                 WHEN 3 THEN fvl22.meaning
162314                 WHEN 6 THEN fvl33.meaning
162315                 WHEN 29 THEN fvl80.meaning
162316                 WHEN 42 THEN fvl96.meaning
162317                 WHEN 43 THEN fvl137.meaning
162318                 WHEN 44 THEN fvl142.meaning
162319                 
162320                 ELSE null
162321               END               source_meaning
162322          FROM  xla_events_gt     xet  
162323         , AP_INVOICE_EXTRACT_DETAILS_V  l1
162324         , AP_PO_HEADERS_EXTRACT_V  l3
162325         , ZX_AP_DEF_TAX_EXTRACT_V  l5
162326         , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
162327   , fnd_lookup_values    fvl22
162328   , fnd_lookup_values    fvl33
162329   , fnd_lookup_values    fvl80
162330   , fnd_lookup_values    fvl96
162331   , fnd_lookup_values    fvl137
162332   , fnd_lookup_values    fvl142
162333             , (select rownum r from all_objects where rownum <= 44 and owner = p_apps_owner)
162334         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
162335           AND xet.event_class_code = C_EVENT_CLASS_CODE
162336             AND l1.event_id          = xet.event_id
162337  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 fvl22.lookup_type(+)         = 'DESTINATION TYPE'
162338   AND fvl22.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
162339   AND fvl22.view_application_id(+) = 201
162340   AND fvl22.language(+)            = USERENV('LANG')
162341      AND fvl33.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
162342   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
162343   AND fvl33.view_application_id(+) = 200
162344   AND fvl33.language(+)            = USERENV('LANG')
162345      AND fvl80.lookup_type(+)         = 'YES_NO'
162346   AND fvl80.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
162347   AND fvl80.view_application_id(+) = 0
162348   AND fvl80.language(+)            = USERENV('LANG')
162349      AND fvl96.lookup_type(+)         = 'YES_NO'
162350   AND fvl96.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
162351   AND fvl96.view_application_id(+) = 0
162352   AND fvl96.language(+)            = USERENV('LANG')
162353      AND fvl137.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
162354   AND fvl137.lookup_code(+)         = l5.DEF_REC_SETTLEMENT_OPTION_CODE
162355   AND fvl137.view_application_id(+) = 0
162356   AND fvl137.language(+)            = USERENV('LANG')
162360   AND fvl142.language(+)            = USERENV('LANG')
162357      AND fvl142.lookup_type(+)         = 'YES_NO'
162358   AND fvl142.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
162359   AND fvl142.view_application_id(+) = 0
162361   
162362 )
162363 ;
162364 --
162365 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
162366 
162367       trace
162368          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
162369          ,p_level    => C_LEVEL_STATEMENT
162370          ,p_module   => l_log_module);
162371 
162372 END IF;
162373 
162374 
162375 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
162376       trace
162377          (p_msg      => 'END of insert_sources_236'
162378          ,p_level    => C_LEVEL_PROCEDURE
162379          ,p_module   => l_log_module);
162380 END IF;
162381 EXCEPTION
162382   WHEN xla_exceptions_pkg.application_exception THEN
162383       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
162384             trace
162385                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
162386                ,p_level    => C_LEVEL_EXCEPTION
162387                ,p_module   => l_log_module);
162388       END IF;
162389       RAISE;
162390   WHEN OTHERS THEN
162391       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
162392             trace
162393                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
162394                ,p_level    => C_LEVEL_EXCEPTION
162395                ,p_module   => l_log_module);
162396        END IF;
162397        xla_exceptions_pkg.raise_message
162398            (p_location => 'XLA_00200_AAD_S_000002_PKG.insert_sources_236');
162399 END insert_sources_236;
162400 --
162401 
162402 ---------------------------------------
162403 --
162404 -- PRIVATE FUNCTION
162405 --         EventClass_236
162406 --
162407 ----------------------------------------
162408 --
162409 FUNCTION EventClass_236
162410        (p_application_id         IN NUMBER
162411        ,p_base_ledger_id         IN NUMBER
162412        ,p_target_ledger_id       IN NUMBER
162413        ,p_language               IN VARCHAR2
162414        ,p_currency_code          IN VARCHAR2
162415        ,p_sla_ledger_id          IN NUMBER
162416        ,p_pad_start_date         IN DATE
162417        ,p_pad_end_date           IN DATE
162418        ,p_primary_ledger_id      IN NUMBER)
162419 RETURN BOOLEAN IS
162420 --
162421 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'PREPAYMENTS_ALL';
162422 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'PREPAYMENTS';
162423 
162424 l_calculate_acctd_flag   VARCHAR2(1) :='N';
162425 l_calculate_g_l_flag     VARCHAR2(1) :='N';
162426 --
162427 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
162428 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
162429 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
162430 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
162431 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
162432 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
162433 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
162434 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
162435 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
162436 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
162437 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
162438 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
162439 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
162440 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
162441 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
162442 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
162443 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
162444 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
162445 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
162446 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
162447 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
162448 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
162449 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
162450 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
162451 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
162452 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
162453 
162454 l_event_id                             NUMBER;
162455 l_previous_event_id                    NUMBER;
162456 l_first_event_id                       NUMBER;
162457 l_last_event_id                        NUMBER;
162458 
162459 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
162460 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
162461 --
162462 --
162463 l_result                    BOOLEAN := TRUE;
162464 l_rows                      NUMBER  := 1000;
162465 l_event_type_name           VARCHAR2(80) := 'All';
162466 l_event_class_name          VARCHAR2(80) := 'Prepayments';
162467 l_description               VARCHAR2(4000);
162468 l_transaction_reversal      NUMBER;
162469 l_ae_header_id              NUMBER;
162470 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
162471 l_log_module                VARCHAR2(240);
162472 --
162473 l_acct_reversal_source      VARCHAR2(30);
162474 l_trx_reversal_source       VARCHAR2(30);
162475 
162476 l_continue_with_lines       BOOLEAN := TRUE;
162477 --
162478 l_acc_rev_gl_date_source    DATE;                      -- 4262811
162479 --
162480 type t_array_event_id is table of number index by binary_integer;
162481 
162485 l_actual_flag                        VARCHAR2(1) := NULL;
162482 l_rec_array_event                    t_rec_array_event;
162483 l_null_rec_array_event               t_rec_array_event;
162484 l_array_ae_header_id                 xla_number_array_type;
162486 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
162487 l_balance_type_code                  VARCHAR2(1) :=NULL;
162488 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
162489 
162490 --
162491 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
162492 --
162493 
162494 TYPE t_array_source_3 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_TRANSACTION_NUMBER%TYPE INDEX BY BINARY_INTEGER;
162495 TYPE t_array_source_4 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_DATE%TYPE INDEX BY BINARY_INTEGER;
162496 TYPE t_array_source_5 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_CATEGORY%TYPE INDEX BY BINARY_INTEGER;
162497 TYPE t_array_source_6 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.DOC_SEQUENCE_NAME%TYPE INDEX BY BINARY_INTEGER;
162498 TYPE t_array_source_7 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
162499 TYPE t_array_source_8 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
162500 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
162501 TYPE t_array_source_20 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
162502 TYPE t_array_source_23 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_RATE_VAR_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
162503 TYPE t_array_source_31 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_BUILD_PREPAY_ACCOUNTS_FLAG%TYPE INDEX BY BINARY_INTEGER;
162504 TYPE t_array_source_34 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_ACCTS_PAY_CCID%TYPE INDEX BY BINARY_INTEGER;
162505 TYPE t_array_source_47 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
162506 TYPE t_array_source_58 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_ID%TYPE INDEX BY BINARY_INTEGER;
162507 TYPE t_array_source_67 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
162508 TYPE t_array_source_81 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
162509 TYPE t_array_source_82 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.AI_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
162510 TYPE t_array_source_83 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
162511 TYPE t_array_source_143 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
162512 TYPE t_array_source_144 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
162513 TYPE t_array_source_145 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
162514 TYPE t_array_source_168 IS TABLE OF AP_INVOICE_EXTRACT_HEADER_V.INV_DOC_SEQUENCE_IDENTIFIER%TYPE INDEX BY BINARY_INTEGER;
162515 
162516 TYPE t_array_source_1 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DESCRIPTION%TYPE INDEX BY BINARY_INTEGER;
162517 TYPE t_array_source_21 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.INV_DIST_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
162518 TYPE t_array_source_22 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.RELATED_INV_DIST_DEST_TYPE%TYPE INDEX BY BINARY_INTEGER;
162519 TYPE t_array_source_30 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
162520 TYPE t_array_source_32 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.PO_NUMBER%TYPE INDEX BY BINARY_INTEGER;
162521 TYPE t_array_source_33 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
162522 TYPE t_array_source_43 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
162523 TYPE t_array_source_45 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.POD_CCID%TYPE INDEX BY BINARY_INTEGER;
162524 TYPE t_array_source_50 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
162525 TYPE t_array_source_51 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ASAT_LIAB_CCID%TYPE INDEX BY BINARY_INTEGER;
162526 TYPE t_array_source_53 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
162527 TYPE t_array_source_55 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
162528 TYPE t_array_source_57 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.ALLOC_TO_MAIN_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
162529 TYPE t_array_source_64 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_INVOICE_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
162530 TYPE t_array_source_65 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
162531 TYPE t_array_source_66 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_AMT%TYPE INDEX BY BINARY_INTEGER;
162532 TYPE t_array_source_68 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_CR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
162533 TYPE t_array_source_69 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
162534 TYPE t_array_source_70 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_AMT%TYPE INDEX BY BINARY_INTEGER;
162535 TYPE t_array_source_71 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_ENC_DR_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
162536 TYPE t_array_source_72 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_AP_ENCUM_OPTION%TYPE INDEX BY BINARY_INTEGER;
162537 TYPE t_array_source_73 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
162538 TYPE t_array_source_74 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
162539 TYPE t_array_source_75 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE%TYPE INDEX BY BINARY_INTEGER;
162540 TYPE t_array_source_76 IS TABLE OF AP_PO_HEADERS_EXTRACT_V.POH_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
162541 TYPE t_array_source_77 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_END_DATE%TYPE INDEX BY BINARY_INTEGER;
162542 TYPE t_array_source_78 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_OPTION%TYPE INDEX BY BINARY_INTEGER;
162543 TYPE t_array_source_79 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.DEFERRED_START_DATE%TYPE INDEX BY BINARY_INTEGER;
162544 TYPE t_array_source_80 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
162548 TYPE t_array_source_87 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
162545 TYPE t_array_source_84 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_PARENT_REVERSAL_ID%TYPE INDEX BY BINARY_INTEGER;
162546 TYPE t_array_source_85 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.AID_STAT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
162547 TYPE t_array_source_86 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
162549 TYPE t_array_source_88 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
162550 TYPE t_array_source_89 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_CR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
162551 TYPE t_array_source_90 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.UPG_DR_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
162552 TYPE t_array_source_91 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
162553 TYPE t_array_source_92 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
162554 TYPE t_array_source_93 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
162555 TYPE t_array_source_94 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
162556 TYPE t_array_source_95 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
162557 TYPE t_array_source_96 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.POD_ACCRUE_ON_RECEIPT_FLAG%TYPE INDEX BY BINARY_INTEGER;
162558 TYPE t_array_source_137 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.DEF_REC_SETTLEMENT_OPTION_CODE%TYPE INDEX BY BINARY_INTEGER;
162559 TYPE t_array_source_142 IS TABLE OF AP_INVOICE_EXTRACT_DETAILS_V.SELF_ASSESSED_TAX_FLAG%TYPE INDEX BY BINARY_INTEGER;
162560 
162561 l_array_source_3              t_array_source_3;
162562 l_array_source_4              t_array_source_4;
162563 l_array_source_5              t_array_source_5;
162564 l_array_source_6              t_array_source_6;
162565 l_array_source_7              t_array_source_7;
162566 l_array_source_8              t_array_source_8;
162567 l_array_source_15              t_array_source_15;
162568 l_array_source_15_meaning      t_array_lookup_meaning;
162569 l_array_source_20              t_array_source_20;
162570 l_array_source_23              t_array_source_23;
162571 l_array_source_31              t_array_source_31;
162572 l_array_source_31_meaning      t_array_lookup_meaning;
162573 l_array_source_34              t_array_source_34;
162574 l_array_source_47              t_array_source_47;
162575 l_array_source_47_meaning      t_array_lookup_meaning;
162576 l_array_source_58              t_array_source_58;
162577 l_array_source_67              t_array_source_67;
162578 l_array_source_81              t_array_source_81;
162579 l_array_source_82              t_array_source_82;
162580 l_array_source_83              t_array_source_83;
162581 l_array_source_143              t_array_source_143;
162582 l_array_source_144              t_array_source_144;
162583 l_array_source_145              t_array_source_145;
162584 l_array_source_168              t_array_source_168;
162585 
162586 l_array_source_1      t_array_source_1;
162587 l_array_source_21      t_array_source_21;
162588 l_array_source_22      t_array_source_22;
162589 l_array_source_22_meaning      t_array_lookup_meaning;
162590 l_array_source_30      t_array_source_30;
162591 l_array_source_32      t_array_source_32;
162592 l_array_source_33      t_array_source_33;
162593 l_array_source_33_meaning      t_array_lookup_meaning;
162594 l_array_source_43      t_array_source_43;
162595 l_array_source_45      t_array_source_45;
162596 l_array_source_50      t_array_source_50;
162597 l_array_source_51      t_array_source_51;
162598 l_array_source_53      t_array_source_53;
162599 l_array_source_55      t_array_source_55;
162600 l_array_source_57      t_array_source_57;
162601 l_array_source_64      t_array_source_64;
162602 l_array_source_65      t_array_source_65;
162603 l_array_source_66      t_array_source_66;
162604 l_array_source_68      t_array_source_68;
162605 l_array_source_69      t_array_source_69;
162606 l_array_source_70      t_array_source_70;
162607 l_array_source_71      t_array_source_71;
162608 l_array_source_72      t_array_source_72;
162609 l_array_source_73      t_array_source_73;
162610 l_array_source_74      t_array_source_74;
162611 l_array_source_75      t_array_source_75;
162612 l_array_source_76      t_array_source_76;
162613 l_array_source_77      t_array_source_77;
162614 l_array_source_78      t_array_source_78;
162615 l_array_source_79      t_array_source_79;
162616 l_array_source_80      t_array_source_80;
162617 l_array_source_80_meaning      t_array_lookup_meaning;
162618 l_array_source_84      t_array_source_84;
162619 l_array_source_85      t_array_source_85;
162620 l_array_source_86      t_array_source_86;
162621 l_array_source_87      t_array_source_87;
162622 l_array_source_88      t_array_source_88;
162623 l_array_source_89      t_array_source_89;
162624 l_array_source_90      t_array_source_90;
162625 l_array_source_91      t_array_source_91;
162626 l_array_source_92      t_array_source_92;
162627 l_array_source_93      t_array_source_93;
162628 l_array_source_94      t_array_source_94;
162629 l_array_source_95      t_array_source_95;
162630 l_array_source_96      t_array_source_96;
162631 l_array_source_96_meaning      t_array_lookup_meaning;
162632 l_array_source_137      t_array_source_137;
162633 l_array_source_137_meaning      t_array_lookup_meaning;
162634 l_array_source_142      t_array_source_142;
162635 l_array_source_142_meaning      t_array_lookup_meaning;
162636 
162637 --
162638 CURSOR header_cur
162639 IS
162640 SELECT /*+ leading(xet) cardinality(xet,1) */
162641 -- Event Class Code: PREPAYMENTS
162642     xet.entity_id
162643    ,xet.legal_entity_id
162644    ,xet.entity_code
162645    ,xet.transaction_number
162646    ,xet.event_id
162647    ,xet.event_class_code
162648    ,xet.event_type_code
162649    ,xet.event_number
162650    ,xet.event_date
162651    ,xet.transaction_date
162652    ,xet.reference_num_1
162653    ,xet.reference_num_2
162654    ,xet.reference_num_3
162658    ,xet.reference_char_3
162655    ,xet.reference_num_4
162656    ,xet.reference_char_1
162657    ,xet.reference_char_2
162659    ,xet.reference_char_4
162660    ,xet.reference_date_1
162661    ,xet.reference_date_2
162662    ,xet.reference_date_3
162663    ,xet.reference_date_4
162664    ,xet.event_created_by
162665    ,xet.budgetary_control_flag 
162666   , h2.INV_TRANSACTION_NUMBER    source_3
162667   , h2.AI_INVOICE_DATE    source_4
162668   , h2.INV_DOC_SEQUENCE_CATEGORY    source_5
162669   , h2.DOC_SEQUENCE_NAME    source_6
162670   , h2.INV_DOC_SEQUENCE_VALUE    source_7
162671   , h2.AI_DESCRIPTION    source_8
162672   , h4.ASP_AUTOMATIC_OFFSETS_VALUE    source_15
162673   , fvl15.meaning   source_15_meaning
162674   , h4.ASP_RATE_VAR_GAIN_CCID    source_20
162675   , h4.ASP_RATE_VAR_LOSS_CCID    source_23
162676   , h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG    source_31
162677   , fvl31.meaning   source_31_meaning
162678   , h2.AI_ACCTS_PAY_CCID    source_34
162679   , h4.ASP_AUTO_OFFSET_FLAG    source_47
162680   , fvl47.meaning   source_47_meaning
162681   , h2.AI_INVOICE_ID    source_58
162682   , h2.AI_INVOICE_CURRENCY_CODE    source_67
162683   , h2.AI_VENDOR_ID    source_81
162684   , h2.AI_VENDOR_SITE_ID    source_82
162685   , h2.THIRD_PARTY_TYPE    source_83
162686   , h2.INV_EXCHANGE_DATE    source_143
162687   , h2.INV_EXCHANGE_RATE    source_144
162688   , h2.INV_EXCHANGE_RATE_TYPE    source_145
162689   , h2.INV_DOC_SEQUENCE_IDENTIFIER    source_168
162690   FROM xla_events_gt     xet 
162691   , AP_INVOICE_EXTRACT_HEADER_V  h2
162692   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h4
162693   , fnd_lookup_values    fvl15
162694   , fnd_lookup_values    fvl31
162695   , fnd_lookup_values    fvl47
162696  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
162697    and xet.event_class_code = C_EVENT_CLASS_CODE
162698    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
162699  AND h4.asp_org_id = h2.ai_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
162700   AND fvl15.lookup_code(+)         = h4.ASP_AUTOMATIC_OFFSETS_VALUE
162701   AND fvl15.view_application_id(+) = 200
162702   AND fvl15.language(+)            = USERENV('LANG')
162703      AND fvl31.lookup_type(+)         = 'YES_NO'
162704   AND fvl31.lookup_code(+)         = h4.ASP_BUILD_PREPAY_ACCOUNTS_FLAG
162705   AND fvl31.view_application_id(+) = 0
162706   AND fvl31.language(+)            = USERENV('LANG')
162707      AND fvl47.lookup_type(+)         = 'YES_NO'
162708   AND fvl47.lookup_code(+)         = h4.ASP_AUTO_OFFSET_FLAG
162709   AND fvl47.view_application_id(+) = 0
162710   AND fvl47.language(+)            = USERENV('LANG')
162711   
162712  ORDER BY event_id
162713 ;
162714 
162715 
162716 --
162717 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
162718 IS
162719 SELECT  /*+ leading(xet) cardinality(xet,1) */
162720 -- Event Class Code: PREPAYMENTS
162721     xet.entity_id
162722    ,xet.legal_entity_id
162723    ,xet.entity_code
162724    ,xet.transaction_number
162725    ,xet.event_id
162726    ,xet.event_class_code
162727    ,xet.event_type_code
162728    ,xet.event_number
162729    ,xet.event_date
162730    ,xet.transaction_date
162731    ,xet.reference_num_1
162732    ,xet.reference_num_2
162733    ,xet.reference_num_3
162734    ,xet.reference_num_4
162735    ,xet.reference_char_1
162736    ,xet.reference_char_2
162737    ,xet.reference_char_3
162738    ,xet.reference_char_4
162739    ,xet.reference_date_1
162740    ,xet.reference_date_2
162741    ,xet.reference_date_3
162742    ,xet.reference_date_4
162743    ,xet.event_created_by
162744    ,xet.budgetary_control_flag
162745  , l1.LINE_NUMBER  
162746   , l1.AID_DESCRIPTION    source_1
162747   , l1.INV_DIST_BASE_AMOUNT    source_21
162748   , l1.RELATED_INV_DIST_DEST_TYPE    source_22
162749   , fvl22.meaning   source_22_meaning
162750   , l1.AID_DIST_CCID    source_30
162751   , l3.PO_NUMBER    source_32
162752   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_33
162753   , fvl33.meaning   source_33_meaning
162754   , l1.AWT_RELATED_DIST_ACCOUNT    source_43
162755   , l1.POD_CCID    source_45
162756   , l1.SELF_ASSESSED_TAX_ACCOUNT    source_50
162757   , l1.ASAT_LIAB_CCID    source_51
162758   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_53
162759   , l1.DISTRIBUTION_LINK_TYPE    source_55
162760   , l1.ALLOC_TO_MAIN_DIST_ID    source_57
162761   , l1.AID_INVOICE_DIST_ID    source_64
162762   , l1.UPG_ENC_CR_CCID    source_65
162763   , l1.UPG_ENC_CR_AMT    source_66
162764   , l1.UPG_ENC_CR_BASE_AMT    source_68
162765   , l1.UPG_ENC_DR_CCID    source_69
162766   , l1.UPG_ENC_DR_AMT    source_70
162767   , l1.UPG_ENC_DR_BASE_AMT    source_71
162768   , l1.UPG_AP_ENCUM_OPTION    source_72
162769   , l1.AID_AMOUNT    source_73
162770   , l3.POH_RATE_DATE    source_74
162771   , l3.POH_RATE    source_75
162772   , l3.POH_RATE_TYPE    source_76
162773   , l1.DEFERRED_END_DATE    source_77
162774   , l1.DEFERRED_OPTION    source_78
162775   , l1.DEFERRED_START_DATE    source_79
162776   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_80
162777   , fvl80.meaning   source_80_meaning
162778   , l1.AID_PARENT_REVERSAL_ID    source_84
162779   , l1.AID_STAT_AMOUNT    source_85
162780   , l5.TAX_LINE_ID    source_86
162781   , l6.REC_NREC_TAX_DIST_ID    source_87
162782   , l1.SUMMARY_TAX_LINE_ID    source_88
162783   , l1.UPG_CR_ENC_TYPE_ID    source_89
162784   , l1.UPG_DR_ENC_TYPE_ID    source_90
162785   , l1.BUS_FLOW_AP_APP_ID    source_91
162786   , l1.BUS_FLOW_INV_DIST_TYPE    source_92
162787   , l1.BUS_FLOW_INV_ENTITY_CODE    source_93
162788   , l1.BUS_FLOW_INV_DIST_ID    source_94
162789   , l1.BUS_FLOW_INV_ID    source_95
162790   , l1.POD_ACCRUE_ON_RECEIPT_FLAG    source_96
162791   , fvl96.meaning   source_96_meaning
162792   , l5.DEF_REC_SETTLEMENT_OPTION_CODE    source_137
162793   , fvl137.meaning   source_137_meaning
162794   , l1.SELF_ASSESSED_TAX_FLAG    source_142
162798   , AP_PO_HEADERS_EXTRACT_V  l3
162795   , fvl142.meaning   source_142_meaning
162796   FROM xla_events_gt     xet 
162797   , AP_INVOICE_EXTRACT_DETAILS_V  l1
162799   , ZX_AP_DEF_TAX_EXTRACT_V  l5
162800   , ZX_AP_TAX_JRNL_LINE_DESC_V  l6
162801   , fnd_lookup_values    fvl22
162802   , fnd_lookup_values    fvl33
162803   , fnd_lookup_values    fvl80
162804   , fnd_lookup_values    fvl96
162805   , fnd_lookup_values    fvl137
162806   , fnd_lookup_values    fvl142
162807  WHERE xet.event_id between x_first_event_id and x_last_event_id
162808    and xet.event_date between p_pad_start_date and p_pad_end_date
162809    and xet.event_class_code = C_EVENT_CLASS_CODE
162810    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
162811  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 fvl22.lookup_type(+)         = 'DESTINATION TYPE'
162812   AND fvl22.lookup_code(+)         = l1.RELATED_INV_DIST_DEST_TYPE
162813   AND fvl22.view_application_id(+) = 201
162814   AND fvl22.language(+)            = USERENV('LANG')
162815      AND fvl33.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
162816   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
162817   AND fvl33.view_application_id(+) = 200
162818   AND fvl33.language(+)            = USERENV('LANG')
162819      AND fvl80.lookup_type(+)         = 'YES_NO'
162820   AND fvl80.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
162821   AND fvl80.view_application_id(+) = 0
162822   AND fvl80.language(+)            = USERENV('LANG')
162823      AND fvl96.lookup_type(+)         = 'YES_NO'
162824   AND fvl96.lookup_code(+)         = l1.POD_ACCRUE_ON_RECEIPT_FLAG
162825   AND fvl96.view_application_id(+) = 0
162826   AND fvl96.language(+)            = USERENV('LANG')
162827      AND fvl137.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
162828   AND fvl137.lookup_code(+)         = l5.DEF_REC_SETTLEMENT_OPTION_CODE
162829   AND fvl137.view_application_id(+) = 0
162830   AND fvl137.language(+)            = USERENV('LANG')
162831      AND fvl142.lookup_type(+)         = 'YES_NO'
162832   AND fvl142.lookup_code(+)         = l1.SELF_ASSESSED_TAX_FLAG
162833   AND fvl142.view_application_id(+) = 0
162834   AND fvl142.language(+)            = USERENV('LANG')
162835   ;
162836 
162837 --
162838 BEGIN
162839 IF g_log_enabled THEN
162840    l_log_module := C_DEFAULT_MODULE||'.EventClass_236';
162841 END IF;
162842 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
162843    trace
162844       (p_msg      => 'BEGIN of EventClass_236'
162845       ,p_level    => C_LEVEL_PROCEDURE
162846       ,p_module   => l_log_module);
162847 END IF;
162848 
162849 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
162850    trace
162851       (p_msg      => 'p_application_id = '||p_application_id||
162852                      ' - p_base_ledger_id = '||p_base_ledger_id||
162853                      ' - p_target_ledger_id  = '||p_target_ledger_id||
162854                      ' - p_language = '||p_language||
162855                      ' - p_currency_code = '||p_currency_code||
162856                      ' - p_sla_ledger_id = '||p_sla_ledger_id
162857       ,p_level    => C_LEVEL_STATEMENT
162858       ,p_module   => l_log_module);
162859 END IF;
162860 --
162861 -- initialze arrays
162862 --
162863 g_array_event.DELETE;
162864 l_rec_array_event := l_null_rec_array_event;
162865 --
162866 --------------------------------------
162867 -- 4262811 Initialze MPA Line Number
162868 --------------------------------------
162869 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
162870 
162871 --
162872 
162873 --
162874 OPEN header_cur;
162875 --
162876 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
162877    trace
162878    (p_msg      => 'SQL - FETCH header_cur'
162879    ,p_level    => C_LEVEL_STATEMENT
162880    ,p_module   => l_log_module);
162881 END IF;
162882 --
162883 LOOP
162884 FETCH header_cur BULK COLLECT INTO
162885         l_array_entity_id
162886       , l_array_legal_entity_id
162887       , l_array_entity_code
162888       , l_array_transaction_num
162889       , l_array_event_id
162890       , l_array_class_code
162891       , l_array_event_type
162892       , l_array_event_number
162893       , l_array_event_date
162894       , l_array_transaction_date
162895       , l_array_reference_num_1
162896       , l_array_reference_num_2
162897       , l_array_reference_num_3
162898       , l_array_reference_num_4
162899       , l_array_reference_char_1
162900       , l_array_reference_char_2
162901       , l_array_reference_char_3
162902       , l_array_reference_char_4
162903       , l_array_reference_date_1
162904       , l_array_reference_date_2
162905       , l_array_reference_date_3
162906       , l_array_reference_date_4
162907       , l_array_event_created_by
162908       , l_array_budgetary_control_flag 
162909       , l_array_source_3
162910       , l_array_source_4
162911       , l_array_source_5
162912       , l_array_source_6
162913       , l_array_source_7
162914       , l_array_source_8
162915       , l_array_source_15
162916       , l_array_source_15_meaning
162917       , l_array_source_20
162918       , l_array_source_23
162919       , l_array_source_31
162920       , l_array_source_31_meaning
162921       , l_array_source_34
162922       , l_array_source_47
162923       , l_array_source_47_meaning
162924       , l_array_source_58
162925       , l_array_source_67
162926       , l_array_source_81
162927       , l_array_source_82
162928       , l_array_source_83
162929       , l_array_source_143
162930       , l_array_source_144
162931       , l_array_source_145
162932       , l_array_source_168
162933       LIMIT l_rows;
162934 --
162935 IF (C_LEVEL_EVENT >= g_log_level) THEN
162936    trace
162937    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
162941 --
162938    ,p_level    => C_LEVEL_EVENT
162939    ,p_module   => l_log_module);
162940 END IF;
162942 EXIT WHEN l_array_entity_id.COUNT = 0;
162943 
162944 -- initialize arrays
162945 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
162946 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
162947 
162948 --
162949 -- Bug 4458708
162950 --
162951 XLA_AE_LINES_PKG.g_LineNumber := 0;
162952 
162953 
162954 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
162955 g_last_hdr_idx := l_array_event_id.LAST;
162956 --
162957 -- loop for the headers. Each iteration is for each header extract row
162958 -- fetched in header cursor
162959 --
162960 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
162961 
162962 --
162963 -- set event info as cache for other routines to refer event attributes
162964 --
162965 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
162966    (p_application_id           => p_application_id
162967    ,p_primary_ledger_id        => p_primary_ledger_id
162968    ,p_base_ledger_id           => p_base_ledger_id
162969    ,p_target_ledger_id         => p_target_ledger_id
162970    ,p_entity_id                => l_array_entity_id(hdr_idx)
162971    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
162972    ,p_entity_code              => l_array_entity_code(hdr_idx)
162973    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
162974    ,p_event_id                 => l_array_event_id(hdr_idx)
162975    ,p_event_class_code         => l_array_class_code(hdr_idx)
162976    ,p_event_type_code          => l_array_event_type(hdr_idx)
162977    ,p_event_number             => l_array_event_number(hdr_idx)
162978    ,p_event_date               => l_array_event_date(hdr_idx)
162979    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
162980    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
162981    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
162982    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
162983    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
162984    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
162985    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
162986    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
162987    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
162988    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
162989    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
162990    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
162991    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
162992    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
162993    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
162994 
162995 --
162996 -- set the status of entry to C_VALID (0)
162997 --
162998 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
162999 
163000 --
163001 -- initialize a row for ae header
163002 --
163003 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
163004 
163005 l_event_id := l_array_event_id(hdr_idx);
163006 
163007 --
163008 -- storing the hdr_idx for event. May be used by line cursor.
163009 --
163010 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
163011 
163012 --
163013 -- store sources from header extract. This can be improved to
163014 -- store only those sources from header extract that may be used in lines
163015 --
163016 
163017 g_array_event(l_event_id).array_value_char('source_3') := l_array_source_3(hdr_idx);
163018 g_array_event(l_event_id).array_value_date('source_4') := l_array_source_4(hdr_idx);
163019 g_array_event(l_event_id).array_value_char('source_5') := l_array_source_5(hdr_idx);
163020 g_array_event(l_event_id).array_value_char('source_6') := l_array_source_6(hdr_idx);
163021 g_array_event(l_event_id).array_value_num('source_7') := l_array_source_7(hdr_idx);
163022 g_array_event(l_event_id).array_value_char('source_8') := l_array_source_8(hdr_idx);
163023 g_array_event(l_event_id).array_value_char('source_15') := l_array_source_15(hdr_idx);
163024 g_array_event(l_event_id).array_value_char('source_15_meaning') := l_array_source_15_meaning(hdr_idx);
163025 g_array_event(l_event_id).array_value_num('source_20') := l_array_source_20(hdr_idx);
163026 g_array_event(l_event_id).array_value_num('source_23') := l_array_source_23(hdr_idx);
163027 g_array_event(l_event_id).array_value_char('source_31') := l_array_source_31(hdr_idx);
163028 g_array_event(l_event_id).array_value_char('source_31_meaning') := l_array_source_31_meaning(hdr_idx);
163029 g_array_event(l_event_id).array_value_num('source_34') := l_array_source_34(hdr_idx);
163030 g_array_event(l_event_id).array_value_char('source_47') := l_array_source_47(hdr_idx);
163031 g_array_event(l_event_id).array_value_char('source_47_meaning') := l_array_source_47_meaning(hdr_idx);
163032 g_array_event(l_event_id).array_value_num('source_58') := l_array_source_58(hdr_idx);
163033 g_array_event(l_event_id).array_value_char('source_67') := l_array_source_67(hdr_idx);
163034 g_array_event(l_event_id).array_value_num('source_81') := l_array_source_81(hdr_idx);
163035 g_array_event(l_event_id).array_value_num('source_82') := l_array_source_82(hdr_idx);
163036 g_array_event(l_event_id).array_value_char('source_83') := l_array_source_83(hdr_idx);
163037 g_array_event(l_event_id).array_value_date('source_143') := l_array_source_143(hdr_idx);
163038 g_array_event(l_event_id).array_value_num('source_144') := l_array_source_144(hdr_idx);
163039 g_array_event(l_event_id).array_value_char('source_145') := l_array_source_145(hdr_idx);
163040 g_array_event(l_event_id).array_value_num('source_168') := l_array_source_168(hdr_idx);
163041 
163042 --
163043 -- initilaize the status of ae headers for diffrent balance types
163044 -- the status is initialised to C_NOT_CREATED (2)
163045 --
163046 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
163047 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
163051 -- call api to validate and store accounting attributes for header
163048 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
163049 
163050 --
163052 --
163053 
163054 ------------------------------------------------------------
163055 -- Accrual Reversal : to get date for Standard Source (NONE)
163056 ------------------------------------------------------------
163057 l_acc_rev_gl_date_source := NULL;
163058 
163059      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
163060       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_5');
163061      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
163062       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_168');
163063      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
163064       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_7');
163065      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
163066       l_rec_acct_attrs.array_date_value(4) := 
163067 xla_ae_sources_pkg.GetSystemSourceDate(
163068    p_source_code           => 'XLA_EVENT_DATE'
163069  , p_source_type_code      => 'Y'
163070  , p_source_application_id =>  602
163071 );
163072 
163073 
163074 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
163075 
163076 XLA_AE_HEADER_PKG.SetJeCategoryName;
163077 
163078 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
163079 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
163080 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
163081 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
163082 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
163083 
163084 
163085 --
163086 xla_ae_header_pkg.SetHdrDescription(
163087    p_description => Description_2 (
163088    p_application_id => p_application_id 
163089  , p_source_3 => g_array_event(l_event_id).array_value_char('source_3')
163090  , p_source_4 => g_array_event(l_event_id).array_value_date('source_4')
163091  , p_source_5 => g_array_event(l_event_id).array_value_char('source_5')
163092  , p_source_6 => g_array_event(l_event_id).array_value_char('source_6')
163093  , p_source_7 => g_array_event(l_event_id).array_value_num('source_7')
163094  , p_source_8 => g_array_event(l_event_id).array_value_char('source_8')
163095    )
163096 );
163097 --
163098 
163099 -- No header level analytical criteria
163100 
163101 --
163102 --accounting attribute enhancement, bug 3612931
163103 --
163104 l_trx_reversal_source := SUBSTR(NULL, 1,30);
163105 
163106 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
163107    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
163108 
163109    xla_accounting_err_pkg.build_message
163110       (p_appli_s_name            => 'XLA'
163111       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
163112       ,p_token_1                 => 'ACCT_ATTR_NAME'
163113       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
163114       ,p_token_2                 => 'PRODUCT_NAME'
163115       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
163116       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
163117       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
163118       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
163119 
163120 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
163121    --
163122    -- following sets the accounting attributes needed to reverse
163123    -- accounting for a distributeion
163124    --
163125    xla_ae_lines_pkg.SetTrxReversalAttrs
163126       (p_event_id              => l_event_id
163127       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
163128       ,p_trx_reversal_source   => l_trx_reversal_source);
163129 
163130 END IF;
163131 
163132 
163133 ----------------------------------------------------------------
163134 -- 4262811 -  update the header statuses to invalid in need be
163135 ----------------------------------------------------------------
163136 --
163137 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
163138 
163139 
163140   -----------------------------------------------
163141   -- No accrual reversal for the event class/type
163142   -----------------------------------------------
163143 ----------------------------------------------------------------
163144 
163145 --
163146 -- this ends the header loop iteration for one bulk fetch
163147 --
163148 END LOOP;
163149 
163150 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
163151 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
163152 
163153 --
163154 -- insert dummy rows into lines gt table that were created due to
163155 -- transaction reversals
163156 --
163157 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
163158    l_result := XLA_AE_LINES_PKG.InsertLines;
163159 END IF;
163160 
163161 --
163162 -- reset the temp_line_num for each set of events fetched from header
163163 -- cursor rather than doing it for each new event in line cursor
163164 -- Bug 3939231
163165 --
163166 xla_ae_lines_pkg.g_temp_line_num := 0;
163167 
163168 
163169 
163170 --
163171 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
163172 --
163173 --
163174 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
163175 
163176       trace
163177          (p_msg      => 'SQL - FETCH line_cur'
163178          ,p_level    => C_LEVEL_STATEMENT
163179          ,p_module   => l_log_module);
163180 
163181 END IF;
163185   --
163182 --
163183 --
163184 LOOP
163186   FETCH line_cur BULK COLLECT INTO
163187         l_array_entity_id
163188       , l_array_legal_entity_id
163189       , l_array_entity_code
163190       , l_array_transaction_num
163191       , l_array_event_id
163192       , l_array_class_code
163193       , l_array_event_type
163194       , l_array_event_number
163195       , l_array_event_date
163196       , l_array_transaction_date
163197       , l_array_reference_num_1
163198       , l_array_reference_num_2
163199       , l_array_reference_num_3
163200       , l_array_reference_num_4
163201       , l_array_reference_char_1
163202       , l_array_reference_char_2
163203       , l_array_reference_char_3
163204       , l_array_reference_char_4
163205       , l_array_reference_date_1
163206       , l_array_reference_date_2
163207       , l_array_reference_date_3
163208       , l_array_reference_date_4
163209       , l_array_event_created_by
163210       , l_array_budgetary_control_flag
163211       , l_array_extract_line_num 
163212       , l_array_source_1
163213       , l_array_source_21
163214       , l_array_source_22
163215       , l_array_source_22_meaning
163216       , l_array_source_30
163217       , l_array_source_32
163218       , l_array_source_33
163219       , l_array_source_33_meaning
163220       , l_array_source_43
163221       , l_array_source_45
163222       , l_array_source_50
163223       , l_array_source_51
163224       , l_array_source_53
163225       , l_array_source_55
163226       , l_array_source_57
163227       , l_array_source_64
163228       , l_array_source_65
163229       , l_array_source_66
163230       , l_array_source_68
163231       , l_array_source_69
163232       , l_array_source_70
163233       , l_array_source_71
163234       , l_array_source_72
163235       , l_array_source_73
163236       , l_array_source_74
163237       , l_array_source_75
163238       , l_array_source_76
163239       , l_array_source_77
163240       , l_array_source_78
163241       , l_array_source_79
163242       , l_array_source_80
163243       , l_array_source_80_meaning
163244       , l_array_source_84
163245       , l_array_source_85
163246       , l_array_source_86
163247       , l_array_source_87
163248       , l_array_source_88
163249       , l_array_source_89
163250       , l_array_source_90
163251       , l_array_source_91
163252       , l_array_source_92
163253       , l_array_source_93
163254       , l_array_source_94
163255       , l_array_source_95
163256       , l_array_source_96
163257       , l_array_source_96_meaning
163258       , l_array_source_137
163259       , l_array_source_137_meaning
163260       , l_array_source_142
163261       , l_array_source_142_meaning
163262       LIMIT l_rows;
163263 
163264   --
163265   IF (C_LEVEL_EVENT >= g_log_level) THEN
163266             trace
163267                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
163268                ,p_level    => C_LEVEL_EVENT
163269                ,p_module   => l_log_module);
163270   END IF;
163271   --
163272   EXIT WHEN l_array_entity_id.count = 0;
163273 
163274   XLA_AE_LINES_PKG.g_rec_lines := null;
163275 
163276 --
163277 -- Bug 4458708
163278 --
163279 XLA_AE_LINES_PKG.g_LineNumber := 0;
163280 --
163281 --
163282 
163283 FOR Idx IN 1..l_array_event_id.count LOOP
163284    --
163285    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
163286    --
163287    l_event_id := l_array_event_id(idx);  -- 5648433
163288 
163289    --
163290    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
163291    --
163292 
163293    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
163294              (g_array_event(l_event_id).array_value_num('header_index'))
163295          ,'N'
163296          ) <> 'Y'
163297    THEN
163298       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
163299          trace
163300             (p_msg      => 'Trancaction revesal option is not Y '
163301             ,p_level    => C_LEVEL_STATEMENT
163302             ,p_module   => l_log_module);
163303       END IF;
163304 
163305 --
163306 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
163307 --
163308 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
163309 --
163310 -- set event info as cache for other routines to refer event attributes
163311 --
163312 
163313 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
163314    l_previous_event_id := l_event_id;
163315 
163316    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
163317       (p_application_id           => p_application_id
163318       ,p_primary_ledger_id        => p_primary_ledger_id
163319       ,p_base_ledger_id           => p_base_ledger_id
163320       ,p_target_ledger_id         => p_target_ledger_id
163321       ,p_entity_id                => l_array_entity_id(Idx)
163322       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
163323       ,p_entity_code              => l_array_entity_code(Idx)
163324       ,p_transaction_num          => l_array_transaction_num(Idx)
163325       ,p_event_id                 => l_array_event_id(Idx)
163326       ,p_event_class_code         => l_array_class_code(Idx)
163327       ,p_event_type_code          => l_array_event_type(Idx)
163328       ,p_event_number             => l_array_event_number(Idx)
163329       ,p_event_date               => l_array_event_date(Idx)
163330       ,p_transaction_date         => l_array_transaction_date(Idx)
163331       ,p_reference_num_1          => l_array_reference_num_1(Idx)
163332       ,p_reference_num_2          => l_array_reference_num_2(Idx)
163333       ,p_reference_num_3          => l_array_reference_num_3(Idx)
163334       ,p_reference_num_4          => l_array_reference_num_4(Idx)
163338       ,p_reference_char_4         => l_array_reference_char_4(Idx)
163335       ,p_reference_char_1         => l_array_reference_char_1(Idx)
163336       ,p_reference_char_2         => l_array_reference_char_2(Idx)
163337       ,p_reference_char_3         => l_array_reference_char_3(Idx)
163339       ,p_reference_date_1         => l_array_reference_date_1(Idx)
163340       ,p_reference_date_2         => l_array_reference_date_2(Idx)
163341       ,p_reference_date_3         => l_array_reference_date_3(Idx)
163342       ,p_reference_date_4         => l_array_reference_date_4(Idx)
163343       ,p_event_created_by         => l_array_event_created_by(Idx)
163344       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
163345        --
163346 END IF;
163347 
163348 
163349 
163350 --
163351 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
163352 
163353 l_acct_reversal_source := SUBSTR(l_array_source_53(Idx), 1,30);
163354 
163355 IF l_continue_with_lines THEN
163356    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
163357       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
163358 
163359       xla_accounting_err_pkg.build_message
163360          (p_appli_s_name            => 'XLA'
163361          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
163362          ,p_token_1                 => 'LINE_NUMBER'
163363          ,p_value_1                 => l_array_extract_line_num(Idx)
163364          ,p_token_2                 => 'PRODUCT_NAME'
163365          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
163366          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
163367          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
163368          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
163369 
163370    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
163371       --
163372       -- following sets the accounting attributes needed to reverse
163373       -- accounting for a distributeion
163374       --
163375 
163376       --
163377       -- 5217187
163378       --
163379       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
163380       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
163381                                        g_array_event(l_event_id).array_value_num('header_index'));
163382       --
163383       --
163384 
163385       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
163386       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_53(Idx);
163387       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
163388       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_64(Idx);
163389       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
163390       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_55(Idx);
163391       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_CR_CCID';
163392       l_rec_rev_acct_attrs.array_num_value(5)  := l_array_source_65(Idx);
163393       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_CR_ENTERED_AMT';
163394       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_66(Idx);
163395       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_CR_ENTERED_CURR';
163396       l_rec_rev_acct_attrs.array_char_value(7)  := g_array_event(l_event_id).array_value_char('source_67');
163397       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_CR_LEDGER_AMT';
163398       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_68(Idx);
163399       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_CCID';
163400       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_69(Idx);
163401       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_DR_ENTERED_AMT';
163402       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_70(Idx);
163403       l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ENC_UPG_DR_ENTERED_CURR';
163404       l_rec_rev_acct_attrs.array_char_value(11)  := g_array_event(l_event_id).array_value_char('source_67');
163405       l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ENC_UPG_DR_LEDGER_AMT';
163406       l_rec_rev_acct_attrs.array_num_value(12)  := l_array_source_71(Idx);
163407       l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ENC_UPG_OPTION';
163408       l_rec_rev_acct_attrs.array_char_value(13)  := l_array_source_72(Idx);
163409       l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'PARTY_TYPE';
163410       l_rec_rev_acct_attrs.array_char_value(14)  := g_array_event(l_event_id).array_value_char('source_83');
163411       l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'REVERSED_DISTRIBUTION_ID1';
163412       l_rec_rev_acct_attrs.array_num_value(15)  := l_array_source_84(Idx);
163413       l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'REVERSED_DISTRIBUTION_TYPE';
163414       l_rec_rev_acct_attrs.array_char_value(16)  := l_array_source_55(Idx);
163415       l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'TAX_LINE_REF_ID';
163416       l_rec_rev_acct_attrs.array_num_value(17)  := l_array_source_86(Idx);
163417       l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'TAX_REC_NREC_DIST_REF_ID';
163418       l_rec_rev_acct_attrs.array_num_value(18)  := l_array_source_87(Idx);
163419       l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'TAX_SUMMARY_LINE_REF_ID';
163420       l_rec_rev_acct_attrs.array_num_value(19)  := l_array_source_88(Idx);
163421       l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'UPG_CR_ENC_TYPE_ID';
163422       l_rec_rev_acct_attrs.array_num_value(20)  := l_array_source_89(Idx);
163423       l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'UPG_DR_ENC_TYPE_ID';
163424       l_rec_rev_acct_attrs.array_num_value(21)  := l_array_source_90(Idx);
163425 
163426 
163427       xla_ae_lines_pkg.SetAcctReversalAttrs
163428          (p_event_id             => l_event_id
163429          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
163430          ,p_calculate_acctd_flag => l_calculate_acctd_flag
163431          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
163432    END IF;
163433 
163437 --
163434    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
163435        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
163436 
163438 AcctLineType_50 (
163439  p_application_id  => p_application_id
163440  ,p_event_id     => l_event_id
163441  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163442  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163443  ,p_actual_flag => l_actual_flag
163444  ,p_balance_type_code => l_balance_type_code
163445  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163446  
163447  , p_source_1 => l_array_source_1(Idx)
163448  , p_source_21 => l_array_source_21(Idx)
163449  , p_source_30 => l_array_source_30(Idx)
163450  , p_source_33 => l_array_source_33(Idx)
163451  , p_source_33_meaning => l_array_source_33_meaning(Idx)
163452  , p_source_53 => l_array_source_53(Idx)
163453  , p_source_55 => l_array_source_55(Idx)
163454  , p_source_57 => l_array_source_57(Idx)
163455  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
163456  , p_source_64 => l_array_source_64(Idx)
163457  , p_source_65 => l_array_source_65(Idx)
163458  , p_source_66 => l_array_source_66(Idx)
163459  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
163460  , p_source_68 => l_array_source_68(Idx)
163461  , p_source_69 => l_array_source_69(Idx)
163462  , p_source_70 => l_array_source_70(Idx)
163463  , p_source_71 => l_array_source_71(Idx)
163464  , p_source_72 => l_array_source_72(Idx)
163465  , p_source_73 => l_array_source_73(Idx)
163466  , p_source_74 => l_array_source_74(Idx)
163467  , p_source_75 => l_array_source_75(Idx)
163468  , p_source_76 => l_array_source_76(Idx)
163469  , p_source_77 => l_array_source_77(Idx)
163470  , p_source_78 => l_array_source_78(Idx)
163471  , p_source_79 => l_array_source_79(Idx)
163472  , p_source_80 => l_array_source_80(Idx)
163473  , p_source_80_meaning => l_array_source_80_meaning(Idx)
163474  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
163475  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
163476  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
163477  , p_source_84 => l_array_source_84(Idx)
163478  , p_source_85 => l_array_source_85(Idx)
163479  , p_source_86 => l_array_source_86(Idx)
163480  , p_source_87 => l_array_source_87(Idx)
163481  , p_source_88 => l_array_source_88(Idx)
163482  , p_source_89 => l_array_source_89(Idx)
163483  , p_source_90 => l_array_source_90(Idx)
163484  , p_source_91 => l_array_source_91(Idx)
163485  , p_source_92 => l_array_source_92(Idx)
163486  , p_source_93 => l_array_source_93(Idx)
163487  , p_source_94 => l_array_source_94(Idx)
163488  , p_source_95 => l_array_source_95(Idx)
163489  );
163490 If(l_balance_type_code = 'A') THEN
163491   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163492 END IF;
163493 
163494 --
163495 
163496 
163497 --
163498 AcctLineType_54 (
163499  p_application_id  => p_application_id
163500  ,p_event_id     => l_event_id
163501  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163502  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163503  ,p_actual_flag => l_actual_flag
163504  ,p_balance_type_code => l_balance_type_code
163505  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163506  
163507  , p_source_1 => l_array_source_1(Idx)
163508  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
163509  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
163510  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
163511  , p_source_21 => l_array_source_21(Idx)
163512  , p_source_22 => l_array_source_22(Idx)
163513  , p_source_22_meaning => l_array_source_22_meaning(Idx)
163514  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
163515  , p_source_30 => l_array_source_30(Idx)
163516  , p_source_33 => l_array_source_33(Idx)
163517  , p_source_33_meaning => l_array_source_33_meaning(Idx)
163518  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
163519  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
163520  , p_source_53 => l_array_source_53(Idx)
163521  , p_source_55 => l_array_source_55(Idx)
163522  , p_source_57 => l_array_source_57(Idx)
163523  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
163524  , p_source_64 => l_array_source_64(Idx)
163525  , p_source_65 => l_array_source_65(Idx)
163526  , p_source_66 => l_array_source_66(Idx)
163527  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
163528  , p_source_68 => l_array_source_68(Idx)
163529  , p_source_69 => l_array_source_69(Idx)
163530  , p_source_70 => l_array_source_70(Idx)
163531  , p_source_71 => l_array_source_71(Idx)
163532  , p_source_72 => l_array_source_72(Idx)
163533  , p_source_77 => l_array_source_77(Idx)
163534  , p_source_78 => l_array_source_78(Idx)
163535  , p_source_79 => l_array_source_79(Idx)
163536  , p_source_80 => l_array_source_80(Idx)
163537  , p_source_80_meaning => l_array_source_80_meaning(Idx)
163538  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
163539  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
163540  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
163541  , p_source_84 => l_array_source_84(Idx)
163542  , p_source_85 => l_array_source_85(Idx)
163543  , p_source_86 => l_array_source_86(Idx)
163544  , p_source_87 => l_array_source_87(Idx)
163545  , p_source_88 => l_array_source_88(Idx)
163546  , p_source_89 => l_array_source_89(Idx)
163547  , p_source_90 => l_array_source_90(Idx)
163548  , p_source_91 => l_array_source_91(Idx)
163549  , p_source_92 => l_array_source_92(Idx)
163550  , p_source_93 => l_array_source_93(Idx)
163551  , p_source_94 => l_array_source_94(Idx)
163552  , p_source_95 => l_array_source_95(Idx)
163553  );
163554 If(l_balance_type_code = 'A') THEN
163555   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163556 END IF;
163557 
163558 --
163559 
163560 
163561 --
163562 AcctLineType_58 (
163566  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163563  p_application_id  => p_application_id
163564  ,p_event_id     => l_event_id
163565  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163567  ,p_actual_flag => l_actual_flag
163568  ,p_balance_type_code => l_balance_type_code
163569  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163570  
163571  , p_source_1 => l_array_source_1(Idx)
163572  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
163573  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
163574  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
163575  , p_source_21 => l_array_source_21(Idx)
163576  , p_source_22 => l_array_source_22(Idx)
163577  , p_source_22_meaning => l_array_source_22_meaning(Idx)
163578  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
163579  , p_source_30 => l_array_source_30(Idx)
163580  , p_source_33 => l_array_source_33(Idx)
163581  , p_source_33_meaning => l_array_source_33_meaning(Idx)
163582  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
163583  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
163584  , p_source_53 => l_array_source_53(Idx)
163585  , p_source_55 => l_array_source_55(Idx)
163586  , p_source_57 => l_array_source_57(Idx)
163587  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
163588  , p_source_64 => l_array_source_64(Idx)
163589  , p_source_65 => l_array_source_65(Idx)
163590  , p_source_66 => l_array_source_66(Idx)
163591  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
163592  , p_source_68 => l_array_source_68(Idx)
163593  , p_source_69 => l_array_source_69(Idx)
163594  , p_source_70 => l_array_source_70(Idx)
163595  , p_source_71 => l_array_source_71(Idx)
163596  , p_source_72 => l_array_source_72(Idx)
163597  , p_source_77 => l_array_source_77(Idx)
163598  , p_source_78 => l_array_source_78(Idx)
163599  , p_source_79 => l_array_source_79(Idx)
163600  , p_source_80 => l_array_source_80(Idx)
163601  , p_source_80_meaning => l_array_source_80_meaning(Idx)
163602  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
163603  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
163604  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
163605  , p_source_84 => l_array_source_84(Idx)
163606  , p_source_85 => l_array_source_85(Idx)
163607  , p_source_86 => l_array_source_86(Idx)
163608  , p_source_87 => l_array_source_87(Idx)
163609  , p_source_88 => l_array_source_88(Idx)
163610  , p_source_89 => l_array_source_89(Idx)
163611  , p_source_90 => l_array_source_90(Idx)
163612  , p_source_91 => l_array_source_91(Idx)
163613  , p_source_92 => l_array_source_92(Idx)
163614  , p_source_93 => l_array_source_93(Idx)
163615  , p_source_94 => l_array_source_94(Idx)
163616  , p_source_95 => l_array_source_95(Idx)
163617  , p_source_96 => l_array_source_96(Idx)
163618  , p_source_96_meaning => l_array_source_96_meaning(Idx)
163619  );
163620 If(l_balance_type_code = 'A') THEN
163621   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163622 END IF;
163623 
163624 --
163625 
163626 
163627 --
163628 AcctLineType_100 (
163629  p_application_id  => p_application_id
163630  ,p_event_id     => l_event_id
163631  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163632  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163633  ,p_actual_flag => l_actual_flag
163634  ,p_balance_type_code => l_balance_type_code
163635  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163636  
163637  , p_source_1 => l_array_source_1(Idx)
163638  , p_source_21 => l_array_source_21(Idx)
163639  , p_source_30 => l_array_source_30(Idx)
163640  , p_source_33 => l_array_source_33(Idx)
163641  , p_source_33_meaning => l_array_source_33_meaning(Idx)
163642  , p_source_53 => l_array_source_53(Idx)
163643  , p_source_55 => l_array_source_55(Idx)
163644  , p_source_57 => l_array_source_57(Idx)
163645  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
163646  , p_source_64 => l_array_source_64(Idx)
163647  , p_source_65 => l_array_source_65(Idx)
163648  , p_source_66 => l_array_source_66(Idx)
163649  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
163650  , p_source_68 => l_array_source_68(Idx)
163651  , p_source_69 => l_array_source_69(Idx)
163652  , p_source_70 => l_array_source_70(Idx)
163653  , p_source_71 => l_array_source_71(Idx)
163654  , p_source_72 => l_array_source_72(Idx)
163655  , p_source_73 => l_array_source_73(Idx)
163656  , p_source_77 => l_array_source_77(Idx)
163657  , p_source_78 => l_array_source_78(Idx)
163658  , p_source_79 => l_array_source_79(Idx)
163659  , p_source_80 => l_array_source_80(Idx)
163660  , p_source_80_meaning => l_array_source_80_meaning(Idx)
163661  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
163662  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
163663  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
163664  , p_source_84 => l_array_source_84(Idx)
163665  , p_source_85 => l_array_source_85(Idx)
163666  , p_source_86 => l_array_source_86(Idx)
163667  , p_source_87 => l_array_source_87(Idx)
163668  , p_source_88 => l_array_source_88(Idx)
163669  , p_source_89 => l_array_source_89(Idx)
163670  , p_source_90 => l_array_source_90(Idx)
163671  , p_source_91 => l_array_source_91(Idx)
163672  , p_source_92 => l_array_source_92(Idx)
163673  , p_source_93 => l_array_source_93(Idx)
163674  , p_source_94 => l_array_source_94(Idx)
163675  , p_source_95 => l_array_source_95(Idx)
163676  , p_source_137 => l_array_source_137(Idx)
163677  , p_source_137_meaning => l_array_source_137_meaning(Idx)
163678  , p_source_142 => l_array_source_142(Idx)
163679  , p_source_142_meaning => l_array_source_142_meaning(Idx)
163680  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
163681  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
163682  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
163683  );
163687 
163684 If(l_balance_type_code = 'A') THEN
163685   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163686 END IF;
163688 --
163689 
163690 
163691 --
163692 AcctLineType_110 (
163693  p_application_id  => p_application_id
163694  ,p_event_id     => l_event_id
163695  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163696  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163697  ,p_actual_flag => l_actual_flag
163698  ,p_balance_type_code => l_balance_type_code
163699  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163700  
163701  , p_source_1 => l_array_source_1(Idx)
163702  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
163703  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
163704  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
163705  , p_source_21 => l_array_source_21(Idx)
163706  , p_source_22 => l_array_source_22(Idx)
163707  , p_source_22_meaning => l_array_source_22_meaning(Idx)
163708  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
163709  , p_source_30 => l_array_source_30(Idx)
163710  , p_source_33 => l_array_source_33(Idx)
163711  , p_source_33_meaning => l_array_source_33_meaning(Idx)
163712  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
163713  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
163714  , p_source_53 => l_array_source_53(Idx)
163715  , p_source_55 => l_array_source_55(Idx)
163716  , p_source_57 => l_array_source_57(Idx)
163717  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
163718  , p_source_64 => l_array_source_64(Idx)
163719  , p_source_65 => l_array_source_65(Idx)
163720  , p_source_66 => l_array_source_66(Idx)
163721  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
163722  , p_source_68 => l_array_source_68(Idx)
163723  , p_source_69 => l_array_source_69(Idx)
163724  , p_source_70 => l_array_source_70(Idx)
163725  , p_source_71 => l_array_source_71(Idx)
163726  , p_source_72 => l_array_source_72(Idx)
163727  , p_source_73 => l_array_source_73(Idx)
163728  , p_source_77 => l_array_source_77(Idx)
163729  , p_source_78 => l_array_source_78(Idx)
163730  , p_source_79 => l_array_source_79(Idx)
163731  , p_source_80 => l_array_source_80(Idx)
163732  , p_source_80_meaning => l_array_source_80_meaning(Idx)
163733  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
163734  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
163735  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
163736  , p_source_84 => l_array_source_84(Idx)
163737  , p_source_85 => l_array_source_85(Idx)
163738  , p_source_86 => l_array_source_86(Idx)
163739  , p_source_87 => l_array_source_87(Idx)
163740  , p_source_88 => l_array_source_88(Idx)
163741  , p_source_89 => l_array_source_89(Idx)
163742  , p_source_90 => l_array_source_90(Idx)
163743  , p_source_91 => l_array_source_91(Idx)
163744  , p_source_92 => l_array_source_92(Idx)
163745  , p_source_93 => l_array_source_93(Idx)
163746  , p_source_94 => l_array_source_94(Idx)
163747  , p_source_95 => l_array_source_95(Idx)
163748  , p_source_96 => l_array_source_96(Idx)
163749  , p_source_96_meaning => l_array_source_96_meaning(Idx)
163750  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
163751  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
163752  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
163753  );
163754 If(l_balance_type_code = 'A') THEN
163755   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163756 END IF;
163757 
163758 --
163759 
163760 
163761 --
163762 AcctLineType_119 (
163763  p_application_id  => p_application_id
163764  ,p_event_id     => l_event_id
163765  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163766  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163767  ,p_actual_flag => l_actual_flag
163768  ,p_balance_type_code => l_balance_type_code
163769  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163770  
163771  , p_source_1 => l_array_source_1(Idx)
163772  , p_source_21 => l_array_source_21(Idx)
163773  , p_source_30 => l_array_source_30(Idx)
163774  , p_source_33 => l_array_source_33(Idx)
163775  , p_source_33_meaning => l_array_source_33_meaning(Idx)
163776  , p_source_53 => l_array_source_53(Idx)
163777  , p_source_55 => l_array_source_55(Idx)
163778  , p_source_57 => l_array_source_57(Idx)
163779  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
163780  , p_source_64 => l_array_source_64(Idx)
163781  , p_source_65 => l_array_source_65(Idx)
163782  , p_source_66 => l_array_source_66(Idx)
163783  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
163784  , p_source_68 => l_array_source_68(Idx)
163785  , p_source_69 => l_array_source_69(Idx)
163786  , p_source_70 => l_array_source_70(Idx)
163787  , p_source_71 => l_array_source_71(Idx)
163788  , p_source_72 => l_array_source_72(Idx)
163789  , p_source_73 => l_array_source_73(Idx)
163790  , p_source_77 => l_array_source_77(Idx)
163791  , p_source_78 => l_array_source_78(Idx)
163792  , p_source_79 => l_array_source_79(Idx)
163793  , p_source_80 => l_array_source_80(Idx)
163794  , p_source_80_meaning => l_array_source_80_meaning(Idx)
163795  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
163796  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
163797  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
163798  , p_source_84 => l_array_source_84(Idx)
163799  , p_source_85 => l_array_source_85(Idx)
163800  , p_source_86 => l_array_source_86(Idx)
163801  , p_source_87 => l_array_source_87(Idx)
163802  , p_source_88 => l_array_source_88(Idx)
163803  , p_source_89 => l_array_source_89(Idx)
163804  , p_source_90 => l_array_source_90(Idx)
163805  , p_source_91 => l_array_source_91(Idx)
163806  , p_source_92 => l_array_source_92(Idx)
163807  , p_source_93 => l_array_source_93(Idx)
163808  , p_source_94 => l_array_source_94(Idx)
163812  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
163809  , p_source_95 => l_array_source_95(Idx)
163810  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
163811  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
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 
163821 --
163822 AcctLineType_141 (
163823  p_application_id  => p_application_id
163824  ,p_event_id     => l_event_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_21 => l_array_source_21(Idx)
163833  , p_source_30 => l_array_source_30(Idx)
163834  , p_source_33 => l_array_source_33(Idx)
163835  , p_source_33_meaning => l_array_source_33_meaning(Idx)
163836  , p_source_53 => l_array_source_53(Idx)
163837  , p_source_55 => l_array_source_55(Idx)
163838  , p_source_57 => l_array_source_57(Idx)
163839  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
163840  , p_source_64 => l_array_source_64(Idx)
163841  , p_source_65 => l_array_source_65(Idx)
163842  , p_source_66 => l_array_source_66(Idx)
163843  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
163844  , p_source_68 => l_array_source_68(Idx)
163845  , p_source_69 => l_array_source_69(Idx)
163846  , p_source_70 => l_array_source_70(Idx)
163847  , p_source_71 => l_array_source_71(Idx)
163848  , p_source_72 => l_array_source_72(Idx)
163849  , p_source_73 => l_array_source_73(Idx)
163850  , p_source_77 => l_array_source_77(Idx)
163851  , p_source_78 => l_array_source_78(Idx)
163852  , p_source_79 => l_array_source_79(Idx)
163853  , p_source_80 => l_array_source_80(Idx)
163854  , p_source_80_meaning => l_array_source_80_meaning(Idx)
163855  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
163856  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
163857  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
163858  , p_source_84 => l_array_source_84(Idx)
163859  , p_source_85 => l_array_source_85(Idx)
163860  , p_source_86 => l_array_source_86(Idx)
163861  , p_source_87 => l_array_source_87(Idx)
163862  , p_source_88 => l_array_source_88(Idx)
163863  , p_source_89 => l_array_source_89(Idx)
163864  , p_source_90 => l_array_source_90(Idx)
163865  , p_source_91 => l_array_source_91(Idx)
163866  , p_source_92 => l_array_source_92(Idx)
163867  , p_source_93 => l_array_source_93(Idx)
163868  , p_source_94 => l_array_source_94(Idx)
163869  , p_source_95 => l_array_source_95(Idx)
163870  , p_source_96 => l_array_source_96(Idx)
163871  , p_source_96_meaning => l_array_source_96_meaning(Idx)
163872  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
163873  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
163874  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
163875  );
163876 If(l_balance_type_code = 'A') THEN
163877   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163878 END IF;
163879 
163880 --
163881 
163882 
163883 --
163884 AcctLineType_158 (
163885  p_application_id  => p_application_id
163886  ,p_event_id     => l_event_id
163887  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163888  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163889  ,p_actual_flag => l_actual_flag
163890  ,p_balance_type_code => l_balance_type_code
163891  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163892  
163893  , p_source_1 => l_array_source_1(Idx)
163894  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
163895  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
163896  , p_source_21 => l_array_source_21(Idx)
163897  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
163898  , p_source_53 => l_array_source_53(Idx)
163899  , p_source_55 => l_array_source_55(Idx)
163900  , p_source_57 => l_array_source_57(Idx)
163901  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
163902  , p_source_64 => l_array_source_64(Idx)
163903  , p_source_65 => l_array_source_65(Idx)
163904  , p_source_66 => l_array_source_66(Idx)
163905  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
163906  , p_source_68 => l_array_source_68(Idx)
163907  , p_source_69 => l_array_source_69(Idx)
163908  , p_source_70 => l_array_source_70(Idx)
163909  , p_source_71 => l_array_source_71(Idx)
163910  , p_source_72 => l_array_source_72(Idx)
163911  , p_source_73 => l_array_source_73(Idx)
163912  , p_source_77 => l_array_source_77(Idx)
163913  , p_source_78 => l_array_source_78(Idx)
163914  , p_source_79 => l_array_source_79(Idx)
163915  , p_source_80 => l_array_source_80(Idx)
163916  , p_source_80_meaning => l_array_source_80_meaning(Idx)
163917  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
163918  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
163919  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
163920  , p_source_84 => l_array_source_84(Idx)
163921  , p_source_85 => l_array_source_85(Idx)
163922  , p_source_86 => l_array_source_86(Idx)
163923  , p_source_87 => l_array_source_87(Idx)
163924  , p_source_88 => l_array_source_88(Idx)
163925  , p_source_89 => l_array_source_89(Idx)
163926  , p_source_90 => l_array_source_90(Idx)
163927  , p_source_91 => l_array_source_91(Idx)
163928  , p_source_92 => l_array_source_92(Idx)
163929  , p_source_93 => l_array_source_93(Idx)
163930  , p_source_94 => l_array_source_94(Idx)
163931  , p_source_95 => l_array_source_95(Idx)
163932  , p_source_142 => l_array_source_142(Idx)
163933  , p_source_142_meaning => l_array_source_142_meaning(Idx)
163934  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
163938 If(l_balance_type_code = 'A') THEN
163935  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
163936  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
163937  );
163939   l_actual_gain_loss_ref := l_gain_or_loss_ref;
163940 END IF;
163941 
163942 --
163943 
163944 
163945 --
163946 AcctLineType_159 (
163947  p_application_id  => p_application_id
163948  ,p_event_id     => l_event_id
163949  ,p_calculate_acctd_flag => l_calculate_acctd_flag
163950  ,p_calculate_g_l_flag => l_calculate_g_l_flag
163951  ,p_actual_flag => l_actual_flag
163952  ,p_balance_type_code => l_balance_type_code
163953  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
163954  
163955  , p_source_1 => l_array_source_1(Idx)
163956  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
163957  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
163958  , p_source_21 => l_array_source_21(Idx)
163959  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
163960  , p_source_53 => l_array_source_53(Idx)
163961  , p_source_55 => l_array_source_55(Idx)
163962  , p_source_57 => l_array_source_57(Idx)
163963  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
163964  , p_source_64 => l_array_source_64(Idx)
163965  , p_source_65 => l_array_source_65(Idx)
163966  , p_source_66 => l_array_source_66(Idx)
163967  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
163968  , p_source_68 => l_array_source_68(Idx)
163969  , p_source_69 => l_array_source_69(Idx)
163970  , p_source_70 => l_array_source_70(Idx)
163971  , p_source_71 => l_array_source_71(Idx)
163972  , p_source_72 => l_array_source_72(Idx)
163973  , p_source_73 => l_array_source_73(Idx)
163974  , p_source_77 => l_array_source_77(Idx)
163975  , p_source_78 => l_array_source_78(Idx)
163976  , p_source_79 => l_array_source_79(Idx)
163977  , p_source_80 => l_array_source_80(Idx)
163978  , p_source_80_meaning => l_array_source_80_meaning(Idx)
163979  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
163980  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
163981  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
163982  , p_source_84 => l_array_source_84(Idx)
163983  , p_source_85 => l_array_source_85(Idx)
163984  , p_source_86 => l_array_source_86(Idx)
163985  , p_source_87 => l_array_source_87(Idx)
163986  , p_source_88 => l_array_source_88(Idx)
163987  , p_source_89 => l_array_source_89(Idx)
163988  , p_source_90 => l_array_source_90(Idx)
163989  , p_source_91 => l_array_source_91(Idx)
163990  , p_source_92 => l_array_source_92(Idx)
163991  , p_source_93 => l_array_source_93(Idx)
163992  , p_source_94 => l_array_source_94(Idx)
163993  , p_source_95 => l_array_source_95(Idx)
163994  , p_source_142 => l_array_source_142(Idx)
163995  , p_source_142_meaning => l_array_source_142_meaning(Idx)
163996  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
163997  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
163998  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
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_160 (
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_15 => g_array_event(l_event_id).array_value_char('source_15')
164019  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
164020  , p_source_21 => l_array_source_21(Idx)
164021  , p_source_34 => g_array_event(l_event_id).array_value_num('source_34')
164022  , p_source_53 => l_array_source_53(Idx)
164023  , p_source_55 => l_array_source_55(Idx)
164024  , p_source_57 => l_array_source_57(Idx)
164025  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
164026  , p_source_64 => l_array_source_64(Idx)
164027  , p_source_65 => l_array_source_65(Idx)
164028  , p_source_66 => l_array_source_66(Idx)
164029  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
164030  , p_source_68 => l_array_source_68(Idx)
164031  , p_source_69 => l_array_source_69(Idx)
164032  , p_source_70 => l_array_source_70(Idx)
164033  , p_source_71 => l_array_source_71(Idx)
164034  , p_source_72 => l_array_source_72(Idx)
164035  , p_source_73 => l_array_source_73(Idx)
164036  , p_source_77 => l_array_source_77(Idx)
164037  , p_source_78 => l_array_source_78(Idx)
164038  , p_source_79 => l_array_source_79(Idx)
164039  , p_source_80 => l_array_source_80(Idx)
164040  , p_source_80_meaning => l_array_source_80_meaning(Idx)
164041  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
164042  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
164043  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
164044  , p_source_84 => l_array_source_84(Idx)
164045  , p_source_85 => l_array_source_85(Idx)
164046  , p_source_86 => l_array_source_86(Idx)
164047  , p_source_87 => l_array_source_87(Idx)
164048  , p_source_88 => l_array_source_88(Idx)
164049  , p_source_89 => l_array_source_89(Idx)
164050  , p_source_90 => l_array_source_90(Idx)
164051  , p_source_91 => l_array_source_91(Idx)
164052  , p_source_92 => l_array_source_92(Idx)
164053  , p_source_93 => l_array_source_93(Idx)
164054  , p_source_94 => l_array_source_94(Idx)
164055  , p_source_95 => l_array_source_95(Idx)
164056  , p_source_142 => l_array_source_142(Idx)
164057  , p_source_142_meaning => l_array_source_142_meaning(Idx)
164058  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
164062 If(l_balance_type_code = 'A') THEN
164059  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
164060  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
164061  );
164063   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164064 END IF;
164065 
164066 --
164067 
164068 
164069 --
164070 AcctLineType_174 (
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
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
164078  
164079  , p_source_1 => l_array_source_1(Idx)
164080  , p_source_21 => l_array_source_21(Idx)
164081  , p_source_30 => l_array_source_30(Idx)
164082  , p_source_33 => l_array_source_33(Idx)
164083  , p_source_33_meaning => l_array_source_33_meaning(Idx)
164084  , p_source_53 => l_array_source_53(Idx)
164085  , p_source_55 => l_array_source_55(Idx)
164086  , p_source_57 => l_array_source_57(Idx)
164087  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
164088  , p_source_64 => l_array_source_64(Idx)
164089  , p_source_65 => l_array_source_65(Idx)
164090  , p_source_66 => l_array_source_66(Idx)
164091  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
164092  , p_source_68 => l_array_source_68(Idx)
164093  , p_source_69 => l_array_source_69(Idx)
164094  , p_source_70 => l_array_source_70(Idx)
164095  , p_source_71 => l_array_source_71(Idx)
164096  , p_source_72 => l_array_source_72(Idx)
164097  , p_source_73 => l_array_source_73(Idx)
164098  , p_source_77 => l_array_source_77(Idx)
164099  , p_source_78 => l_array_source_78(Idx)
164100  , p_source_79 => l_array_source_79(Idx)
164101  , p_source_80 => l_array_source_80(Idx)
164102  , p_source_80_meaning => l_array_source_80_meaning(Idx)
164103  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
164104  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
164105  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
164106  , p_source_84 => l_array_source_84(Idx)
164107  , p_source_85 => l_array_source_85(Idx)
164108  , p_source_86 => l_array_source_86(Idx)
164109  , p_source_87 => l_array_source_87(Idx)
164110  , p_source_88 => l_array_source_88(Idx)
164111  , p_source_89 => l_array_source_89(Idx)
164112  , p_source_90 => l_array_source_90(Idx)
164113  , p_source_91 => l_array_source_91(Idx)
164114  , p_source_92 => l_array_source_92(Idx)
164115  , p_source_93 => l_array_source_93(Idx)
164116  , p_source_94 => l_array_source_94(Idx)
164117  , p_source_95 => l_array_source_95(Idx)
164118  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
164119  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
164120  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
164121  );
164122 If(l_balance_type_code = 'A') THEN
164123   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164124 END IF;
164125 
164126 --
164127 
164128 
164129 --
164130 AcctLineType_181 (
164131  p_application_id  => p_application_id
164132  ,p_event_id     => l_event_id
164133  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164134  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164135  ,p_actual_flag => l_actual_flag
164136  ,p_balance_type_code => l_balance_type_code
164137  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164138  
164139  , p_source_1 => l_array_source_1(Idx)
164140  , p_source_21 => l_array_source_21(Idx)
164141  , p_source_30 => l_array_source_30(Idx)
164142  , p_source_33 => l_array_source_33(Idx)
164143  , p_source_33_meaning => l_array_source_33_meaning(Idx)
164144  , p_source_53 => l_array_source_53(Idx)
164145  , p_source_55 => l_array_source_55(Idx)
164146  , p_source_57 => l_array_source_57(Idx)
164147  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
164148  , p_source_64 => l_array_source_64(Idx)
164149  , p_source_65 => l_array_source_65(Idx)
164150  , p_source_66 => l_array_source_66(Idx)
164151  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
164152  , p_source_68 => l_array_source_68(Idx)
164153  , p_source_69 => l_array_source_69(Idx)
164154  , p_source_70 => l_array_source_70(Idx)
164155  , p_source_71 => l_array_source_71(Idx)
164156  , p_source_72 => l_array_source_72(Idx)
164157  , p_source_73 => l_array_source_73(Idx)
164158  , p_source_77 => l_array_source_77(Idx)
164159  , p_source_78 => l_array_source_78(Idx)
164160  , p_source_79 => l_array_source_79(Idx)
164161  , p_source_80 => l_array_source_80(Idx)
164162  , p_source_80_meaning => l_array_source_80_meaning(Idx)
164163  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
164164  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
164165  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
164166  , p_source_84 => l_array_source_84(Idx)
164167  , p_source_85 => l_array_source_85(Idx)
164168  , p_source_86 => l_array_source_86(Idx)
164169  , p_source_87 => l_array_source_87(Idx)
164170  , p_source_88 => l_array_source_88(Idx)
164171  , p_source_89 => l_array_source_89(Idx)
164172  , p_source_90 => l_array_source_90(Idx)
164173  , p_source_91 => l_array_source_91(Idx)
164174  , p_source_92 => l_array_source_92(Idx)
164175  , p_source_93 => l_array_source_93(Idx)
164176  , p_source_94 => l_array_source_94(Idx)
164177  , p_source_95 => l_array_source_95(Idx)
164178  , p_source_96 => l_array_source_96(Idx)
164179  , p_source_96_meaning => l_array_source_96_meaning(Idx)
164180  , p_source_142 => l_array_source_142(Idx)
164181  , p_source_142_meaning => l_array_source_142_meaning(Idx)
164182  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
164183  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
164184  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
164185  );
164189 
164186 If(l_balance_type_code = 'A') THEN
164187   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164188 END IF;
164190 --
164191 
164192 
164193 --
164194 AcctLineType_182 (
164195  p_application_id  => p_application_id
164196  ,p_event_id     => l_event_id
164197  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164198  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164199  ,p_actual_flag => l_actual_flag
164200  ,p_balance_type_code => l_balance_type_code
164201  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164202  
164203  , p_source_1 => l_array_source_1(Idx)
164204  , p_source_21 => l_array_source_21(Idx)
164205  , p_source_30 => l_array_source_30(Idx)
164206  , p_source_33 => l_array_source_33(Idx)
164207  , p_source_33_meaning => l_array_source_33_meaning(Idx)
164208  , p_source_53 => l_array_source_53(Idx)
164209  , p_source_55 => l_array_source_55(Idx)
164210  , p_source_57 => l_array_source_57(Idx)
164211  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
164212  , p_source_64 => l_array_source_64(Idx)
164213  , p_source_65 => l_array_source_65(Idx)
164214  , p_source_66 => l_array_source_66(Idx)
164215  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
164216  , p_source_68 => l_array_source_68(Idx)
164217  , p_source_69 => l_array_source_69(Idx)
164218  , p_source_70 => l_array_source_70(Idx)
164219  , p_source_71 => l_array_source_71(Idx)
164220  , p_source_72 => l_array_source_72(Idx)
164221  , p_source_73 => l_array_source_73(Idx)
164222  , p_source_74 => l_array_source_74(Idx)
164223  , p_source_75 => l_array_source_75(Idx)
164224  , p_source_76 => l_array_source_76(Idx)
164225  , p_source_77 => l_array_source_77(Idx)
164226  , p_source_78 => l_array_source_78(Idx)
164227  , p_source_79 => l_array_source_79(Idx)
164228  , p_source_80 => l_array_source_80(Idx)
164229  , p_source_80_meaning => l_array_source_80_meaning(Idx)
164230  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
164231  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
164232  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
164233  , p_source_84 => l_array_source_84(Idx)
164234  , p_source_85 => l_array_source_85(Idx)
164235  , p_source_86 => l_array_source_86(Idx)
164236  , p_source_87 => l_array_source_87(Idx)
164237  , p_source_88 => l_array_source_88(Idx)
164238  , p_source_89 => l_array_source_89(Idx)
164239  , p_source_90 => l_array_source_90(Idx)
164240  , p_source_91 => l_array_source_91(Idx)
164241  , p_source_92 => l_array_source_92(Idx)
164242  , p_source_93 => l_array_source_93(Idx)
164243  , p_source_94 => l_array_source_94(Idx)
164244  , p_source_95 => l_array_source_95(Idx)
164245  , p_source_96 => l_array_source_96(Idx)
164246  , p_source_96_meaning => l_array_source_96_meaning(Idx)
164247  , p_source_142 => l_array_source_142(Idx)
164248  , p_source_142_meaning => l_array_source_142_meaning(Idx)
164249  );
164250 If(l_balance_type_code = 'A') THEN
164251   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164252 END IF;
164253 
164254 --
164255 
164256 
164257 --
164258 AcctLineType_185 (
164259  p_application_id  => p_application_id
164260  ,p_event_id     => l_event_id
164261  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164262  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164263  ,p_actual_flag => l_actual_flag
164264  ,p_balance_type_code => l_balance_type_code
164265  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164266  
164267  , p_source_1 => l_array_source_1(Idx)
164268  , p_source_21 => l_array_source_21(Idx)
164269  , p_source_30 => l_array_source_30(Idx)
164270  , p_source_31 => g_array_event(l_event_id).array_value_char('source_31')
164271  , p_source_31_meaning => g_array_event(l_event_id).array_value_char('source_31_meaning')
164272  , p_source_32 => l_array_source_32(Idx)
164273  , p_source_33 => l_array_source_33(Idx)
164274  , p_source_33_meaning => l_array_source_33_meaning(Idx)
164275  , p_source_45 => l_array_source_45(Idx)
164276  , p_source_53 => l_array_source_53(Idx)
164277  , p_source_55 => l_array_source_55(Idx)
164278  , p_source_57 => l_array_source_57(Idx)
164279  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
164280  , p_source_64 => l_array_source_64(Idx)
164281  , p_source_65 => l_array_source_65(Idx)
164282  , p_source_66 => l_array_source_66(Idx)
164283  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
164284  , p_source_68 => l_array_source_68(Idx)
164285  , p_source_69 => l_array_source_69(Idx)
164286  , p_source_70 => l_array_source_70(Idx)
164287  , p_source_71 => l_array_source_71(Idx)
164288  , p_source_72 => l_array_source_72(Idx)
164289  , p_source_73 => l_array_source_73(Idx)
164290  , p_source_77 => l_array_source_77(Idx)
164291  , p_source_78 => l_array_source_78(Idx)
164292  , p_source_79 => l_array_source_79(Idx)
164293  , p_source_80 => l_array_source_80(Idx)
164294  , p_source_80_meaning => l_array_source_80_meaning(Idx)
164295  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
164296  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
164297  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
164298  , p_source_84 => l_array_source_84(Idx)
164299  , p_source_85 => l_array_source_85(Idx)
164300  , p_source_86 => l_array_source_86(Idx)
164301  , p_source_87 => l_array_source_87(Idx)
164302  , p_source_88 => l_array_source_88(Idx)
164303  , p_source_89 => l_array_source_89(Idx)
164304  , p_source_90 => l_array_source_90(Idx)
164305  , p_source_91 => l_array_source_91(Idx)
164306  , p_source_92 => l_array_source_92(Idx)
164307  , p_source_93 => l_array_source_93(Idx)
164308  , p_source_94 => l_array_source_94(Idx)
164309  , p_source_95 => l_array_source_95(Idx)
164310  , p_source_96 => l_array_source_96(Idx)
164311  , p_source_96_meaning => l_array_source_96_meaning(Idx)
164312  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
164313  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
164317   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164314  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
164315  );
164316 If(l_balance_type_code = 'A') THEN
164318 END IF;
164319 
164320 --
164321 
164322 
164323 --
164324 AcctLineType_190 (
164325  p_application_id  => p_application_id
164326  ,p_event_id     => l_event_id
164327  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164328  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164329  ,p_actual_flag => l_actual_flag
164330  ,p_balance_type_code => l_balance_type_code
164331  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164332  
164333  , p_source_1 => l_array_source_1(Idx)
164334  , p_source_21 => l_array_source_21(Idx)
164335  , p_source_30 => l_array_source_30(Idx)
164336  , p_source_33 => l_array_source_33(Idx)
164337  , p_source_33_meaning => l_array_source_33_meaning(Idx)
164338  , p_source_53 => l_array_source_53(Idx)
164339  , p_source_55 => l_array_source_55(Idx)
164340  , p_source_57 => l_array_source_57(Idx)
164341  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
164342  , p_source_64 => l_array_source_64(Idx)
164343  , p_source_65 => l_array_source_65(Idx)
164344  , p_source_66 => l_array_source_66(Idx)
164345  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
164346  , p_source_68 => l_array_source_68(Idx)
164347  , p_source_69 => l_array_source_69(Idx)
164348  , p_source_70 => l_array_source_70(Idx)
164349  , p_source_71 => l_array_source_71(Idx)
164350  , p_source_72 => l_array_source_72(Idx)
164351  , p_source_73 => l_array_source_73(Idx)
164352  , p_source_77 => l_array_source_77(Idx)
164353  , p_source_78 => l_array_source_78(Idx)
164354  , p_source_79 => l_array_source_79(Idx)
164355  , p_source_80 => l_array_source_80(Idx)
164356  , p_source_80_meaning => l_array_source_80_meaning(Idx)
164357  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
164358  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
164359  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
164360  , p_source_84 => l_array_source_84(Idx)
164361  , p_source_85 => l_array_source_85(Idx)
164362  , p_source_86 => l_array_source_86(Idx)
164363  , p_source_87 => l_array_source_87(Idx)
164364  , p_source_88 => l_array_source_88(Idx)
164365  , p_source_89 => l_array_source_89(Idx)
164366  , p_source_90 => l_array_source_90(Idx)
164367  , p_source_91 => l_array_source_91(Idx)
164368  , p_source_92 => l_array_source_92(Idx)
164369  , p_source_93 => l_array_source_93(Idx)
164370  , p_source_94 => l_array_source_94(Idx)
164371  , p_source_95 => l_array_source_95(Idx)
164372  , p_source_137 => l_array_source_137(Idx)
164373  , p_source_137_meaning => l_array_source_137_meaning(Idx)
164374  , p_source_142 => l_array_source_142(Idx)
164375  , p_source_142_meaning => l_array_source_142_meaning(Idx)
164376  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
164377  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
164378  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
164379  );
164380 If(l_balance_type_code = 'A') THEN
164381   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164382 END IF;
164383 
164384 --
164385 
164386 
164387 --
164388 AcctLineType_195 (
164389  p_application_id  => p_application_id
164390  ,p_event_id     => l_event_id
164391  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164392  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164393  ,p_actual_flag => l_actual_flag
164394  ,p_balance_type_code => l_balance_type_code
164395  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164396  
164397  , p_source_1 => l_array_source_1(Idx)
164398  , p_source_21 => l_array_source_21(Idx)
164399  , p_source_33 => l_array_source_33(Idx)
164400  , p_source_33_meaning => l_array_source_33_meaning(Idx)
164401  , p_source_50 => l_array_source_50(Idx)
164402  , p_source_53 => l_array_source_53(Idx)
164403  , p_source_55 => l_array_source_55(Idx)
164404  , p_source_57 => l_array_source_57(Idx)
164405  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
164406  , p_source_64 => l_array_source_64(Idx)
164407  , p_source_65 => l_array_source_65(Idx)
164408  , p_source_66 => l_array_source_66(Idx)
164409  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
164410  , p_source_68 => l_array_source_68(Idx)
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 => l_array_source_72(Idx)
164415  , p_source_73 => l_array_source_73(Idx)
164416  , p_source_77 => l_array_source_77(Idx)
164417  , p_source_78 => l_array_source_78(Idx)
164418  , p_source_79 => l_array_source_79(Idx)
164419  , p_source_80 => l_array_source_80(Idx)
164420  , p_source_80_meaning => l_array_source_80_meaning(Idx)
164421  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
164422  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
164423  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
164424  , p_source_84 => l_array_source_84(Idx)
164425  , p_source_85 => l_array_source_85(Idx)
164426  , p_source_86 => l_array_source_86(Idx)
164427  , p_source_87 => l_array_source_87(Idx)
164428  , p_source_88 => l_array_source_88(Idx)
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_96_meaning => l_array_source_96_meaning(Idx)
164438  , p_source_142 => l_array_source_142(Idx)
164439  , p_source_142_meaning => l_array_source_142_meaning(Idx)
164440  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
164444 If(l_balance_type_code = 'A') THEN
164441  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
164442  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
164443  );
164445   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164446 END IF;
164447 
164448 --
164449 
164450 
164451 --
164452 AcctLineType_199 (
164453  p_application_id  => p_application_id
164454  ,p_event_id     => l_event_id
164455  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164456  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164457  ,p_actual_flag => l_actual_flag
164458  ,p_balance_type_code => l_balance_type_code
164459  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164460  
164461  , p_source_1 => l_array_source_1(Idx)
164462  , p_source_21 => l_array_source_21(Idx)
164463  , p_source_33 => l_array_source_33(Idx)
164464  , p_source_33_meaning => l_array_source_33_meaning(Idx)
164465  , p_source_50 => l_array_source_50(Idx)
164466  , p_source_53 => l_array_source_53(Idx)
164467  , p_source_55 => l_array_source_55(Idx)
164468  , p_source_57 => l_array_source_57(Idx)
164469  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
164470  , p_source_64 => l_array_source_64(Idx)
164471  , p_source_65 => l_array_source_65(Idx)
164472  , p_source_66 => l_array_source_66(Idx)
164473  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
164474  , p_source_68 => l_array_source_68(Idx)
164475  , p_source_69 => l_array_source_69(Idx)
164476  , p_source_70 => l_array_source_70(Idx)
164477  , p_source_71 => l_array_source_71(Idx)
164478  , p_source_72 => l_array_source_72(Idx)
164479  , p_source_73 => l_array_source_73(Idx)
164480  , p_source_77 => l_array_source_77(Idx)
164481  , p_source_78 => l_array_source_78(Idx)
164482  , p_source_79 => l_array_source_79(Idx)
164483  , p_source_80 => l_array_source_80(Idx)
164484  , p_source_80_meaning => l_array_source_80_meaning(Idx)
164485  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
164486  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
164487  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
164488  , p_source_84 => l_array_source_84(Idx)
164489  , p_source_85 => l_array_source_85(Idx)
164490  , p_source_86 => l_array_source_86(Idx)
164491  , p_source_87 => l_array_source_87(Idx)
164492  , p_source_88 => l_array_source_88(Idx)
164493  , p_source_89 => l_array_source_89(Idx)
164494  , p_source_90 => l_array_source_90(Idx)
164495  , p_source_91 => l_array_source_91(Idx)
164496  , p_source_92 => l_array_source_92(Idx)
164497  , p_source_93 => l_array_source_93(Idx)
164498  , p_source_94 => l_array_source_94(Idx)
164499  , p_source_95 => l_array_source_95(Idx)
164500  , p_source_142 => l_array_source_142(Idx)
164501  , p_source_142_meaning => l_array_source_142_meaning(Idx)
164502  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
164503  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
164504  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
164505  );
164506 If(l_balance_type_code = 'A') THEN
164507   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164508 END IF;
164509 
164510 --
164511 
164512 
164513 --
164514 AcctLineType_206 (
164515  p_application_id  => p_application_id
164516  ,p_event_id     => l_event_id
164517  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164518  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164519  ,p_actual_flag => l_actual_flag
164520  ,p_balance_type_code => l_balance_type_code
164521  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164522  
164523  , p_source_1 => l_array_source_1(Idx)
164524  , p_source_21 => l_array_source_21(Idx)
164525  , p_source_33 => l_array_source_33(Idx)
164526  , p_source_33_meaning => l_array_source_33_meaning(Idx)
164527  , p_source_51 => l_array_source_51(Idx)
164528  , p_source_53 => l_array_source_53(Idx)
164529  , p_source_55 => l_array_source_55(Idx)
164530  , p_source_57 => l_array_source_57(Idx)
164531  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
164532  , p_source_64 => l_array_source_64(Idx)
164533  , p_source_65 => l_array_source_65(Idx)
164534  , p_source_66 => l_array_source_66(Idx)
164535  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
164536  , p_source_68 => l_array_source_68(Idx)
164537  , p_source_69 => l_array_source_69(Idx)
164538  , p_source_70 => l_array_source_70(Idx)
164539  , p_source_71 => l_array_source_71(Idx)
164540  , p_source_72 => l_array_source_72(Idx)
164541  , p_source_73 => l_array_source_73(Idx)
164542  , p_source_77 => l_array_source_77(Idx)
164543  , p_source_78 => l_array_source_78(Idx)
164544  , p_source_79 => l_array_source_79(Idx)
164545  , p_source_80 => l_array_source_80(Idx)
164546  , p_source_80_meaning => l_array_source_80_meaning(Idx)
164547  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
164548  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
164549  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
164550  , p_source_84 => l_array_source_84(Idx)
164551  , p_source_85 => l_array_source_85(Idx)
164552  , p_source_86 => l_array_source_86(Idx)
164553  , p_source_87 => l_array_source_87(Idx)
164554  , p_source_88 => l_array_source_88(Idx)
164555  , p_source_89 => l_array_source_89(Idx)
164556  , p_source_90 => l_array_source_90(Idx)
164557  , p_source_91 => l_array_source_91(Idx)
164558  , p_source_92 => l_array_source_92(Idx)
164559  , p_source_93 => l_array_source_93(Idx)
164560  , p_source_94 => l_array_source_94(Idx)
164561  , p_source_95 => l_array_source_95(Idx)
164562  , p_source_142 => l_array_source_142(Idx)
164563  , p_source_142_meaning => l_array_source_142_meaning(Idx)
164564  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
164565  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
164566  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
164567  );
164571 
164568 If(l_balance_type_code = 'A') THEN
164569   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164570 END IF;
164572 --
164573 
164574 
164575 --
164576 AcctLineType_207 (
164577  p_application_id  => p_application_id
164578  ,p_event_id     => l_event_id
164579  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164580  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164581  ,p_actual_flag => l_actual_flag
164582  ,p_balance_type_code => l_balance_type_code
164583  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164584  
164585  , p_source_1 => l_array_source_1(Idx)
164586  , p_source_21 => l_array_source_21(Idx)
164587  , p_source_33 => l_array_source_33(Idx)
164588  , p_source_33_meaning => l_array_source_33_meaning(Idx)
164589  , p_source_50 => l_array_source_50(Idx)
164590  , p_source_53 => l_array_source_53(Idx)
164591  , p_source_55 => l_array_source_55(Idx)
164592  , p_source_57 => l_array_source_57(Idx)
164593  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
164594  , p_source_64 => l_array_source_64(Idx)
164595  , p_source_65 => l_array_source_65(Idx)
164596  , p_source_66 => l_array_source_66(Idx)
164597  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
164598  , p_source_68 => l_array_source_68(Idx)
164599  , p_source_69 => l_array_source_69(Idx)
164600  , p_source_70 => l_array_source_70(Idx)
164601  , p_source_71 => l_array_source_71(Idx)
164602  , p_source_72 => l_array_source_72(Idx)
164603  , p_source_73 => l_array_source_73(Idx)
164604  , p_source_74 => l_array_source_74(Idx)
164605  , p_source_75 => l_array_source_75(Idx)
164606  , p_source_76 => l_array_source_76(Idx)
164607  , p_source_77 => l_array_source_77(Idx)
164608  , p_source_78 => l_array_source_78(Idx)
164609  , p_source_79 => l_array_source_79(Idx)
164610  , p_source_80 => l_array_source_80(Idx)
164611  , p_source_80_meaning => l_array_source_80_meaning(Idx)
164612  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
164613  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
164614  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
164615  , p_source_84 => l_array_source_84(Idx)
164616  , p_source_85 => l_array_source_85(Idx)
164617  , p_source_86 => l_array_source_86(Idx)
164618  , p_source_87 => l_array_source_87(Idx)
164619  , p_source_88 => l_array_source_88(Idx)
164620  , p_source_89 => l_array_source_89(Idx)
164621  , p_source_90 => l_array_source_90(Idx)
164622  , p_source_91 => l_array_source_91(Idx)
164623  , p_source_92 => l_array_source_92(Idx)
164624  , p_source_93 => l_array_source_93(Idx)
164625  , p_source_94 => l_array_source_94(Idx)
164626  , p_source_95 => l_array_source_95(Idx)
164627  , p_source_96 => l_array_source_96(Idx)
164628  , p_source_96_meaning => l_array_source_96_meaning(Idx)
164629  , p_source_142 => l_array_source_142(Idx)
164630  , p_source_142_meaning => l_array_source_142_meaning(Idx)
164631  );
164632 If(l_balance_type_code = 'A') THEN
164633   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164634 END IF;
164635 
164636 --
164637 
164638 
164639 --
164640 AcctLineType_215 (
164641  p_application_id  => p_application_id
164642  ,p_event_id     => l_event_id
164643  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164644  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164645  ,p_actual_flag => l_actual_flag
164646  ,p_balance_type_code => l_balance_type_code
164647  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164648  
164649  , p_source_1 => l_array_source_1(Idx)
164650  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
164651  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
164652  , p_source_20 => g_array_event(l_event_id).array_value_num('source_20')
164653  , p_source_21 => l_array_source_21(Idx)
164654  , p_source_22 => l_array_source_22(Idx)
164655  , p_source_22_meaning => l_array_source_22_meaning(Idx)
164656  , p_source_23 => g_array_event(l_event_id).array_value_num('source_23')
164657  , p_source_30 => l_array_source_30(Idx)
164658  , p_source_33 => l_array_source_33(Idx)
164659  , p_source_33_meaning => l_array_source_33_meaning(Idx)
164660  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
164661  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
164662  , p_source_53 => l_array_source_53(Idx)
164663  , p_source_55 => l_array_source_55(Idx)
164664  , p_source_57 => l_array_source_57(Idx)
164665  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
164666  , p_source_64 => l_array_source_64(Idx)
164667  , p_source_65 => l_array_source_65(Idx)
164668  , p_source_66 => l_array_source_66(Idx)
164669  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
164670  , p_source_68 => l_array_source_68(Idx)
164671  , p_source_69 => l_array_source_69(Idx)
164672  , p_source_70 => l_array_source_70(Idx)
164673  , p_source_71 => l_array_source_71(Idx)
164674  , p_source_72 => l_array_source_72(Idx)
164675  , p_source_73 => l_array_source_73(Idx)
164676  , p_source_77 => l_array_source_77(Idx)
164677  , p_source_78 => l_array_source_78(Idx)
164678  , p_source_79 => l_array_source_79(Idx)
164679  , p_source_80 => l_array_source_80(Idx)
164680  , p_source_80_meaning => l_array_source_80_meaning(Idx)
164681  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
164682  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
164683  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
164684  , p_source_84 => l_array_source_84(Idx)
164685  , p_source_85 => l_array_source_85(Idx)
164686  , p_source_86 => l_array_source_86(Idx)
164687  , p_source_87 => l_array_source_87(Idx)
164688  , p_source_88 => l_array_source_88(Idx)
164689  , p_source_89 => l_array_source_89(Idx)
164690  , p_source_90 => l_array_source_90(Idx)
164691  , p_source_91 => l_array_source_91(Idx)
164692  , p_source_92 => l_array_source_92(Idx)
164693  , p_source_93 => l_array_source_93(Idx)
164694  , p_source_94 => l_array_source_94(Idx)
164698  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
164695  , p_source_95 => l_array_source_95(Idx)
164696  , p_source_96 => l_array_source_96(Idx)
164697  , p_source_96_meaning => l_array_source_96_meaning(Idx)
164699  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
164700  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
164701  );
164702 If(l_balance_type_code = 'A') THEN
164703   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164704 END IF;
164705 
164706 --
164707 
164708 
164709 --
164710 AcctLineType_219 (
164711  p_application_id  => p_application_id
164712  ,p_event_id     => l_event_id
164713  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164714  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164715  ,p_actual_flag => l_actual_flag
164716  ,p_balance_type_code => l_balance_type_code
164717  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164718  
164719  , p_source_1 => l_array_source_1(Idx)
164720  , p_source_21 => l_array_source_21(Idx)
164721  , p_source_30 => l_array_source_30(Idx)
164722  , p_source_33 => l_array_source_33(Idx)
164723  , p_source_33_meaning => l_array_source_33_meaning(Idx)
164724  , p_source_53 => l_array_source_53(Idx)
164725  , p_source_55 => l_array_source_55(Idx)
164726  , p_source_57 => l_array_source_57(Idx)
164727  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
164728  , p_source_64 => l_array_source_64(Idx)
164729  , p_source_65 => l_array_source_65(Idx)
164730  , p_source_66 => l_array_source_66(Idx)
164731  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
164732  , p_source_68 => l_array_source_68(Idx)
164733  , p_source_69 => l_array_source_69(Idx)
164734  , p_source_70 => l_array_source_70(Idx)
164735  , p_source_71 => l_array_source_71(Idx)
164736  , p_source_72 => l_array_source_72(Idx)
164737  , p_source_73 => l_array_source_73(Idx)
164738  , p_source_77 => l_array_source_77(Idx)
164739  , p_source_78 => l_array_source_78(Idx)
164740  , p_source_79 => l_array_source_79(Idx)
164741  , p_source_80 => l_array_source_80(Idx)
164742  , p_source_80_meaning => l_array_source_80_meaning(Idx)
164743  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
164744  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
164745  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
164746  , p_source_84 => l_array_source_84(Idx)
164747  , p_source_85 => l_array_source_85(Idx)
164748  , p_source_86 => l_array_source_86(Idx)
164749  , p_source_87 => l_array_source_87(Idx)
164750  , p_source_88 => l_array_source_88(Idx)
164751  , p_source_89 => l_array_source_89(Idx)
164752  , p_source_90 => l_array_source_90(Idx)
164753  , p_source_91 => l_array_source_91(Idx)
164754  , p_source_92 => l_array_source_92(Idx)
164755  , p_source_93 => l_array_source_93(Idx)
164756  , p_source_94 => l_array_source_94(Idx)
164757  , p_source_95 => l_array_source_95(Idx)
164758  , p_source_96 => l_array_source_96(Idx)
164759  , p_source_96_meaning => l_array_source_96_meaning(Idx)
164760  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
164761  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
164762  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
164763  );
164764 If(l_balance_type_code = 'A') THEN
164765   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164766 END IF;
164767 
164768 --
164769 
164770 
164771 --
164772 AcctLineType_223 (
164773  p_application_id  => p_application_id
164774  ,p_event_id     => l_event_id
164775  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164776  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164777  ,p_actual_flag => l_actual_flag
164778  ,p_balance_type_code => l_balance_type_code
164779  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164780  
164781  , p_source_1 => l_array_source_1(Idx)
164782  , p_source_21 => l_array_source_21(Idx)
164783  , p_source_30 => l_array_source_30(Idx)
164784  , p_source_33 => l_array_source_33(Idx)
164785  , p_source_33_meaning => l_array_source_33_meaning(Idx)
164786  , p_source_53 => l_array_source_53(Idx)
164787  , p_source_55 => l_array_source_55(Idx)
164788  , p_source_57 => l_array_source_57(Idx)
164789  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
164790  , p_source_64 => l_array_source_64(Idx)
164791  , p_source_65 => l_array_source_65(Idx)
164792  , p_source_66 => l_array_source_66(Idx)
164793  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
164794  , p_source_68 => l_array_source_68(Idx)
164795  , p_source_69 => l_array_source_69(Idx)
164796  , p_source_70 => l_array_source_70(Idx)
164797  , p_source_71 => l_array_source_71(Idx)
164798  , p_source_72 => l_array_source_72(Idx)
164799  , p_source_73 => l_array_source_73(Idx)
164800  , p_source_77 => l_array_source_77(Idx)
164801  , p_source_78 => l_array_source_78(Idx)
164802  , p_source_79 => l_array_source_79(Idx)
164803  , p_source_80 => l_array_source_80(Idx)
164804  , p_source_80_meaning => l_array_source_80_meaning(Idx)
164805  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
164806  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
164807  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
164808  , p_source_84 => l_array_source_84(Idx)
164809  , p_source_85 => l_array_source_85(Idx)
164810  , p_source_86 => l_array_source_86(Idx)
164811  , p_source_87 => l_array_source_87(Idx)
164812  , p_source_88 => l_array_source_88(Idx)
164813  , p_source_89 => l_array_source_89(Idx)
164814  , p_source_90 => l_array_source_90(Idx)
164815  , p_source_91 => l_array_source_91(Idx)
164816  , p_source_92 => l_array_source_92(Idx)
164817  , p_source_93 => l_array_source_93(Idx)
164818  , p_source_94 => l_array_source_94(Idx)
164819  , p_source_95 => l_array_source_95(Idx)
164820  , p_source_96 => l_array_source_96(Idx)
164821  , p_source_96_meaning => l_array_source_96_meaning(Idx)
164825  );
164822  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
164823  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
164824  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
164826 If(l_balance_type_code = 'A') THEN
164827   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164828 END IF;
164829 
164830 --
164831 
164832 
164833 --
164834 AcctLineType_229 (
164835  p_application_id  => p_application_id
164836  ,p_event_id     => l_event_id
164837  ,p_calculate_acctd_flag => l_calculate_acctd_flag
164838  ,p_calculate_g_l_flag => l_calculate_g_l_flag
164839  ,p_actual_flag => l_actual_flag
164840  ,p_balance_type_code => l_balance_type_code
164841  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
164842  
164843  , p_source_1 => l_array_source_1(Idx)
164844  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
164845  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
164846  , p_source_21 => l_array_source_21(Idx)
164847  , p_source_30 => l_array_source_30(Idx)
164848  , p_source_33 => l_array_source_33(Idx)
164849  , p_source_33_meaning => l_array_source_33_meaning(Idx)
164850  , p_source_43 => l_array_source_43(Idx)
164851  , p_source_53 => l_array_source_53(Idx)
164852  , p_source_55 => l_array_source_55(Idx)
164853  , p_source_57 => l_array_source_57(Idx)
164854  , p_source_58 => g_array_event(l_event_id).array_value_num('source_58')
164855  , p_source_64 => l_array_source_64(Idx)
164856  , p_source_65 => l_array_source_65(Idx)
164857  , p_source_66 => l_array_source_66(Idx)
164858  , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
164859  , p_source_68 => l_array_source_68(Idx)
164860  , p_source_69 => l_array_source_69(Idx)
164861  , p_source_70 => l_array_source_70(Idx)
164862  , p_source_71 => l_array_source_71(Idx)
164863  , p_source_72 => l_array_source_72(Idx)
164864  , p_source_73 => l_array_source_73(Idx)
164865  , p_source_77 => l_array_source_77(Idx)
164866  , p_source_78 => l_array_source_78(Idx)
164867  , p_source_79 => l_array_source_79(Idx)
164868  , p_source_80 => l_array_source_80(Idx)
164869  , p_source_80_meaning => l_array_source_80_meaning(Idx)
164870  , p_source_81 => g_array_event(l_event_id).array_value_num('source_81')
164871  , p_source_82 => g_array_event(l_event_id).array_value_num('source_82')
164872  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
164873  , p_source_84 => l_array_source_84(Idx)
164874  , p_source_85 => l_array_source_85(Idx)
164875  , p_source_86 => l_array_source_86(Idx)
164876  , p_source_87 => l_array_source_87(Idx)
164877  , p_source_88 => l_array_source_88(Idx)
164878  , p_source_89 => l_array_source_89(Idx)
164879  , p_source_90 => l_array_source_90(Idx)
164880  , p_source_91 => l_array_source_91(Idx)
164881  , p_source_92 => l_array_source_92(Idx)
164882  , p_source_93 => l_array_source_93(Idx)
164883  , p_source_94 => l_array_source_94(Idx)
164884  , p_source_95 => l_array_source_95(Idx)
164885  , p_source_143 => g_array_event(l_event_id).array_value_date('source_143')
164886  , p_source_144 => g_array_event(l_event_id).array_value_num('source_144')
164887  , p_source_145 => g_array_event(l_event_id).array_value_char('source_145')
164888  );
164889 If(l_balance_type_code = 'A') THEN
164890   l_actual_gain_loss_ref := l_gain_or_loss_ref;
164891 END IF;
164892 
164893 --
164894 
164895       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
164896       -- or secondary ledger that has different currency with primary
164897       -- or alc that is calculated by sla
164898       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
164899             (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'))
164900 
164901 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
164902 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
164903           AND (l_actual_flag = 'A')) THEN
164904         XLA_AE_LINES_PKG.CreateGainOrLossLines(
164905           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
164906          ,p_application_id   => p_application_id
164907          ,p_amb_context_code => 'DEFAULT'
164908          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
164909          ,p_event_class_code => C_EVENT_CLASS_CODE
164910          ,p_event_type_code  => C_EVENT_TYPE_CODE
164911          
164912          ,p_gain_ccid        => -1
164913          ,p_loss_ccid        => -1
164914 
164915          ,p_actual_flag      => l_actual_flag
164916          ,p_enc_flag         => null
164917          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
164918          ,p_enc_g_l_ref      => null
164919          );
164920       END IF;
164921    END IF;
164922 END IF;
164923 
164924    ELSE
164925       --
164926       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
164927       --
164928       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
164929          trace
164930             (p_msg      => 'Trancaction revesal option is Y'
164931             ,p_level    => C_LEVEL_STATEMENT
164932             ,p_module   => l_log_module);
164933       END IF;
164934    END IF;
164935 
164936 END LOOP;
164937 l_result := XLA_AE_LINES_PKG.InsertLines ;
164938 end loop;
164939 close line_cur;
164940 
164941 
164942 --
164943 -- insert headers into xla_ae_headers_gt table
164944 --
164945 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
164946 
164947 -- insert into errors table here.
164948 
164949 END LOOP;
164950 
164951 --
164952 -- 4865292
164953 --
164954 -- Compare g_hdr_extract_count with event count in
164955 -- CreateHeadersAndLines.
164956 --
164960    trace (p_msg     => '# rows extracted from header extract objects '
164957 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
164958 
164959 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
164961                     || ' (running total): '
164962                     || g_hdr_extract_count
164963          ,p_level   => C_LEVEL_STATEMENT
164964          ,p_module  => l_log_module);
164965 END IF;
164966 
164967 CLOSE header_cur;
164968 --
164969 
164970 --
164971 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
164972    trace
164973       (p_msg      => 'END of EventClass_236'
164974       ,p_level    => C_LEVEL_PROCEDURE
164975       ,p_module   => l_log_module);
164976 END IF;
164977 --
164978 RETURN l_result;
164979 EXCEPTION
164980 WHEN xla_exceptions_pkg.application_exception THEN
164981    
164982 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
164983 
164984    
164985 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
164986 
164987    RAISE;
164988 
164989 WHEN NO_DATA_FOUND THEN
164990 
164991 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
164992 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
164993 
164994 FOR header_record IN header_cur
164995 LOOP
164996     l_array_header_events(header_record.event_id) := header_record.event_id;
164997 END LOOP;
164998 
164999 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
165000 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
165001 
165002 fnd_file.put_line(fnd_file.LOG, '                    ');
165003 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
165004 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
165005 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
165006 
165007 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
165008 LOOP
165009 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
165010 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
165011         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
165012 	END IF;
165013 END LOOP;
165014 
165015 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
165016 fnd_file.put_line(fnd_file.LOG, '                    ');
165017 
165018 
165019 xla_exceptions_pkg.raise_message
165020       (p_location => 'XLA_00200_AAD_S_000002_PKG.EventClass_236');
165021 
165022 
165023 WHEN OTHERS THEN
165024    xla_exceptions_pkg.raise_message
165025       (p_location => 'XLA_00200_AAD_S_000002_PKG.EventClass_236');
165026 END EventClass_236;
165027 --
165028 
165029 ---------------------------------------
165030 --
165031 -- PRIVATE PROCEDURE
165032 --         insert_sources_237
165033 --
165034 ----------------------------------------
165035 --
165036 PROCEDURE insert_sources_237(
165037                                 p_target_ledger_id       IN NUMBER
165038                               , p_language               IN VARCHAR2
165039                               , p_sla_ledger_id          IN NUMBER
165040                               , p_pad_start_date         IN DATE
165041                               , p_pad_end_date           IN DATE
165042                          )
165043 IS
165044 
165045 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'RECONCILED PAYMENTS_ALL';
165046 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'RECONCILED PAYMENTS';
165047 p_apps_owner                   VARCHAR2(30);
165048 l_log_module                   VARCHAR2(240);
165049 BEGIN
165050 IF g_log_enabled THEN
165051       l_log_module := C_DEFAULT_MODULE||'.insert_sources_237';
165052 END IF;
165053 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
165054 
165055       trace
165056          (p_msg      => 'BEGIN of insert_sources_237'
165057          ,p_level    => C_LEVEL_PROCEDURE
165058          ,p_module   => l_log_module);
165059 
165060 END IF;
165061 
165062 -- select APPS owner
165063 SELECT oracle_username
165064   INTO p_apps_owner
165065   FROM fnd_oracle_userid
165066  WHERE read_only_flag = 'U'
165067 ;
165068 
165069 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
165070       trace
165071          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
165072                         ' - p_language = '||p_language||
165073                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
165074                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
165075                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
165076                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
165077          ,p_level    => C_LEVEL_STATEMENT
165078          ,p_module   => l_log_module);
165079 END IF;
165080 
165081 
165082 --
165083 INSERT INTO xla_diag_sources --hdr2
165084 (
165085         event_id
165086       , ledger_id
165087       , sla_ledger_id
165088       , description_language
165089       , object_name
165090       , object_type_code
165091       , line_number
165092       , source_application_id
165093       , source_type_code
165094       , source_code
165095       , source_value
165096       , source_meaning
165097       , created_by
165098       , creation_date
165099       , last_update_date
165100       , last_updated_by
165101       , last_update_login
165102       , program_update_date
165103       , program_application_id
165104       , program_id
165105       , request_id
165106 )
165107 SELECT
165108         event_id
165109       , p_target_ledger_id
165110       , p_sla_ledger_id
165111       , p_language
165112       , object_name
165113       , object_type_code
165117       , source_code
165114       , line_number
165115       , source_application_id
165116       , source_type_code
165118       , SUBSTR(source_value ,1,1996)
165119       , SUBSTR(source_meaning ,1,200)
165120       , xla_environment_pkg.g_Usr_Id
165121       , TRUNC(SYSDATE)
165122       , TRUNC(SYSDATE)
165123       , xla_environment_pkg.g_Usr_Id
165124       , xla_environment_pkg.g_Login_Id
165125       , TRUNC(SYSDATE)
165126       , xla_environment_pkg.g_Prog_Appl_Id
165127       , xla_environment_pkg.g_Prog_Id
165128       , xla_environment_pkg.g_Req_Id
165129   FROM (
165130        SELECT xet.event_id                  event_id
165131             , 0                          line_number
165132             , CASE r
165133                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
165134                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
165135                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
165136                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
165137                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
165138                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
165139                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
165140                 WHEN 8 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
165141                 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
165142                 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
165143                 WHEN 11 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
165144                 WHEN 12 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
165145                 WHEN 13 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
165146                 WHEN 14 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
165147                 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
165148                 WHEN 16 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
165149                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
165150                 WHEN 18 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
165151                 WHEN 19 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
165152                 WHEN 20 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
165153                 WHEN 21 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
165154                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
165155                 WHEN 23 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
165156                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
165157                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
165158                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
165159                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
165160                 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
165161                 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
165162                 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
165163                 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
165164                 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
165165                 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
165166                 WHEN 34 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
165167                 WHEN 35 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
165168                 WHEN 36 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
165169                 WHEN 37 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
165170                 
165171                ELSE null
165172               END                           object_name
165173             , CASE r
165174                 WHEN 1 THEN 'HEADER' 
165175                 WHEN 2 THEN 'HEADER' 
165176                 WHEN 3 THEN 'HEADER' 
165177                 WHEN 4 THEN 'HEADER' 
165178                 WHEN 5 THEN 'HEADER' 
165179                 WHEN 6 THEN 'HEADER' 
165180                 WHEN 7 THEN 'HEADER' 
165181                 WHEN 8 THEN 'HEADER' 
165182                 WHEN 9 THEN 'HEADER' 
165183                 WHEN 10 THEN 'HEADER' 
165184                 WHEN 11 THEN 'HEADER' 
165185                 WHEN 12 THEN 'HEADER' 
165186                 WHEN 13 THEN 'HEADER' 
165187                 WHEN 14 THEN 'HEADER' 
165188                 WHEN 15 THEN 'HEADER' 
165189                 WHEN 16 THEN 'HEADER' 
165190                 WHEN 17 THEN 'HEADER' 
165191                 WHEN 18 THEN 'HEADER' 
165192                 WHEN 19 THEN 'HEADER' 
165193                 WHEN 20 THEN 'HEADER' 
165194                 WHEN 21 THEN 'HEADER' 
165195                 WHEN 22 THEN 'HEADER' 
165196                 WHEN 23 THEN 'HEADER' 
165197                 WHEN 24 THEN 'HEADER' 
165198                 WHEN 25 THEN 'HEADER' 
165199                 WHEN 26 THEN 'HEADER' 
165200                 WHEN 27 THEN 'HEADER' 
165201                 WHEN 28 THEN 'HEADER' 
165202                 WHEN 29 THEN 'HEADER' 
165203                 WHEN 30 THEN 'HEADER' 
165204                 WHEN 31 THEN 'HEADER' 
165205                 WHEN 32 THEN 'HEADER' 
165206                 WHEN 33 THEN 'HEADER' 
165207                 WHEN 34 THEN 'HEADER' 
165208                 WHEN 35 THEN 'HEADER' 
165209                 WHEN 36 THEN 'HEADER' 
165210                 WHEN 37 THEN 'HEADER' 
165211                 
165212                 ELSE null
165213               END                           object_type_code
165214             , CASE r
165215                 WHEN 1 THEN '200' 
165216                 WHEN 2 THEN '200' 
165217                 WHEN 3 THEN '200' 
165218                 WHEN 4 THEN '200' 
165219                 WHEN 5 THEN '200' 
165220                 WHEN 6 THEN '200' 
165221                 WHEN 7 THEN '200' 
165222                 WHEN 8 THEN '200' 
165223                 WHEN 9 THEN '200' 
165224                 WHEN 10 THEN '200' 
165225                 WHEN 11 THEN '200' 
165226                 WHEN 12 THEN '200' 
165227                 WHEN 13 THEN '200' 
165228                 WHEN 14 THEN '200' 
165229                 WHEN 15 THEN '200' 
165230                 WHEN 16 THEN '200' 
165231                 WHEN 17 THEN '200' 
165232                 WHEN 18 THEN '200' 
165233                 WHEN 19 THEN '200' 
165234                 WHEN 20 THEN '200' 
165235                 WHEN 21 THEN '200' 
165236                 WHEN 22 THEN '200' 
165240                 WHEN 26 THEN '200' 
165237                 WHEN 23 THEN '200' 
165238                 WHEN 24 THEN '200' 
165239                 WHEN 25 THEN '200' 
165241                 WHEN 27 THEN '200' 
165242                 WHEN 28 THEN '200' 
165243                 WHEN 29 THEN '200' 
165244                 WHEN 30 THEN '200' 
165245                 WHEN 31 THEN '200' 
165246                 WHEN 32 THEN '200' 
165247                 WHEN 33 THEN '200' 
165248                 WHEN 34 THEN '200' 
165249                 WHEN 35 THEN '200' 
165250                 WHEN 36 THEN '200' 
165251                 WHEN 37 THEN '200' 
165252                 
165253                 ELSE null
165254               END                           source_application_id
165255             , 'S'             source_type_code
165256             , CASE r
165257                 WHEN 1 THEN 'DOC_SEQUENCE_NAME' 
165258                 WHEN 2 THEN 'AC_DOC_SEQUENCE_VALUE' 
165259                 WHEN 3 THEN 'PAYMENT_TRANSACTION_NUMBER' 
165260                 WHEN 4 THEN 'AC_CHECK_DATE' 
165261                 WHEN 5 THEN 'CBA_BANK_ACCOUNT_NAME' 
165262                 WHEN 6 THEN 'AC_CURRENCY_CODE' 
165263                 WHEN 7 THEN 'CGAC_BANK_CHARGES_CCID' 
165264                 WHEN 8 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
165265                 WHEN 9 THEN 'CGAC_BANK_ERRORS_CCID' 
165266                 WHEN 10 THEN 'CGAC_AP_ASSET_CCID' 
165267                 WHEN 11 THEN 'FSP_DISC_TAKEN_CCID' 
165268                 WHEN 12 THEN 'ASP_DISCOUNT_DIST_METHOD' 
165269                 WHEN 13 THEN 'ASP_INTEREST_CCID' 
165270                 WHEN 14 THEN 'ASP_PRORATE_INT_ACROSS_DISTS' 
165271                 WHEN 15 THEN 'CGAC_GAIN_CCID' 
165272                 WHEN 16 THEN 'ASP_GAIN_CCID' 
165273                 WHEN 17 THEN 'CGAC_LOSS_CCID' 
165274                 WHEN 18 THEN 'ASP_LOSS_CCID' 
165275                 WHEN 19 THEN 'ASP_DISC_TAKEN_CCID' 
165276                 WHEN 20 THEN 'ASP_AUTO_OFFSET_FLAG' 
165277                 WHEN 21 THEN 'ASP_ROUNDING_ERROR_CCID' 
165278                 WHEN 22 THEN 'THIRD_PARTY_TYPE' 
165279                 WHEN 23 THEN 'ASP_WHEN_TO_ACCOUNT_PMT' 
165280                 WHEN 24 THEN 'APH_BANK_CURRENCY_CODE' 
165281                 WHEN 25 THEN 'APH_BANK_TO_BASE_XRATE_DATE' 
165282                 WHEN 26 THEN 'APH_BANK_TO_BASE_XRATE' 
165283                 WHEN 27 THEN 'APH_BANK_TO_BASE_XRATE_TYPE' 
165284                 WHEN 28 THEN 'AC_VENDOR_ID' 
165285                 WHEN 29 THEN 'AC_VENDOR_SITE_ID' 
165286                 WHEN 30 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG' 
165287                 WHEN 31 THEN 'AC_FUTURE_PAY_DUE_DATE' 
165288                 WHEN 32 THEN 'AC_EXCHANGE_DATE' 
165289                 WHEN 33 THEN 'AC_EXCHANGE_RATE' 
165290                 WHEN 34 THEN 'AC_EXCHANGE_RATE_TYPE' 
165291                 WHEN 35 THEN 'PAYMENT_TYPE' 
165292                 WHEN 36 THEN 'AC_DOC_CATEGORY_CODE' 
165293                 WHEN 37 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID' 
165294                 
165295                 ELSE null
165296               END                           source_code
165297             , CASE r
165298                 WHEN 1 THEN TO_CHAR(h2.DOC_SEQUENCE_NAME)
165299                 WHEN 2 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
165300                 WHEN 3 THEN TO_CHAR(h2.PAYMENT_TRANSACTION_NUMBER)
165301                 WHEN 4 THEN TO_CHAR(h2.AC_CHECK_DATE)
165302                 WHEN 5 THEN TO_CHAR(h2.CBA_BANK_ACCOUNT_NAME)
165303                 WHEN 6 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
165304                 WHEN 7 THEN TO_CHAR(h2.CGAC_BANK_CHARGES_CCID)
165305                 WHEN 8 THEN TO_CHAR(h3.ASP_AUTOMATIC_OFFSETS_VALUE)
165306                 WHEN 9 THEN TO_CHAR(h2.CGAC_BANK_ERRORS_CCID)
165307                 WHEN 10 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
165308                 WHEN 11 THEN TO_CHAR(h3.FSP_DISC_TAKEN_CCID)
165309                 WHEN 12 THEN TO_CHAR(h3.ASP_DISCOUNT_DIST_METHOD)
165310                 WHEN 13 THEN TO_CHAR(h3.ASP_INTEREST_CCID)
165311                 WHEN 14 THEN TO_CHAR(h3.ASP_PRORATE_INT_ACROSS_DISTS)
165312                 WHEN 15 THEN TO_CHAR(h2.CGAC_GAIN_CCID)
165313                 WHEN 16 THEN TO_CHAR(h3.ASP_GAIN_CCID)
165314                 WHEN 17 THEN TO_CHAR(h2.CGAC_LOSS_CCID)
165315                 WHEN 18 THEN TO_CHAR(h3.ASP_LOSS_CCID)
165316                 WHEN 19 THEN TO_CHAR(h3.ASP_DISC_TAKEN_CCID)
165317                 WHEN 20 THEN TO_CHAR(h3.ASP_AUTO_OFFSET_FLAG)
165318                 WHEN 21 THEN TO_CHAR(h3.ASP_ROUNDING_ERROR_CCID)
165319                 WHEN 22 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
165320                 WHEN 23 THEN TO_CHAR(h3.ASP_WHEN_TO_ACCOUNT_PMT)
165321                 WHEN 24 THEN TO_CHAR(h2.APH_BANK_CURRENCY_CODE)
165322                 WHEN 25 THEN TO_CHAR(h2.APH_BANK_TO_BASE_XRATE_DATE)
165323                 WHEN 26 THEN TO_CHAR(h2.APH_BANK_TO_BASE_XRATE)
165324                 WHEN 27 THEN TO_CHAR(h2.APH_BANK_TO_BASE_XRATE_TYPE)
165325                 WHEN 28 THEN TO_CHAR(h2.AC_VENDOR_ID)
165326                 WHEN 29 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
165327                 WHEN 30 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
165328                 WHEN 31 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
165329                 WHEN 32 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
165330                 WHEN 33 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
165331                 WHEN 34 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
165332                 WHEN 35 THEN TO_CHAR(h2.PAYMENT_TYPE)
165333                 WHEN 36 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
165334                 WHEN 37 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
165335                 
165336                 ELSE null
165337               END                           source_value
165338             , CASE r
165339                 WHEN 8 THEN fvl15.meaning
165340                 WHEN 12 THEN fvl19.meaning
165341                 WHEN 20 THEN fvl47.meaning
165342                 WHEN 30 THEN fvl113.meaning
165343                 WHEN 35 THEN fvl122.meaning
165344                 
165345                 ELSE null
165346               END               source_meaning
165350   , fnd_lookup_values    fvl15
165347          FROM xla_events_gt     xet  
165348       , AP_PAYMENT_EXTRACT_HEADER_V  h2
165349       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
165351   , fnd_lookup_values    fvl19
165352   , fnd_lookup_values    fvl47
165353   , fnd_lookup_values    fvl113
165354   , fnd_lookup_values    fvl122
165355              ,(select rownum r from all_objects where rownum <= 37 and owner = p_apps_owner)
165356          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
165357            AND xet.event_class_code = C_EVENT_CLASS_CODE
165358               AND h2.event_id = xet.event_id
165359  AND h3.asp_org_id = h2.ac_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
165360   AND fvl15.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
165361   AND fvl15.view_application_id(+) = 200
165362   AND fvl15.language(+)            = USERENV('LANG')
165363      AND fvl19.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
165364   AND fvl19.lookup_code(+)         = h3.ASP_DISCOUNT_DIST_METHOD
165365   AND fvl19.view_application_id(+) = 200
165366   AND fvl19.language(+)            = USERENV('LANG')
165367      AND fvl47.lookup_type(+)         = 'YES_NO'
165368   AND fvl47.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
165369   AND fvl47.view_application_id(+) = 0
165370   AND fvl47.language(+)            = USERENV('LANG')
165371      AND fvl113.lookup_type(+)         = 'YES_NO'
165372   AND fvl113.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
165373   AND fvl113.view_application_id(+) = 0
165374   AND fvl113.language(+)            = USERENV('LANG')
165375      AND fvl122.lookup_type(+)         = 'PAYMENT TYPE'
165376   AND fvl122.lookup_code(+)         = h2.PAYMENT_TYPE
165377   AND fvl122.view_application_id(+) = 200
165378   AND fvl122.language(+)            = USERENV('LANG')
165379   
165380 )
165381 ;
165382 --
165383 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
165384 
165385       trace
165386          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
165387          ,p_level    => C_LEVEL_STATEMENT
165388          ,p_module   => l_log_module);
165389 
165390 END IF;
165391 --
165392 
165393 
165394 
165395 --
165396 INSERT INTO xla_diag_sources  --line2
165397 (
165398         event_id
165399       , ledger_id
165400       , sla_ledger_id
165401       , description_language
165402       , object_name
165403       , object_type_code
165404       , line_number
165405       , source_application_id
165406       , source_type_code
165407       , source_code
165408       , source_value
165409       , source_meaning
165410       , created_by
165411       , creation_date
165412       , last_update_date
165413       , last_updated_by
165414       , last_update_login
165415       , program_update_date
165416       , program_application_id
165417       , program_id
165418       , request_id
165419 )
165420 SELECT  event_id
165421       , p_target_ledger_id
165422       , p_sla_ledger_id
165423       , p_language
165424       , object_name
165425       , object_type_code
165426       , line_number
165427       , source_application_id
165428       , source_type_code
165429       , source_code
165430       , SUBSTR(source_value,1,1996)
165431       , SUBSTR(source_meaning ,1,200)
165432       , xla_environment_pkg.g_Usr_Id
165433       , TRUNC(SYSDATE)
165434       , TRUNC(SYSDATE)
165435       , xla_environment_pkg.g_Usr_Id
165436       , xla_environment_pkg.g_Login_Id
165437       , TRUNC(SYSDATE)
165438       , xla_environment_pkg.g_Prog_Appl_Id
165439       , xla_environment_pkg.g_Prog_Id
165440       , xla_environment_pkg.g_Req_Id
165441   FROM (
165442        SELECT xet.event_id                  event_id
165443             , l1.line_number                 line_number
165444             , CASE r
165445                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165446                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165447                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165448                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165449                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165450                 WHEN 6 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
165451                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165452                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165453                 WHEN 9 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165454                 WHEN 10 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165455                 WHEN 11 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
165456                 WHEN 12 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
165457                 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165458                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165459                 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165460                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165461                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165462                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165463                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165464                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165465                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165466                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165467                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165468                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165469                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165470                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165471                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165472                 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165473                 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165474                 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165475                 WHEN 31 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
165476                 WHEN 32 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165477                 WHEN 33 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165481                 WHEN 37 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165478                 WHEN 34 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165479                 WHEN 35 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165480                 WHEN 36 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165482                 WHEN 38 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165483                 WHEN 39 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165484                 WHEN 40 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165485                 WHEN 41 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165486                 WHEN 42 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
165487                 
165488                ELSE null
165489               END                           object_name
165490             , CASE r
165491                 WHEN 1 THEN 'LINE' 
165492                 WHEN 2 THEN 'LINE' 
165493                 WHEN 3 THEN 'LINE' 
165494                 WHEN 4 THEN 'LINE' 
165495                 WHEN 5 THEN 'LINE' 
165496                 WHEN 6 THEN 'LINE' 
165497                 WHEN 7 THEN 'LINE' 
165498                 WHEN 8 THEN 'LINE' 
165499                 WHEN 9 THEN 'LINE' 
165500                 WHEN 10 THEN 'LINE' 
165501                 WHEN 11 THEN 'LINE' 
165502                 WHEN 12 THEN 'LINE' 
165503                 WHEN 13 THEN 'LINE' 
165504                 WHEN 14 THEN 'LINE' 
165505                 WHEN 15 THEN 'LINE' 
165506                 WHEN 16 THEN 'LINE' 
165507                 WHEN 17 THEN 'LINE' 
165508                 WHEN 18 THEN 'LINE' 
165509                 WHEN 19 THEN 'LINE' 
165510                 WHEN 20 THEN 'LINE' 
165511                 WHEN 21 THEN 'LINE' 
165512                 WHEN 22 THEN 'LINE' 
165513                 WHEN 23 THEN 'LINE' 
165514                 WHEN 24 THEN 'LINE' 
165515                 WHEN 25 THEN 'LINE' 
165516                 WHEN 26 THEN 'LINE' 
165517                 WHEN 27 THEN 'LINE' 
165518                 WHEN 28 THEN 'LINE' 
165519                 WHEN 29 THEN 'LINE' 
165520                 WHEN 30 THEN 'LINE' 
165521                 WHEN 31 THEN 'LINE' 
165522                 WHEN 32 THEN 'LINE' 
165523                 WHEN 33 THEN 'LINE' 
165524                 WHEN 34 THEN 'LINE' 
165525                 WHEN 35 THEN 'LINE' 
165526                 WHEN 36 THEN 'LINE' 
165527                 WHEN 37 THEN 'LINE' 
165528                 WHEN 38 THEN 'LINE' 
165529                 WHEN 39 THEN 'LINE' 
165530                 WHEN 40 THEN 'LINE' 
165531                 WHEN 41 THEN 'LINE' 
165532                 WHEN 42 THEN 'LINE' 
165533                 
165534                 ELSE null
165535               END                           object_type_code
165536             , CASE r
165537                 WHEN 1 THEN '200' 
165538                 WHEN 2 THEN '200' 
165539                 WHEN 3 THEN '200' 
165540                 WHEN 4 THEN '200' 
165541                 WHEN 5 THEN '200' 
165542                 WHEN 6 THEN '200' 
165543                 WHEN 7 THEN '200' 
165544                 WHEN 8 THEN '200' 
165545                 WHEN 9 THEN '200' 
165546                 WHEN 10 THEN '200' 
165547                 WHEN 11 THEN '200' 
165548                 WHEN 12 THEN '200' 
165549                 WHEN 13 THEN '200' 
165550                 WHEN 14 THEN '200' 
165551                 WHEN 15 THEN '200' 
165552                 WHEN 16 THEN '200' 
165553                 WHEN 17 THEN '200' 
165554                 WHEN 18 THEN '200' 
165555                 WHEN 19 THEN '200' 
165556                 WHEN 20 THEN '200' 
165557                 WHEN 21 THEN '200' 
165558                 WHEN 22 THEN '200' 
165559                 WHEN 23 THEN '200' 
165560                 WHEN 24 THEN '200' 
165561                 WHEN 25 THEN '200' 
165562                 WHEN 26 THEN '200' 
165563                 WHEN 27 THEN '200' 
165564                 WHEN 28 THEN '200' 
165565                 WHEN 29 THEN '200' 
165566                 WHEN 30 THEN '200' 
165567                 WHEN 31 THEN '200' 
165568                 WHEN 32 THEN '200' 
165569                 WHEN 33 THEN '200' 
165570                 WHEN 34 THEN '200' 
165571                 WHEN 35 THEN '200' 
165572                 WHEN 36 THEN '200' 
165573                 WHEN 37 THEN '200' 
165574                 WHEN 38 THEN '200' 
165575                 WHEN 39 THEN '200' 
165576                 WHEN 40 THEN '200' 
165577                 WHEN 41 THEN '200' 
165578                 WHEN 42 THEN '200' 
165579                 
165580                 ELSE null
165581               END                           source_application_id
165582             , 'S'             source_type_code
165583             , CASE r
165584                 WHEN 1 THEN 'AID_DIST_CCID' 
165585                 WHEN 2 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
165586                 WHEN 3 THEN 'AWT_RELATED_DIST_ACCOUNT' 
165587                 WHEN 4 THEN 'POD_CCID' 
165588                 WHEN 5 THEN 'PO_VARIANCE_ACCOUNT' 
165589                 WHEN 6 THEN 'TAX_ACCOUNT_CCID' 
165590                 WHEN 7 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
165591                 WHEN 8 THEN 'DISTRIBUTION_LINK_TYPE' 
165592                 WHEN 9 THEN 'AI_INVOICE_CURRENCY_CODE' 
165593                 WHEN 10 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
165594                 WHEN 11 THEN 'TAX_LINE_ID' 
165595                 WHEN 12 THEN 'SUMMARY_TAX_LINE_ID' 
165596                 WHEN 13 THEN 'BUS_FLOW_AP_APP_ID' 
165597                 WHEN 14 THEN 'BUS_FLOW_INV_DIST_TYPE' 
165598                 WHEN 15 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
165599                 WHEN 16 THEN 'BUS_FLOW_INV_DIST_ID' 
165600                 WHEN 17 THEN 'BUS_FLOW_INV_ID' 
165601                 WHEN 18 THEN 'APHD_PAY_DIST_LOOKUP_CODE' 
165602                 WHEN 19 THEN 'APHD_AMOUNT' 
165603                 WHEN 20 THEN 'BUS_FLOW_PAYMENT_DIST_TYPE' 
165604                 WHEN 21 THEN 'BUS_FLOW_PAYMENT_ENTITY_CODE' 
165605                 WHEN 22 THEN 'BUS_FLOW_PAYMENT_DIST_ID' 
165609                 WHEN 26 THEN 'APHD_REV_PAY_HIST_DIST_ID' 
165606                 WHEN 23 THEN 'BUS_FLOW_PAYMENT_ID' 
165607                 WHEN 24 THEN 'APHD_PAYMENT_HIST_DIST_ID' 
165608                 WHEN 25 THEN 'APHD_CLEARING_BASE_AMT' 
165610                 WHEN 27 THEN 'APHD_PAYMENT_BASE_AMT' 
165611                 WHEN 28 THEN 'APHD_INVOICE_BASE_AMT' 
165612                 WHEN 29 THEN 'BUS_FLOW_PAYMENT_MAT_DIST_ID' 
165613                 WHEN 30 THEN 'APHD_MATURED_BASE_AMOUNT' 
165614                 WHEN 31 THEN 'DEF_REC_SETTLEMENT_OPTION_CODE' 
165615                 WHEN 32 THEN 'INV_EXCHANGE_DATE' 
165616                 WHEN 33 THEN 'INV_EXCHANGE_RATE' 
165617                 WHEN 34 THEN 'INV_EXCHANGE_RATE_TYPE' 
165618                 WHEN 35 THEN 'INV_CLR_GAIN_LOSS_INDICATOR' 
165619                 WHEN 36 THEN 'INV_CLR_BASE_AMT_DIFF' 
165620                 WHEN 37 THEN 'MAT_CLR_GAIN_LOSS_INDICATOR' 
165621                 WHEN 38 THEN 'MAT_CLR_BASE_AMT_DIFF' 
165622                 WHEN 39 THEN 'PMT_CLR_GAIN_LOSS_INDICATOR' 
165623                 WHEN 40 THEN 'PMT_CLR_BASE_AMT_DIFF' 
165624                 WHEN 41 THEN 'AI_INVOICE_TYPE_PAID' 
165625                 WHEN 42 THEN 'AWT_AT_PMT_TIME' 
165626                 
165627                 ELSE null
165628               END                           source_code
165629             , CASE r
165630                 WHEN 1 THEN TO_CHAR(l1.AID_DIST_CCID)
165631                 WHEN 2 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
165632                 WHEN 3 THEN TO_CHAR(l1.AWT_RELATED_DIST_ACCOUNT)
165633                 WHEN 4 THEN TO_CHAR(l1.POD_CCID)
165634                 WHEN 5 THEN TO_CHAR(l1.PO_VARIANCE_ACCOUNT)
165635                 WHEN 6 THEN TO_CHAR(l4.TAX_ACCOUNT_CCID)
165636                 WHEN 7 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
165637                 WHEN 8 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
165638                 WHEN 9 THEN TO_CHAR(l1.AI_INVOICE_CURRENCY_CODE)
165639                 WHEN 10 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
165640                 WHEN 11 THEN TO_CHAR(l4.TAX_LINE_ID)
165641                 WHEN 12 THEN TO_CHAR(l4.SUMMARY_TAX_LINE_ID)
165642                 WHEN 13 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
165643                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
165644                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
165645                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
165646                 WHEN 17 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
165647                 WHEN 18 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
165648                 WHEN 19 THEN TO_CHAR(l1.APHD_AMOUNT)
165649                 WHEN 20 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_TYPE)
165650                 WHEN 21 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ENTITY_CODE)
165651                 WHEN 22 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_DIST_ID)
165652                 WHEN 23 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_ID)
165653                 WHEN 24 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
165654                 WHEN 25 THEN TO_CHAR(l1.APHD_CLEARING_BASE_AMT)
165655                 WHEN 26 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
165656                 WHEN 27 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
165657                 WHEN 28 THEN TO_CHAR(l1.APHD_INVOICE_BASE_AMT)
165658                 WHEN 29 THEN TO_CHAR(l1.BUS_FLOW_PAYMENT_MAT_DIST_ID)
165659                 WHEN 30 THEN TO_CHAR(l1.APHD_MATURED_BASE_AMOUNT)
165660                 WHEN 31 THEN TO_CHAR(l4.DEF_REC_SETTLEMENT_OPTION_CODE)
165661                 WHEN 32 THEN TO_CHAR(l1.INV_EXCHANGE_DATE)
165662                 WHEN 33 THEN TO_CHAR(l1.INV_EXCHANGE_RATE)
165663                 WHEN 34 THEN TO_CHAR(l1.INV_EXCHANGE_RATE_TYPE)
165664                 WHEN 35 THEN TO_CHAR(l1.INV_CLR_GAIN_LOSS_INDICATOR)
165665                 WHEN 36 THEN TO_CHAR(l1.INV_CLR_BASE_AMT_DIFF)
165666                 WHEN 37 THEN TO_CHAR(l1.MAT_CLR_GAIN_LOSS_INDICATOR)
165667                 WHEN 38 THEN TO_CHAR(l1.MAT_CLR_BASE_AMT_DIFF)
165668                 WHEN 39 THEN TO_CHAR(l1.PMT_CLR_GAIN_LOSS_INDICATOR)
165669                 WHEN 40 THEN TO_CHAR(l1.PMT_CLR_BASE_AMT_DIFF)
165670                 WHEN 41 THEN TO_CHAR(l1.AI_INVOICE_TYPE_PAID)
165671                 WHEN 42 THEN TO_CHAR(l1.AWT_AT_PMT_TIME)
165672                 
165673                 ELSE null
165674               END                           source_value
165675             , CASE r
165676                 WHEN 2 THEN fvl33.meaning
165677                 WHEN 10 THEN fvl80.meaning
165678                 WHEN 18 THEN fvl98.meaning
165679                 WHEN 31 THEN fvl137.meaning
165680                 WHEN 41 THEN fvl163.meaning
165681                 WHEN 42 THEN fvl164.meaning
165682                 
165683                 ELSE null
165684               END               source_meaning
165685          FROM  xla_events_gt     xet  
165686         , AP_PAYMENT_EXTRACT_DETAILS_V  l1
165687         , ZX_AP_DEF_TAX_EXTRACT_V  l4
165688   , fnd_lookup_values    fvl33
165689   , fnd_lookup_values    fvl80
165690   , fnd_lookup_values    fvl98
165691   , fnd_lookup_values    fvl137
165692   , fnd_lookup_values    fvl163
165693   , fnd_lookup_values    fvl164
165694             , (select rownum r from all_objects where rownum <= 42 and owner = p_apps_owner)
165695         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
165696           AND xet.event_class_code = C_EVENT_CLASS_CODE
165697             AND l1.event_id          = xet.event_id
165698  AND l1.aid_detail_tax_dist_id = l4.rec_nrec_tax_dist_id (+)    AND fvl33.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
165699   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
165700   AND fvl33.view_application_id(+) = 200
165701   AND fvl33.language(+)            = USERENV('LANG')
165702      AND fvl80.lookup_type(+)         = 'YES_NO'
165703   AND fvl80.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
165704   AND fvl80.view_application_id(+) = 0
165705   AND fvl80.language(+)            = USERENV('LANG')
165706      AND fvl98.lookup_type(+)         = 'PAY_DIST_TYPES'
165707   AND fvl98.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
165708   AND fvl98.view_application_id(+) = 200
165712   AND fvl137.view_application_id(+) = 0
165709   AND fvl98.language(+)            = USERENV('LANG')
165710      AND fvl137.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
165711   AND fvl137.lookup_code(+)         = l4.DEF_REC_SETTLEMENT_OPTION_CODE
165713   AND fvl137.language(+)            = USERENV('LANG')
165714      AND fvl163.lookup_type(+)         = 'INVOICE TYPE'
165715   AND fvl163.lookup_code(+)         = l1.AI_INVOICE_TYPE_PAID
165716   AND fvl163.view_application_id(+) = 200
165717   AND fvl163.language(+)            = USERENV('LANG')
165718      AND fvl164.lookup_type(+)         = 'YES_NO'
165719   AND fvl164.lookup_code(+)         = l1.AWT_AT_PMT_TIME
165720   AND fvl164.view_application_id(+) = 0
165721   AND fvl164.language(+)            = USERENV('LANG')
165722   
165723 )
165724 ;
165725 --
165726 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
165727 
165728       trace
165729          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
165730          ,p_level    => C_LEVEL_STATEMENT
165731          ,p_module   => l_log_module);
165732 
165733 END IF;
165734 
165735 
165736 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
165737       trace
165738          (p_msg      => 'END of insert_sources_237'
165739          ,p_level    => C_LEVEL_PROCEDURE
165740          ,p_module   => l_log_module);
165741 END IF;
165742 EXCEPTION
165743   WHEN xla_exceptions_pkg.application_exception THEN
165744       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
165745             trace
165746                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
165747                ,p_level    => C_LEVEL_EXCEPTION
165748                ,p_module   => l_log_module);
165749       END IF;
165750       RAISE;
165751   WHEN OTHERS THEN
165752       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
165753             trace
165754                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
165755                ,p_level    => C_LEVEL_EXCEPTION
165756                ,p_module   => l_log_module);
165757        END IF;
165758        xla_exceptions_pkg.raise_message
165759            (p_location => 'XLA_00200_AAD_S_000002_PKG.insert_sources_237');
165760 END insert_sources_237;
165761 --
165762 
165763 ---------------------------------------
165764 --
165765 -- PRIVATE FUNCTION
165766 --         EventClass_237
165767 --
165768 ----------------------------------------
165769 --
165770 FUNCTION EventClass_237
165771        (p_application_id         IN NUMBER
165772        ,p_base_ledger_id         IN NUMBER
165773        ,p_target_ledger_id       IN NUMBER
165774        ,p_language               IN VARCHAR2
165775        ,p_currency_code          IN VARCHAR2
165776        ,p_sla_ledger_id          IN NUMBER
165777        ,p_pad_start_date         IN DATE
165778        ,p_pad_end_date           IN DATE
165779        ,p_primary_ledger_id      IN NUMBER)
165780 RETURN BOOLEAN IS
165781 --
165782 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'RECONCILED PAYMENTS_ALL';
165783 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'RECONCILED PAYMENTS';
165784 
165785 l_calculate_acctd_flag   VARCHAR2(1) :='N';
165786 l_calculate_g_l_flag     VARCHAR2(1) :='N';
165787 --
165788 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
165789 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
165790 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
165791 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
165792 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
165793 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
165794 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
165795 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
165796 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
165797 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
165798 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
165799 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
165800 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
165801 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
165802 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
165803 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
165804 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
165805 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
165806 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
165807 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
165808 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
165809 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
165810 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
165811 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
165812 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
165813 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
165814 
165815 l_event_id                             NUMBER;
165816 l_previous_event_id                    NUMBER;
165817 l_first_event_id                       NUMBER;
165818 l_last_event_id                        NUMBER;
165819 
165820 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
165821 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
165822 --
165823 --
165824 l_result                    BOOLEAN := TRUE;
165825 l_rows                      NUMBER  := 1000;
165826 l_event_type_name           VARCHAR2(80) := 'All';
165827 l_event_class_name          VARCHAR2(80) := 'Reconciled Payments';
165828 l_description               VARCHAR2(4000);
165829 l_transaction_reversal      NUMBER;
165833 --
165830 l_ae_header_id              NUMBER;
165831 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
165832 l_log_module                VARCHAR2(240);
165834 l_acct_reversal_source      VARCHAR2(30);
165835 l_trx_reversal_source       VARCHAR2(30);
165836 
165837 l_continue_with_lines       BOOLEAN := TRUE;
165838 --
165839 l_acc_rev_gl_date_source    DATE;                      -- 4262811
165840 --
165841 type t_array_event_id is table of number index by binary_integer;
165842 
165843 l_rec_array_event                    t_rec_array_event;
165844 l_null_rec_array_event               t_rec_array_event;
165845 l_array_ae_header_id                 xla_number_array_type;
165846 l_actual_flag                        VARCHAR2(1) := NULL;
165847 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
165848 l_balance_type_code                  VARCHAR2(1) :=NULL;
165849 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
165850 
165851 --
165852 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
165853 --
165854 
165855 TYPE t_array_source_6 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.DOC_SEQUENCE_NAME%TYPE INDEX BY BINARY_INTEGER;
165856 TYPE t_array_source_9 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
165857 TYPE t_array_source_10 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TRANSACTION_NUMBER%TYPE INDEX BY BINARY_INTEGER;
165858 TYPE t_array_source_11 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CHECK_DATE%TYPE INDEX BY BINARY_INTEGER;
165859 TYPE t_array_source_12 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_BANK_ACCOUNT_NAME%TYPE INDEX BY BINARY_INTEGER;
165860 TYPE t_array_source_13 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
165861 TYPE t_array_source_14 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_BANK_CHARGES_CCID%TYPE INDEX BY BINARY_INTEGER;
165862 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
165863 TYPE t_array_source_16 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_BANK_ERRORS_CCID%TYPE INDEX BY BINARY_INTEGER;
165864 TYPE t_array_source_17 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
165865 TYPE t_array_source_18 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
165866 TYPE t_array_source_19 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISCOUNT_DIST_METHOD%TYPE INDEX BY BINARY_INTEGER;
165867 TYPE t_array_source_28 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_INTEREST_CCID%TYPE INDEX BY BINARY_INTEGER;
165868 TYPE t_array_source_29 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_PRORATE_INT_ACROSS_DISTS%TYPE INDEX BY BINARY_INTEGER;
165869 TYPE t_array_source_36 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
165870 TYPE t_array_source_37 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
165871 TYPE t_array_source_38 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
165872 TYPE t_array_source_39 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
165873 TYPE t_array_source_44 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
165874 TYPE t_array_source_47 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
165875 TYPE t_array_source_49 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
165876 TYPE t_array_source_83 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
165877 TYPE t_array_source_97 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
165878 TYPE t_array_source_105 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
165879 TYPE t_array_source_106 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_TO_BASE_XRATE_DATE%TYPE INDEX BY BINARY_INTEGER;
165880 TYPE t_array_source_107 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_TO_BASE_XRATE%TYPE INDEX BY BINARY_INTEGER;
165881 TYPE t_array_source_108 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.APH_BANK_TO_BASE_XRATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
165882 TYPE t_array_source_110 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
165883 TYPE t_array_source_111 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
165884 TYPE t_array_source_113 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
165885 TYPE t_array_source_114 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
165886 TYPE t_array_source_117 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
165887 TYPE t_array_source_118 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
165888 TYPE t_array_source_119 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
165889 TYPE t_array_source_122 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
165890 TYPE t_array_source_170 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
165891 TYPE t_array_source_171 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
165892 
165893 TYPE t_array_source_30 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
165894 TYPE t_array_source_33 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
165895 TYPE t_array_source_43 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_RELATED_DIST_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
165896 TYPE t_array_source_45 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_CCID%TYPE INDEX BY BINARY_INTEGER;
165897 TYPE t_array_source_46 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PO_VARIANCE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
165898 TYPE t_array_source_52 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_ACCOUNT_CCID%TYPE INDEX BY BINARY_INTEGER;
165899 TYPE t_array_source_53 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
165900 TYPE t_array_source_55 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
165904 TYPE t_array_source_88 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
165901 TYPE t_array_source_67 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
165902 TYPE t_array_source_80 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
165903 TYPE t_array_source_86 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
165905 TYPE t_array_source_91 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
165906 TYPE t_array_source_92 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
165907 TYPE t_array_source_93 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
165908 TYPE t_array_source_94 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
165909 TYPE t_array_source_95 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
165910 TYPE t_array_source_98 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
165911 TYPE t_array_source_99 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
165912 TYPE t_array_source_100 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
165913 TYPE t_array_source_101 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
165914 TYPE t_array_source_102 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
165915 TYPE t_array_source_103 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_ID%TYPE INDEX BY BINARY_INTEGER;
165916 TYPE t_array_source_104 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
165917 TYPE t_array_source_109 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_CLEARING_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
165918 TYPE t_array_source_112 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
165919 TYPE t_array_source_115 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
165920 TYPE t_array_source_116 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INVOICE_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
165921 TYPE t_array_source_120 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_PAYMENT_MAT_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
165922 TYPE t_array_source_121 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_MATURED_BASE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
165923 TYPE t_array_source_137 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.DEF_REC_SETTLEMENT_OPTION_CODE%TYPE INDEX BY BINARY_INTEGER;
165924 TYPE t_array_source_143 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
165925 TYPE t_array_source_144 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
165926 TYPE t_array_source_145 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
165927 TYPE t_array_source_151 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_CLR_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
165928 TYPE t_array_source_152 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_CLR_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
165929 TYPE t_array_source_156 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.MAT_CLR_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
165930 TYPE t_array_source_157 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.MAT_CLR_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
165931 TYPE t_array_source_159 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_CLR_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
165932 TYPE t_array_source_160 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PMT_CLR_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
165933 TYPE t_array_source_163 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_TYPE_PAID%TYPE INDEX BY BINARY_INTEGER;
165934 TYPE t_array_source_164 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AWT_AT_PMT_TIME%TYPE INDEX BY BINARY_INTEGER;
165935 
165936 l_array_source_6              t_array_source_6;
165937 l_array_source_9              t_array_source_9;
165938 l_array_source_10              t_array_source_10;
165939 l_array_source_11              t_array_source_11;
165940 l_array_source_12              t_array_source_12;
165941 l_array_source_13              t_array_source_13;
165942 l_array_source_14              t_array_source_14;
165943 l_array_source_15              t_array_source_15;
165944 l_array_source_15_meaning      t_array_lookup_meaning;
165945 l_array_source_16              t_array_source_16;
165946 l_array_source_17              t_array_source_17;
165947 l_array_source_18              t_array_source_18;
165948 l_array_source_19              t_array_source_19;
165949 l_array_source_19_meaning      t_array_lookup_meaning;
165950 l_array_source_28              t_array_source_28;
165951 l_array_source_29              t_array_source_29;
165952 l_array_source_36              t_array_source_36;
165953 l_array_source_37              t_array_source_37;
165954 l_array_source_38              t_array_source_38;
165955 l_array_source_39              t_array_source_39;
165956 l_array_source_44              t_array_source_44;
165957 l_array_source_47              t_array_source_47;
165958 l_array_source_47_meaning      t_array_lookup_meaning;
165959 l_array_source_49              t_array_source_49;
165960 l_array_source_83              t_array_source_83;
165961 l_array_source_97              t_array_source_97;
165962 l_array_source_105              t_array_source_105;
165963 l_array_source_106              t_array_source_106;
165964 l_array_source_107              t_array_source_107;
165965 l_array_source_108              t_array_source_108;
165966 l_array_source_110              t_array_source_110;
165967 l_array_source_111              t_array_source_111;
165968 l_array_source_113              t_array_source_113;
165969 l_array_source_113_meaning      t_array_lookup_meaning;
165970 l_array_source_114              t_array_source_114;
165971 l_array_source_117              t_array_source_117;
165972 l_array_source_118              t_array_source_118;
165973 l_array_source_119              t_array_source_119;
165974 l_array_source_122              t_array_source_122;
165975 l_array_source_122_meaning      t_array_lookup_meaning;
165979 l_array_source_30      t_array_source_30;
165976 l_array_source_170              t_array_source_170;
165977 l_array_source_171              t_array_source_171;
165978 
165980 l_array_source_33      t_array_source_33;
165981 l_array_source_33_meaning      t_array_lookup_meaning;
165982 l_array_source_43      t_array_source_43;
165983 l_array_source_45      t_array_source_45;
165984 l_array_source_46      t_array_source_46;
165985 l_array_source_52      t_array_source_52;
165986 l_array_source_53      t_array_source_53;
165987 l_array_source_55      t_array_source_55;
165988 l_array_source_67      t_array_source_67;
165989 l_array_source_80      t_array_source_80;
165990 l_array_source_80_meaning      t_array_lookup_meaning;
165991 l_array_source_86      t_array_source_86;
165992 l_array_source_88      t_array_source_88;
165993 l_array_source_91      t_array_source_91;
165994 l_array_source_92      t_array_source_92;
165995 l_array_source_93      t_array_source_93;
165996 l_array_source_94      t_array_source_94;
165997 l_array_source_95      t_array_source_95;
165998 l_array_source_98      t_array_source_98;
165999 l_array_source_98_meaning      t_array_lookup_meaning;
166000 l_array_source_99      t_array_source_99;
166001 l_array_source_100      t_array_source_100;
166002 l_array_source_101      t_array_source_101;
166003 l_array_source_102      t_array_source_102;
166004 l_array_source_103      t_array_source_103;
166005 l_array_source_104      t_array_source_104;
166006 l_array_source_109      t_array_source_109;
166007 l_array_source_112      t_array_source_112;
166008 l_array_source_115      t_array_source_115;
166009 l_array_source_116      t_array_source_116;
166010 l_array_source_120      t_array_source_120;
166011 l_array_source_121      t_array_source_121;
166012 l_array_source_137      t_array_source_137;
166013 l_array_source_137_meaning      t_array_lookup_meaning;
166014 l_array_source_143      t_array_source_143;
166015 l_array_source_144      t_array_source_144;
166016 l_array_source_145      t_array_source_145;
166017 l_array_source_151      t_array_source_151;
166018 l_array_source_152      t_array_source_152;
166019 l_array_source_156      t_array_source_156;
166020 l_array_source_157      t_array_source_157;
166021 l_array_source_159      t_array_source_159;
166022 l_array_source_160      t_array_source_160;
166023 l_array_source_163      t_array_source_163;
166024 l_array_source_163_meaning      t_array_lookup_meaning;
166025 l_array_source_164      t_array_source_164;
166026 l_array_source_164_meaning      t_array_lookup_meaning;
166027 
166028 --
166029 CURSOR header_cur
166030 IS
166031 SELECT /*+ leading(xet) cardinality(xet,1) */
166032 -- Event Class Code: RECONCILED PAYMENTS
166033     xet.entity_id
166034    ,xet.legal_entity_id
166035    ,xet.entity_code
166036    ,xet.transaction_number
166037    ,xet.event_id
166038    ,xet.event_class_code
166039    ,xet.event_type_code
166040    ,xet.event_number
166041    ,xet.event_date
166042    ,xet.transaction_date
166043    ,xet.reference_num_1
166044    ,xet.reference_num_2
166045    ,xet.reference_num_3
166046    ,xet.reference_num_4
166047    ,xet.reference_char_1
166048    ,xet.reference_char_2
166049    ,xet.reference_char_3
166050    ,xet.reference_char_4
166051    ,xet.reference_date_1
166052    ,xet.reference_date_2
166053    ,xet.reference_date_3
166054    ,xet.reference_date_4
166055    ,xet.event_created_by
166056    ,xet.budgetary_control_flag 
166057   , h2.DOC_SEQUENCE_NAME    source_6
166058   , h2.AC_DOC_SEQUENCE_VALUE    source_9
166059   , h2.PAYMENT_TRANSACTION_NUMBER    source_10
166060   , h2.AC_CHECK_DATE    source_11
166061   , h2.CBA_BANK_ACCOUNT_NAME    source_12
166062   , h2.AC_CURRENCY_CODE    source_13
166063   , h2.CGAC_BANK_CHARGES_CCID    source_14
166064   , h3.ASP_AUTOMATIC_OFFSETS_VALUE    source_15
166065   , fvl15.meaning   source_15_meaning
166066   , h2.CGAC_BANK_ERRORS_CCID    source_16
166067   , h2.CGAC_AP_ASSET_CCID    source_17
166068   , h3.FSP_DISC_TAKEN_CCID    source_18
166069   , h3.ASP_DISCOUNT_DIST_METHOD    source_19
166070   , fvl19.meaning   source_19_meaning
166071   , h3.ASP_INTEREST_CCID    source_28
166072   , h3.ASP_PRORATE_INT_ACROSS_DISTS    source_29
166073   , h2.CGAC_GAIN_CCID    source_36
166074   , h3.ASP_GAIN_CCID    source_37
166075   , h2.CGAC_LOSS_CCID    source_38
166076   , h3.ASP_LOSS_CCID    source_39
166077   , h3.ASP_DISC_TAKEN_CCID    source_44
166078   , h3.ASP_AUTO_OFFSET_FLAG    source_47
166079   , fvl47.meaning   source_47_meaning
166080   , h3.ASP_ROUNDING_ERROR_CCID    source_49
166081   , h2.THIRD_PARTY_TYPE    source_83
166082   , h3.ASP_WHEN_TO_ACCOUNT_PMT    source_97
166083   , h2.APH_BANK_CURRENCY_CODE    source_105
166084   , h2.APH_BANK_TO_BASE_XRATE_DATE    source_106
166085   , h2.APH_BANK_TO_BASE_XRATE    source_107
166086   , h2.APH_BANK_TO_BASE_XRATE_TYPE    source_108
166087   , h2.AC_VENDOR_ID    source_110
166088   , h2.AC_VENDOR_SITE_ID    source_111
166089   , h2.CBA_POOLED_BANK_ACOUNT_FLAG    source_113
166090   , fvl113.meaning   source_113_meaning
166091   , h2.AC_FUTURE_PAY_DUE_DATE    source_114
166092   , h2.AC_EXCHANGE_DATE    source_117
166093   , h2.AC_EXCHANGE_RATE    source_118
166094   , h2.AC_EXCHANGE_RATE_TYPE    source_119
166095   , h2.PAYMENT_TYPE    source_122
166096   , fvl122.meaning   source_122_meaning
166097   , h2.AC_DOC_CATEGORY_CODE    source_170
166098   , h2.PAYMENT_DOCUMENT_SEQUENCE_ID    source_171
166099   FROM xla_events_gt     xet 
166100   , AP_PAYMENT_EXTRACT_HEADER_V  h2
166101   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
166102   , fnd_lookup_values    fvl15
166103   , fnd_lookup_values    fvl19
166104   , fnd_lookup_values    fvl47
166105   , fnd_lookup_values    fvl113
166106   , fnd_lookup_values    fvl122
166107  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
166108    and xet.event_class_code = C_EVENT_CLASS_CODE
166109    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
166113   AND fvl15.language(+)            = USERENV('LANG')
166110  AND h3.asp_org_id = h2.ac_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
166111   AND fvl15.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
166112   AND fvl15.view_application_id(+) = 200
166114      AND fvl19.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
166115   AND fvl19.lookup_code(+)         = h3.ASP_DISCOUNT_DIST_METHOD
166116   AND fvl19.view_application_id(+) = 200
166117   AND fvl19.language(+)            = USERENV('LANG')
166118      AND fvl47.lookup_type(+)         = 'YES_NO'
166119   AND fvl47.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
166120   AND fvl47.view_application_id(+) = 0
166121   AND fvl47.language(+)            = USERENV('LANG')
166122      AND fvl113.lookup_type(+)         = 'YES_NO'
166123   AND fvl113.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
166124   AND fvl113.view_application_id(+) = 0
166125   AND fvl113.language(+)            = USERENV('LANG')
166126      AND fvl122.lookup_type(+)         = 'PAYMENT TYPE'
166127   AND fvl122.lookup_code(+)         = h2.PAYMENT_TYPE
166128   AND fvl122.view_application_id(+) = 200
166129   AND fvl122.language(+)            = USERENV('LANG')
166130   
166131  ORDER BY event_id
166132 ;
166133 
166134 
166135 --
166136 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
166137 IS
166138 SELECT  /*+ leading(xet) cardinality(xet,1) */
166139 -- Event Class Code: RECONCILED PAYMENTS
166140     xet.entity_id
166141    ,xet.legal_entity_id
166142    ,xet.entity_code
166143    ,xet.transaction_number
166144    ,xet.event_id
166145    ,xet.event_class_code
166146    ,xet.event_type_code
166147    ,xet.event_number
166148    ,xet.event_date
166149    ,xet.transaction_date
166150    ,xet.reference_num_1
166151    ,xet.reference_num_2
166152    ,xet.reference_num_3
166153    ,xet.reference_num_4
166154    ,xet.reference_char_1
166155    ,xet.reference_char_2
166156    ,xet.reference_char_3
166157    ,xet.reference_char_4
166158    ,xet.reference_date_1
166159    ,xet.reference_date_2
166160    ,xet.reference_date_3
166161    ,xet.reference_date_4
166162    ,xet.event_created_by
166163    ,xet.budgetary_control_flag
166164  , l1.LINE_NUMBER  
166165   , l1.AID_DIST_CCID    source_30
166166   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_33
166167   , fvl33.meaning   source_33_meaning
166168   , l1.AWT_RELATED_DIST_ACCOUNT    source_43
166169   , l1.POD_CCID    source_45
166170   , l1.PO_VARIANCE_ACCOUNT    source_46
166171   , l4.TAX_ACCOUNT_CCID    source_52
166172   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_53
166173   , l1.DISTRIBUTION_LINK_TYPE    source_55
166174   , l1.AI_INVOICE_CURRENCY_CODE    source_67
166175   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_80
166176   , fvl80.meaning   source_80_meaning
166177   , l4.TAX_LINE_ID    source_86
166178   , l4.SUMMARY_TAX_LINE_ID    source_88
166179   , l1.BUS_FLOW_AP_APP_ID    source_91
166180   , l1.BUS_FLOW_INV_DIST_TYPE    source_92
166181   , l1.BUS_FLOW_INV_ENTITY_CODE    source_93
166182   , l1.BUS_FLOW_INV_DIST_ID    source_94
166183   , l1.BUS_FLOW_INV_ID    source_95
166184   , l1.APHD_PAY_DIST_LOOKUP_CODE    source_98
166185   , fvl98.meaning   source_98_meaning
166186   , l1.APHD_AMOUNT    source_99
166187   , l1.BUS_FLOW_PAYMENT_DIST_TYPE    source_100
166188   , l1.BUS_FLOW_PAYMENT_ENTITY_CODE    source_101
166189   , l1.BUS_FLOW_PAYMENT_DIST_ID    source_102
166190   , l1.BUS_FLOW_PAYMENT_ID    source_103
166191   , l1.APHD_PAYMENT_HIST_DIST_ID    source_104
166192   , l1.APHD_CLEARING_BASE_AMT    source_109
166193   , l1.APHD_REV_PAY_HIST_DIST_ID    source_112
166194   , l1.APHD_PAYMENT_BASE_AMT    source_115
166195   , l1.APHD_INVOICE_BASE_AMT    source_116
166196   , l1.BUS_FLOW_PAYMENT_MAT_DIST_ID    source_120
166197   , l1.APHD_MATURED_BASE_AMOUNT    source_121
166198   , l4.DEF_REC_SETTLEMENT_OPTION_CODE    source_137
166199   , fvl137.meaning   source_137_meaning
166200   , l1.INV_EXCHANGE_DATE    source_143
166201   , l1.INV_EXCHANGE_RATE    source_144
166202   , l1.INV_EXCHANGE_RATE_TYPE    source_145
166203   , l1.INV_CLR_GAIN_LOSS_INDICATOR    source_151
166204   , l1.INV_CLR_BASE_AMT_DIFF    source_152
166205   , l1.MAT_CLR_GAIN_LOSS_INDICATOR    source_156
166206   , l1.MAT_CLR_BASE_AMT_DIFF    source_157
166207   , l1.PMT_CLR_GAIN_LOSS_INDICATOR    source_159
166208   , l1.PMT_CLR_BASE_AMT_DIFF    source_160
166209   , l1.AI_INVOICE_TYPE_PAID    source_163
166210   , fvl163.meaning   source_163_meaning
166211   , l1.AWT_AT_PMT_TIME    source_164
166212   , fvl164.meaning   source_164_meaning
166213   FROM xla_events_gt     xet 
166214   , AP_PAYMENT_EXTRACT_DETAILS_V  l1
166215   , ZX_AP_DEF_TAX_EXTRACT_V  l4
166216   , fnd_lookup_values    fvl33
166217   , fnd_lookup_values    fvl80
166218   , fnd_lookup_values    fvl98
166219   , fnd_lookup_values    fvl137
166220   , fnd_lookup_values    fvl163
166221   , fnd_lookup_values    fvl164
166222  WHERE xet.event_id between x_first_event_id and x_last_event_id
166223    and xet.event_date between p_pad_start_date and p_pad_end_date
166224    and xet.event_class_code = C_EVENT_CLASS_CODE
166225    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
166226  AND l1.AID_DETAIL_TAX_DIST_ID = l4.REC_NREC_TAX_DIST_ID (+)    AND fvl33.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
166227   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
166228   AND fvl33.view_application_id(+) = 200
166229   AND fvl33.language(+)            = USERENV('LANG')
166230      AND fvl80.lookup_type(+)         = 'YES_NO'
166231   AND fvl80.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
166232   AND fvl80.view_application_id(+) = 0
166233   AND fvl80.language(+)            = USERENV('LANG')
166234      AND fvl98.lookup_type(+)         = 'PAY_DIST_TYPES'
166235   AND fvl98.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
166236   AND fvl98.view_application_id(+) = 200
166237   AND fvl98.language(+)            = USERENV('LANG')
166241   AND fvl137.language(+)            = USERENV('LANG')
166238      AND fvl137.lookup_type(+)         = 'ZX_REC_SETTLEMENT_OPTION'
166239   AND fvl137.lookup_code(+)         = l4.DEF_REC_SETTLEMENT_OPTION_CODE
166240   AND fvl137.view_application_id(+) = 0
166242      AND fvl163.lookup_type(+)         = 'INVOICE TYPE'
166243   AND fvl163.lookup_code(+)         = l1.AI_INVOICE_TYPE_PAID
166244   AND fvl163.view_application_id(+) = 200
166245   AND fvl163.language(+)            = USERENV('LANG')
166246      AND fvl164.lookup_type(+)         = 'YES_NO'
166247   AND fvl164.lookup_code(+)         = l1.AWT_AT_PMT_TIME
166248   AND fvl164.view_application_id(+) = 0
166249   AND fvl164.language(+)            = USERENV('LANG')
166250   ;
166251 
166252 --
166253 BEGIN
166254 IF g_log_enabled THEN
166255    l_log_module := C_DEFAULT_MODULE||'.EventClass_237';
166256 END IF;
166257 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
166258    trace
166259       (p_msg      => 'BEGIN of EventClass_237'
166260       ,p_level    => C_LEVEL_PROCEDURE
166261       ,p_module   => l_log_module);
166262 END IF;
166263 
166264 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
166265    trace
166266       (p_msg      => 'p_application_id = '||p_application_id||
166267                      ' - p_base_ledger_id = '||p_base_ledger_id||
166268                      ' - p_target_ledger_id  = '||p_target_ledger_id||
166269                      ' - p_language = '||p_language||
166270                      ' - p_currency_code = '||p_currency_code||
166271                      ' - p_sla_ledger_id = '||p_sla_ledger_id
166272       ,p_level    => C_LEVEL_STATEMENT
166273       ,p_module   => l_log_module);
166274 END IF;
166275 --
166276 -- initialze arrays
166277 --
166278 g_array_event.DELETE;
166279 l_rec_array_event := l_null_rec_array_event;
166280 --
166281 --------------------------------------
166282 -- 4262811 Initialze MPA Line Number
166283 --------------------------------------
166284 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
166285 
166286 --
166287 
166288 --
166289 OPEN header_cur;
166290 --
166291 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
166292    trace
166293    (p_msg      => 'SQL - FETCH header_cur'
166294    ,p_level    => C_LEVEL_STATEMENT
166295    ,p_module   => l_log_module);
166296 END IF;
166297 --
166298 LOOP
166299 FETCH header_cur BULK COLLECT INTO
166300         l_array_entity_id
166301       , l_array_legal_entity_id
166302       , l_array_entity_code
166303       , l_array_transaction_num
166304       , l_array_event_id
166305       , l_array_class_code
166306       , l_array_event_type
166307       , l_array_event_number
166308       , l_array_event_date
166309       , l_array_transaction_date
166310       , l_array_reference_num_1
166311       , l_array_reference_num_2
166312       , l_array_reference_num_3
166313       , l_array_reference_num_4
166314       , l_array_reference_char_1
166315       , l_array_reference_char_2
166316       , l_array_reference_char_3
166317       , l_array_reference_char_4
166318       , l_array_reference_date_1
166319       , l_array_reference_date_2
166320       , l_array_reference_date_3
166321       , l_array_reference_date_4
166322       , l_array_event_created_by
166323       , l_array_budgetary_control_flag 
166324       , l_array_source_6
166325       , l_array_source_9
166326       , l_array_source_10
166327       , l_array_source_11
166328       , l_array_source_12
166329       , l_array_source_13
166330       , l_array_source_14
166331       , l_array_source_15
166332       , l_array_source_15_meaning
166333       , l_array_source_16
166334       , l_array_source_17
166335       , l_array_source_18
166336       , l_array_source_19
166337       , l_array_source_19_meaning
166338       , l_array_source_28
166339       , l_array_source_29
166340       , l_array_source_36
166341       , l_array_source_37
166342       , l_array_source_38
166343       , l_array_source_39
166344       , l_array_source_44
166345       , l_array_source_47
166346       , l_array_source_47_meaning
166347       , l_array_source_49
166348       , l_array_source_83
166349       , l_array_source_97
166350       , l_array_source_105
166351       , l_array_source_106
166352       , l_array_source_107
166353       , l_array_source_108
166354       , l_array_source_110
166355       , l_array_source_111
166356       , l_array_source_113
166357       , l_array_source_113_meaning
166358       , l_array_source_114
166359       , l_array_source_117
166360       , l_array_source_118
166361       , l_array_source_119
166362       , l_array_source_122
166363       , l_array_source_122_meaning
166364       , l_array_source_170
166365       , l_array_source_171
166366       LIMIT l_rows;
166367 --
166368 IF (C_LEVEL_EVENT >= g_log_level) THEN
166369    trace
166370    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
166371    ,p_level    => C_LEVEL_EVENT
166372    ,p_module   => l_log_module);
166373 END IF;
166374 --
166375 EXIT WHEN l_array_entity_id.COUNT = 0;
166376 
166377 -- initialize arrays
166378 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
166379 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
166380 
166381 --
166382 -- Bug 4458708
166383 --
166384 XLA_AE_LINES_PKG.g_LineNumber := 0;
166385 
166386 
166387 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
166388 g_last_hdr_idx := l_array_event_id.LAST;
166389 --
166390 -- loop for the headers. Each iteration is for each header extract row
166391 -- fetched in header cursor
166392 --
166393 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
166394 
166395 --
166396 -- set event info as cache for other routines to refer event attributes
166397 --
166401    ,p_base_ledger_id           => p_base_ledger_id
166398 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
166399    (p_application_id           => p_application_id
166400    ,p_primary_ledger_id        => p_primary_ledger_id
166402    ,p_target_ledger_id         => p_target_ledger_id
166403    ,p_entity_id                => l_array_entity_id(hdr_idx)
166404    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
166405    ,p_entity_code              => l_array_entity_code(hdr_idx)
166406    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
166407    ,p_event_id                 => l_array_event_id(hdr_idx)
166408    ,p_event_class_code         => l_array_class_code(hdr_idx)
166409    ,p_event_type_code          => l_array_event_type(hdr_idx)
166410    ,p_event_number             => l_array_event_number(hdr_idx)
166411    ,p_event_date               => l_array_event_date(hdr_idx)
166412    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
166413    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
166414    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
166415    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
166416    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
166417    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
166418    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
166419    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
166420    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
166421    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
166422    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
166423    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
166424    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
166425    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
166426    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
166427 
166428 --
166429 -- set the status of entry to C_VALID (0)
166430 --
166431 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
166432 
166433 --
166434 -- initialize a row for ae header
166435 --
166436 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
166437 
166438 l_event_id := l_array_event_id(hdr_idx);
166439 
166440 --
166441 -- storing the hdr_idx for event. May be used by line cursor.
166442 --
166443 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
166444 
166445 --
166446 -- store sources from header extract. This can be improved to
166447 -- store only those sources from header extract that may be used in lines
166448 --
166449 
166450 g_array_event(l_event_id).array_value_char('source_6') := l_array_source_6(hdr_idx);
166451 g_array_event(l_event_id).array_value_num('source_9') := l_array_source_9(hdr_idx);
166452 g_array_event(l_event_id).array_value_num('source_10') := l_array_source_10(hdr_idx);
166453 g_array_event(l_event_id).array_value_date('source_11') := l_array_source_11(hdr_idx);
166454 g_array_event(l_event_id).array_value_char('source_12') := l_array_source_12(hdr_idx);
166455 g_array_event(l_event_id).array_value_char('source_13') := l_array_source_13(hdr_idx);
166456 g_array_event(l_event_id).array_value_num('source_14') := l_array_source_14(hdr_idx);
166457 g_array_event(l_event_id).array_value_char('source_15') := l_array_source_15(hdr_idx);
166458 g_array_event(l_event_id).array_value_char('source_15_meaning') := l_array_source_15_meaning(hdr_idx);
166459 g_array_event(l_event_id).array_value_num('source_16') := l_array_source_16(hdr_idx);
166460 g_array_event(l_event_id).array_value_num('source_17') := l_array_source_17(hdr_idx);
166461 g_array_event(l_event_id).array_value_num('source_18') := l_array_source_18(hdr_idx);
166462 g_array_event(l_event_id).array_value_char('source_19') := l_array_source_19(hdr_idx);
166463 g_array_event(l_event_id).array_value_char('source_19_meaning') := l_array_source_19_meaning(hdr_idx);
166464 g_array_event(l_event_id).array_value_num('source_28') := l_array_source_28(hdr_idx);
166465 g_array_event(l_event_id).array_value_char('source_29') := l_array_source_29(hdr_idx);
166466 g_array_event(l_event_id).array_value_num('source_36') := l_array_source_36(hdr_idx);
166467 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
166468 g_array_event(l_event_id).array_value_num('source_38') := l_array_source_38(hdr_idx);
166469 g_array_event(l_event_id).array_value_num('source_39') := l_array_source_39(hdr_idx);
166470 g_array_event(l_event_id).array_value_num('source_44') := l_array_source_44(hdr_idx);
166471 g_array_event(l_event_id).array_value_char('source_47') := l_array_source_47(hdr_idx);
166472 g_array_event(l_event_id).array_value_char('source_47_meaning') := l_array_source_47_meaning(hdr_idx);
166473 g_array_event(l_event_id).array_value_num('source_49') := l_array_source_49(hdr_idx);
166474 g_array_event(l_event_id).array_value_char('source_83') := l_array_source_83(hdr_idx);
166475 g_array_event(l_event_id).array_value_char('source_97') := l_array_source_97(hdr_idx);
166476 g_array_event(l_event_id).array_value_char('source_105') := l_array_source_105(hdr_idx);
166477 g_array_event(l_event_id).array_value_date('source_106') := l_array_source_106(hdr_idx);
166478 g_array_event(l_event_id).array_value_num('source_107') := l_array_source_107(hdr_idx);
166479 g_array_event(l_event_id).array_value_char('source_108') := l_array_source_108(hdr_idx);
166480 g_array_event(l_event_id).array_value_num('source_110') := l_array_source_110(hdr_idx);
166481 g_array_event(l_event_id).array_value_num('source_111') := l_array_source_111(hdr_idx);
166482 g_array_event(l_event_id).array_value_char('source_113') := l_array_source_113(hdr_idx);
166483 g_array_event(l_event_id).array_value_char('source_113_meaning') := l_array_source_113_meaning(hdr_idx);
166484 g_array_event(l_event_id).array_value_date('source_114') := l_array_source_114(hdr_idx);
166485 g_array_event(l_event_id).array_value_date('source_117') := l_array_source_117(hdr_idx);
166486 g_array_event(l_event_id).array_value_num('source_118') := l_array_source_118(hdr_idx);
166487 g_array_event(l_event_id).array_value_char('source_119') := l_array_source_119(hdr_idx);
166491 g_array_event(l_event_id).array_value_num('source_171') := l_array_source_171(hdr_idx);
166488 g_array_event(l_event_id).array_value_char('source_122') := l_array_source_122(hdr_idx);
166489 g_array_event(l_event_id).array_value_char('source_122_meaning') := l_array_source_122_meaning(hdr_idx);
166490 g_array_event(l_event_id).array_value_char('source_170') := l_array_source_170(hdr_idx);
166492 
166493 --
166494 -- initilaize the status of ae headers for diffrent balance types
166495 -- the status is initialised to C_NOT_CREATED (2)
166496 --
166497 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
166498 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
166499 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
166500 
166501 --
166502 -- call api to validate and store accounting attributes for header
166503 --
166504 
166505 ------------------------------------------------------------
166506 -- Accrual Reversal : to get date for Standard Source (NONE)
166507 ------------------------------------------------------------
166508 l_acc_rev_gl_date_source := NULL;
166509 
166510      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
166511       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_170');
166512      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
166513       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_171');
166514      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
166515       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_9');
166516      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
166517       l_rec_acct_attrs.array_date_value(4) := 
166518 xla_ae_sources_pkg.GetSystemSourceDate(
166519    p_source_code           => 'XLA_EVENT_DATE'
166520  , p_source_type_code      => 'Y'
166521  , p_source_application_id =>  602
166522 );
166523 
166524 
166525 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
166526 
166527 XLA_AE_HEADER_PKG.SetJeCategoryName;
166528 
166529 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
166530 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
166531 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
166532 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
166533 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
166534 
166535 
166536 --
166537 xla_ae_header_pkg.SetHdrDescription(
166538    p_description => Description_3 (
166539    p_application_id => p_application_id 
166540  , p_source_6 => g_array_event(l_event_id).array_value_char('source_6')
166541  , p_source_9 => g_array_event(l_event_id).array_value_num('source_9')
166542  , p_source_10 => g_array_event(l_event_id).array_value_num('source_10')
166543  , p_source_11 => g_array_event(l_event_id).array_value_date('source_11')
166544  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
166545  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
166546    )
166547 );
166548 --
166549 
166550 -- No header level analytical criteria
166551 
166552 --
166553 --accounting attribute enhancement, bug 3612931
166554 --
166555 l_trx_reversal_source := SUBSTR(NULL, 1,30);
166556 
166557 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
166558    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
166559 
166560    xla_accounting_err_pkg.build_message
166561       (p_appli_s_name            => 'XLA'
166562       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
166563       ,p_token_1                 => 'ACCT_ATTR_NAME'
166564       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
166565       ,p_token_2                 => 'PRODUCT_NAME'
166566       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
166567       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
166568       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
166569       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
166570 
166571 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
166572    --
166573    -- following sets the accounting attributes needed to reverse
166574    -- accounting for a distributeion
166575    --
166576    xla_ae_lines_pkg.SetTrxReversalAttrs
166577       (p_event_id              => l_event_id
166578       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
166579       ,p_trx_reversal_source   => l_trx_reversal_source);
166580 
166581 END IF;
166582 
166583 
166584 ----------------------------------------------------------------
166585 -- 4262811 -  update the header statuses to invalid in need be
166586 ----------------------------------------------------------------
166587 --
166588 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
166589 
166590 
166591   -----------------------------------------------
166592   -- No accrual reversal for the event class/type
166593   -----------------------------------------------
166594 ----------------------------------------------------------------
166595 
166596 --
166597 -- this ends the header loop iteration for one bulk fetch
166598 --
166599 END LOOP;
166600 
166601 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
166602 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
166603 
166604 --
166605 -- insert dummy rows into lines gt table that were created due to
166606 -- transaction reversals
166607 --
166608 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
166612 --
166609    l_result := XLA_AE_LINES_PKG.InsertLines;
166610 END IF;
166611 
166613 -- reset the temp_line_num for each set of events fetched from header
166614 -- cursor rather than doing it for each new event in line cursor
166615 -- Bug 3939231
166616 --
166617 xla_ae_lines_pkg.g_temp_line_num := 0;
166618 
166619 
166620 
166621 --
166622 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
166623 --
166624 --
166625 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
166626 
166627       trace
166628          (p_msg      => 'SQL - FETCH line_cur'
166629          ,p_level    => C_LEVEL_STATEMENT
166630          ,p_module   => l_log_module);
166631 
166632 END IF;
166633 --
166634 --
166635 LOOP
166636   --
166637   FETCH line_cur BULK COLLECT INTO
166638         l_array_entity_id
166639       , l_array_legal_entity_id
166640       , l_array_entity_code
166641       , l_array_transaction_num
166642       , l_array_event_id
166643       , l_array_class_code
166644       , l_array_event_type
166645       , l_array_event_number
166646       , l_array_event_date
166647       , l_array_transaction_date
166648       , l_array_reference_num_1
166649       , l_array_reference_num_2
166650       , l_array_reference_num_3
166651       , l_array_reference_num_4
166652       , l_array_reference_char_1
166653       , l_array_reference_char_2
166654       , l_array_reference_char_3
166655       , l_array_reference_char_4
166656       , l_array_reference_date_1
166657       , l_array_reference_date_2
166658       , l_array_reference_date_3
166659       , l_array_reference_date_4
166660       , l_array_event_created_by
166661       , l_array_budgetary_control_flag
166662       , l_array_extract_line_num 
166663       , l_array_source_30
166664       , l_array_source_33
166665       , l_array_source_33_meaning
166666       , l_array_source_43
166667       , l_array_source_45
166668       , l_array_source_46
166669       , l_array_source_52
166670       , l_array_source_53
166671       , l_array_source_55
166672       , l_array_source_67
166673       , l_array_source_80
166674       , l_array_source_80_meaning
166675       , l_array_source_86
166676       , l_array_source_88
166677       , l_array_source_91
166678       , l_array_source_92
166679       , l_array_source_93
166680       , l_array_source_94
166681       , l_array_source_95
166682       , l_array_source_98
166683       , l_array_source_98_meaning
166684       , l_array_source_99
166685       , l_array_source_100
166686       , l_array_source_101
166687       , l_array_source_102
166688       , l_array_source_103
166689       , l_array_source_104
166690       , l_array_source_109
166691       , l_array_source_112
166692       , l_array_source_115
166693       , l_array_source_116
166694       , l_array_source_120
166695       , l_array_source_121
166696       , l_array_source_137
166697       , l_array_source_137_meaning
166698       , l_array_source_143
166699       , l_array_source_144
166700       , l_array_source_145
166701       , l_array_source_151
166702       , l_array_source_152
166703       , l_array_source_156
166704       , l_array_source_157
166705       , l_array_source_159
166706       , l_array_source_160
166707       , l_array_source_163
166708       , l_array_source_163_meaning
166709       , l_array_source_164
166710       , l_array_source_164_meaning
166711       LIMIT l_rows;
166712 
166713   --
166714   IF (C_LEVEL_EVENT >= g_log_level) THEN
166715             trace
166716                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
166717                ,p_level    => C_LEVEL_EVENT
166718                ,p_module   => l_log_module);
166719   END IF;
166720   --
166721   EXIT WHEN l_array_entity_id.count = 0;
166722 
166723   XLA_AE_LINES_PKG.g_rec_lines := null;
166724 
166725 --
166726 -- Bug 4458708
166727 --
166728 XLA_AE_LINES_PKG.g_LineNumber := 0;
166729 --
166730 --
166731 
166732 FOR Idx IN 1..l_array_event_id.count LOOP
166733    --
166734    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
166735    --
166736    l_event_id := l_array_event_id(idx);  -- 5648433
166737 
166738    --
166739    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
166740    --
166741 
166742    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
166743              (g_array_event(l_event_id).array_value_num('header_index'))
166744          ,'N'
166745          ) <> 'Y'
166746    THEN
166747       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
166748          trace
166749             (p_msg      => 'Trancaction revesal option is not Y '
166750             ,p_level    => C_LEVEL_STATEMENT
166751             ,p_module   => l_log_module);
166752       END IF;
166753 
166754 --
166755 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
166756 --
166757 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
166758 --
166759 -- set event info as cache for other routines to refer event attributes
166760 --
166761 
166762 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
166763    l_previous_event_id := l_event_id;
166764 
166765    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
166766       (p_application_id           => p_application_id
166767       ,p_primary_ledger_id        => p_primary_ledger_id
166768       ,p_base_ledger_id           => p_base_ledger_id
166769       ,p_target_ledger_id         => p_target_ledger_id
166770       ,p_entity_id                => l_array_entity_id(Idx)
166771       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
166772       ,p_entity_code              => l_array_entity_code(Idx)
166776       ,p_event_type_code          => l_array_event_type(Idx)
166773       ,p_transaction_num          => l_array_transaction_num(Idx)
166774       ,p_event_id                 => l_array_event_id(Idx)
166775       ,p_event_class_code         => l_array_class_code(Idx)
166777       ,p_event_number             => l_array_event_number(Idx)
166778       ,p_event_date               => l_array_event_date(Idx)
166779       ,p_transaction_date         => l_array_transaction_date(Idx)
166780       ,p_reference_num_1          => l_array_reference_num_1(Idx)
166781       ,p_reference_num_2          => l_array_reference_num_2(Idx)
166782       ,p_reference_num_3          => l_array_reference_num_3(Idx)
166783       ,p_reference_num_4          => l_array_reference_num_4(Idx)
166784       ,p_reference_char_1         => l_array_reference_char_1(Idx)
166785       ,p_reference_char_2         => l_array_reference_char_2(Idx)
166786       ,p_reference_char_3         => l_array_reference_char_3(Idx)
166787       ,p_reference_char_4         => l_array_reference_char_4(Idx)
166788       ,p_reference_date_1         => l_array_reference_date_1(Idx)
166789       ,p_reference_date_2         => l_array_reference_date_2(Idx)
166790       ,p_reference_date_3         => l_array_reference_date_3(Idx)
166791       ,p_reference_date_4         => l_array_reference_date_4(Idx)
166792       ,p_event_created_by         => l_array_event_created_by(Idx)
166793       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
166794        --
166795 END IF;
166796 
166797 
166798 
166799 --
166800 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
166801 
166802 l_acct_reversal_source := SUBSTR(l_array_source_53(Idx), 1,30);
166803 
166804 IF l_continue_with_lines THEN
166805    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
166806       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
166807 
166808       xla_accounting_err_pkg.build_message
166809          (p_appli_s_name            => 'XLA'
166810          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
166811          ,p_token_1                 => 'LINE_NUMBER'
166812          ,p_value_1                 => l_array_extract_line_num(Idx)
166813          ,p_token_2                 => 'PRODUCT_NAME'
166814          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
166815          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
166816          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
166817          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
166818 
166819    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
166820       --
166821       -- following sets the accounting attributes needed to reverse
166822       -- accounting for a distributeion
166823       --
166824 
166825       --
166826       -- 5217187
166827       --
166828       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
166829       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
166830                                        g_array_event(l_event_id).array_value_num('header_index'));
166831       --
166832       --
166833 
166834       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
166835       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_53(Idx);
166836       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
166837       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_104(Idx);
166838       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
166839       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_55(Idx);
166840       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
166841       l_rec_rev_acct_attrs.array_char_value(5)  := g_array_event(l_event_id).array_value_char('source_83');
166842       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
166843       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_112(Idx);
166844       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
166845       l_rec_rev_acct_attrs.array_char_value(7)  := l_array_source_55(Idx);
166846       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'TAX_LINE_REF_ID';
166847       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_86(Idx);
166848       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'TAX_REC_NREC_DIST_REF_ID';
166849       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_86(Idx);
166850       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'TAX_SUMMARY_LINE_REF_ID';
166851       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_88(Idx);
166852 
166853 
166854       xla_ae_lines_pkg.SetAcctReversalAttrs
166855          (p_event_id             => l_event_id
166856          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
166857          ,p_calculate_acctd_flag => l_calculate_acctd_flag
166858          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
166859    END IF;
166860 
166861    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
166862        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
166863 
166864 --
166865 AcctLineType_59 (
166866  p_application_id  => p_application_id
166867  ,p_event_id     => l_event_id
166868  ,p_calculate_acctd_flag => l_calculate_acctd_flag
166869  ,p_calculate_g_l_flag => l_calculate_g_l_flag
166870  ,p_actual_flag => l_actual_flag
166871  ,p_balance_type_code => l_balance_type_code
166872  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
166873  
166874  , p_source_14 => g_array_event(l_event_id).array_value_num('source_14')
166875  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
166876  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
166877  , p_source_30 => l_array_source_30(Idx)
166878  , p_source_53 => l_array_source_53(Idx)
166879  , p_source_55 => l_array_source_55(Idx)
166880  , p_source_80 => l_array_source_80(Idx)
166881  , p_source_80_meaning => l_array_source_80_meaning(Idx)
166885  , p_source_91 => l_array_source_91(Idx)
166882  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
166883  , p_source_86 => l_array_source_86(Idx)
166884  , p_source_88 => l_array_source_88(Idx)
166886  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
166887  , p_source_98 => l_array_source_98(Idx)
166888  , p_source_98_meaning => l_array_source_98_meaning(Idx)
166889  , p_source_99 => l_array_source_99(Idx)
166890  , p_source_100 => l_array_source_100(Idx)
166891  , p_source_101 => l_array_source_101(Idx)
166892  , p_source_102 => l_array_source_102(Idx)
166893  , p_source_103 => l_array_source_103(Idx)
166894  , p_source_104 => l_array_source_104(Idx)
166895  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
166896  , p_source_106 => g_array_event(l_event_id).array_value_date('source_106')
166897  , p_source_107 => g_array_event(l_event_id).array_value_num('source_107')
166898  , p_source_108 => g_array_event(l_event_id).array_value_char('source_108')
166899  , p_source_109 => l_array_source_109(Idx)
166900  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
166901  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
166902  , p_source_112 => l_array_source_112(Idx)
166903  );
166904 If(l_balance_type_code = 'A') THEN
166905   l_actual_gain_loss_ref := l_gain_or_loss_ref;
166906 END IF;
166907 
166908 --
166909 
166910 
166911 --
166912 AcctLineType_60 (
166913  p_application_id  => p_application_id
166914  ,p_event_id     => l_event_id
166915  ,p_calculate_acctd_flag => l_calculate_acctd_flag
166916  ,p_calculate_g_l_flag => l_calculate_g_l_flag
166917  ,p_actual_flag => l_actual_flag
166918  ,p_balance_type_code => l_balance_type_code
166919  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
166920  
166921  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
166922  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
166923  , p_source_16 => g_array_event(l_event_id).array_value_num('source_16')
166924  , p_source_30 => l_array_source_30(Idx)
166925  , p_source_53 => l_array_source_53(Idx)
166926  , p_source_55 => l_array_source_55(Idx)
166927  , p_source_80 => l_array_source_80(Idx)
166928  , p_source_80_meaning => l_array_source_80_meaning(Idx)
166929  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
166930  , p_source_86 => l_array_source_86(Idx)
166931  , p_source_88 => l_array_source_88(Idx)
166932  , p_source_91 => l_array_source_91(Idx)
166933  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
166934  , p_source_98 => l_array_source_98(Idx)
166935  , p_source_98_meaning => l_array_source_98_meaning(Idx)
166936  , p_source_99 => l_array_source_99(Idx)
166937  , p_source_100 => l_array_source_100(Idx)
166938  , p_source_101 => l_array_source_101(Idx)
166939  , p_source_102 => l_array_source_102(Idx)
166940  , p_source_103 => l_array_source_103(Idx)
166941  , p_source_104 => l_array_source_104(Idx)
166942  , p_source_105 => g_array_event(l_event_id).array_value_char('source_105')
166943  , p_source_106 => g_array_event(l_event_id).array_value_date('source_106')
166944  , p_source_107 => g_array_event(l_event_id).array_value_num('source_107')
166945  , p_source_108 => g_array_event(l_event_id).array_value_char('source_108')
166946  , p_source_109 => l_array_source_109(Idx)
166947  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
166948  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
166949  , p_source_112 => l_array_source_112(Idx)
166950  );
166951 If(l_balance_type_code = 'A') THEN
166952   l_actual_gain_loss_ref := l_gain_or_loss_ref;
166953 END IF;
166954 
166955 --
166956 
166957 
166958 --
166959 AcctLineType_61 (
166960  p_application_id  => p_application_id
166961  ,p_event_id     => l_event_id
166962  ,p_calculate_acctd_flag => l_calculate_acctd_flag
166963  ,p_calculate_g_l_flag => l_calculate_g_l_flag
166964  ,p_actual_flag => l_actual_flag
166965  ,p_balance_type_code => l_balance_type_code
166966  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
166967  
166968  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
166969  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
166970  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
166971  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
166972  , p_source_53 => l_array_source_53(Idx)
166973  , p_source_55 => l_array_source_55(Idx)
166974  , p_source_80 => l_array_source_80(Idx)
166975  , p_source_80_meaning => l_array_source_80_meaning(Idx)
166976  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
166977  , p_source_86 => l_array_source_86(Idx)
166978  , p_source_88 => l_array_source_88(Idx)
166979  , p_source_91 => l_array_source_91(Idx)
166980  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
166981  , p_source_98 => l_array_source_98(Idx)
166982  , p_source_98_meaning => l_array_source_98_meaning(Idx)
166983  , p_source_99 => l_array_source_99(Idx)
166984  , p_source_100 => l_array_source_100(Idx)
166985  , p_source_101 => l_array_source_101(Idx)
166986  , p_source_102 => l_array_source_102(Idx)
166987  , p_source_103 => l_array_source_103(Idx)
166988  , p_source_104 => l_array_source_104(Idx)
166989  , p_source_106 => g_array_event(l_event_id).array_value_date('source_106')
166990  , p_source_107 => g_array_event(l_event_id).array_value_num('source_107')
166991  , p_source_108 => g_array_event(l_event_id).array_value_char('source_108')
166992  , p_source_109 => l_array_source_109(Idx)
166993  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
166994  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
166995  , p_source_112 => l_array_source_112(Idx)
166996  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
166997  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
166998  );
166999 If(l_balance_type_code = 'A') THEN
167003 --
167000   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167001 END IF;
167002 
167004 
167005 
167006 --
167007 AcctLineType_62 (
167008  p_application_id  => p_application_id
167009  ,p_event_id     => l_event_id
167010  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167011  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167012  ,p_actual_flag => l_actual_flag
167013  ,p_balance_type_code => l_balance_type_code
167014  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167015  
167016  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167017  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
167018  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
167019  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
167020  , p_source_53 => l_array_source_53(Idx)
167021  , p_source_55 => l_array_source_55(Idx)
167022  , p_source_80 => l_array_source_80(Idx)
167023  , p_source_80_meaning => l_array_source_80_meaning(Idx)
167024  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
167025  , p_source_86 => l_array_source_86(Idx)
167026  , p_source_88 => l_array_source_88(Idx)
167027  , p_source_91 => l_array_source_91(Idx)
167028  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
167029  , p_source_98 => l_array_source_98(Idx)
167030  , p_source_98_meaning => l_array_source_98_meaning(Idx)
167031  , p_source_99 => l_array_source_99(Idx)
167032  , p_source_100 => l_array_source_100(Idx)
167033  , p_source_101 => l_array_source_101(Idx)
167034  , p_source_102 => l_array_source_102(Idx)
167035  , p_source_103 => l_array_source_103(Idx)
167036  , p_source_104 => l_array_source_104(Idx)
167037  , p_source_106 => g_array_event(l_event_id).array_value_date('source_106')
167038  , p_source_107 => g_array_event(l_event_id).array_value_num('source_107')
167039  , p_source_108 => g_array_event(l_event_id).array_value_char('source_108')
167040  , p_source_109 => l_array_source_109(Idx)
167041  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
167042  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
167043  , p_source_112 => l_array_source_112(Idx)
167044  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
167045  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
167046  );
167047 If(l_balance_type_code = 'A') THEN
167048   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167049 END IF;
167050 
167051 --
167052 
167053 
167054 --
167055 AcctLineType_63 (
167056  p_application_id  => p_application_id
167057  ,p_event_id     => l_event_id
167058  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167059  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167060  ,p_actual_flag => l_actual_flag
167061  ,p_balance_type_code => l_balance_type_code
167062  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167063  
167064  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167065  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
167066  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
167067  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
167068  , p_source_53 => l_array_source_53(Idx)
167069  , p_source_55 => l_array_source_55(Idx)
167070  , p_source_80 => l_array_source_80(Idx)
167071  , p_source_80_meaning => l_array_source_80_meaning(Idx)
167072  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
167073  , p_source_86 => l_array_source_86(Idx)
167074  , p_source_88 => l_array_source_88(Idx)
167075  , p_source_91 => l_array_source_91(Idx)
167076  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
167077  , p_source_98 => l_array_source_98(Idx)
167078  , p_source_98_meaning => l_array_source_98_meaning(Idx)
167079  , p_source_99 => l_array_source_99(Idx)
167080  , p_source_100 => l_array_source_100(Idx)
167081  , p_source_101 => l_array_source_101(Idx)
167082  , p_source_102 => l_array_source_102(Idx)
167083  , p_source_103 => l_array_source_103(Idx)
167084  , p_source_104 => l_array_source_104(Idx)
167085  , p_source_106 => g_array_event(l_event_id).array_value_date('source_106')
167086  , p_source_107 => g_array_event(l_event_id).array_value_num('source_107')
167087  , p_source_108 => g_array_event(l_event_id).array_value_char('source_108')
167088  , p_source_109 => l_array_source_109(Idx)
167089  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
167090  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
167091  , p_source_112 => l_array_source_112(Idx)
167092  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
167093  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
167094  );
167095 If(l_balance_type_code = 'A') THEN
167096   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167097 END IF;
167098 
167099 --
167100 
167101 
167102 --
167103 AcctLineType_64 (
167104  p_application_id  => p_application_id
167105  ,p_event_id     => l_event_id
167106  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167107  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167108  ,p_actual_flag => l_actual_flag
167109  ,p_balance_type_code => l_balance_type_code
167110  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167111  
167112  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167113  , p_source_53 => l_array_source_53(Idx)
167114  , p_source_55 => l_array_source_55(Idx)
167115  , p_source_80 => l_array_source_80(Idx)
167116  , p_source_80_meaning => l_array_source_80_meaning(Idx)
167117  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
167118  , p_source_86 => l_array_source_86(Idx)
167119  , p_source_88 => l_array_source_88(Idx)
167120  , p_source_91 => l_array_source_91(Idx)
167121  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
167122  , p_source_98 => l_array_source_98(Idx)
167126  , p_source_101 => l_array_source_101(Idx)
167123  , p_source_98_meaning => l_array_source_98_meaning(Idx)
167124  , p_source_99 => l_array_source_99(Idx)
167125  , p_source_100 => l_array_source_100(Idx)
167127  , p_source_102 => l_array_source_102(Idx)
167128  , p_source_103 => l_array_source_103(Idx)
167129  , p_source_104 => l_array_source_104(Idx)
167130  , p_source_112 => l_array_source_112(Idx)
167131  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
167132  , p_source_115 => l_array_source_115(Idx)
167133  );
167134 If(l_balance_type_code = 'A') THEN
167135   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167136 END IF;
167137 
167138 --
167139 
167140 
167141 --
167142 AcctLineType_65 (
167143  p_application_id  => p_application_id
167144  ,p_event_id     => l_event_id
167145  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167146  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167147  ,p_actual_flag => l_actual_flag
167148  ,p_balance_type_code => l_balance_type_code
167149  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167150  
167151  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167152  , p_source_53 => l_array_source_53(Idx)
167153  , p_source_55 => l_array_source_55(Idx)
167154  , p_source_80 => l_array_source_80(Idx)
167155  , p_source_80_meaning => l_array_source_80_meaning(Idx)
167156  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
167157  , p_source_86 => l_array_source_86(Idx)
167158  , p_source_88 => l_array_source_88(Idx)
167159  , p_source_91 => l_array_source_91(Idx)
167160  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
167161  , p_source_98 => l_array_source_98(Idx)
167162  , p_source_98_meaning => l_array_source_98_meaning(Idx)
167163  , p_source_99 => l_array_source_99(Idx)
167164  , p_source_100 => l_array_source_100(Idx)
167165  , p_source_101 => l_array_source_101(Idx)
167166  , p_source_102 => l_array_source_102(Idx)
167167  , p_source_103 => l_array_source_103(Idx)
167168  , p_source_104 => l_array_source_104(Idx)
167169  , p_source_112 => l_array_source_112(Idx)
167170  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
167171  , p_source_116 => l_array_source_116(Idx)
167172  );
167173 If(l_balance_type_code = 'A') THEN
167174   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167175 END IF;
167176 
167177 --
167178 
167179 
167180 --
167181 AcctLineType_68 (
167182  p_application_id  => p_application_id
167183  ,p_event_id     => l_event_id
167184  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167185  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167186  ,p_actual_flag => l_actual_flag
167187  ,p_balance_type_code => l_balance_type_code
167188  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167189  
167190  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167191  , p_source_53 => l_array_source_53(Idx)
167192  , p_source_55 => l_array_source_55(Idx)
167193  , p_source_80 => l_array_source_80(Idx)
167194  , p_source_80_meaning => l_array_source_80_meaning(Idx)
167195  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
167196  , p_source_86 => l_array_source_86(Idx)
167197  , p_source_88 => l_array_source_88(Idx)
167198  , p_source_91 => l_array_source_91(Idx)
167199  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
167200  , p_source_98 => l_array_source_98(Idx)
167201  , p_source_98_meaning => l_array_source_98_meaning(Idx)
167202  , p_source_99 => l_array_source_99(Idx)
167203  , p_source_100 => l_array_source_100(Idx)
167204  , p_source_101 => l_array_source_101(Idx)
167205  , p_source_103 => l_array_source_103(Idx)
167206  , p_source_104 => l_array_source_104(Idx)
167207  , p_source_112 => l_array_source_112(Idx)
167208  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
167209  , p_source_120 => l_array_source_120(Idx)
167210  , p_source_121 => l_array_source_121(Idx)
167211  );
167212 If(l_balance_type_code = 'A') THEN
167213   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167214 END IF;
167215 
167216 --
167217 
167218 
167219 --
167220 AcctLineType_95 (
167221  p_application_id  => p_application_id
167222  ,p_event_id     => l_event_id
167223  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167224  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167225  ,p_actual_flag => l_actual_flag
167226  ,p_balance_type_code => l_balance_type_code
167227  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167228  
167229  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167230  , p_source_33 => l_array_source_33(Idx)
167231  , p_source_33_meaning => l_array_source_33_meaning(Idx)
167232  , p_source_52 => l_array_source_52(Idx)
167233  , p_source_53 => l_array_source_53(Idx)
167234  , p_source_55 => l_array_source_55(Idx)
167235  , p_source_80 => l_array_source_80(Idx)
167236  , p_source_80_meaning => l_array_source_80_meaning(Idx)
167237  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
167238  , p_source_86 => l_array_source_86(Idx)
167239  , p_source_88 => l_array_source_88(Idx)
167240  , p_source_91 => l_array_source_91(Idx)
167241  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
167242  , p_source_98 => l_array_source_98(Idx)
167243  , p_source_98_meaning => l_array_source_98_meaning(Idx)
167244  , p_source_99 => l_array_source_99(Idx)
167245  , p_source_100 => l_array_source_100(Idx)
167246  , p_source_101 => l_array_source_101(Idx)
167247  , p_source_102 => l_array_source_102(Idx)
167248  , p_source_103 => l_array_source_103(Idx)
167249  , p_source_104 => l_array_source_104(Idx)
167250  , p_source_106 => g_array_event(l_event_id).array_value_date('source_106')
167251  , p_source_107 => g_array_event(l_event_id).array_value_num('source_107')
167252  , p_source_108 => g_array_event(l_event_id).array_value_char('source_108')
167253  , p_source_109 => l_array_source_109(Idx)
167254  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
167258  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
167255  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
167256  , p_source_112 => l_array_source_112(Idx)
167257  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
167259  , p_source_137 => l_array_source_137(Idx)
167260  , p_source_137_meaning => l_array_source_137_meaning(Idx)
167261  );
167262 If(l_balance_type_code = 'A') THEN
167263   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167264 END IF;
167265 
167266 --
167267 
167268 
167269 --
167270 AcctLineType_96 (
167271  p_application_id  => p_application_id
167272  ,p_event_id     => l_event_id
167273  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167274  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167275  ,p_actual_flag => l_actual_flag
167276  ,p_balance_type_code => l_balance_type_code
167277  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167278  
167279  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167280  , p_source_33 => l_array_source_33(Idx)
167281  , p_source_33_meaning => l_array_source_33_meaning(Idx)
167282  , p_source_53 => l_array_source_53(Idx)
167283  , p_source_55 => l_array_source_55(Idx)
167284  , p_source_80 => l_array_source_80(Idx)
167285  , p_source_80_meaning => l_array_source_80_meaning(Idx)
167286  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
167287  , p_source_86 => l_array_source_86(Idx)
167288  , p_source_88 => l_array_source_88(Idx)
167289  , p_source_91 => l_array_source_91(Idx)
167290  , p_source_94 => l_array_source_94(Idx)
167291  , p_source_95 => l_array_source_95(Idx)
167292  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
167293  , p_source_98 => l_array_source_98(Idx)
167294  , p_source_98_meaning => l_array_source_98_meaning(Idx)
167295  , p_source_99 => l_array_source_99(Idx)
167296  , p_source_100 => l_array_source_100(Idx)
167297  , p_source_101 => l_array_source_101(Idx)
167298  , p_source_104 => l_array_source_104(Idx)
167299  , p_source_112 => l_array_source_112(Idx)
167300  , p_source_116 => l_array_source_116(Idx)
167301  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
167302  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
167303  , p_source_137 => l_array_source_137(Idx)
167304  , p_source_137_meaning => l_array_source_137_meaning(Idx)
167305  );
167306 If(l_balance_type_code = 'A') THEN
167307   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167308 END IF;
167309 
167310 --
167311 
167312 
167313 --
167314 AcctLineType_104 (
167315  p_application_id  => p_application_id
167316  ,p_event_id     => l_event_id
167317  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167318  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167319  ,p_actual_flag => l_actual_flag
167320  ,p_balance_type_code => l_balance_type_code
167321  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167322  
167323  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
167324  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
167325  , p_source_18 => g_array_event(l_event_id).array_value_num('source_18')
167326  , p_source_19 => g_array_event(l_event_id).array_value_char('source_19')
167327  , p_source_19_meaning => g_array_event(l_event_id).array_value_char('source_19_meaning')
167328  , p_source_30 => l_array_source_30(Idx)
167329  , p_source_33 => l_array_source_33(Idx)
167330  , p_source_33_meaning => l_array_source_33_meaning(Idx)
167331  , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
167332  , p_source_45 => l_array_source_45(Idx)
167333  , p_source_46 => l_array_source_46(Idx)
167334  , p_source_53 => l_array_source_53(Idx)
167335  , p_source_55 => l_array_source_55(Idx)
167336  , p_source_67 => l_array_source_67(Idx)
167337  , p_source_80 => l_array_source_80(Idx)
167338  , p_source_80_meaning => l_array_source_80_meaning(Idx)
167339  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
167340  , p_source_86 => l_array_source_86(Idx)
167341  , p_source_88 => l_array_source_88(Idx)
167342  , p_source_91 => l_array_source_91(Idx)
167343  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
167344  , p_source_98 => l_array_source_98(Idx)
167345  , p_source_98_meaning => l_array_source_98_meaning(Idx)
167346  , p_source_99 => l_array_source_99(Idx)
167347  , p_source_100 => l_array_source_100(Idx)
167348  , p_source_101 => l_array_source_101(Idx)
167349  , p_source_102 => l_array_source_102(Idx)
167350  , p_source_103 => l_array_source_103(Idx)
167351  , p_source_104 => l_array_source_104(Idx)
167352  , p_source_109 => l_array_source_109(Idx)
167353  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
167354  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
167355  , p_source_112 => l_array_source_112(Idx)
167356  , p_source_143 => l_array_source_143(Idx)
167357  , p_source_144 => l_array_source_144(Idx)
167358  , p_source_145 => l_array_source_145(Idx)
167359  );
167360 If(l_balance_type_code = 'A') THEN
167361   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167362 END IF;
167363 
167364 --
167365 
167366 
167367 --
167368 AcctLineType_112 (
167369  p_application_id  => p_application_id
167370  ,p_event_id     => l_event_id
167371  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167372  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167373  ,p_actual_flag => l_actual_flag
167374  ,p_balance_type_code => l_balance_type_code
167375  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167376  
167377  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
167378  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
167379  , p_source_30 => l_array_source_30(Idx)
167380  , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
167381  , p_source_53 => l_array_source_53(Idx)
167382  , p_source_55 => l_array_source_55(Idx)
167386  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
167383  , p_source_67 => l_array_source_67(Idx)
167384  , p_source_80 => l_array_source_80(Idx)
167385  , p_source_80_meaning => l_array_source_80_meaning(Idx)
167387  , p_source_86 => l_array_source_86(Idx)
167388  , p_source_88 => l_array_source_88(Idx)
167389  , p_source_91 => l_array_source_91(Idx)
167390  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
167391  , p_source_98 => l_array_source_98(Idx)
167392  , p_source_98_meaning => l_array_source_98_meaning(Idx)
167393  , p_source_99 => l_array_source_99(Idx)
167394  , p_source_100 => l_array_source_100(Idx)
167395  , p_source_101 => l_array_source_101(Idx)
167396  , p_source_102 => l_array_source_102(Idx)
167397  , p_source_103 => l_array_source_103(Idx)
167398  , p_source_104 => l_array_source_104(Idx)
167399  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
167400  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
167401  , p_source_112 => l_array_source_112(Idx)
167402  , p_source_116 => l_array_source_116(Idx)
167403  , p_source_143 => l_array_source_143(Idx)
167404  , p_source_144 => l_array_source_144(Idx)
167405  , p_source_145 => l_array_source_145(Idx)
167406  );
167407 If(l_balance_type_code = 'A') THEN
167408   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167409 END IF;
167410 
167411 --
167412 
167413 
167414 --
167415 AcctLineType_124 (
167416  p_application_id  => p_application_id
167417  ,p_event_id     => l_event_id
167418  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167419  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167420  ,p_actual_flag => l_actual_flag
167421  ,p_balance_type_code => l_balance_type_code
167422  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167423  
167424  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167425  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
167426  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
167427  , p_source_30 => l_array_source_30(Idx)
167428  , p_source_36 => g_array_event(l_event_id).array_value_num('source_36')
167429  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
167430  , p_source_53 => l_array_source_53(Idx)
167431  , p_source_55 => l_array_source_55(Idx)
167432  , p_source_80 => l_array_source_80(Idx)
167433  , p_source_80_meaning => l_array_source_80_meaning(Idx)
167434  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
167435  , p_source_86 => l_array_source_86(Idx)
167436  , p_source_88 => l_array_source_88(Idx)
167437  , p_source_91 => l_array_source_91(Idx)
167438  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
167439  , p_source_98 => l_array_source_98(Idx)
167440  , p_source_98_meaning => l_array_source_98_meaning(Idx)
167441  , p_source_99 => l_array_source_99(Idx)
167442  , p_source_100 => l_array_source_100(Idx)
167443  , p_source_101 => l_array_source_101(Idx)
167444  , p_source_102 => l_array_source_102(Idx)
167445  , p_source_103 => l_array_source_103(Idx)
167446  , p_source_104 => l_array_source_104(Idx)
167447  , p_source_106 => g_array_event(l_event_id).array_value_date('source_106')
167448  , p_source_107 => g_array_event(l_event_id).array_value_num('source_107')
167449  , p_source_108 => g_array_event(l_event_id).array_value_char('source_108')
167450  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
167451  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
167452  , p_source_112 => l_array_source_112(Idx)
167453  , p_source_151 => l_array_source_151(Idx)
167454  , p_source_152 => l_array_source_152(Idx)
167455  );
167456 If(l_balance_type_code = 'A') THEN
167457   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167458 END IF;
167459 
167460 --
167461 
167462 
167463 --
167464 AcctLineType_125 (
167465  p_application_id  => p_application_id
167466  ,p_event_id     => l_event_id
167467  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167468  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167469  ,p_actual_flag => l_actual_flag
167470  ,p_balance_type_code => l_balance_type_code
167471  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167472  
167473  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
167474  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
167475  , p_source_30 => l_array_source_30(Idx)
167476  , p_source_36 => g_array_event(l_event_id).array_value_num('source_36')
167477  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
167478  , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
167479  , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
167480  , p_source_53 => l_array_source_53(Idx)
167481  , p_source_55 => l_array_source_55(Idx)
167482  , p_source_80 => l_array_source_80(Idx)
167483  , p_source_80_meaning => l_array_source_80_meaning(Idx)
167484  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
167485  , p_source_86 => l_array_source_86(Idx)
167486  , p_source_88 => l_array_source_88(Idx)
167487  , p_source_91 => l_array_source_91(Idx)
167488  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
167489  , p_source_98 => l_array_source_98(Idx)
167490  , p_source_98_meaning => l_array_source_98_meaning(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_102 => l_array_source_102(Idx)
167495  , p_source_103 => l_array_source_103(Idx)
167496  , p_source_104 => l_array_source_104(Idx)
167497  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
167498  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
167499  , p_source_112 => l_array_source_112(Idx)
167500  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
167501  , p_source_152 => l_array_source_152(Idx)
167502  );
167503 If(l_balance_type_code = 'A') THEN
167507 --
167504   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167505 END IF;
167506 
167508 
167509 
167510 --
167511 AcctLineType_130 (
167512  p_application_id  => p_application_id
167513  ,p_event_id     => l_event_id
167514  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167515  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167516  ,p_actual_flag => l_actual_flag
167517  ,p_balance_type_code => l_balance_type_code
167518  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167519  
167520  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167521  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
167522  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
167523  , p_source_30 => l_array_source_30(Idx)
167524  , p_source_36 => g_array_event(l_event_id).array_value_num('source_36')
167525  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
167526  , p_source_53 => l_array_source_53(Idx)
167527  , p_source_55 => l_array_source_55(Idx)
167528  , p_source_80 => l_array_source_80(Idx)
167529  , p_source_80_meaning => l_array_source_80_meaning(Idx)
167530  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
167531  , p_source_86 => l_array_source_86(Idx)
167532  , p_source_88 => l_array_source_88(Idx)
167533  , p_source_91 => l_array_source_91(Idx)
167534  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
167535  , p_source_98 => l_array_source_98(Idx)
167536  , p_source_98_meaning => l_array_source_98_meaning(Idx)
167537  , p_source_99 => l_array_source_99(Idx)
167538  , p_source_100 => l_array_source_100(Idx)
167539  , p_source_101 => l_array_source_101(Idx)
167540  , p_source_102 => l_array_source_102(Idx)
167541  , p_source_103 => l_array_source_103(Idx)
167542  , p_source_104 => l_array_source_104(Idx)
167543  , p_source_106 => g_array_event(l_event_id).array_value_date('source_106')
167544  , p_source_107 => g_array_event(l_event_id).array_value_num('source_107')
167545  , p_source_108 => g_array_event(l_event_id).array_value_char('source_108')
167546  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
167547  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
167548  , p_source_112 => l_array_source_112(Idx)
167549  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
167550  , p_source_156 => l_array_source_156(Idx)
167551  , p_source_157 => l_array_source_157(Idx)
167552  );
167553 If(l_balance_type_code = 'A') THEN
167554   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167555 END IF;
167556 
167557 --
167558 
167559 
167560 --
167561 AcctLineType_132 (
167562  p_application_id  => p_application_id
167563  ,p_event_id     => l_event_id
167564  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167565  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167566  ,p_actual_flag => l_actual_flag
167567  ,p_balance_type_code => l_balance_type_code
167568  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167569  
167570  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167571  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
167572  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
167573  , p_source_30 => l_array_source_30(Idx)
167574  , p_source_36 => g_array_event(l_event_id).array_value_num('source_36')
167575  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
167576  , p_source_53 => l_array_source_53(Idx)
167577  , p_source_55 => l_array_source_55(Idx)
167578  , p_source_80 => l_array_source_80(Idx)
167579  , p_source_80_meaning => l_array_source_80_meaning(Idx)
167580  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
167581  , p_source_86 => l_array_source_86(Idx)
167582  , p_source_88 => l_array_source_88(Idx)
167583  , p_source_91 => l_array_source_91(Idx)
167584  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
167585  , p_source_98 => l_array_source_98(Idx)
167586  , p_source_98_meaning => l_array_source_98_meaning(Idx)
167587  , p_source_99 => l_array_source_99(Idx)
167588  , p_source_100 => l_array_source_100(Idx)
167589  , p_source_101 => l_array_source_101(Idx)
167590  , p_source_102 => l_array_source_102(Idx)
167591  , p_source_103 => l_array_source_103(Idx)
167592  , p_source_104 => l_array_source_104(Idx)
167593  , p_source_106 => g_array_event(l_event_id).array_value_date('source_106')
167594  , p_source_107 => g_array_event(l_event_id).array_value_num('source_107')
167595  , p_source_108 => g_array_event(l_event_id).array_value_char('source_108')
167596  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
167597  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
167598  , p_source_112 => l_array_source_112(Idx)
167599  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
167600  , p_source_159 => l_array_source_159(Idx)
167601  , p_source_160 => l_array_source_160(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_136 (
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_13 => g_array_event(l_event_id).array_value_char('source_13')
167621  , p_source_28 => g_array_event(l_event_id).array_value_num('source_28')
167622  , p_source_29 => g_array_event(l_event_id).array_value_char('source_29')
167623  , p_source_30 => l_array_source_30(Idx)
167624  , p_source_33 => l_array_source_33(Idx)
167625  , p_source_33_meaning => l_array_source_33_meaning(Idx)
167626  , p_source_53 => l_array_source_53(Idx)
167627  , p_source_55 => l_array_source_55(Idx)
167631  , p_source_86 => l_array_source_86(Idx)
167628  , p_source_80 => l_array_source_80(Idx)
167629  , p_source_80_meaning => l_array_source_80_meaning(Idx)
167630  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
167632  , p_source_88 => l_array_source_88(Idx)
167633  , p_source_91 => l_array_source_91(Idx)
167634  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
167635  , p_source_98 => l_array_source_98(Idx)
167636  , p_source_98_meaning => l_array_source_98_meaning(Idx)
167637  , p_source_99 => l_array_source_99(Idx)
167638  , p_source_100 => l_array_source_100(Idx)
167639  , p_source_101 => l_array_source_101(Idx)
167640  , p_source_102 => l_array_source_102(Idx)
167641  , p_source_103 => l_array_source_103(Idx)
167642  , p_source_104 => l_array_source_104(Idx)
167643  , p_source_106 => g_array_event(l_event_id).array_value_date('source_106')
167644  , p_source_107 => g_array_event(l_event_id).array_value_num('source_107')
167645  , p_source_108 => g_array_event(l_event_id).array_value_char('source_108')
167646  , p_source_109 => l_array_source_109(Idx)
167647  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
167648  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
167649  , p_source_112 => l_array_source_112(Idx)
167650  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
167651  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
167652  , p_source_163 => l_array_source_163(Idx)
167653  , p_source_163_meaning => l_array_source_163_meaning(Idx)
167654  );
167655 If(l_balance_type_code = 'A') THEN
167656   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167657 END IF;
167658 
167659 --
167660 
167661 
167662 --
167663 AcctLineType_145 (
167664  p_application_id  => p_application_id
167665  ,p_event_id     => l_event_id
167666  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167667  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167668  ,p_actual_flag => l_actual_flag
167669  ,p_balance_type_code => l_balance_type_code
167670  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167671  
167672  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167673  , p_source_53 => l_array_source_53(Idx)
167674  , p_source_55 => l_array_source_55(Idx)
167675  , p_source_80 => l_array_source_80(Idx)
167676  , p_source_80_meaning => l_array_source_80_meaning(Idx)
167677  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
167678  , p_source_86 => l_array_source_86(Idx)
167679  , p_source_88 => l_array_source_88(Idx)
167680  , p_source_91 => l_array_source_91(Idx)
167681  , p_source_92 => l_array_source_92(Idx)
167682  , p_source_93 => l_array_source_93(Idx)
167683  , p_source_94 => l_array_source_94(Idx)
167684  , p_source_95 => l_array_source_95(Idx)
167685  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
167686  , p_source_98 => l_array_source_98(Idx)
167687  , p_source_98_meaning => l_array_source_98_meaning(Idx)
167688  , p_source_99 => l_array_source_99(Idx)
167689  , p_source_104 => l_array_source_104(Idx)
167690  , p_source_112 => l_array_source_112(Idx)
167691  , p_source_116 => l_array_source_116(Idx)
167692  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
167693  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
167694  , p_source_163 => l_array_source_163(Idx)
167695  , p_source_163_meaning => l_array_source_163_meaning(Idx)
167696  , p_source_164 => l_array_source_164(Idx)
167697  , p_source_164_meaning => l_array_source_164_meaning(Idx)
167698  );
167699 If(l_balance_type_code = 'A') THEN
167700   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167701 END IF;
167702 
167703 --
167704 
167705 
167706 --
167707 AcctLineType_147 (
167708  p_application_id  => p_application_id
167709  ,p_event_id     => l_event_id
167710  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167711  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167712  ,p_actual_flag => l_actual_flag
167713  ,p_balance_type_code => l_balance_type_code
167714  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167715  
167716  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167717  , p_source_53 => l_array_source_53(Idx)
167718  , p_source_55 => l_array_source_55(Idx)
167719  , p_source_80 => l_array_source_80(Idx)
167720  , p_source_80_meaning => l_array_source_80_meaning(Idx)
167721  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
167722  , p_source_86 => l_array_source_86(Idx)
167723  , p_source_88 => l_array_source_88(Idx)
167724  , p_source_91 => l_array_source_91(Idx)
167725  , p_source_92 => l_array_source_92(Idx)
167726  , p_source_93 => l_array_source_93(Idx)
167727  , p_source_94 => l_array_source_94(Idx)
167728  , p_source_95 => l_array_source_95(Idx)
167729  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
167730  , p_source_98 => l_array_source_98(Idx)
167731  , p_source_98_meaning => l_array_source_98_meaning(Idx)
167732  , p_source_99 => l_array_source_99(Idx)
167733  , p_source_104 => l_array_source_104(Idx)
167734  , p_source_112 => l_array_source_112(Idx)
167735  , p_source_116 => l_array_source_116(Idx)
167736  , p_source_163 => l_array_source_163(Idx)
167737  , p_source_163_meaning => l_array_source_163_meaning(Idx)
167738  );
167739 If(l_balance_type_code = 'A') THEN
167740   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167741 END IF;
167742 
167743 --
167744 
167745 
167746 --
167747 AcctLineType_163 (
167748  p_application_id  => p_application_id
167749  ,p_event_id     => l_event_id
167750  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167751  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167752  ,p_actual_flag => l_actual_flag
167753  ,p_balance_type_code => l_balance_type_code
167754  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167755  
167756  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167760  , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
167757  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
167758  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
167759  , p_source_30 => l_array_source_30(Idx)
167761  , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
167762  , p_source_53 => l_array_source_53(Idx)
167763  , p_source_55 => l_array_source_55(Idx)
167764  , p_source_80 => l_array_source_80(Idx)
167765  , p_source_80_meaning => l_array_source_80_meaning(Idx)
167766  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
167767  , p_source_86 => l_array_source_86(Idx)
167768  , p_source_88 => l_array_source_88(Idx)
167769  , p_source_91 => l_array_source_91(Idx)
167770  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
167771  , p_source_98 => l_array_source_98(Idx)
167772  , p_source_98_meaning => l_array_source_98_meaning(Idx)
167773  , p_source_99 => l_array_source_99(Idx)
167774  , p_source_100 => l_array_source_100(Idx)
167775  , p_source_101 => l_array_source_101(Idx)
167776  , p_source_102 => l_array_source_102(Idx)
167777  , p_source_103 => l_array_source_103(Idx)
167778  , p_source_104 => l_array_source_104(Idx)
167779  , p_source_106 => g_array_event(l_event_id).array_value_date('source_106')
167780  , p_source_107 => g_array_event(l_event_id).array_value_num('source_107')
167781  , p_source_108 => g_array_event(l_event_id).array_value_char('source_108')
167782  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
167783  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
167784  , p_source_112 => l_array_source_112(Idx)
167785  , p_source_151 => l_array_source_151(Idx)
167786  , p_source_152 => l_array_source_152(Idx)
167787  );
167788 If(l_balance_type_code = 'A') THEN
167789   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167790 END IF;
167791 
167792 --
167793 
167794 
167795 --
167796 AcctLineType_164 (
167797  p_application_id  => p_application_id
167798  ,p_event_id     => l_event_id
167799  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167800  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167801  ,p_actual_flag => l_actual_flag
167802  ,p_balance_type_code => l_balance_type_code
167803  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167804  
167805  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167806  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
167807  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
167808  , p_source_30 => l_array_source_30(Idx)
167809  , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
167810  , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
167811  , p_source_53 => l_array_source_53(Idx)
167812  , p_source_55 => l_array_source_55(Idx)
167813  , p_source_80 => l_array_source_80(Idx)
167814  , p_source_80_meaning => l_array_source_80_meaning(Idx)
167815  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
167816  , p_source_86 => l_array_source_86(Idx)
167817  , p_source_88 => l_array_source_88(Idx)
167818  , p_source_91 => l_array_source_91(Idx)
167819  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
167820  , p_source_98 => l_array_source_98(Idx)
167821  , p_source_98_meaning => l_array_source_98_meaning(Idx)
167822  , p_source_99 => l_array_source_99(Idx)
167823  , p_source_100 => l_array_source_100(Idx)
167824  , p_source_101 => l_array_source_101(Idx)
167825  , p_source_102 => l_array_source_102(Idx)
167826  , p_source_103 => l_array_source_103(Idx)
167827  , p_source_104 => l_array_source_104(Idx)
167828  , p_source_106 => g_array_event(l_event_id).array_value_date('source_106')
167829  , p_source_107 => g_array_event(l_event_id).array_value_num('source_107')
167830  , p_source_108 => g_array_event(l_event_id).array_value_char('source_108')
167831  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
167832  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
167833  , p_source_112 => l_array_source_112(Idx)
167834  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
167835  , p_source_156 => l_array_source_156(Idx)
167836  , p_source_157 => l_array_source_157(Idx)
167837  );
167838 If(l_balance_type_code = 'A') THEN
167839   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167840 END IF;
167841 
167842 --
167843 
167844 
167845 --
167846 AcctLineType_166 (
167847  p_application_id  => p_application_id
167848  ,p_event_id     => l_event_id
167849  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167850  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167851  ,p_actual_flag => l_actual_flag
167852  ,p_balance_type_code => l_balance_type_code
167853  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167854  
167855  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167856  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
167857  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
167858  , p_source_30 => l_array_source_30(Idx)
167859  , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
167860  , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
167861  , p_source_53 => l_array_source_53(Idx)
167862  , p_source_55 => l_array_source_55(Idx)
167863  , p_source_80 => l_array_source_80(Idx)
167864  , p_source_80_meaning => l_array_source_80_meaning(Idx)
167865  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
167866  , p_source_86 => l_array_source_86(Idx)
167867  , p_source_88 => l_array_source_88(Idx)
167868  , p_source_91 => l_array_source_91(Idx)
167869  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
167870  , p_source_98 => l_array_source_98(Idx)
167871  , p_source_98_meaning => l_array_source_98_meaning(Idx)
167872  , p_source_99 => l_array_source_99(Idx)
167873  , p_source_100 => l_array_source_100(Idx)
167874  , p_source_101 => l_array_source_101(Idx)
167878  , p_source_106 => g_array_event(l_event_id).array_value_date('source_106')
167875  , p_source_102 => l_array_source_102(Idx)
167876  , p_source_103 => l_array_source_103(Idx)
167877  , p_source_104 => l_array_source_104(Idx)
167879  , p_source_107 => g_array_event(l_event_id).array_value_num('source_107')
167880  , p_source_108 => g_array_event(l_event_id).array_value_char('source_108')
167881  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
167882  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
167883  , p_source_112 => l_array_source_112(Idx)
167884  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
167885  , p_source_159 => l_array_source_159(Idx)
167886  , p_source_160 => l_array_source_160(Idx)
167887  );
167888 If(l_balance_type_code = 'A') THEN
167889   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167890 END IF;
167891 
167892 --
167893 
167894 
167895 --
167896 AcctLineType_170 (
167897  p_application_id  => p_application_id
167898  ,p_event_id     => l_event_id
167899  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167900  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167901  ,p_actual_flag => l_actual_flag
167902  ,p_balance_type_code => l_balance_type_code
167903  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167904  
167905  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167906  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
167907  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
167908  , p_source_30 => l_array_source_30(Idx)
167909  , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
167910  , p_source_53 => l_array_source_53(Idx)
167911  , p_source_55 => l_array_source_55(Idx)
167912  , p_source_80 => l_array_source_80(Idx)
167913  , p_source_80_meaning => l_array_source_80_meaning(Idx)
167914  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
167915  , p_source_86 => l_array_source_86(Idx)
167916  , p_source_88 => l_array_source_88(Idx)
167917  , p_source_91 => l_array_source_91(Idx)
167918  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
167919  , p_source_98 => l_array_source_98(Idx)
167920  , p_source_98_meaning => l_array_source_98_meaning(Idx)
167921  , p_source_99 => l_array_source_99(Idx)
167922  , p_source_100 => l_array_source_100(Idx)
167923  , p_source_101 => l_array_source_101(Idx)
167924  , p_source_102 => l_array_source_102(Idx)
167925  , p_source_103 => l_array_source_103(Idx)
167926  , p_source_104 => l_array_source_104(Idx)
167927  , p_source_106 => g_array_event(l_event_id).array_value_date('source_106')
167928  , p_source_107 => g_array_event(l_event_id).array_value_num('source_107')
167929  , p_source_108 => g_array_event(l_event_id).array_value_char('source_108')
167930  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
167931  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
167932  , p_source_112 => l_array_source_112(Idx)
167933  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
167934  , p_source_121 => l_array_source_121(Idx)
167935  );
167936 If(l_balance_type_code = 'A') THEN
167937   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167938 END IF;
167939 
167940 --
167941 
167942 
167943 --
167944 AcctLineType_184 (
167945  p_application_id  => p_application_id
167946  ,p_event_id     => l_event_id
167947  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167948  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167949  ,p_actual_flag => l_actual_flag
167950  ,p_balance_type_code => l_balance_type_code
167951  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
167952  
167953  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
167954  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
167955  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
167956  , p_source_30 => l_array_source_30(Idx)
167957  , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
167958  , p_source_53 => l_array_source_53(Idx)
167959  , p_source_55 => l_array_source_55(Idx)
167960  , p_source_80 => l_array_source_80(Idx)
167961  , p_source_80_meaning => l_array_source_80_meaning(Idx)
167962  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
167963  , p_source_86 => l_array_source_86(Idx)
167964  , p_source_88 => l_array_source_88(Idx)
167965  , p_source_91 => l_array_source_91(Idx)
167966  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
167967  , p_source_98 => l_array_source_98(Idx)
167968  , p_source_98_meaning => l_array_source_98_meaning(Idx)
167969  , p_source_99 => l_array_source_99(Idx)
167970  , p_source_100 => l_array_source_100(Idx)
167971  , p_source_101 => l_array_source_101(Idx)
167972  , p_source_102 => l_array_source_102(Idx)
167973  , p_source_103 => l_array_source_103(Idx)
167974  , p_source_104 => l_array_source_104(Idx)
167975  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
167976  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
167977  , p_source_112 => l_array_source_112(Idx)
167978  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
167979  , p_source_115 => l_array_source_115(Idx)
167980  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
167981  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
167982  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
167983  );
167984 If(l_balance_type_code = 'A') THEN
167985   l_actual_gain_loss_ref := l_gain_or_loss_ref;
167986 END IF;
167987 
167988 --
167989 
167990 
167991 --
167992 AcctLineType_224 (
167993  p_application_id  => p_application_id
167994  ,p_event_id     => l_event_id
167995  ,p_calculate_acctd_flag => l_calculate_acctd_flag
167996  ,p_calculate_g_l_flag => l_calculate_g_l_flag
167997  ,p_actual_flag => l_actual_flag
167998  ,p_balance_type_code => l_balance_type_code
168002  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
167999  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
168000  
168001  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
168003  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
168004  , p_source_30 => l_array_source_30(Idx)
168005  , p_source_43 => l_array_source_43(Idx)
168006  , p_source_53 => l_array_source_53(Idx)
168007  , p_source_55 => l_array_source_55(Idx)
168008  , p_source_80 => l_array_source_80(Idx)
168009  , p_source_80_meaning => l_array_source_80_meaning(Idx)
168010  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
168011  , p_source_86 => l_array_source_86(Idx)
168012  , p_source_88 => l_array_source_88(Idx)
168013  , p_source_91 => l_array_source_91(Idx)
168014  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
168015  , p_source_98 => l_array_source_98(Idx)
168016  , p_source_98_meaning => l_array_source_98_meaning(Idx)
168017  , p_source_99 => l_array_source_99(Idx)
168018  , p_source_100 => l_array_source_100(Idx)
168019  , p_source_101 => l_array_source_101(Idx)
168020  , p_source_102 => l_array_source_102(Idx)
168021  , p_source_103 => l_array_source_103(Idx)
168022  , p_source_104 => l_array_source_104(Idx)
168023  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
168024  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
168025  , p_source_112 => l_array_source_112(Idx)
168026  , p_source_116 => l_array_source_116(Idx)
168027  , p_source_143 => l_array_source_143(Idx)
168028  , p_source_144 => l_array_source_144(Idx)
168029  , p_source_145 => l_array_source_145(Idx)
168030  , p_source_164 => l_array_source_164(Idx)
168031  , p_source_164_meaning => l_array_source_164_meaning(Idx)
168032  );
168033 If(l_balance_type_code = 'A') THEN
168034   l_actual_gain_loss_ref := l_gain_or_loss_ref;
168035 END IF;
168036 
168037 --
168038 
168039       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
168040       -- or secondary ledger that has different currency with primary
168041       -- or alc that is calculated by sla
168042       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
168043             (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'))
168044 
168045 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
168046 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
168047           AND (l_actual_flag = 'A')) THEN
168048         XLA_AE_LINES_PKG.CreateGainOrLossLines(
168049           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
168050          ,p_application_id   => p_application_id
168051          ,p_amb_context_code => 'DEFAULT'
168052          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
168053          ,p_event_class_code => C_EVENT_CLASS_CODE
168054          ,p_event_type_code  => C_EVENT_TYPE_CODE
168055          
168056          ,p_gain_ccid        => -1
168057          ,p_loss_ccid        => -1
168058 
168059          ,p_actual_flag      => l_actual_flag
168060          ,p_enc_flag         => null
168061          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
168062          ,p_enc_g_l_ref      => null
168063          );
168064       END IF;
168065    END IF;
168066 END IF;
168067 
168068    ELSE
168069       --
168070       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
168071       --
168072       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
168073          trace
168074             (p_msg      => 'Trancaction revesal option is Y'
168075             ,p_level    => C_LEVEL_STATEMENT
168076             ,p_module   => l_log_module);
168077       END IF;
168078    END IF;
168079 
168080 END LOOP;
168081 l_result := XLA_AE_LINES_PKG.InsertLines ;
168082 end loop;
168083 close line_cur;
168084 
168085 
168086 --
168087 -- insert headers into xla_ae_headers_gt table
168088 --
168089 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
168090 
168091 -- insert into errors table here.
168092 
168093 END LOOP;
168094 
168095 --
168096 -- 4865292
168097 --
168098 -- Compare g_hdr_extract_count with event count in
168099 -- CreateHeadersAndLines.
168100 --
168101 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
168102 
168103 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
168104    trace (p_msg     => '# rows extracted from header extract objects '
168105                     || ' (running total): '
168106                     || g_hdr_extract_count
168107          ,p_level   => C_LEVEL_STATEMENT
168108          ,p_module  => l_log_module);
168109 END IF;
168110 
168111 CLOSE header_cur;
168112 --
168113 
168114 --
168115 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
168116    trace
168117       (p_msg      => 'END of EventClass_237'
168118       ,p_level    => C_LEVEL_PROCEDURE
168119       ,p_module   => l_log_module);
168120 END IF;
168121 --
168122 RETURN l_result;
168123 EXCEPTION
168124 WHEN xla_exceptions_pkg.application_exception THEN
168125    
168126 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
168127 
168128    
168129 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
168130 
168131    RAISE;
168132 
168133 WHEN NO_DATA_FOUND THEN
168134 
168135 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
168136 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
168137 
168138 FOR header_record IN header_cur
168139 LOOP
168140     l_array_header_events(header_record.event_id) := header_record.event_id;
168141 END LOOP;
168142 
168143 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
168147 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
168144 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
168145 
168146 fnd_file.put_line(fnd_file.LOG, '                    ');
168148 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
168149 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
168150 
168151 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
168152 LOOP
168153 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
168154 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
168155         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
168156 	END IF;
168157 END LOOP;
168158 
168159 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
168160 fnd_file.put_line(fnd_file.LOG, '                    ');
168161 
168162 
168163 xla_exceptions_pkg.raise_message
168164       (p_location => 'XLA_00200_AAD_S_000002_PKG.EventClass_237');
168165 
168166 
168167 WHEN OTHERS THEN
168168    xla_exceptions_pkg.raise_message
168169       (p_location => 'XLA_00200_AAD_S_000002_PKG.EventClass_237');
168170 END EventClass_237;
168171 --
168172 
168173 ---------------------------------------
168174 --
168175 -- PRIVATE PROCEDURE
168176 --         insert_sources_238
168177 --
168178 ----------------------------------------
168179 --
168180 PROCEDURE insert_sources_238(
168181                                 p_target_ledger_id       IN NUMBER
168182                               , p_language               IN VARCHAR2
168183                               , p_sla_ledger_id          IN NUMBER
168184                               , p_pad_start_date         IN DATE
168185                               , p_pad_end_date           IN DATE
168186                          )
168187 IS
168188 
168189 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'REFUNDS_ALL';
168190 C_EVENT_CLASS_CODE   CONSTANT  VARCHAR2(30) := 'REFUNDS';
168191 p_apps_owner                   VARCHAR2(30);
168192 l_log_module                   VARCHAR2(240);
168193 BEGIN
168194 IF g_log_enabled THEN
168195       l_log_module := C_DEFAULT_MODULE||'.insert_sources_238';
168196 END IF;
168197 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
168198 
168199       trace
168200          (p_msg      => 'BEGIN of insert_sources_238'
168201          ,p_level    => C_LEVEL_PROCEDURE
168202          ,p_module   => l_log_module);
168203 
168204 END IF;
168205 
168206 -- select APPS owner
168207 SELECT oracle_username
168208   INTO p_apps_owner
168209   FROM fnd_oracle_userid
168210  WHERE read_only_flag = 'U'
168211 ;
168212 
168213 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
168214       trace
168215          (p_msg      => 'p_target_ledger_id = '||p_target_ledger_id||
168216                         ' - p_language = '||p_language||
168217                         ' - p_sla_ledger_id  = '||p_sla_ledger_id ||
168218                         ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
168219                         ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
168220                         ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
168221          ,p_level    => C_LEVEL_STATEMENT
168222          ,p_module   => l_log_module);
168223 END IF;
168224 
168225 
168226 --
168227 INSERT INTO xla_diag_sources --hdr2
168228 (
168229         event_id
168230       , ledger_id
168231       , sla_ledger_id
168232       , description_language
168233       , object_name
168234       , object_type_code
168235       , line_number
168236       , source_application_id
168237       , source_type_code
168238       , source_code
168239       , source_value
168240       , source_meaning
168241       , created_by
168242       , creation_date
168243       , last_update_date
168244       , last_updated_by
168245       , last_update_login
168246       , program_update_date
168247       , program_application_id
168248       , program_id
168249       , request_id
168250 )
168251 SELECT
168252         event_id
168253       , p_target_ledger_id
168254       , p_sla_ledger_id
168255       , p_language
168256       , object_name
168257       , object_type_code
168258       , line_number
168259       , source_application_id
168260       , source_type_code
168261       , source_code
168262       , SUBSTR(source_value ,1,1996)
168263       , SUBSTR(source_meaning ,1,200)
168264       , xla_environment_pkg.g_Usr_Id
168265       , TRUNC(SYSDATE)
168266       , TRUNC(SYSDATE)
168267       , xla_environment_pkg.g_Usr_Id
168268       , xla_environment_pkg.g_Login_Id
168269       , TRUNC(SYSDATE)
168270       , xla_environment_pkg.g_Prog_Appl_Id
168271       , xla_environment_pkg.g_Prog_Id
168272       , xla_environment_pkg.g_Req_Id
168273   FROM (
168274        SELECT xet.event_id                  event_id
168275             , 0                          line_number
168276             , CASE r
168277                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168278                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168279                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168280                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168281                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168282                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168283                 WHEN 7 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
168284                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168285                 WHEN 9 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
168286                 WHEN 10 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
168287                 WHEN 11 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168288                 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168292                 WHEN 16 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
168289                 WHEN 13 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
168290                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168291                 WHEN 15 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
168293                 WHEN 17 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
168294                 WHEN 18 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
168295                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168296                 WHEN 20 THEN 'AP_SYSTEM_PARAMETERS_EXTRACT_V' 
168297                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168298                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168299                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168300                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168301                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168302                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168303                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168304                 WHEN 28 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168305                 WHEN 29 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168306                 WHEN 30 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168307                 WHEN 31 THEN 'AP_PAYMENT_EXTRACT_HEADER_V' 
168308                 
168309                ELSE null
168310               END                           object_name
168311             , CASE r
168312                 WHEN 1 THEN 'HEADER' 
168313                 WHEN 2 THEN 'HEADER' 
168314                 WHEN 3 THEN 'HEADER' 
168315                 WHEN 4 THEN 'HEADER' 
168316                 WHEN 5 THEN 'HEADER' 
168317                 WHEN 6 THEN 'HEADER' 
168318                 WHEN 7 THEN 'HEADER' 
168319                 WHEN 8 THEN 'HEADER' 
168320                 WHEN 9 THEN 'HEADER' 
168321                 WHEN 10 THEN 'HEADER' 
168322                 WHEN 11 THEN 'HEADER' 
168323                 WHEN 12 THEN 'HEADER' 
168324                 WHEN 13 THEN 'HEADER' 
168325                 WHEN 14 THEN 'HEADER' 
168326                 WHEN 15 THEN 'HEADER' 
168327                 WHEN 16 THEN 'HEADER' 
168328                 WHEN 17 THEN 'HEADER' 
168329                 WHEN 18 THEN 'HEADER' 
168330                 WHEN 19 THEN 'HEADER' 
168331                 WHEN 20 THEN 'HEADER' 
168332                 WHEN 21 THEN 'HEADER' 
168333                 WHEN 22 THEN 'HEADER' 
168334                 WHEN 23 THEN 'HEADER' 
168335                 WHEN 24 THEN 'HEADER' 
168336                 WHEN 25 THEN 'HEADER' 
168337                 WHEN 26 THEN 'HEADER' 
168338                 WHEN 27 THEN 'HEADER' 
168339                 WHEN 28 THEN 'HEADER' 
168340                 WHEN 29 THEN 'HEADER' 
168341                 WHEN 30 THEN 'HEADER' 
168342                 WHEN 31 THEN 'HEADER' 
168343                 
168344                 ELSE null
168345               END                           object_type_code
168346             , CASE r
168347                 WHEN 1 THEN '200' 
168348                 WHEN 2 THEN '200' 
168349                 WHEN 3 THEN '200' 
168350                 WHEN 4 THEN '200' 
168351                 WHEN 5 THEN '200' 
168352                 WHEN 6 THEN '200' 
168353                 WHEN 7 THEN '200' 
168354                 WHEN 8 THEN '200' 
168355                 WHEN 9 THEN '200' 
168356                 WHEN 10 THEN '200' 
168357                 WHEN 11 THEN '200' 
168358                 WHEN 12 THEN '200' 
168359                 WHEN 13 THEN '200' 
168360                 WHEN 14 THEN '200' 
168361                 WHEN 15 THEN '200' 
168362                 WHEN 16 THEN '200' 
168363                 WHEN 17 THEN '200' 
168364                 WHEN 18 THEN '200' 
168365                 WHEN 19 THEN '200' 
168366                 WHEN 20 THEN '200' 
168367                 WHEN 21 THEN '200' 
168368                 WHEN 22 THEN '200' 
168369                 WHEN 23 THEN '200' 
168370                 WHEN 24 THEN '200' 
168371                 WHEN 25 THEN '200' 
168372                 WHEN 26 THEN '200' 
168373                 WHEN 27 THEN '200' 
168374                 WHEN 28 THEN '200' 
168375                 WHEN 29 THEN '200' 
168376                 WHEN 30 THEN '200' 
168377                 WHEN 31 THEN '200' 
168378                 
168379                 ELSE null
168380               END                           source_application_id
168381             , 'S'             source_type_code
168382             , CASE r
168383                 WHEN 1 THEN 'DOC_SEQUENCE_NAME' 
168384                 WHEN 2 THEN 'AC_DOC_SEQUENCE_VALUE' 
168385                 WHEN 3 THEN 'PAYMENT_TRANSACTION_NUMBER' 
168386                 WHEN 4 THEN 'AC_CHECK_DATE' 
168387                 WHEN 5 THEN 'CBA_BANK_ACCOUNT_NAME' 
168388                 WHEN 6 THEN 'AC_CURRENCY_CODE' 
168389                 WHEN 7 THEN 'ASP_AUTOMATIC_OFFSETS_VALUE' 
168390                 WHEN 8 THEN 'CGAC_AP_ASSET_CCID' 
168391                 WHEN 9 THEN 'FSP_DISC_TAKEN_CCID' 
168392                 WHEN 10 THEN 'ASP_DISCOUNT_DIST_METHOD' 
168393                 WHEN 11 THEN 'CGAC_CASH_CLEARING_CCID' 
168394                 WHEN 12 THEN 'CGAC_GAIN_CCID' 
168395                 WHEN 13 THEN 'ASP_GAIN_CCID' 
168396                 WHEN 14 THEN 'CGAC_LOSS_CCID' 
168397                 WHEN 15 THEN 'ASP_LOSS_CCID' 
168398                 WHEN 16 THEN 'ASP_DISC_TAKEN_CCID' 
168399                 WHEN 17 THEN 'ASP_AUTO_OFFSET_FLAG' 
168400                 WHEN 18 THEN 'ASP_ROUNDING_ERROR_CCID' 
168401                 WHEN 19 THEN 'THIRD_PARTY_TYPE' 
168402                 WHEN 20 THEN 'ASP_WHEN_TO_ACCOUNT_PMT' 
168403                 WHEN 21 THEN 'AC_VENDOR_ID' 
168404                 WHEN 22 THEN 'AC_VENDOR_SITE_ID' 
168405                 WHEN 23 THEN 'CBA_POOLED_BANK_ACOUNT_FLAG' 
168406                 WHEN 24 THEN 'AC_FUTURE_PAY_DUE_DATE' 
168407                 WHEN 25 THEN 'AC_EXCHANGE_DATE' 
168408                 WHEN 26 THEN 'AC_EXCHANGE_RATE' 
168409                 WHEN 27 THEN 'AC_EXCHANGE_RATE_TYPE' 
168410                 WHEN 28 THEN 'PAYMENT_TYPE' 
168414                 
168411                 WHEN 29 THEN 'AC_DOC_CATEGORY_CODE' 
168412                 WHEN 30 THEN 'PAYMENT_DOCUMENT_SEQUENCE_ID' 
168413                 WHEN 31 THEN 'TRANSAC_REVERSAL_FLAG' 
168415                 ELSE null
168416               END                           source_code
168417             , CASE r
168418                 WHEN 1 THEN TO_CHAR(h2.DOC_SEQUENCE_NAME)
168419                 WHEN 2 THEN TO_CHAR(h2.AC_DOC_SEQUENCE_VALUE)
168420                 WHEN 3 THEN TO_CHAR(h2.PAYMENT_TRANSACTION_NUMBER)
168421                 WHEN 4 THEN TO_CHAR(h2.AC_CHECK_DATE)
168422                 WHEN 5 THEN TO_CHAR(h2.CBA_BANK_ACCOUNT_NAME)
168423                 WHEN 6 THEN TO_CHAR(h2.AC_CURRENCY_CODE)
168424                 WHEN 7 THEN TO_CHAR(h3.ASP_AUTOMATIC_OFFSETS_VALUE)
168425                 WHEN 8 THEN TO_CHAR(h2.CGAC_AP_ASSET_CCID)
168426                 WHEN 9 THEN TO_CHAR(h3.FSP_DISC_TAKEN_CCID)
168427                 WHEN 10 THEN TO_CHAR(h3.ASP_DISCOUNT_DIST_METHOD)
168428                 WHEN 11 THEN TO_CHAR(h2.CGAC_CASH_CLEARING_CCID)
168429                 WHEN 12 THEN TO_CHAR(h2.CGAC_GAIN_CCID)
168430                 WHEN 13 THEN TO_CHAR(h3.ASP_GAIN_CCID)
168431                 WHEN 14 THEN TO_CHAR(h2.CGAC_LOSS_CCID)
168432                 WHEN 15 THEN TO_CHAR(h3.ASP_LOSS_CCID)
168433                 WHEN 16 THEN TO_CHAR(h3.ASP_DISC_TAKEN_CCID)
168434                 WHEN 17 THEN TO_CHAR(h3.ASP_AUTO_OFFSET_FLAG)
168435                 WHEN 18 THEN TO_CHAR(h3.ASP_ROUNDING_ERROR_CCID)
168436                 WHEN 19 THEN TO_CHAR(h2.THIRD_PARTY_TYPE)
168437                 WHEN 20 THEN TO_CHAR(h3.ASP_WHEN_TO_ACCOUNT_PMT)
168438                 WHEN 21 THEN TO_CHAR(h2.AC_VENDOR_ID)
168439                 WHEN 22 THEN TO_CHAR(h2.AC_VENDOR_SITE_ID)
168440                 WHEN 23 THEN TO_CHAR(h2.CBA_POOLED_BANK_ACOUNT_FLAG)
168441                 WHEN 24 THEN TO_CHAR(h2.AC_FUTURE_PAY_DUE_DATE)
168442                 WHEN 25 THEN TO_CHAR(h2.AC_EXCHANGE_DATE)
168443                 WHEN 26 THEN TO_CHAR(h2.AC_EXCHANGE_RATE)
168444                 WHEN 27 THEN TO_CHAR(h2.AC_EXCHANGE_RATE_TYPE)
168445                 WHEN 28 THEN TO_CHAR(h2.PAYMENT_TYPE)
168446                 WHEN 29 THEN TO_CHAR(h2.AC_DOC_CATEGORY_CODE)
168447                 WHEN 30 THEN TO_CHAR(h2.PAYMENT_DOCUMENT_SEQUENCE_ID)
168448                 WHEN 31 THEN TO_CHAR(h2.TRANSAC_REVERSAL_FLAG)
168449                 
168450                 ELSE null
168451               END                           source_value
168452             , CASE r
168453                 WHEN 7 THEN fvl15.meaning
168454                 WHEN 10 THEN fvl19.meaning
168455                 WHEN 17 THEN fvl47.meaning
168456                 WHEN 23 THEN fvl113.meaning
168457                 WHEN 28 THEN fvl122.meaning
168458                 WHEN 31 THEN fvl172.meaning
168459                 
168460                 ELSE null
168461               END               source_meaning
168462          FROM xla_events_gt     xet  
168463       , AP_PAYMENT_EXTRACT_HEADER_V  h2
168464       , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
168465   , fnd_lookup_values    fvl15
168466   , fnd_lookup_values    fvl19
168467   , fnd_lookup_values    fvl47
168468   , fnd_lookup_values    fvl113
168469   , fnd_lookup_values    fvl122
168470   , fnd_lookup_values    fvl172
168471              ,(select rownum r from all_objects where rownum <= 31 and owner = p_apps_owner)
168472          WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
168473            AND xet.event_class_code = C_EVENT_CLASS_CODE
168474               AND h2.event_id = xet.event_id
168475  AND h3.asp_org_id = h2.ac_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
168476   AND fvl15.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
168477   AND fvl15.view_application_id(+) = 200
168478   AND fvl15.language(+)            = USERENV('LANG')
168479      AND fvl19.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
168480   AND fvl19.lookup_code(+)         = h3.ASP_DISCOUNT_DIST_METHOD
168481   AND fvl19.view_application_id(+) = 200
168482   AND fvl19.language(+)            = USERENV('LANG')
168483      AND fvl47.lookup_type(+)         = 'YES_NO'
168484   AND fvl47.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
168485   AND fvl47.view_application_id(+) = 0
168486   AND fvl47.language(+)            = USERENV('LANG')
168487      AND fvl113.lookup_type(+)         = 'YES_NO'
168488   AND fvl113.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
168489   AND fvl113.view_application_id(+) = 0
168490   AND fvl113.language(+)            = USERENV('LANG')
168491      AND fvl122.lookup_type(+)         = 'PAYMENT TYPE'
168492   AND fvl122.lookup_code(+)         = h2.PAYMENT_TYPE
168493   AND fvl122.view_application_id(+) = 200
168494   AND fvl122.language(+)            = USERENV('LANG')
168495      AND fvl172.lookup_type(+)         = 'YES_NO'
168496   AND fvl172.lookup_code(+)         = h2.TRANSAC_REVERSAL_FLAG
168497   AND fvl172.view_application_id(+) = 0
168498   AND fvl172.language(+)            = USERENV('LANG')
168499   
168500 )
168501 ;
168502 --
168503 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
168504 
168505       trace
168506          (p_msg      => 'number of header sources inserted = '||SQL%ROWCOUNT
168507          ,p_level    => C_LEVEL_STATEMENT
168508          ,p_module   => l_log_module);
168509 
168510 END IF;
168511 --
168512 
168513 
168514 
168515 --
168516 INSERT INTO xla_diag_sources  --line2
168517 (
168518         event_id
168519       , ledger_id
168520       , sla_ledger_id
168521       , description_language
168522       , object_name
168523       , object_type_code
168524       , line_number
168525       , source_application_id
168526       , source_type_code
168527       , source_code
168528       , source_value
168529       , source_meaning
168530       , created_by
168531       , creation_date
168532       , last_update_date
168533       , last_updated_by
168534       , last_update_login
168535       , program_update_date
168536       , program_application_id
168540 SELECT  event_id
168537       , program_id
168538       , request_id
168539 )
168541       , p_target_ledger_id
168542       , p_sla_ledger_id
168543       , p_language
168544       , object_name
168545       , object_type_code
168546       , line_number
168547       , source_application_id
168548       , source_type_code
168549       , source_code
168550       , SUBSTR(source_value,1,1996)
168551       , SUBSTR(source_meaning ,1,200)
168552       , xla_environment_pkg.g_Usr_Id
168553       , TRUNC(SYSDATE)
168554       , TRUNC(SYSDATE)
168555       , xla_environment_pkg.g_Usr_Id
168556       , xla_environment_pkg.g_Login_Id
168557       , TRUNC(SYSDATE)
168558       , xla_environment_pkg.g_Prog_Appl_Id
168559       , xla_environment_pkg.g_Prog_Id
168560       , xla_environment_pkg.g_Req_Id
168561   FROM (
168562        SELECT xet.event_id                  event_id
168563             , l1.line_number                 line_number
168564             , CASE r
168565                WHEN 1 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168566                 WHEN 2 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168567                 WHEN 3 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168568                 WHEN 4 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168569                 WHEN 5 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168570                 WHEN 6 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168571                 WHEN 7 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168572                 WHEN 8 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168573                 WHEN 9 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
168574                 WHEN 10 THEN 'ZX_AP_TAX_JRNL_LINE_DESC_V' 
168575                 WHEN 11 THEN 'ZX_AP_DEF_TAX_EXTRACT_V' 
168576                 WHEN 12 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168577                 WHEN 13 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168578                 WHEN 14 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168579                 WHEN 15 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168580                 WHEN 16 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168581                 WHEN 17 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168582                 WHEN 18 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168583                 WHEN 19 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168584                 WHEN 20 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168585                 WHEN 21 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168586                 WHEN 22 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168587                 WHEN 23 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168588                 WHEN 24 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168589                 WHEN 25 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168590                 WHEN 26 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168591                 WHEN 27 THEN 'AP_PAYMENT_EXTRACT_DETAILS_V' 
168592                 
168593                ELSE null
168594               END                           object_name
168595             , CASE r
168596                 WHEN 1 THEN 'LINE' 
168597                 WHEN 2 THEN 'LINE' 
168598                 WHEN 3 THEN 'LINE' 
168599                 WHEN 4 THEN 'LINE' 
168600                 WHEN 5 THEN 'LINE' 
168601                 WHEN 6 THEN 'LINE' 
168602                 WHEN 7 THEN 'LINE' 
168603                 WHEN 8 THEN 'LINE' 
168604                 WHEN 9 THEN 'LINE' 
168605                 WHEN 10 THEN 'LINE' 
168606                 WHEN 11 THEN 'LINE' 
168607                 WHEN 12 THEN 'LINE' 
168608                 WHEN 13 THEN 'LINE' 
168609                 WHEN 14 THEN 'LINE' 
168610                 WHEN 15 THEN 'LINE' 
168611                 WHEN 16 THEN 'LINE' 
168612                 WHEN 17 THEN 'LINE' 
168613                 WHEN 18 THEN 'LINE' 
168614                 WHEN 19 THEN 'LINE' 
168615                 WHEN 20 THEN 'LINE' 
168616                 WHEN 21 THEN 'LINE' 
168617                 WHEN 22 THEN 'LINE' 
168618                 WHEN 23 THEN 'LINE' 
168619                 WHEN 24 THEN 'LINE' 
168620                 WHEN 25 THEN 'LINE' 
168621                 WHEN 26 THEN 'LINE' 
168622                 WHEN 27 THEN 'LINE' 
168623                 
168624                 ELSE null
168625               END                           object_type_code
168626             , CASE r
168627                 WHEN 1 THEN '200' 
168628                 WHEN 2 THEN '200' 
168629                 WHEN 3 THEN '200' 
168630                 WHEN 4 THEN '200' 
168631                 WHEN 5 THEN '200' 
168632                 WHEN 6 THEN '200' 
168633                 WHEN 7 THEN '200' 
168634                 WHEN 8 THEN '200' 
168635                 WHEN 9 THEN '200' 
168636                 WHEN 10 THEN '200' 
168637                 WHEN 11 THEN '200' 
168638                 WHEN 12 THEN '200' 
168639                 WHEN 13 THEN '200' 
168640                 WHEN 14 THEN '200' 
168641                 WHEN 15 THEN '200' 
168642                 WHEN 16 THEN '200' 
168643                 WHEN 17 THEN '200' 
168644                 WHEN 18 THEN '200' 
168645                 WHEN 19 THEN '200' 
168646                 WHEN 20 THEN '200' 
168647                 WHEN 21 THEN '200' 
168648                 WHEN 22 THEN '200' 
168649                 WHEN 23 THEN '200' 
168650                 WHEN 24 THEN '200' 
168651                 WHEN 25 THEN '200' 
168652                 WHEN 26 THEN '200' 
168653                 WHEN 27 THEN '200' 
168654                 
168655                 ELSE null
168656               END                           source_application_id
168657             , 'S'             source_type_code
168658             , CASE r
168659                 WHEN 1 THEN 'AID_DIST_CCID' 
168660                 WHEN 2 THEN 'AID_LINE_TYPE_LOOKUP_CODE' 
168661                 WHEN 3 THEN 'POD_CCID' 
168662                 WHEN 4 THEN 'PO_VARIANCE_ACCOUNT' 
168663                 WHEN 5 THEN 'DIST_ACCOUNT_REVERSAL_OPTION' 
168664                 WHEN 6 THEN 'DISTRIBUTION_LINK_TYPE' 
168665                 WHEN 7 THEN 'AI_INVOICE_CURRENCY_CODE' 
168666                 WHEN 8 THEN 'OVERRIDE_ACCTD_AMT_FLAG' 
168670                 WHEN 12 THEN 'BUS_FLOW_AP_APP_ID' 
168667                 WHEN 9 THEN 'TAX_LINE_ID' 
168668                 WHEN 10 THEN 'REC_NREC_TAX_DIST_ID' 
168669                 WHEN 11 THEN 'SUMMARY_TAX_LINE_ID' 
168671                 WHEN 13 THEN 'BUS_FLOW_INV_DIST_TYPE' 
168672                 WHEN 14 THEN 'BUS_FLOW_INV_ENTITY_CODE' 
168673                 WHEN 15 THEN 'BUS_FLOW_INV_DIST_ID' 
168674                 WHEN 16 THEN 'BUS_FLOW_INV_ID' 
168675                 WHEN 17 THEN 'APHD_PAY_DIST_LOOKUP_CODE' 
168676                 WHEN 18 THEN 'APHD_AMOUNT' 
168677                 WHEN 19 THEN 'APHD_PAYMENT_HIST_DIST_ID' 
168678                 WHEN 20 THEN 'APHD_REV_PAY_HIST_DIST_ID' 
168679                 WHEN 21 THEN 'APHD_PAYMENT_BASE_AMT' 
168680                 WHEN 22 THEN 'APHD_INVOICE_BASE_AMT' 
168681                 WHEN 23 THEN 'INV_EXCHANGE_DATE' 
168682                 WHEN 24 THEN 'INV_EXCHANGE_RATE' 
168683                 WHEN 25 THEN 'INV_EXCHANGE_RATE_TYPE' 
168684                 WHEN 26 THEN 'INV_PMT_BASE_AMT_DIFF' 
168685                 WHEN 27 THEN 'INV_PMT_GAIN_LOSS_INDICATOR' 
168686                 
168687                 ELSE null
168688               END                           source_code
168689             , CASE r
168690                 WHEN 1 THEN TO_CHAR(l1.AID_DIST_CCID)
168691                 WHEN 2 THEN TO_CHAR(l1.AID_LINE_TYPE_LOOKUP_CODE)
168692                 WHEN 3 THEN TO_CHAR(l1.POD_CCID)
168693                 WHEN 4 THEN TO_CHAR(l1.PO_VARIANCE_ACCOUNT)
168694                 WHEN 5 THEN TO_CHAR(l1.DIST_ACCOUNT_REVERSAL_OPTION)
168695                 WHEN 6 THEN TO_CHAR(l1.DISTRIBUTION_LINK_TYPE)
168696                 WHEN 7 THEN TO_CHAR(l1.AI_INVOICE_CURRENCY_CODE)
168697                 WHEN 8 THEN TO_CHAR(l1.OVERRIDE_ACCTD_AMT_FLAG)
168698                 WHEN 9 THEN TO_CHAR(l4.TAX_LINE_ID)
168699                 WHEN 10 THEN TO_CHAR(l5.REC_NREC_TAX_DIST_ID)
168700                 WHEN 11 THEN TO_CHAR(l4.SUMMARY_TAX_LINE_ID)
168701                 WHEN 12 THEN TO_CHAR(l1.BUS_FLOW_AP_APP_ID)
168702                 WHEN 13 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_TYPE)
168703                 WHEN 14 THEN TO_CHAR(l1.BUS_FLOW_INV_ENTITY_CODE)
168704                 WHEN 15 THEN TO_CHAR(l1.BUS_FLOW_INV_DIST_ID)
168705                 WHEN 16 THEN TO_CHAR(l1.BUS_FLOW_INV_ID)
168706                 WHEN 17 THEN TO_CHAR(l1.APHD_PAY_DIST_LOOKUP_CODE)
168707                 WHEN 18 THEN TO_CHAR(l1.APHD_AMOUNT)
168708                 WHEN 19 THEN TO_CHAR(l1.APHD_PAYMENT_HIST_DIST_ID)
168709                 WHEN 20 THEN TO_CHAR(l1.APHD_REV_PAY_HIST_DIST_ID)
168710                 WHEN 21 THEN TO_CHAR(l1.APHD_PAYMENT_BASE_AMT)
168711                 WHEN 22 THEN TO_CHAR(l1.APHD_INVOICE_BASE_AMT)
168712                 WHEN 23 THEN TO_CHAR(l1.INV_EXCHANGE_DATE)
168713                 WHEN 24 THEN TO_CHAR(l1.INV_EXCHANGE_RATE)
168714                 WHEN 25 THEN TO_CHAR(l1.INV_EXCHANGE_RATE_TYPE)
168715                 WHEN 26 THEN TO_CHAR(l1.INV_PMT_BASE_AMT_DIFF)
168716                 WHEN 27 THEN TO_CHAR(l1.INV_PMT_GAIN_LOSS_INDICATOR)
168717                 
168718                 ELSE null
168719               END                           source_value
168720             , CASE r
168721                 WHEN 2 THEN fvl33.meaning
168722                 WHEN 8 THEN fvl80.meaning
168723                 WHEN 17 THEN fvl98.meaning
168724                 
168725                 ELSE null
168726               END               source_meaning
168727          FROM  xla_events_gt     xet  
168728         , AP_PAYMENT_EXTRACT_DETAILS_V  l1
168729         , ZX_AP_DEF_TAX_EXTRACT_V  l4
168730         , ZX_AP_TAX_JRNL_LINE_DESC_V  l5
168731   , fnd_lookup_values    fvl33
168732   , fnd_lookup_values    fvl80
168733   , fnd_lookup_values    fvl98
168734             , (select rownum r from all_objects where rownum <= 27 and owner = p_apps_owner)
168735         WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
168736           AND xet.event_class_code = C_EVENT_CLASS_CODE
168737             AND l1.event_id          = xet.event_id
168738  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 fvl33.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
168739   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
168740   AND fvl33.view_application_id(+) = 200
168741   AND fvl33.language(+)            = USERENV('LANG')
168742      AND fvl80.lookup_type(+)         = 'YES_NO'
168743   AND fvl80.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
168744   AND fvl80.view_application_id(+) = 0
168745   AND fvl80.language(+)            = USERENV('LANG')
168746      AND fvl98.lookup_type(+)         = 'PAY_DIST_TYPES'
168747   AND fvl98.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
168748   AND fvl98.view_application_id(+) = 200
168749   AND fvl98.language(+)            = USERENV('LANG')
168750   
168751 )
168752 ;
168753 --
168754 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
168755 
168756       trace
168757          (p_msg      => 'number of line sources inserted = '||SQL%ROWCOUNT
168758          ,p_level    => C_LEVEL_STATEMENT
168759          ,p_module   => l_log_module);
168760 
168761 END IF;
168762 
168763 
168764 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
168765       trace
168766          (p_msg      => 'END of insert_sources_238'
168767          ,p_level    => C_LEVEL_PROCEDURE
168768          ,p_module   => l_log_module);
168769 END IF;
168770 EXCEPTION
168771   WHEN xla_exceptions_pkg.application_exception THEN
168772       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
168773             trace
168774                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
168775                ,p_level    => C_LEVEL_EXCEPTION
168776                ,p_module   => l_log_module);
168777       END IF;
168778       RAISE;
168779   WHEN OTHERS THEN
168780       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
168781             trace
168782                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
168783                ,p_level    => C_LEVEL_EXCEPTION
168787            (p_location => 'XLA_00200_AAD_S_000002_PKG.insert_sources_238');
168784                ,p_module   => l_log_module);
168785        END IF;
168786        xla_exceptions_pkg.raise_message
168788 END insert_sources_238;
168789 --
168790 
168791 ---------------------------------------
168792 --
168793 -- PRIVATE FUNCTION
168794 --         EventClass_238
168795 --
168796 ----------------------------------------
168797 --
168798 FUNCTION EventClass_238
168799        (p_application_id         IN NUMBER
168800        ,p_base_ledger_id         IN NUMBER
168801        ,p_target_ledger_id       IN NUMBER
168802        ,p_language               IN VARCHAR2
168803        ,p_currency_code          IN VARCHAR2
168804        ,p_sla_ledger_id          IN NUMBER
168805        ,p_pad_start_date         IN DATE
168806        ,p_pad_end_date           IN DATE
168807        ,p_primary_ledger_id      IN NUMBER)
168808 RETURN BOOLEAN IS
168809 --
168810 C_EVENT_TYPE_CODE    CONSTANT  VARCHAR2(30)  := 'REFUNDS_ALL';
168811 C_EVENT_CLASS_CODE    CONSTANT  VARCHAR2(30) := 'REFUNDS';
168812 
168813 l_calculate_acctd_flag   VARCHAR2(1) :='N';
168814 l_calculate_g_l_flag     VARCHAR2(1) :='N';
168815 --
168816 l_array_legal_entity_id                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
168817 l_array_entity_id                      XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
168818 l_array_entity_code                    XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
168819 l_array_transaction_num                XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
168820 l_array_event_id                       XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
168821 l_array_class_code                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
168822 l_array_event_type                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
168823 l_array_event_number                   XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
168824 l_array_event_date                     XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
168825 l_array_transaction_date               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
168826 l_array_reference_num_1                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
168827 l_array_reference_num_2                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
168828 l_array_reference_num_3                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
168829 l_array_reference_num_4                XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
168830 l_array_reference_char_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
168831 l_array_reference_char_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
168832 l_array_reference_char_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
168833 l_array_reference_char_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
168834 l_array_reference_date_1               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
168835 l_array_reference_date_2               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
168836 l_array_reference_date_3               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
168837 l_array_reference_date_4               XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
168838 l_array_event_created_by               XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
168839 l_array_budgetary_control_flag         XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
168840 l_array_header_events                  XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
168841 l_array_duplicate_checker              XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;  --added
168842 
168843 l_event_id                             NUMBER;
168844 l_previous_event_id                    NUMBER;
168845 l_first_event_id                       NUMBER;
168846 l_last_event_id                        NUMBER;
168847 
168848 l_rec_acct_attrs                       XLA_AE_HEADER_PKG.t_rec_acct_attrs;
168849 l_rec_rev_acct_attrs                   XLA_AE_LINES_PKG.t_rec_acct_attrs;
168850 --
168851 --
168852 l_result                    BOOLEAN := TRUE;
168853 l_rows                      NUMBER  := 1000;
168854 l_event_type_name           VARCHAR2(80) := 'All';
168855 l_event_class_name          VARCHAR2(80) := 'Refunds';
168856 l_description               VARCHAR2(4000);
168857 l_transaction_reversal      NUMBER;
168858 l_ae_header_id              NUMBER;
168859 l_array_extract_line_num    xla_ae_journal_entry_pkg.t_array_Num;
168860 l_log_module                VARCHAR2(240);
168861 --
168862 l_acct_reversal_source      VARCHAR2(30);
168863 l_trx_reversal_source       VARCHAR2(30);
168864 
168865 l_continue_with_lines       BOOLEAN := TRUE;
168866 --
168867 l_acc_rev_gl_date_source    DATE;                      -- 4262811
168868 --
168869 type t_array_event_id is table of number index by binary_integer;
168870 
168871 l_rec_array_event                    t_rec_array_event;
168872 l_null_rec_array_event               t_rec_array_event;
168873 l_array_ae_header_id                 xla_number_array_type;
168874 l_actual_flag                        VARCHAR2(1) := NULL;
168875 l_actual_gain_loss_ref               VARCHAR2(30) := '#####';
168876 l_balance_type_code                  VARCHAR2(1) :=NULL;
168877 l_gain_or_loss_ref                   VARCHAR2(30) :=NULL;
168878 
168879 --
168880 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
168881 --
168882 
168883 TYPE t_array_source_6 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.DOC_SEQUENCE_NAME%TYPE INDEX BY BINARY_INTEGER;
168884 TYPE t_array_source_9 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_SEQUENCE_VALUE%TYPE INDEX BY BINARY_INTEGER;
168885 TYPE t_array_source_10 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TRANSACTION_NUMBER%TYPE INDEX BY BINARY_INTEGER;
168886 TYPE t_array_source_11 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CHECK_DATE%TYPE INDEX BY BINARY_INTEGER;
168887 TYPE t_array_source_12 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_BANK_ACCOUNT_NAME%TYPE INDEX BY BINARY_INTEGER;
168888 TYPE t_array_source_13 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
168889 TYPE t_array_source_15 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTOMATIC_OFFSETS_VALUE%TYPE INDEX BY BINARY_INTEGER;
168890 TYPE t_array_source_17 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_AP_ASSET_CCID%TYPE INDEX BY BINARY_INTEGER;
168894 TYPE t_array_source_36 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
168891 TYPE t_array_source_18 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.FSP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
168892 TYPE t_array_source_19 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISCOUNT_DIST_METHOD%TYPE INDEX BY BINARY_INTEGER;
168893 TYPE t_array_source_35 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_CASH_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
168895 TYPE t_array_source_37 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_GAIN_CCID%TYPE INDEX BY BINARY_INTEGER;
168896 TYPE t_array_source_38 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CGAC_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
168897 TYPE t_array_source_39 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_LOSS_CCID%TYPE INDEX BY BINARY_INTEGER;
168898 TYPE t_array_source_44 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_DISC_TAKEN_CCID%TYPE INDEX BY BINARY_INTEGER;
168899 TYPE t_array_source_47 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_AUTO_OFFSET_FLAG%TYPE INDEX BY BINARY_INTEGER;
168900 TYPE t_array_source_49 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_ROUNDING_ERROR_CCID%TYPE INDEX BY BINARY_INTEGER;
168901 TYPE t_array_source_83 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.THIRD_PARTY_TYPE%TYPE INDEX BY BINARY_INTEGER;
168902 TYPE t_array_source_97 IS TABLE OF AP_SYSTEM_PARAMETERS_EXTRACT_V.ASP_WHEN_TO_ACCOUNT_PMT%TYPE INDEX BY BINARY_INTEGER;
168903 TYPE t_array_source_110 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_ID%TYPE INDEX BY BINARY_INTEGER;
168904 TYPE t_array_source_111 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_VENDOR_SITE_ID%TYPE INDEX BY BINARY_INTEGER;
168905 TYPE t_array_source_113 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.CBA_POOLED_BANK_ACOUNT_FLAG%TYPE INDEX BY BINARY_INTEGER;
168906 TYPE t_array_source_114 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_FUTURE_PAY_DUE_DATE%TYPE INDEX BY BINARY_INTEGER;
168907 TYPE t_array_source_117 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
168908 TYPE t_array_source_118 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
168909 TYPE t_array_source_119 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
168910 TYPE t_array_source_122 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
168911 TYPE t_array_source_170 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.AC_DOC_CATEGORY_CODE%TYPE INDEX BY BINARY_INTEGER;
168912 TYPE t_array_source_171 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.PAYMENT_DOCUMENT_SEQUENCE_ID%TYPE INDEX BY BINARY_INTEGER;
168913 TYPE t_array_source_172 IS TABLE OF AP_PAYMENT_EXTRACT_HEADER_V.TRANSAC_REVERSAL_FLAG%TYPE INDEX BY BINARY_INTEGER;
168914 
168915 TYPE t_array_source_30 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_DIST_CCID%TYPE INDEX BY BINARY_INTEGER;
168916 TYPE t_array_source_33 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AID_LINE_TYPE_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
168917 TYPE t_array_source_45 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.POD_CCID%TYPE INDEX BY BINARY_INTEGER;
168918 TYPE t_array_source_46 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.PO_VARIANCE_ACCOUNT%TYPE INDEX BY BINARY_INTEGER;
168919 TYPE t_array_source_53 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DIST_ACCOUNT_REVERSAL_OPTION%TYPE INDEX BY BINARY_INTEGER;
168920 TYPE t_array_source_55 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.DISTRIBUTION_LINK_TYPE%TYPE INDEX BY BINARY_INTEGER;
168921 TYPE t_array_source_67 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.AI_INVOICE_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
168922 TYPE t_array_source_80 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.OVERRIDE_ACCTD_AMT_FLAG%TYPE INDEX BY BINARY_INTEGER;
168923 TYPE t_array_source_86 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
168924 TYPE t_array_source_87 IS TABLE OF ZX_AP_TAX_JRNL_LINE_DESC_V.REC_NREC_TAX_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
168925 TYPE t_array_source_88 IS TABLE OF ZX_AP_DEF_TAX_EXTRACT_V.SUMMARY_TAX_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
168926 TYPE t_array_source_91 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_AP_APP_ID%TYPE INDEX BY BINARY_INTEGER;
168927 TYPE t_array_source_92 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_TYPE%TYPE INDEX BY BINARY_INTEGER;
168928 TYPE t_array_source_93 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
168929 TYPE t_array_source_94 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
168930 TYPE t_array_source_95 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.BUS_FLOW_INV_ID%TYPE INDEX BY BINARY_INTEGER;
168931 TYPE t_array_source_98 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAY_DIST_LOOKUP_CODE%TYPE INDEX BY BINARY_INTEGER;
168932 TYPE t_array_source_99 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
168933 TYPE t_array_source_104 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
168934 TYPE t_array_source_112 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_REV_PAY_HIST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
168935 TYPE t_array_source_115 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_PAYMENT_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
168936 TYPE t_array_source_116 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.APHD_INVOICE_BASE_AMT%TYPE INDEX BY BINARY_INTEGER;
168937 TYPE t_array_source_143 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_DATE%TYPE INDEX BY BINARY_INTEGER;
168938 TYPE t_array_source_144 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
168939 TYPE t_array_source_145 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
168940 TYPE t_array_source_153 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_PMT_BASE_AMT_DIFF%TYPE INDEX BY BINARY_INTEGER;
168941 TYPE t_array_source_158 IS TABLE OF AP_PAYMENT_EXTRACT_DETAILS_V.INV_PMT_GAIN_LOSS_INDICATOR%TYPE INDEX BY BINARY_INTEGER;
168942 
168943 l_array_source_6              t_array_source_6;
168944 l_array_source_9              t_array_source_9;
168945 l_array_source_10              t_array_source_10;
168946 l_array_source_11              t_array_source_11;
168947 l_array_source_12              t_array_source_12;
168948 l_array_source_13              t_array_source_13;
168949 l_array_source_15              t_array_source_15;
168950 l_array_source_15_meaning      t_array_lookup_meaning;
168951 l_array_source_17              t_array_source_17;
168952 l_array_source_18              t_array_source_18;
168956 l_array_source_36              t_array_source_36;
168953 l_array_source_19              t_array_source_19;
168954 l_array_source_19_meaning      t_array_lookup_meaning;
168955 l_array_source_35              t_array_source_35;
168957 l_array_source_37              t_array_source_37;
168958 l_array_source_38              t_array_source_38;
168959 l_array_source_39              t_array_source_39;
168960 l_array_source_44              t_array_source_44;
168961 l_array_source_47              t_array_source_47;
168962 l_array_source_47_meaning      t_array_lookup_meaning;
168963 l_array_source_49              t_array_source_49;
168964 l_array_source_83              t_array_source_83;
168965 l_array_source_97              t_array_source_97;
168966 l_array_source_110              t_array_source_110;
168967 l_array_source_111              t_array_source_111;
168968 l_array_source_113              t_array_source_113;
168969 l_array_source_113_meaning      t_array_lookup_meaning;
168970 l_array_source_114              t_array_source_114;
168971 l_array_source_117              t_array_source_117;
168972 l_array_source_118              t_array_source_118;
168973 l_array_source_119              t_array_source_119;
168974 l_array_source_122              t_array_source_122;
168975 l_array_source_122_meaning      t_array_lookup_meaning;
168976 l_array_source_170              t_array_source_170;
168977 l_array_source_171              t_array_source_171;
168978 l_array_source_172              t_array_source_172;
168979 l_array_source_172_meaning      t_array_lookup_meaning;
168980 
168981 l_array_source_30      t_array_source_30;
168982 l_array_source_33      t_array_source_33;
168983 l_array_source_33_meaning      t_array_lookup_meaning;
168984 l_array_source_45      t_array_source_45;
168985 l_array_source_46      t_array_source_46;
168986 l_array_source_53      t_array_source_53;
168987 l_array_source_55      t_array_source_55;
168988 l_array_source_67      t_array_source_67;
168989 l_array_source_80      t_array_source_80;
168990 l_array_source_80_meaning      t_array_lookup_meaning;
168991 l_array_source_86      t_array_source_86;
168992 l_array_source_87      t_array_source_87;
168993 l_array_source_88      t_array_source_88;
168994 l_array_source_91      t_array_source_91;
168995 l_array_source_92      t_array_source_92;
168996 l_array_source_93      t_array_source_93;
168997 l_array_source_94      t_array_source_94;
168998 l_array_source_95      t_array_source_95;
168999 l_array_source_98      t_array_source_98;
169000 l_array_source_98_meaning      t_array_lookup_meaning;
169001 l_array_source_99      t_array_source_99;
169002 l_array_source_104      t_array_source_104;
169003 l_array_source_112      t_array_source_112;
169004 l_array_source_115      t_array_source_115;
169005 l_array_source_116      t_array_source_116;
169006 l_array_source_143      t_array_source_143;
169007 l_array_source_144      t_array_source_144;
169008 l_array_source_145      t_array_source_145;
169009 l_array_source_153      t_array_source_153;
169010 l_array_source_158      t_array_source_158;
169011 
169012 --
169013 CURSOR header_cur
169014 IS
169015 SELECT /*+ leading(xet) cardinality(xet,1) */
169016 -- Event Class Code: REFUNDS
169017     xet.entity_id
169018    ,xet.legal_entity_id
169019    ,xet.entity_code
169020    ,xet.transaction_number
169021    ,xet.event_id
169022    ,xet.event_class_code
169023    ,xet.event_type_code
169024    ,xet.event_number
169025    ,xet.event_date
169026    ,xet.transaction_date
169027    ,xet.reference_num_1
169028    ,xet.reference_num_2
169029    ,xet.reference_num_3
169030    ,xet.reference_num_4
169031    ,xet.reference_char_1
169032    ,xet.reference_char_2
169033    ,xet.reference_char_3
169034    ,xet.reference_char_4
169035    ,xet.reference_date_1
169036    ,xet.reference_date_2
169037    ,xet.reference_date_3
169038    ,xet.reference_date_4
169039    ,xet.event_created_by
169040    ,xet.budgetary_control_flag 
169041   , h2.DOC_SEQUENCE_NAME    source_6
169042   , h2.AC_DOC_SEQUENCE_VALUE    source_9
169043   , h2.PAYMENT_TRANSACTION_NUMBER    source_10
169044   , h2.AC_CHECK_DATE    source_11
169045   , h2.CBA_BANK_ACCOUNT_NAME    source_12
169046   , h2.AC_CURRENCY_CODE    source_13
169047   , h3.ASP_AUTOMATIC_OFFSETS_VALUE    source_15
169048   , fvl15.meaning   source_15_meaning
169049   , h2.CGAC_AP_ASSET_CCID    source_17
169050   , h3.FSP_DISC_TAKEN_CCID    source_18
169051   , h3.ASP_DISCOUNT_DIST_METHOD    source_19
169052   , fvl19.meaning   source_19_meaning
169053   , h2.CGAC_CASH_CLEARING_CCID    source_35
169054   , h2.CGAC_GAIN_CCID    source_36
169055   , h3.ASP_GAIN_CCID    source_37
169056   , h2.CGAC_LOSS_CCID    source_38
169057   , h3.ASP_LOSS_CCID    source_39
169058   , h3.ASP_DISC_TAKEN_CCID    source_44
169059   , h3.ASP_AUTO_OFFSET_FLAG    source_47
169060   , fvl47.meaning   source_47_meaning
169061   , h3.ASP_ROUNDING_ERROR_CCID    source_49
169062   , h2.THIRD_PARTY_TYPE    source_83
169063   , h3.ASP_WHEN_TO_ACCOUNT_PMT    source_97
169064   , h2.AC_VENDOR_ID    source_110
169065   , h2.AC_VENDOR_SITE_ID    source_111
169066   , h2.CBA_POOLED_BANK_ACOUNT_FLAG    source_113
169067   , fvl113.meaning   source_113_meaning
169068   , h2.AC_FUTURE_PAY_DUE_DATE    source_114
169069   , h2.AC_EXCHANGE_DATE    source_117
169070   , h2.AC_EXCHANGE_RATE    source_118
169071   , h2.AC_EXCHANGE_RATE_TYPE    source_119
169072   , h2.PAYMENT_TYPE    source_122
169073   , fvl122.meaning   source_122_meaning
169074   , h2.AC_DOC_CATEGORY_CODE    source_170
169075   , h2.PAYMENT_DOCUMENT_SEQUENCE_ID    source_171
169076   , h2.TRANSAC_REVERSAL_FLAG    source_172
169077   , fvl172.meaning   source_172_meaning
169078   FROM xla_events_gt     xet 
169079   , AP_PAYMENT_EXTRACT_HEADER_V  h2
169080   , AP_SYSTEM_PARAMETERS_EXTRACT_V  h3
169081   , fnd_lookup_values    fvl15
169082   , fnd_lookup_values    fvl19
169083   , fnd_lookup_values    fvl47
169084   , fnd_lookup_values    fvl113
169085   , fnd_lookup_values    fvl122
169089    and xet.event_status_code <> 'N'  AND h2.event_id = xet.event_id
169086   , fnd_lookup_values    fvl172
169087  WHERE xet.event_date between p_pad_start_date and p_pad_end_date
169088    and xet.event_class_code = C_EVENT_CLASS_CODE
169090  AND h3.asp_org_id = h2.ac_org_id   AND fvl15.lookup_type(+)         = 'LIABILITY FLEXBUILD METHOD'
169091   AND fvl15.lookup_code(+)         = h3.ASP_AUTOMATIC_OFFSETS_VALUE
169092   AND fvl15.view_application_id(+) = 200
169093   AND fvl15.language(+)            = USERENV('LANG')
169094      AND fvl19.lookup_type(+)         = 'DISCOUNT_DIST_OPTIONS'
169095   AND fvl19.lookup_code(+)         = h3.ASP_DISCOUNT_DIST_METHOD
169096   AND fvl19.view_application_id(+) = 200
169097   AND fvl19.language(+)            = USERENV('LANG')
169098      AND fvl47.lookup_type(+)         = 'YES_NO'
169099   AND fvl47.lookup_code(+)         = h3.ASP_AUTO_OFFSET_FLAG
169100   AND fvl47.view_application_id(+) = 0
169101   AND fvl47.language(+)            = USERENV('LANG')
169102      AND fvl113.lookup_type(+)         = 'YES_NO'
169103   AND fvl113.lookup_code(+)         = h2.CBA_POOLED_BANK_ACOUNT_FLAG
169104   AND fvl113.view_application_id(+) = 0
169105   AND fvl113.language(+)            = USERENV('LANG')
169106      AND fvl122.lookup_type(+)         = 'PAYMENT TYPE'
169107   AND fvl122.lookup_code(+)         = h2.PAYMENT_TYPE
169108   AND fvl122.view_application_id(+) = 200
169109   AND fvl122.language(+)            = USERENV('LANG')
169110      AND fvl172.lookup_type(+)         = 'YES_NO'
169111   AND fvl172.lookup_code(+)         = h2.TRANSAC_REVERSAL_FLAG
169112   AND fvl172.view_application_id(+) = 0
169113   AND fvl172.language(+)            = USERENV('LANG')
169114   
169115  ORDER BY event_id
169116 ;
169117 
169118 
169119 --
169120 CURSOR line_cur (x_first_event_id    in number, x_last_event_id    in number)
169121 IS
169122 SELECT  /*+ leading(xet) cardinality(xet,1) */
169123 -- Event Class Code: REFUNDS
169124     xet.entity_id
169125    ,xet.legal_entity_id
169126    ,xet.entity_code
169127    ,xet.transaction_number
169128    ,xet.event_id
169129    ,xet.event_class_code
169130    ,xet.event_type_code
169131    ,xet.event_number
169132    ,xet.event_date
169133    ,xet.transaction_date
169134    ,xet.reference_num_1
169135    ,xet.reference_num_2
169136    ,xet.reference_num_3
169137    ,xet.reference_num_4
169138    ,xet.reference_char_1
169139    ,xet.reference_char_2
169140    ,xet.reference_char_3
169141    ,xet.reference_char_4
169142    ,xet.reference_date_1
169143    ,xet.reference_date_2
169144    ,xet.reference_date_3
169145    ,xet.reference_date_4
169146    ,xet.event_created_by
169147    ,xet.budgetary_control_flag
169148  , l1.LINE_NUMBER  
169149   , l1.AID_DIST_CCID    source_30
169150   , l1.AID_LINE_TYPE_LOOKUP_CODE    source_33
169151   , fvl33.meaning   source_33_meaning
169152   , l1.POD_CCID    source_45
169153   , l1.PO_VARIANCE_ACCOUNT    source_46
169154   , l1.DIST_ACCOUNT_REVERSAL_OPTION    source_53
169155   , l1.DISTRIBUTION_LINK_TYPE    source_55
169156   , l1.AI_INVOICE_CURRENCY_CODE    source_67
169157   , l1.OVERRIDE_ACCTD_AMT_FLAG    source_80
169158   , fvl80.meaning   source_80_meaning
169159   , l4.TAX_LINE_ID    source_86
169160   , l5.REC_NREC_TAX_DIST_ID    source_87
169161   , l4.SUMMARY_TAX_LINE_ID    source_88
169162   , l1.BUS_FLOW_AP_APP_ID    source_91
169163   , l1.BUS_FLOW_INV_DIST_TYPE    source_92
169164   , l1.BUS_FLOW_INV_ENTITY_CODE    source_93
169165   , l1.BUS_FLOW_INV_DIST_ID    source_94
169166   , l1.BUS_FLOW_INV_ID    source_95
169167   , l1.APHD_PAY_DIST_LOOKUP_CODE    source_98
169168   , fvl98.meaning   source_98_meaning
169169   , l1.APHD_AMOUNT    source_99
169170   , l1.APHD_PAYMENT_HIST_DIST_ID    source_104
169171   , l1.APHD_REV_PAY_HIST_DIST_ID    source_112
169172   , l1.APHD_PAYMENT_BASE_AMT    source_115
169173   , l1.APHD_INVOICE_BASE_AMT    source_116
169174   , l1.INV_EXCHANGE_DATE    source_143
169175   , l1.INV_EXCHANGE_RATE    source_144
169176   , l1.INV_EXCHANGE_RATE_TYPE    source_145
169177   , l1.INV_PMT_BASE_AMT_DIFF    source_153
169178   , l1.INV_PMT_GAIN_LOSS_INDICATOR    source_158
169179   FROM xla_events_gt     xet 
169180   , AP_PAYMENT_EXTRACT_DETAILS_V  l1
169181   , ZX_AP_DEF_TAX_EXTRACT_V  l4
169182   , ZX_AP_TAX_JRNL_LINE_DESC_V  l5
169183   , fnd_lookup_values    fvl33
169184   , fnd_lookup_values    fvl80
169185   , fnd_lookup_values    fvl98
169186  WHERE xet.event_id between x_first_event_id and x_last_event_id
169187    and xet.event_date between p_pad_start_date and p_pad_end_date
169188    and xet.event_class_code = C_EVENT_CLASS_CODE
169189    and xet.event_status_code <> 'N'   AND l1.event_id      = xet.event_id
169190  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 fvl33.lookup_type(+)         = 'INVOICE DISTRIBUTION TYPE'
169191   AND fvl33.lookup_code(+)         = l1.AID_LINE_TYPE_LOOKUP_CODE
169192   AND fvl33.view_application_id(+) = 200
169193   AND fvl33.language(+)            = USERENV('LANG')
169194      AND fvl80.lookup_type(+)         = 'YES_NO'
169195   AND fvl80.lookup_code(+)         = l1.OVERRIDE_ACCTD_AMT_FLAG
169196   AND fvl80.view_application_id(+) = 0
169197   AND fvl80.language(+)            = USERENV('LANG')
169198      AND fvl98.lookup_type(+)         = 'PAY_DIST_TYPES'
169199   AND fvl98.lookup_code(+)         = l1.APHD_PAY_DIST_LOOKUP_CODE
169200   AND fvl98.view_application_id(+) = 200
169201   AND fvl98.language(+)            = USERENV('LANG')
169202   ;
169203 
169204 --
169205 BEGIN
169206 IF g_log_enabled THEN
169207    l_log_module := C_DEFAULT_MODULE||'.EventClass_238';
169208 END IF;
169209 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
169210    trace
169211       (p_msg      => 'BEGIN of EventClass_238'
169212       ,p_level    => C_LEVEL_PROCEDURE
169213       ,p_module   => l_log_module);
169214 END IF;
169215 
169216 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
169217    trace
169221                      ' - p_language = '||p_language||
169218       (p_msg      => 'p_application_id = '||p_application_id||
169219                      ' - p_base_ledger_id = '||p_base_ledger_id||
169220                      ' - p_target_ledger_id  = '||p_target_ledger_id||
169222                      ' - p_currency_code = '||p_currency_code||
169223                      ' - p_sla_ledger_id = '||p_sla_ledger_id
169224       ,p_level    => C_LEVEL_STATEMENT
169225       ,p_module   => l_log_module);
169226 END IF;
169227 --
169228 -- initialze arrays
169229 --
169230 g_array_event.DELETE;
169231 l_rec_array_event := l_null_rec_array_event;
169232 --
169233 --------------------------------------
169234 -- 4262811 Initialze MPA Line Number
169235 --------------------------------------
169236 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
169237 
169238 --
169239 
169240 --
169241 OPEN header_cur;
169242 --
169243 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
169244    trace
169245    (p_msg      => 'SQL - FETCH header_cur'
169246    ,p_level    => C_LEVEL_STATEMENT
169247    ,p_module   => l_log_module);
169248 END IF;
169249 --
169250 LOOP
169251 FETCH header_cur BULK COLLECT INTO
169252         l_array_entity_id
169253       , l_array_legal_entity_id
169254       , l_array_entity_code
169255       , l_array_transaction_num
169256       , l_array_event_id
169257       , l_array_class_code
169258       , l_array_event_type
169259       , l_array_event_number
169260       , l_array_event_date
169261       , l_array_transaction_date
169262       , l_array_reference_num_1
169263       , l_array_reference_num_2
169264       , l_array_reference_num_3
169265       , l_array_reference_num_4
169266       , l_array_reference_char_1
169267       , l_array_reference_char_2
169268       , l_array_reference_char_3
169269       , l_array_reference_char_4
169270       , l_array_reference_date_1
169271       , l_array_reference_date_2
169272       , l_array_reference_date_3
169273       , l_array_reference_date_4
169274       , l_array_event_created_by
169275       , l_array_budgetary_control_flag 
169276       , l_array_source_6
169277       , l_array_source_9
169278       , l_array_source_10
169279       , l_array_source_11
169280       , l_array_source_12
169281       , l_array_source_13
169282       , l_array_source_15
169283       , l_array_source_15_meaning
169284       , l_array_source_17
169285       , l_array_source_18
169286       , l_array_source_19
169287       , l_array_source_19_meaning
169288       , l_array_source_35
169289       , l_array_source_36
169290       , l_array_source_37
169291       , l_array_source_38
169292       , l_array_source_39
169293       , l_array_source_44
169294       , l_array_source_47
169295       , l_array_source_47_meaning
169296       , l_array_source_49
169297       , l_array_source_83
169298       , l_array_source_97
169299       , l_array_source_110
169300       , l_array_source_111
169301       , l_array_source_113
169302       , l_array_source_113_meaning
169303       , l_array_source_114
169304       , l_array_source_117
169305       , l_array_source_118
169306       , l_array_source_119
169307       , l_array_source_122
169308       , l_array_source_122_meaning
169309       , l_array_source_170
169310       , l_array_source_171
169311       , l_array_source_172
169312       , l_array_source_172_meaning
169313       LIMIT l_rows;
169314 --
169315 IF (C_LEVEL_EVENT >= g_log_level) THEN
169316    trace
169317    (p_msg      => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
169318    ,p_level    => C_LEVEL_EVENT
169319    ,p_module   => l_log_module);
169320 END IF;
169321 --
169322 EXIT WHEN l_array_entity_id.COUNT = 0;
169323 
169324 -- initialize arrays
169325 XLA_AE_HEADER_PKG.g_rec_header_new        := NULL;
169326 XLA_AE_LINES_PKG.g_rec_lines              := NULL;
169327 
169328 --
169329 -- Bug 4458708
169330 --
169331 XLA_AE_LINES_PKG.g_LineNumber := 0;
169332 
169333 
169334 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
169335 g_last_hdr_idx := l_array_event_id.LAST;
169336 --
169337 -- loop for the headers. Each iteration is for each header extract row
169338 -- fetched in header cursor
169339 --
169340 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
169341 
169342 --
169343 -- set event info as cache for other routines to refer event attributes
169344 --
169345 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
169346    (p_application_id           => p_application_id
169347    ,p_primary_ledger_id        => p_primary_ledger_id
169348    ,p_base_ledger_id           => p_base_ledger_id
169349    ,p_target_ledger_id         => p_target_ledger_id
169350    ,p_entity_id                => l_array_entity_id(hdr_idx)
169351    ,p_legal_entity_id          => l_array_legal_entity_id(hdr_idx)
169352    ,p_entity_code              => l_array_entity_code(hdr_idx)
169353    ,p_transaction_num          => l_array_transaction_num(hdr_idx)
169354    ,p_event_id                 => l_array_event_id(hdr_idx)
169355    ,p_event_class_code         => l_array_class_code(hdr_idx)
169356    ,p_event_type_code          => l_array_event_type(hdr_idx)
169357    ,p_event_number             => l_array_event_number(hdr_idx)
169358    ,p_event_date               => l_array_event_date(hdr_idx)
169359    ,p_transaction_date         => l_array_transaction_date(hdr_idx)
169360    ,p_reference_num_1          => l_array_reference_num_1(hdr_idx)
169361    ,p_reference_num_2          => l_array_reference_num_2(hdr_idx)
169362    ,p_reference_num_3          => l_array_reference_num_3(hdr_idx)
169363    ,p_reference_num_4          => l_array_reference_num_4(hdr_idx)
169364    ,p_reference_char_1         => l_array_reference_char_1(hdr_idx)
169365    ,p_reference_char_2         => l_array_reference_char_2(hdr_idx)
169369    ,p_reference_date_2         => l_array_reference_date_2(hdr_idx)
169366    ,p_reference_char_3         => l_array_reference_char_3(hdr_idx)
169367    ,p_reference_char_4         => l_array_reference_char_4(hdr_idx)
169368    ,p_reference_date_1         => l_array_reference_date_1(hdr_idx)
169370    ,p_reference_date_3         => l_array_reference_date_3(hdr_idx)
169371    ,p_reference_date_4         => l_array_reference_date_4(hdr_idx)
169372    ,p_event_created_by         => l_array_event_created_by(hdr_idx)
169373    ,p_budgetary_control_flag   => l_array_budgetary_control_flag(hdr_idx));
169374 
169375 --
169376 -- set the status of entry to C_VALID (0)
169377 --
169378 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status    := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
169379 
169380 --
169381 -- initialize a row for ae header
169382 --
169383 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
169384 
169385 l_event_id := l_array_event_id(hdr_idx);
169386 
169387 --
169388 -- storing the hdr_idx for event. May be used by line cursor.
169389 --
169390 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
169391 
169392 --
169393 -- store sources from header extract. This can be improved to
169394 -- store only those sources from header extract that may be used in lines
169395 --
169396 
169397 g_array_event(l_event_id).array_value_char('source_6') := l_array_source_6(hdr_idx);
169398 g_array_event(l_event_id).array_value_num('source_9') := l_array_source_9(hdr_idx);
169399 g_array_event(l_event_id).array_value_num('source_10') := l_array_source_10(hdr_idx);
169400 g_array_event(l_event_id).array_value_date('source_11') := l_array_source_11(hdr_idx);
169401 g_array_event(l_event_id).array_value_char('source_12') := l_array_source_12(hdr_idx);
169402 g_array_event(l_event_id).array_value_char('source_13') := l_array_source_13(hdr_idx);
169403 g_array_event(l_event_id).array_value_char('source_15') := l_array_source_15(hdr_idx);
169404 g_array_event(l_event_id).array_value_char('source_15_meaning') := l_array_source_15_meaning(hdr_idx);
169405 g_array_event(l_event_id).array_value_num('source_17') := l_array_source_17(hdr_idx);
169406 g_array_event(l_event_id).array_value_num('source_18') := l_array_source_18(hdr_idx);
169407 g_array_event(l_event_id).array_value_char('source_19') := l_array_source_19(hdr_idx);
169408 g_array_event(l_event_id).array_value_char('source_19_meaning') := l_array_source_19_meaning(hdr_idx);
169409 g_array_event(l_event_id).array_value_num('source_35') := l_array_source_35(hdr_idx);
169410 g_array_event(l_event_id).array_value_num('source_36') := l_array_source_36(hdr_idx);
169411 g_array_event(l_event_id).array_value_num('source_37') := l_array_source_37(hdr_idx);
169412 g_array_event(l_event_id).array_value_num('source_38') := l_array_source_38(hdr_idx);
169413 g_array_event(l_event_id).array_value_num('source_39') := l_array_source_39(hdr_idx);
169414 g_array_event(l_event_id).array_value_num('source_44') := l_array_source_44(hdr_idx);
169415 g_array_event(l_event_id).array_value_char('source_47') := l_array_source_47(hdr_idx);
169416 g_array_event(l_event_id).array_value_char('source_47_meaning') := l_array_source_47_meaning(hdr_idx);
169417 g_array_event(l_event_id).array_value_num('source_49') := l_array_source_49(hdr_idx);
169418 g_array_event(l_event_id).array_value_char('source_83') := l_array_source_83(hdr_idx);
169419 g_array_event(l_event_id).array_value_char('source_97') := l_array_source_97(hdr_idx);
169420 g_array_event(l_event_id).array_value_num('source_110') := l_array_source_110(hdr_idx);
169421 g_array_event(l_event_id).array_value_num('source_111') := l_array_source_111(hdr_idx);
169422 g_array_event(l_event_id).array_value_char('source_113') := l_array_source_113(hdr_idx);
169423 g_array_event(l_event_id).array_value_char('source_113_meaning') := l_array_source_113_meaning(hdr_idx);
169424 g_array_event(l_event_id).array_value_date('source_114') := l_array_source_114(hdr_idx);
169425 g_array_event(l_event_id).array_value_date('source_117') := l_array_source_117(hdr_idx);
169426 g_array_event(l_event_id).array_value_num('source_118') := l_array_source_118(hdr_idx);
169427 g_array_event(l_event_id).array_value_char('source_119') := l_array_source_119(hdr_idx);
169428 g_array_event(l_event_id).array_value_char('source_122') := l_array_source_122(hdr_idx);
169429 g_array_event(l_event_id).array_value_char('source_122_meaning') := l_array_source_122_meaning(hdr_idx);
169430 g_array_event(l_event_id).array_value_char('source_170') := l_array_source_170(hdr_idx);
169431 g_array_event(l_event_id).array_value_num('source_171') := l_array_source_171(hdr_idx);
169432 g_array_event(l_event_id).array_value_char('source_172') := l_array_source_172(hdr_idx);
169433 g_array_event(l_event_id).array_value_char('source_172_meaning') := l_array_source_172_meaning(hdr_idx);
169434 
169435 --
169436 -- initilaize the status of ae headers for diffrent balance types
169437 -- the status is initialised to C_NOT_CREATED (2)
169438 --
169439 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
169440 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
169441 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
169442 
169443 --
169444 -- call api to validate and store accounting attributes for header
169445 --
169446 
169447 ------------------------------------------------------------
169448 -- Accrual Reversal : to get date for Standard Source (NONE)
169449 ------------------------------------------------------------
169450 l_acc_rev_gl_date_source := NULL;
169451 
169452      l_rec_acct_attrs.array_acct_attr_code(1)   := 'DOC_CATEGORY_CODE';
169453       l_rec_acct_attrs.array_char_value(1) := g_array_event(l_event_id).array_value_char('source_170');
169454      l_rec_acct_attrs.array_acct_attr_code(2)   := 'DOC_SEQUENCE_ID';
169455       l_rec_acct_attrs.array_num_value(2) := g_array_event(l_event_id).array_value_num('source_171');
169456      l_rec_acct_attrs.array_acct_attr_code(3)   := 'DOC_SEQUENCE_VALUE';
169457       l_rec_acct_attrs.array_num_value(3) := g_array_event(l_event_id).array_value_num('source_9');
169458      l_rec_acct_attrs.array_acct_attr_code(4)   := 'GL_DATE';
169459       l_rec_acct_attrs.array_date_value(4) := 
169463  , p_source_application_id =>  602
169460 xla_ae_sources_pkg.GetSystemSourceDate(
169461    p_source_code           => 'XLA_EVENT_DATE'
169462  , p_source_type_code      => 'Y'
169464 );
169465      l_rec_acct_attrs.array_acct_attr_code(5)   := 'TRX_ACCT_REVERSAL_OPTION';
169466       l_rec_acct_attrs.array_char_value(5) := g_array_event(l_event_id).array_value_char('source_172');
169467 
169468 
169469 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
169470 
169471 XLA_AE_HEADER_PKG.SetJeCategoryName;
169472 
169473 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx)  := l_array_event_type(hdr_idx);
169474 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx)         := l_array_event_id(hdr_idx);
169475 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx)        := l_array_entity_id(hdr_idx);
169476 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx)     := l_array_event_number(hdr_idx);
169477 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
169478 
169479 
169480 --
169481 xla_ae_header_pkg.SetHdrDescription(
169482    p_description => Description_3 (
169483    p_application_id => p_application_id 
169484  , p_source_6 => g_array_event(l_event_id).array_value_char('source_6')
169485  , p_source_9 => g_array_event(l_event_id).array_value_num('source_9')
169486  , p_source_10 => g_array_event(l_event_id).array_value_num('source_10')
169487  , p_source_11 => g_array_event(l_event_id).array_value_date('source_11')
169488  , p_source_12 => g_array_event(l_event_id).array_value_char('source_12')
169489  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
169490    )
169491 );
169492 --
169493 
169494 -- No header level analytical criteria
169495 
169496 --
169497 --accounting attribute enhancement, bug 3612931
169498 --
169499 l_trx_reversal_source := SUBSTR(g_array_event(l_event_id).array_value_char('source_172'), 1,30);
169500 
169501 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
169502    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
169503 
169504    xla_accounting_err_pkg.build_message
169505       (p_appli_s_name            => 'XLA'
169506       ,p_msg_name                => 'XLA_AP_INVALID_HDR_ATTR'
169507       ,p_token_1                 => 'ACCT_ATTR_NAME'
169508       ,p_value_1                 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
169509       ,p_token_2                 => 'PRODUCT_NAME'
169510       ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
169511       ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
169512       ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
169513       ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
169514 
169515 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
169516    --
169517    -- following sets the accounting attributes needed to reverse
169518    -- accounting for a distributeion
169519    --
169520    xla_ae_lines_pkg.SetTrxReversalAttrs
169521       (p_event_id              => l_event_id
169522       ,p_gl_date               => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
169523       ,p_trx_reversal_source   => l_trx_reversal_source);
169524 
169525 END IF;
169526 
169527 
169528 ----------------------------------------------------------------
169529 -- 4262811 -  update the header statuses to invalid in need be
169530 ----------------------------------------------------------------
169531 --
169532 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
169533 
169534 
169535   -----------------------------------------------
169536   -- No accrual reversal for the event class/type
169537   -----------------------------------------------
169538 ----------------------------------------------------------------
169539 
169540 --
169541 -- this ends the header loop iteration for one bulk fetch
169542 --
169543 END LOOP;
169544 
169545 l_first_event_id   := l_array_event_id(l_array_event_id.FIRST);
169546 l_last_event_id    := l_array_event_id(l_array_event_id.LAST);
169547 
169548 --
169549 -- insert dummy rows into lines gt table that were created due to
169550 -- transaction reversals
169551 --
169552 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
169553    l_result := XLA_AE_LINES_PKG.InsertLines;
169554 END IF;
169555 
169556 --
169557 -- reset the temp_line_num for each set of events fetched from header
169558 -- cursor rather than doing it for each new event in line cursor
169559 -- Bug 3939231
169560 --
169561 xla_ae_lines_pkg.g_temp_line_num := 0;
169562 
169563 
169564 
169565 --
169566 OPEN line_cur(x_first_event_id  => l_first_event_id, x_last_event_id  => l_last_event_id);
169567 --
169568 --
169569 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
169570 
169571       trace
169572          (p_msg      => 'SQL - FETCH line_cur'
169573          ,p_level    => C_LEVEL_STATEMENT
169574          ,p_module   => l_log_module);
169575 
169576 END IF;
169577 --
169578 --
169579 LOOP
169580   --
169581   FETCH line_cur BULK COLLECT INTO
169582         l_array_entity_id
169583       , l_array_legal_entity_id
169584       , l_array_entity_code
169585       , l_array_transaction_num
169586       , l_array_event_id
169587       , l_array_class_code
169588       , l_array_event_type
169589       , l_array_event_number
169590       , l_array_event_date
169591       , l_array_transaction_date
169592       , l_array_reference_num_1
169593       , l_array_reference_num_2
169594       , l_array_reference_num_3
169595       , l_array_reference_num_4
169596       , l_array_reference_char_1
169597       , l_array_reference_char_2
169598       , l_array_reference_char_3
169599       , l_array_reference_char_4
169600       , l_array_reference_date_1
169601       , l_array_reference_date_2
169605       , l_array_budgetary_control_flag
169602       , l_array_reference_date_3
169603       , l_array_reference_date_4
169604       , l_array_event_created_by
169606       , l_array_extract_line_num 
169607       , l_array_source_30
169608       , l_array_source_33
169609       , l_array_source_33_meaning
169610       , l_array_source_45
169611       , l_array_source_46
169612       , l_array_source_53
169613       , l_array_source_55
169614       , l_array_source_67
169615       , l_array_source_80
169616       , l_array_source_80_meaning
169617       , l_array_source_86
169618       , l_array_source_87
169619       , l_array_source_88
169620       , l_array_source_91
169621       , l_array_source_92
169622       , l_array_source_93
169623       , l_array_source_94
169624       , l_array_source_95
169625       , l_array_source_98
169626       , l_array_source_98_meaning
169627       , l_array_source_99
169628       , l_array_source_104
169629       , l_array_source_112
169630       , l_array_source_115
169631       , l_array_source_116
169632       , l_array_source_143
169633       , l_array_source_144
169634       , l_array_source_145
169635       , l_array_source_153
169636       , l_array_source_158
169637       LIMIT l_rows;
169638 
169639   --
169640   IF (C_LEVEL_EVENT >= g_log_level) THEN
169641             trace
169642                (p_msg      => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
169643                ,p_level    => C_LEVEL_EVENT
169644                ,p_module   => l_log_module);
169645   END IF;
169646   --
169647   EXIT WHEN l_array_entity_id.count = 0;
169648 
169649   XLA_AE_LINES_PKG.g_rec_lines := null;
169650 
169651 --
169652 -- Bug 4458708
169653 --
169654 XLA_AE_LINES_PKG.g_LineNumber := 0;
169655 --
169656 --
169657 
169658 FOR Idx IN 1..l_array_event_id.count LOOP
169659    --
169660    -- 5648433 (move l_event_id out of IF statement)  set l_event_id to be used inside IF condition
169661    --
169662    l_event_id := l_array_event_id(idx);  -- 5648433
169663 
169664    --
169665    -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
169666    --
169667 
169668    IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
169669              (g_array_event(l_event_id).array_value_num('header_index'))
169670          ,'N'
169671          ) <> 'Y'
169672    THEN
169673       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
169674          trace
169675             (p_msg      => 'Trancaction revesal option is not Y '
169676             ,p_level    => C_LEVEL_STATEMENT
169677             ,p_module   => l_log_module);
169678       END IF;
169679 
169680 --
169681 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
169682 --
169683 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
169684 --
169685 -- set event info as cache for other routines to refer event attributes
169686 --
169687 
169688 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
169689    l_previous_event_id := l_event_id;
169690 
169691    XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
169692       (p_application_id           => p_application_id
169693       ,p_primary_ledger_id        => p_primary_ledger_id
169694       ,p_base_ledger_id           => p_base_ledger_id
169695       ,p_target_ledger_id         => p_target_ledger_id
169696       ,p_entity_id                => l_array_entity_id(Idx)
169697       ,p_legal_entity_id          => l_array_legal_entity_id(Idx)
169698       ,p_entity_code              => l_array_entity_code(Idx)
169699       ,p_transaction_num          => l_array_transaction_num(Idx)
169700       ,p_event_id                 => l_array_event_id(Idx)
169701       ,p_event_class_code         => l_array_class_code(Idx)
169702       ,p_event_type_code          => l_array_event_type(Idx)
169703       ,p_event_number             => l_array_event_number(Idx)
169704       ,p_event_date               => l_array_event_date(Idx)
169705       ,p_transaction_date         => l_array_transaction_date(Idx)
169706       ,p_reference_num_1          => l_array_reference_num_1(Idx)
169707       ,p_reference_num_2          => l_array_reference_num_2(Idx)
169708       ,p_reference_num_3          => l_array_reference_num_3(Idx)
169709       ,p_reference_num_4          => l_array_reference_num_4(Idx)
169710       ,p_reference_char_1         => l_array_reference_char_1(Idx)
169711       ,p_reference_char_2         => l_array_reference_char_2(Idx)
169712       ,p_reference_char_3         => l_array_reference_char_3(Idx)
169713       ,p_reference_char_4         => l_array_reference_char_4(Idx)
169714       ,p_reference_date_1         => l_array_reference_date_1(Idx)
169715       ,p_reference_date_2         => l_array_reference_date_2(Idx)
169716       ,p_reference_date_3         => l_array_reference_date_3(Idx)
169717       ,p_reference_date_4         => l_array_reference_date_4(Idx)
169718       ,p_event_created_by         => l_array_event_created_by(Idx)
169719       ,p_budgetary_control_flag   => l_array_budgetary_control_flag(Idx));
169720        --
169721 END IF;
169722 
169723 
169724 
169725 --
169726 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
169727 
169728 l_acct_reversal_source := SUBSTR(l_array_source_53(Idx), 1,30);
169729 
169730 IF l_continue_with_lines THEN
169731    IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
169732       xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
169733 
169734       xla_accounting_err_pkg.build_message
169735          (p_appli_s_name            => 'XLA'
169736          ,p_msg_name                => 'XLA_AP_INVALID_REVERSAL_OPTION'
169737          ,p_token_1                 => 'LINE_NUMBER'
169738          ,p_value_1                 => l_array_extract_line_num(Idx)
169739          ,p_token_2                 => 'PRODUCT_NAME'
169743          ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
169740          ,p_value_2                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
169741          ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
169742          ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
169744 
169745    ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
169746       --
169747       -- following sets the accounting attributes needed to reverse
169748       -- accounting for a distributeion
169749       --
169750 
169751       --
169752       -- 5217187
169753       --
169754       l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
169755       l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
169756                                        g_array_event(l_event_id).array_value_num('header_index'));
169757       --
169758       --
169759 
169760       l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
169761       l_rec_rev_acct_attrs.array_char_value(2)  := l_array_source_53(Idx);
169762       l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
169763       l_rec_rev_acct_attrs.array_num_value(3)  := l_array_source_104(Idx);
169764       l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
169765       l_rec_rev_acct_attrs.array_char_value(4)  := l_array_source_55(Idx);
169766       l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'PARTY_TYPE';
169767       l_rec_rev_acct_attrs.array_char_value(5)  := g_array_event(l_event_id).array_value_char('source_83');
169768       l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'REVERSED_DISTRIBUTION_ID1';
169769       l_rec_rev_acct_attrs.array_num_value(6)  := l_array_source_112(Idx);
169770       l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'REVERSED_DISTRIBUTION_TYPE';
169771       l_rec_rev_acct_attrs.array_char_value(7)  := l_array_source_55(Idx);
169772       l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'TAX_LINE_REF_ID';
169773       l_rec_rev_acct_attrs.array_num_value(8)  := l_array_source_86(Idx);
169774       l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'TAX_REC_NREC_DIST_REF_ID';
169775       l_rec_rev_acct_attrs.array_num_value(9)  := l_array_source_87(Idx);
169776       l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'TAX_SUMMARY_LINE_REF_ID';
169777       l_rec_rev_acct_attrs.array_num_value(10)  := l_array_source_88(Idx);
169778 
169779 
169780       xla_ae_lines_pkg.SetAcctReversalAttrs
169781          (p_event_id             => l_event_id
169782          ,p_rec_acct_attrs       => l_rec_rev_acct_attrs
169783          ,p_calculate_acctd_flag => l_calculate_acctd_flag
169784          ,p_calculate_g_l_flag   => l_calculate_g_l_flag);
169785    END IF;
169786 
169787    IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
169788        l_actual_flag := NULL;  l_actual_gain_loss_ref := '#####';
169789 
169790 --
169791 AcctLineType_79 (
169792  p_application_id  => p_application_id
169793  ,p_event_id     => l_event_id
169794  ,p_calculate_acctd_flag => l_calculate_acctd_flag
169795  ,p_calculate_g_l_flag => l_calculate_g_l_flag
169796  ,p_actual_flag => l_actual_flag
169797  ,p_balance_type_code => l_balance_type_code
169798  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
169799  
169800  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
169801  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
169802  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
169803  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
169804  , p_source_53 => l_array_source_53(Idx)
169805  , p_source_55 => l_array_source_55(Idx)
169806  , p_source_80 => l_array_source_80(Idx)
169807  , p_source_80_meaning => l_array_source_80_meaning(Idx)
169808  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
169809  , p_source_86 => l_array_source_86(Idx)
169810  , p_source_87 => l_array_source_87(Idx)
169811  , p_source_88 => l_array_source_88(Idx)
169812  , p_source_91 => l_array_source_91(Idx)
169813  , p_source_92 => l_array_source_92(Idx)
169814  , p_source_93 => l_array_source_93(Idx)
169815  , p_source_94 => l_array_source_94(Idx)
169816  , p_source_95 => l_array_source_95(Idx)
169817  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
169818  , p_source_98 => l_array_source_98(Idx)
169819  , p_source_98_meaning => l_array_source_98_meaning(Idx)
169820  , p_source_99 => l_array_source_99(Idx)
169821  , p_source_104 => l_array_source_104(Idx)
169822  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
169823  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
169824  , p_source_112 => l_array_source_112(Idx)
169825  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
169826  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
169827  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
169828  , p_source_115 => l_array_source_115(Idx)
169829  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
169830  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
169831  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
169832  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
169833  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
169834  );
169835 If(l_balance_type_code = 'A') THEN
169836   l_actual_gain_loss_ref := l_gain_or_loss_ref;
169837 END IF;
169838 
169839 --
169840 
169841 
169842 --
169843 AcctLineType_80 (
169844  p_application_id  => p_application_id
169845  ,p_event_id     => l_event_id
169846  ,p_calculate_acctd_flag => l_calculate_acctd_flag
169847  ,p_calculate_g_l_flag => l_calculate_g_l_flag
169848  ,p_actual_flag => l_actual_flag
169849  ,p_balance_type_code => l_balance_type_code
169850  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
169851  
169855  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
169852  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
169853  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
169854  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
169856  , p_source_53 => l_array_source_53(Idx)
169857  , p_source_55 => l_array_source_55(Idx)
169858  , p_source_80 => l_array_source_80(Idx)
169859  , p_source_80_meaning => l_array_source_80_meaning(Idx)
169860  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
169861  , p_source_86 => l_array_source_86(Idx)
169862  , p_source_87 => l_array_source_87(Idx)
169863  , p_source_88 => l_array_source_88(Idx)
169864  , p_source_91 => l_array_source_91(Idx)
169865  , p_source_92 => l_array_source_92(Idx)
169866  , p_source_93 => l_array_source_93(Idx)
169867  , p_source_94 => l_array_source_94(Idx)
169868  , p_source_95 => l_array_source_95(Idx)
169869  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
169870  , p_source_98 => l_array_source_98(Idx)
169871  , p_source_98_meaning => l_array_source_98_meaning(Idx)
169872  , p_source_99 => l_array_source_99(Idx)
169873  , p_source_104 => l_array_source_104(Idx)
169874  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
169875  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
169876  , p_source_112 => l_array_source_112(Idx)
169877  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
169878  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
169879  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
169880  , p_source_115 => l_array_source_115(Idx)
169881  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
169882  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
169883  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
169884  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
169885  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
169886  );
169887 If(l_balance_type_code = 'A') THEN
169888   l_actual_gain_loss_ref := l_gain_or_loss_ref;
169889 END IF;
169890 
169891 --
169892 
169893 
169894 --
169895 AcctLineType_81 (
169896  p_application_id  => p_application_id
169897  ,p_event_id     => l_event_id
169898  ,p_calculate_acctd_flag => l_calculate_acctd_flag
169899  ,p_calculate_g_l_flag => l_calculate_g_l_flag
169900  ,p_actual_flag => l_actual_flag
169901  ,p_balance_type_code => l_balance_type_code
169902  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
169903  
169904  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
169905  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
169906  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
169907  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
169908  , p_source_53 => l_array_source_53(Idx)
169909  , p_source_55 => l_array_source_55(Idx)
169910  , p_source_80 => l_array_source_80(Idx)
169911  , p_source_80_meaning => l_array_source_80_meaning(Idx)
169912  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
169913  , p_source_86 => l_array_source_86(Idx)
169914  , p_source_87 => l_array_source_87(Idx)
169915  , p_source_88 => l_array_source_88(Idx)
169916  , p_source_91 => l_array_source_91(Idx)
169917  , p_source_92 => l_array_source_92(Idx)
169918  , p_source_93 => l_array_source_93(Idx)
169919  , p_source_94 => l_array_source_94(Idx)
169920  , p_source_95 => l_array_source_95(Idx)
169921  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
169922  , p_source_98 => l_array_source_98(Idx)
169923  , p_source_98_meaning => l_array_source_98_meaning(Idx)
169924  , p_source_99 => l_array_source_99(Idx)
169925  , p_source_104 => l_array_source_104(Idx)
169926  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
169927  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
169928  , p_source_112 => l_array_source_112(Idx)
169929  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
169930  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
169931  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
169932  , p_source_115 => l_array_source_115(Idx)
169933  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
169934  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
169935  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
169936  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
169937  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
169938  );
169939 If(l_balance_type_code = 'A') THEN
169940   l_actual_gain_loss_ref := l_gain_or_loss_ref;
169941 END IF;
169942 
169943 --
169944 
169945 
169946 --
169947 AcctLineType_82 (
169948  p_application_id  => p_application_id
169949  ,p_event_id     => l_event_id
169950  ,p_calculate_acctd_flag => l_calculate_acctd_flag
169951  ,p_calculate_g_l_flag => l_calculate_g_l_flag
169952  ,p_actual_flag => l_actual_flag
169953  ,p_balance_type_code => l_balance_type_code
169954  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
169955  
169956  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
169957  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
169958  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
169959  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
169960  , p_source_53 => l_array_source_53(Idx)
169961  , p_source_55 => l_array_source_55(Idx)
169962  , p_source_80 => l_array_source_80(Idx)
169963  , p_source_80_meaning => l_array_source_80_meaning(Idx)
169964  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
169968  , p_source_91 => l_array_source_91(Idx)
169965  , p_source_86 => l_array_source_86(Idx)
169966  , p_source_87 => l_array_source_87(Idx)
169967  , p_source_88 => l_array_source_88(Idx)
169969  , p_source_92 => l_array_source_92(Idx)
169970  , p_source_93 => l_array_source_93(Idx)
169971  , p_source_94 => l_array_source_94(Idx)
169972  , p_source_95 => l_array_source_95(Idx)
169973  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
169974  , p_source_98 => l_array_source_98(Idx)
169975  , p_source_98_meaning => l_array_source_98_meaning(Idx)
169976  , p_source_99 => l_array_source_99(Idx)
169977  , p_source_104 => l_array_source_104(Idx)
169978  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
169979  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
169980  , p_source_112 => l_array_source_112(Idx)
169981  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
169982  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
169983  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
169984  , p_source_116 => l_array_source_116(Idx)
169985  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
169986  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
169987  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
169988  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
169989  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
169990  );
169991 If(l_balance_type_code = 'A') THEN
169992   l_actual_gain_loss_ref := l_gain_or_loss_ref;
169993 END IF;
169994 
169995 --
169996 
169997 
169998 --
169999 AcctLineType_83 (
170000  p_application_id  => p_application_id
170001  ,p_event_id     => l_event_id
170002  ,p_calculate_acctd_flag => l_calculate_acctd_flag
170003  ,p_calculate_g_l_flag => l_calculate_g_l_flag
170004  ,p_actual_flag => l_actual_flag
170005  ,p_balance_type_code => l_balance_type_code
170006  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
170007  
170008  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
170009  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
170010  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
170011  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
170012  , p_source_53 => l_array_source_53(Idx)
170013  , p_source_55 => l_array_source_55(Idx)
170014  , p_source_80 => l_array_source_80(Idx)
170015  , p_source_80_meaning => l_array_source_80_meaning(Idx)
170016  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
170017  , p_source_86 => l_array_source_86(Idx)
170018  , p_source_87 => l_array_source_87(Idx)
170019  , p_source_88 => l_array_source_88(Idx)
170020  , p_source_91 => l_array_source_91(Idx)
170021  , p_source_92 => l_array_source_92(Idx)
170022  , p_source_93 => l_array_source_93(Idx)
170023  , p_source_94 => l_array_source_94(Idx)
170024  , p_source_95 => l_array_source_95(Idx)
170025  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
170026  , p_source_98 => l_array_source_98(Idx)
170027  , p_source_98_meaning => l_array_source_98_meaning(Idx)
170028  , p_source_99 => l_array_source_99(Idx)
170029  , p_source_104 => l_array_source_104(Idx)
170030  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
170031  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
170032  , p_source_112 => l_array_source_112(Idx)
170033  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
170034  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
170035  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
170036  , p_source_116 => l_array_source_116(Idx)
170037  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
170038  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
170039  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
170040  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
170041  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
170042  );
170043 If(l_balance_type_code = 'A') THEN
170044   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170045 END IF;
170046 
170047 --
170048 
170049 
170050 --
170051 AcctLineType_84 (
170052  p_application_id  => p_application_id
170053  ,p_event_id     => l_event_id
170054  ,p_calculate_acctd_flag => l_calculate_acctd_flag
170055  ,p_calculate_g_l_flag => l_calculate_g_l_flag
170056  ,p_actual_flag => l_actual_flag
170057  ,p_balance_type_code => l_balance_type_code
170058  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
170059  
170060  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
170061  , p_source_35 => g_array_event(l_event_id).array_value_num('source_35')
170062  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
170063  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
170064  , p_source_53 => l_array_source_53(Idx)
170065  , p_source_55 => l_array_source_55(Idx)
170066  , p_source_80 => l_array_source_80(Idx)
170067  , p_source_80_meaning => l_array_source_80_meaning(Idx)
170068  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
170069  , p_source_86 => l_array_source_86(Idx)
170070  , p_source_87 => l_array_source_87(Idx)
170071  , p_source_88 => l_array_source_88(Idx)
170072  , p_source_91 => l_array_source_91(Idx)
170073  , p_source_92 => l_array_source_92(Idx)
170074  , p_source_93 => l_array_source_93(Idx)
170075  , p_source_94 => l_array_source_94(Idx)
170076  , p_source_95 => l_array_source_95(Idx)
170077  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
170078  , p_source_98 => l_array_source_98(Idx)
170079  , p_source_98_meaning => l_array_source_98_meaning(Idx)
170080  , p_source_99 => l_array_source_99(Idx)
170084  , p_source_112 => l_array_source_112(Idx)
170081  , p_source_104 => l_array_source_104(Idx)
170082  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
170083  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
170085  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
170086  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
170087  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
170088  , p_source_116 => l_array_source_116(Idx)
170089  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
170090  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
170091  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
170092  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
170093  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
170094  );
170095 If(l_balance_type_code = 'A') THEN
170096   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170097 END IF;
170098 
170099 --
170100 
170101 
170102 --
170103 AcctLineType_91 (
170104  p_application_id  => p_application_id
170105  ,p_event_id     => l_event_id
170106  ,p_calculate_acctd_flag => l_calculate_acctd_flag
170107  ,p_calculate_g_l_flag => l_calculate_g_l_flag
170108  ,p_actual_flag => l_actual_flag
170109  ,p_balance_type_code => l_balance_type_code
170110  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
170111  
170112  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
170113  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
170114  , p_source_47 => g_array_event(l_event_id).array_value_char('source_47')
170115  , p_source_47_meaning => g_array_event(l_event_id).array_value_char('source_47_meaning')
170116  , p_source_53 => l_array_source_53(Idx)
170117  , p_source_55 => l_array_source_55(Idx)
170118  , p_source_80 => l_array_source_80(Idx)
170119  , p_source_80_meaning => l_array_source_80_meaning(Idx)
170120  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
170121  , p_source_86 => l_array_source_86(Idx)
170122  , p_source_87 => l_array_source_87(Idx)
170123  , p_source_88 => l_array_source_88(Idx)
170124  , p_source_91 => l_array_source_91(Idx)
170125  , p_source_92 => l_array_source_92(Idx)
170126  , p_source_93 => l_array_source_93(Idx)
170127  , p_source_94 => l_array_source_94(Idx)
170128  , p_source_95 => l_array_source_95(Idx)
170129  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
170130  , p_source_98 => l_array_source_98(Idx)
170131  , p_source_98_meaning => l_array_source_98_meaning(Idx)
170132  , p_source_99 => l_array_source_99(Idx)
170133  , p_source_104 => l_array_source_104(Idx)
170134  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
170135  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
170136  , p_source_112 => l_array_source_112(Idx)
170137  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
170138  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
170139  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
170140  , p_source_115 => l_array_source_115(Idx)
170141  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
170142  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
170143  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
170144  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
170145  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
170146  );
170147 If(l_balance_type_code = 'A') THEN
170148   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170149 END IF;
170150 
170151 --
170152 
170153 
170154 --
170155 AcctLineType_92 (
170156  p_application_id  => p_application_id
170157  ,p_event_id     => l_event_id
170158  ,p_calculate_acctd_flag => l_calculate_acctd_flag
170159  ,p_calculate_g_l_flag => l_calculate_g_l_flag
170160  ,p_actual_flag => l_actual_flag
170161  ,p_balance_type_code => l_balance_type_code
170162  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
170163  
170164  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
170165  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
170166  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
170167  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
170168  , p_source_53 => l_array_source_53(Idx)
170169  , p_source_55 => l_array_source_55(Idx)
170170  , p_source_80 => l_array_source_80(Idx)
170171  , p_source_80_meaning => l_array_source_80_meaning(Idx)
170172  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
170173  , p_source_86 => l_array_source_86(Idx)
170174  , p_source_87 => l_array_source_87(Idx)
170175  , p_source_88 => l_array_source_88(Idx)
170176  , p_source_91 => l_array_source_91(Idx)
170177  , p_source_92 => l_array_source_92(Idx)
170178  , p_source_93 => l_array_source_93(Idx)
170179  , p_source_94 => l_array_source_94(Idx)
170180  , p_source_95 => l_array_source_95(Idx)
170181  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
170182  , p_source_98 => l_array_source_98(Idx)
170183  , p_source_98_meaning => l_array_source_98_meaning(Idx)
170184  , p_source_99 => l_array_source_99(Idx)
170185  , p_source_104 => l_array_source_104(Idx)
170186  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
170187  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
170188  , p_source_112 => l_array_source_112(Idx)
170189  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
170190  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
170191  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
170192  , p_source_115 => l_array_source_115(Idx)
170193  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
170197  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
170194  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
170195  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
170196  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
170198  );
170199 If(l_balance_type_code = 'A') THEN
170200   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170201 END IF;
170202 
170203 --
170204 
170205 
170206 --
170207 AcctLineType_93 (
170208  p_application_id  => p_application_id
170209  ,p_event_id     => l_event_id
170210  ,p_calculate_acctd_flag => l_calculate_acctd_flag
170211  ,p_calculate_g_l_flag => l_calculate_g_l_flag
170212  ,p_actual_flag => l_actual_flag
170213  ,p_balance_type_code => l_balance_type_code
170214  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
170215  
170216  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
170217  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
170218  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
170219  , p_source_17 => g_array_event(l_event_id).array_value_num('source_17')
170220  , p_source_53 => l_array_source_53(Idx)
170221  , p_source_55 => l_array_source_55(Idx)
170222  , p_source_80 => l_array_source_80(Idx)
170223  , p_source_80_meaning => l_array_source_80_meaning(Idx)
170224  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
170225  , p_source_86 => l_array_source_86(Idx)
170226  , p_source_87 => l_array_source_87(Idx)
170227  , p_source_88 => l_array_source_88(Idx)
170228  , p_source_91 => l_array_source_91(Idx)
170229  , p_source_92 => l_array_source_92(Idx)
170230  , p_source_93 => l_array_source_93(Idx)
170231  , p_source_94 => l_array_source_94(Idx)
170232  , p_source_95 => l_array_source_95(Idx)
170233  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
170234  , p_source_98 => l_array_source_98(Idx)
170235  , p_source_98_meaning => l_array_source_98_meaning(Idx)
170236  , p_source_99 => l_array_source_99(Idx)
170237  , p_source_104 => l_array_source_104(Idx)
170238  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
170239  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
170240  , p_source_112 => l_array_source_112(Idx)
170241  , p_source_113 => g_array_event(l_event_id).array_value_char('source_113')
170242  , p_source_113_meaning => g_array_event(l_event_id).array_value_char('source_113_meaning')
170243  , p_source_114 => g_array_event(l_event_id).array_value_date('source_114')
170244  , p_source_115 => l_array_source_115(Idx)
170245  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
170246  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
170247  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
170248  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
170249  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
170250  );
170251 If(l_balance_type_code = 'A') THEN
170252   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170253 END IF;
170254 
170255 --
170256 
170257 
170258 --
170259 AcctLineType_106 (
170260  p_application_id  => p_application_id
170261  ,p_event_id     => l_event_id
170262  ,p_calculate_acctd_flag => l_calculate_acctd_flag
170263  ,p_calculate_g_l_flag => l_calculate_g_l_flag
170264  ,p_actual_flag => l_actual_flag
170265  ,p_balance_type_code => l_balance_type_code
170266  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
170267  
170268  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
170269  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
170270  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
170271  , p_source_18 => g_array_event(l_event_id).array_value_num('source_18')
170272  , p_source_19 => g_array_event(l_event_id).array_value_char('source_19')
170273  , p_source_19_meaning => g_array_event(l_event_id).array_value_char('source_19_meaning')
170274  , p_source_30 => l_array_source_30(Idx)
170275  , p_source_33 => l_array_source_33(Idx)
170276  , p_source_33_meaning => l_array_source_33_meaning(Idx)
170277  , p_source_44 => g_array_event(l_event_id).array_value_num('source_44')
170278  , p_source_45 => l_array_source_45(Idx)
170279  , p_source_46 => l_array_source_46(Idx)
170280  , p_source_53 => l_array_source_53(Idx)
170281  , p_source_55 => l_array_source_55(Idx)
170282  , p_source_80 => l_array_source_80(Idx)
170283  , p_source_80_meaning => l_array_source_80_meaning(Idx)
170284  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
170285  , p_source_86 => l_array_source_86(Idx)
170286  , p_source_87 => l_array_source_87(Idx)
170287  , p_source_88 => l_array_source_88(Idx)
170288  , p_source_91 => l_array_source_91(Idx)
170289  , p_source_92 => l_array_source_92(Idx)
170290  , p_source_93 => l_array_source_93(Idx)
170291  , p_source_94 => l_array_source_94(Idx)
170292  , p_source_95 => l_array_source_95(Idx)
170293  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
170294  , p_source_98 => l_array_source_98(Idx)
170295  , p_source_98_meaning => l_array_source_98_meaning(Idx)
170296  , p_source_99 => l_array_source_99(Idx)
170297  , p_source_104 => l_array_source_104(Idx)
170298  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
170299  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
170300  , p_source_112 => l_array_source_112(Idx)
170301  , p_source_116 => l_array_source_116(Idx)
170302  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
170303  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
170304  , p_source_143 => l_array_source_143(Idx)
170305  , p_source_144 => l_array_source_144(Idx)
170306  , p_source_145 => l_array_source_145(Idx)
170307  );
170308 If(l_balance_type_code = 'A') THEN
170309   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170310 END IF;
170311 
170315 --
170312 --
170313 
170314 
170316 AcctLineType_114 (
170317  p_application_id  => p_application_id
170318  ,p_event_id     => l_event_id
170319  ,p_calculate_acctd_flag => l_calculate_acctd_flag
170320  ,p_calculate_g_l_flag => l_calculate_g_l_flag
170321  ,p_actual_flag => l_actual_flag
170322  ,p_balance_type_code => l_balance_type_code
170323  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
170324  
170325  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
170326  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
170327  , p_source_30 => l_array_source_30(Idx)
170328  , p_source_49 => g_array_event(l_event_id).array_value_num('source_49')
170329  , p_source_53 => l_array_source_53(Idx)
170330  , p_source_55 => l_array_source_55(Idx)
170331  , p_source_67 => l_array_source_67(Idx)
170332  , p_source_80 => l_array_source_80(Idx)
170333  , p_source_80_meaning => l_array_source_80_meaning(Idx)
170334  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
170335  , p_source_86 => l_array_source_86(Idx)
170336  , p_source_87 => l_array_source_87(Idx)
170337  , p_source_88 => l_array_source_88(Idx)
170338  , p_source_91 => l_array_source_91(Idx)
170339  , p_source_92 => l_array_source_92(Idx)
170340  , p_source_93 => l_array_source_93(Idx)
170341  , p_source_94 => l_array_source_94(Idx)
170342  , p_source_95 => l_array_source_95(Idx)
170343  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
170344  , p_source_98 => l_array_source_98(Idx)
170345  , p_source_98_meaning => l_array_source_98_meaning(Idx)
170346  , p_source_99 => l_array_source_99(Idx)
170347  , p_source_104 => l_array_source_104(Idx)
170348  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
170349  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
170350  , p_source_112 => l_array_source_112(Idx)
170351  , p_source_116 => l_array_source_116(Idx)
170352  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
170353  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
170354  , p_source_143 => l_array_source_143(Idx)
170355  , p_source_144 => l_array_source_144(Idx)
170356  , p_source_145 => l_array_source_145(Idx)
170357  );
170358 If(l_balance_type_code = 'A') THEN
170359   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170360 END IF;
170361 
170362 --
170363 
170364 
170365 --
170366 AcctLineType_129 (
170367  p_application_id  => p_application_id
170368  ,p_event_id     => l_event_id
170369  ,p_calculate_acctd_flag => l_calculate_acctd_flag
170370  ,p_calculate_g_l_flag => l_calculate_g_l_flag
170371  ,p_actual_flag => l_actual_flag
170372  ,p_balance_type_code => l_balance_type_code
170373  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
170374  
170375  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
170376  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
170377  , p_source_30 => l_array_source_30(Idx)
170378  , p_source_36 => g_array_event(l_event_id).array_value_num('source_36')
170379  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
170380  , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
170381  , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
170382  , p_source_53 => l_array_source_53(Idx)
170383  , p_source_55 => l_array_source_55(Idx)
170384  , p_source_80 => l_array_source_80(Idx)
170385  , p_source_80_meaning => l_array_source_80_meaning(Idx)
170386  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
170387  , p_source_86 => l_array_source_86(Idx)
170388  , p_source_87 => l_array_source_87(Idx)
170389  , p_source_88 => l_array_source_88(Idx)
170390  , p_source_91 => l_array_source_91(Idx)
170391  , p_source_92 => l_array_source_92(Idx)
170392  , p_source_93 => l_array_source_93(Idx)
170393  , p_source_94 => l_array_source_94(Idx)
170394  , p_source_95 => l_array_source_95(Idx)
170395  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
170396  , p_source_98 => l_array_source_98(Idx)
170397  , p_source_98_meaning => l_array_source_98_meaning(Idx)
170398  , p_source_104 => l_array_source_104(Idx)
170399  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
170400  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
170401  , p_source_112 => l_array_source_112(Idx)
170402  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
170403  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
170404  , p_source_153 => l_array_source_153(Idx)
170405  );
170406 If(l_balance_type_code = 'A') THEN
170407   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170408 END IF;
170409 
170410 --
170411 
170412 
170413 --
170414 AcctLineType_135 (
170415  p_application_id  => p_application_id
170416  ,p_event_id     => l_event_id
170417  ,p_calculate_acctd_flag => l_calculate_acctd_flag
170418  ,p_calculate_g_l_flag => l_calculate_g_l_flag
170419  ,p_actual_flag => l_actual_flag
170420  ,p_balance_type_code => l_balance_type_code
170421  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
170422  
170423  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
170424  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
170425  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
170426  , p_source_30 => l_array_source_30(Idx)
170427  , p_source_36 => g_array_event(l_event_id).array_value_num('source_36')
170428  , p_source_37 => g_array_event(l_event_id).array_value_num('source_37')
170429  , p_source_53 => l_array_source_53(Idx)
170430  , p_source_55 => l_array_source_55(Idx)
170431  , p_source_80 => l_array_source_80(Idx)
170432  , p_source_80_meaning => l_array_source_80_meaning(Idx)
170433  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
170434  , p_source_86 => l_array_source_86(Idx)
170435  , p_source_87 => l_array_source_87(Idx)
170439  , p_source_93 => l_array_source_93(Idx)
170436  , p_source_88 => l_array_source_88(Idx)
170437  , p_source_91 => l_array_source_91(Idx)
170438  , p_source_92 => l_array_source_92(Idx)
170440  , p_source_94 => l_array_source_94(Idx)
170441  , p_source_95 => l_array_source_95(Idx)
170442  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
170443  , p_source_98 => l_array_source_98(Idx)
170444  , p_source_98_meaning => l_array_source_98_meaning(Idx)
170445  , p_source_99 => l_array_source_99(Idx)
170446  , p_source_104 => l_array_source_104(Idx)
170447  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
170448  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
170449  , p_source_112 => l_array_source_112(Idx)
170450  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
170451  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
170452  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
170453  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
170454  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
170455  , p_source_153 => l_array_source_153(Idx)
170456  , p_source_158 => l_array_source_158(Idx)
170457  );
170458 If(l_balance_type_code = 'A') THEN
170459   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170460 END IF;
170461 
170462 --
170463 
170464 
170465 --
170466 AcctLineType_162 (
170467  p_application_id  => p_application_id
170468  ,p_event_id     => l_event_id
170469  ,p_calculate_acctd_flag => l_calculate_acctd_flag
170470  ,p_calculate_g_l_flag => l_calculate_g_l_flag
170471  ,p_actual_flag => l_actual_flag
170472  ,p_balance_type_code => l_balance_type_code
170473  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
170474  
170475  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
170476  , p_source_53 => l_array_source_53(Idx)
170477  , p_source_55 => l_array_source_55(Idx)
170478  , p_source_80 => l_array_source_80(Idx)
170479  , p_source_80_meaning => l_array_source_80_meaning(Idx)
170480  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
170481  , p_source_86 => l_array_source_86(Idx)
170482  , p_source_87 => l_array_source_87(Idx)
170483  , p_source_88 => l_array_source_88(Idx)
170484  , p_source_91 => l_array_source_91(Idx)
170485  , p_source_92 => l_array_source_92(Idx)
170486  , p_source_93 => l_array_source_93(Idx)
170487  , p_source_94 => l_array_source_94(Idx)
170488  , p_source_95 => l_array_source_95(Idx)
170489  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
170490  , p_source_98 => l_array_source_98(Idx)
170491  , p_source_98_meaning => l_array_source_98_meaning(Idx)
170492  , p_source_99 => l_array_source_99(Idx)
170493  , p_source_104 => l_array_source_104(Idx)
170494  , p_source_112 => l_array_source_112(Idx)
170495  , p_source_116 => l_array_source_116(Idx)
170496  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
170497  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
170498  );
170499 If(l_balance_type_code = 'A') THEN
170500   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170501 END IF;
170502 
170503 --
170504 
170505 
170506 --
170507 AcctLineType_169 (
170508  p_application_id  => p_application_id
170509  ,p_event_id     => l_event_id
170510  ,p_calculate_acctd_flag => l_calculate_acctd_flag
170511  ,p_calculate_g_l_flag => l_calculate_g_l_flag
170512  ,p_actual_flag => l_actual_flag
170513  ,p_balance_type_code => l_balance_type_code
170514  ,p_gain_or_loss_ref=> l_gain_or_loss_ref
170515  
170516  , p_source_13 => g_array_event(l_event_id).array_value_char('source_13')
170517  , p_source_15 => g_array_event(l_event_id).array_value_char('source_15')
170518  , p_source_15_meaning => g_array_event(l_event_id).array_value_char('source_15_meaning')
170519  , p_source_30 => l_array_source_30(Idx)
170520  , p_source_38 => g_array_event(l_event_id).array_value_num('source_38')
170521  , p_source_39 => g_array_event(l_event_id).array_value_num('source_39')
170522  , p_source_53 => l_array_source_53(Idx)
170523  , p_source_55 => l_array_source_55(Idx)
170524  , p_source_80 => l_array_source_80(Idx)
170525  , p_source_80_meaning => l_array_source_80_meaning(Idx)
170526  , p_source_83 => g_array_event(l_event_id).array_value_char('source_83')
170527  , p_source_86 => l_array_source_86(Idx)
170528  , p_source_87 => l_array_source_87(Idx)
170529  , p_source_88 => l_array_source_88(Idx)
170530  , p_source_91 => l_array_source_91(Idx)
170531  , p_source_92 => l_array_source_92(Idx)
170532  , p_source_93 => l_array_source_93(Idx)
170533  , p_source_94 => l_array_source_94(Idx)
170534  , p_source_95 => l_array_source_95(Idx)
170535  , p_source_97 => g_array_event(l_event_id).array_value_char('source_97')
170536  , p_source_98 => l_array_source_98(Idx)
170537  , p_source_98_meaning => l_array_source_98_meaning(Idx)
170538  , p_source_99 => l_array_source_99(Idx)
170539  , p_source_104 => l_array_source_104(Idx)
170540  , p_source_110 => g_array_event(l_event_id).array_value_num('source_110')
170541  , p_source_111 => g_array_event(l_event_id).array_value_num('source_111')
170542  , p_source_112 => l_array_source_112(Idx)
170543  , p_source_117 => g_array_event(l_event_id).array_value_date('source_117')
170544  , p_source_118 => g_array_event(l_event_id).array_value_num('source_118')
170545  , p_source_119 => g_array_event(l_event_id).array_value_char('source_119')
170546  , p_source_122 => g_array_event(l_event_id).array_value_char('source_122')
170547  , p_source_122_meaning => g_array_event(l_event_id).array_value_char('source_122_meaning')
170548  , p_source_153 => l_array_source_153(Idx)
170549  , p_source_158 => l_array_source_158(Idx)
170550  );
170551 If(l_balance_type_code = 'A') THEN
170552   l_actual_gain_loss_ref := l_gain_or_loss_ref;
170553 END IF;
170554 
170555 --
170556 
170557       -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
170561             (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'))
170558       -- or secondary ledger that has different currency with primary
170559       -- or alc that is calculated by sla
170560       IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
170562 
170563 --      IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
170564 --                    XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
170565           AND (l_actual_flag = 'A')) THEN
170566         XLA_AE_LINES_PKG.CreateGainOrLossLines(
170567           p_event_id         => xla_ae_journal_entry_pkg.g_cache_event.event_id
170568          ,p_application_id   => p_application_id
170569          ,p_amb_context_code => 'DEFAULT'
170570          ,p_entity_code      => xla_ae_journal_entry_pkg.g_cache_event.entity_code
170571          ,p_event_class_code => C_EVENT_CLASS_CODE
170572          ,p_event_type_code  => C_EVENT_TYPE_CODE
170573          
170574          ,p_gain_ccid        => -1
170575          ,p_loss_ccid        => -1
170576 
170577          ,p_actual_flag      => l_actual_flag
170578          ,p_enc_flag         => null
170579          ,p_actual_g_l_ref   => l_actual_gain_loss_ref
170580          ,p_enc_g_l_ref      => null
170581          );
170582       END IF;
170583    END IF;
170584 END IF;
170585 
170586    ELSE
170587       --
170588       -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
170589       --
170590       IF (C_LEVEL_STATEMENT >= g_log_level) THEN
170591          trace
170592             (p_msg      => 'Trancaction revesal option is Y'
170593             ,p_level    => C_LEVEL_STATEMENT
170594             ,p_module   => l_log_module);
170595       END IF;
170596    END IF;
170597 
170598 END LOOP;
170599 l_result := XLA_AE_LINES_PKG.InsertLines ;
170600 end loop;
170601 close line_cur;
170602 
170603 
170604 --
170605 -- insert headers into xla_ae_headers_gt table
170606 --
170607 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
170608 
170609 -- insert into errors table here.
170610 
170611 END LOOP;
170612 
170613 --
170614 -- 4865292
170615 --
170616 -- Compare g_hdr_extract_count with event count in
170617 -- CreateHeadersAndLines.
170618 --
170619 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
170620 
170621 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
170622    trace (p_msg     => '# rows extracted from header extract objects '
170623                     || ' (running total): '
170624                     || g_hdr_extract_count
170625          ,p_level   => C_LEVEL_STATEMENT
170626          ,p_module  => l_log_module);
170627 END IF;
170628 
170629 CLOSE header_cur;
170630 --
170631 
170632 --
170633 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
170634    trace
170635       (p_msg      => 'END of EventClass_238'
170636       ,p_level    => C_LEVEL_PROCEDURE
170637       ,p_module   => l_log_module);
170638 END IF;
170639 --
170640 RETURN l_result;
170641 EXCEPTION
170642 WHEN xla_exceptions_pkg.application_exception THEN
170643    
170644 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
170645 
170646    
170647 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
170648 
170649    RAISE;
170650 
170651 WHEN NO_DATA_FOUND THEN
170652 
170653 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
170654 IF line_cur%ISOPEN   THEN CLOSE line_cur;   END IF;
170655 
170656 FOR header_record IN header_cur
170657 LOOP
170658     l_array_header_events(header_record.event_id) := header_record.event_id;
170659 END LOOP;
170660 
170661 l_first_event_id := l_array_header_events(l_array_header_events.FIRST);
170662 l_last_event_id := l_array_header_events(l_array_header_events.LAST);
170663 
170664 fnd_file.put_line(fnd_file.LOG, '                    ');
170665 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
170666 fnd_file.put_line(fnd_file.LOG, 'EVENT CLASS CODE = ' || C_EVENT_CLASS_CODE );
170667 fnd_file.put_line(fnd_file.LOG, 'The following events are present in the line extract but MISSING in the header extract: ');
170668 
170669 FOR line_record IN line_cur(l_first_event_id, l_last_event_id)
170670 LOOP
170671 	IF (NOT l_array_header_events.EXISTS(line_record.event_id))  AND (NOT l_array_duplicate_checker.EXISTS(line_record.event_id)) THEN
170672 	fnd_file.put_line(fnd_file.log, 'Event_id = ' || line_record.event_id);
170673         l_array_duplicate_checker(line_record.event_id) := line_record.event_id;
170674 	END IF;
170675 END LOOP;
170676 
170677 fnd_file.put_line(fnd_file.LOG, '***************************************************************************');
170678 fnd_file.put_line(fnd_file.LOG, '                    ');
170679 
170680 
170681 xla_exceptions_pkg.raise_message
170682       (p_location => 'XLA_00200_AAD_S_000002_PKG.EventClass_238');
170683 
170684 
170685 WHEN OTHERS THEN
170686    xla_exceptions_pkg.raise_message
170687       (p_location => 'XLA_00200_AAD_S_000002_PKG.EventClass_238');
170688 END EventClass_238;
170689 --
170690 
170691 --
170692 --+============================================+
170693 --|                                            |
170694 --|  PRIVATE FUNCTION                          |
170695 --|                                            |
170696 --+============================================+
170697 --
170698 FUNCTION CreateHeadersAndLines
170699        (p_application_id         IN NUMBER
170700        ,p_base_ledger_id         IN NUMBER
170701        ,p_target_ledger_id       IN NUMBER
170702        ,p_pad_start_date         IN DATE
170703        ,p_pad_end_date           IN DATE
170704        ,p_primary_ledger_id      IN NUMBER)
170705 RETURN BOOLEAN IS
170709 l_language                  VARCHAR2(30);
170706 l_created                   BOOLEAN:=FALSE;
170707 l_event_id                  NUMBER;
170708 l_event_date                DATE;
170710 l_currency_code             VARCHAR2(30);
170711 l_sla_ledger_id             NUMBER;
170712 l_log_module                VARCHAR2(240);
170713 
170714 BEGIN
170715 --
170716 IF g_log_enabled THEN
170717    l_log_module := C_DEFAULT_MODULE||'.CreateHeadersAndLines';
170718 END IF;
170719 --
170720 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
170721    trace
170722       (p_msg      => 'BEGIN of CreateHeadersAndLines'
170723       ,p_level    => C_LEVEL_PROCEDURE
170724       ,p_module   => l_log_module);
170725 END IF;
170726 
170727 l_language         := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
170728 l_currency_code    := xla_ae_journal_entry_pkg.g_cache_ledgers_info.currency_code;
170729 l_sla_ledger_id    := xla_ae_journal_entry_pkg.g_cache_ledgers_info.sla_ledger_id;
170730 
170731 --
170732 -- initialize array of lines with NULL
170733 --
170734 xla_ae_lines_pkg.SetNullLine;
170735 
170736 --
170737 -- initialize header extract count -- Bug 4865292
170738 --
170739 g_hdr_extract_count:= 0;
170740 
170741 
170742 l_created := EventClass_230(
170743    p_application_id         => p_application_id
170744  , p_base_ledger_id         => p_base_ledger_id
170745  , p_target_ledger_id       => p_target_ledger_id
170746  , p_language               => l_language
170747  , p_currency_code          => l_currency_code
170748  , p_sla_ledger_id          => l_sla_ledger_id
170749  , p_pad_start_date         => p_pad_start_date
170750  , p_pad_end_date           => p_pad_end_date
170751  , p_primary_ledger_id      => p_primary_ledger_id
170752 );
170753 
170754 
170755 
170756      IF ( g_diagnostics_mode ='Y' ) THEN
170757 
170758          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
170759           trace
170760               (p_msg      => 'CALL Transaction Objects Diagnostics'
170761               ,p_level    => C_LEVEL_STATEMENT
170762               ,p_module   => l_log_module);
170763 
170764          END IF;
170765 
170766          insert_sources_230(
170767                           p_target_ledger_id => p_target_ledger_id
170768                         , p_language         => l_language
170769                         , p_sla_ledger_id    => l_sla_ledger_id
170770                         , p_pad_start_date   => p_pad_start_date
170771                         , p_pad_end_date     => p_pad_end_date
170772                           );
170773 
170774      END IF;
170775 
170776 l_created := EventClass_231(
170777    p_application_id         => p_application_id
170778  , p_base_ledger_id         => p_base_ledger_id
170779  , p_target_ledger_id       => p_target_ledger_id
170780  , p_language               => l_language
170781  , p_currency_code          => l_currency_code
170782  , p_sla_ledger_id          => l_sla_ledger_id
170783  , p_pad_start_date         => p_pad_start_date
170784  , p_pad_end_date           => p_pad_end_date
170785  , p_primary_ledger_id      => p_primary_ledger_id
170786 );
170787 
170788 
170789 
170790      IF ( g_diagnostics_mode ='Y' ) THEN
170791 
170792          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
170793           trace
170794               (p_msg      => 'CALL Transaction Objects Diagnostics'
170795               ,p_level    => C_LEVEL_STATEMENT
170796               ,p_module   => l_log_module);
170797 
170798          END IF;
170799 
170800          insert_sources_231(
170801                           p_target_ledger_id => p_target_ledger_id
170802                         , p_language         => l_language
170803                         , p_sla_ledger_id    => l_sla_ledger_id
170804                         , p_pad_start_date   => p_pad_start_date
170805                         , p_pad_end_date     => p_pad_end_date
170806                           );
170807 
170808      END IF;
170809 
170810 l_created := EventClass_232(
170811    p_application_id         => p_application_id
170812  , p_base_ledger_id         => p_base_ledger_id
170813  , p_target_ledger_id       => p_target_ledger_id
170814  , p_language               => l_language
170815  , p_currency_code          => l_currency_code
170816  , p_sla_ledger_id          => l_sla_ledger_id
170817  , p_pad_start_date         => p_pad_start_date
170818  , p_pad_end_date           => p_pad_end_date
170819  , p_primary_ledger_id      => p_primary_ledger_id
170820 );
170821 
170822 
170823 
170824      IF ( g_diagnostics_mode ='Y' ) THEN
170825 
170826          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
170827           trace
170828               (p_msg      => 'CALL Transaction Objects Diagnostics'
170829               ,p_level    => C_LEVEL_STATEMENT
170830               ,p_module   => l_log_module);
170831 
170832          END IF;
170833 
170834          insert_sources_232(
170835                           p_target_ledger_id => p_target_ledger_id
170836                         , p_language         => l_language
170837                         , p_sla_ledger_id    => l_sla_ledger_id
170838                         , p_pad_start_date   => p_pad_start_date
170839                         , p_pad_end_date     => p_pad_end_date
170840                           );
170841 
170842      END IF;
170843 
170844 l_created := EventClass_233(
170845    p_application_id         => p_application_id
170846  , p_base_ledger_id         => p_base_ledger_id
170847  , p_target_ledger_id       => p_target_ledger_id
170848  , p_language               => l_language
170849  , p_currency_code          => l_currency_code
170850  , p_sla_ledger_id          => l_sla_ledger_id
170851  , p_pad_start_date         => p_pad_start_date
170852  , p_pad_end_date           => p_pad_end_date
170853  , p_primary_ledger_id      => p_primary_ledger_id
170854 );
170855 
170856 
170860          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
170857 
170858      IF ( g_diagnostics_mode ='Y' ) THEN
170859 
170861           trace
170862               (p_msg      => 'CALL Transaction Objects Diagnostics'
170863               ,p_level    => C_LEVEL_STATEMENT
170864               ,p_module   => l_log_module);
170865 
170866          END IF;
170867 
170868          insert_sources_233(
170869                           p_target_ledger_id => p_target_ledger_id
170870                         , p_language         => l_language
170871                         , p_sla_ledger_id    => l_sla_ledger_id
170872                         , p_pad_start_date   => p_pad_start_date
170873                         , p_pad_end_date     => p_pad_end_date
170874                           );
170875 
170876      END IF;
170877 
170878 l_created := EventClass_234(
170879    p_application_id         => p_application_id
170880  , p_base_ledger_id         => p_base_ledger_id
170881  , p_target_ledger_id       => p_target_ledger_id
170882  , p_language               => l_language
170883  , p_currency_code          => l_currency_code
170884  , p_sla_ledger_id          => l_sla_ledger_id
170885  , p_pad_start_date         => p_pad_start_date
170886  , p_pad_end_date           => p_pad_end_date
170887  , p_primary_ledger_id      => p_primary_ledger_id
170888 );
170889 
170890 
170891 
170892      IF ( g_diagnostics_mode ='Y' ) THEN
170893 
170894          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
170895           trace
170896               (p_msg      => 'CALL Transaction Objects Diagnostics'
170897               ,p_level    => C_LEVEL_STATEMENT
170898               ,p_module   => l_log_module);
170899 
170900          END IF;
170901 
170902          insert_sources_234(
170903                           p_target_ledger_id => p_target_ledger_id
170904                         , p_language         => l_language
170905                         , p_sla_ledger_id    => l_sla_ledger_id
170906                         , p_pad_start_date   => p_pad_start_date
170907                         , p_pad_end_date     => p_pad_end_date
170908                           );
170909 
170910      END IF;
170911 
170912 l_created := EventClass_235(
170913    p_application_id         => p_application_id
170914  , p_base_ledger_id         => p_base_ledger_id
170915  , p_target_ledger_id       => p_target_ledger_id
170916  , p_language               => l_language
170917  , p_currency_code          => l_currency_code
170918  , p_sla_ledger_id          => l_sla_ledger_id
170919  , p_pad_start_date         => p_pad_start_date
170920  , p_pad_end_date           => p_pad_end_date
170921  , p_primary_ledger_id      => p_primary_ledger_id
170922 );
170923 
170924 
170925 
170926      IF ( g_diagnostics_mode ='Y' ) THEN
170927 
170928          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
170929           trace
170930               (p_msg      => 'CALL Transaction Objects Diagnostics'
170931               ,p_level    => C_LEVEL_STATEMENT
170932               ,p_module   => l_log_module);
170933 
170934          END IF;
170935 
170936          insert_sources_235(
170937                           p_target_ledger_id => p_target_ledger_id
170938                         , p_language         => l_language
170939                         , p_sla_ledger_id    => l_sla_ledger_id
170940                         , p_pad_start_date   => p_pad_start_date
170941                         , p_pad_end_date     => p_pad_end_date
170942                           );
170943 
170944      END IF;
170945 
170946 l_created := EventClass_236(
170947    p_application_id         => p_application_id
170948  , p_base_ledger_id         => p_base_ledger_id
170949  , p_target_ledger_id       => p_target_ledger_id
170950  , p_language               => l_language
170951  , p_currency_code          => l_currency_code
170952  , p_sla_ledger_id          => l_sla_ledger_id
170953  , p_pad_start_date         => p_pad_start_date
170954  , p_pad_end_date           => p_pad_end_date
170955  , p_primary_ledger_id      => p_primary_ledger_id
170956 );
170957 
170958 
170959 
170960      IF ( g_diagnostics_mode ='Y' ) THEN
170961 
170962          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
170963           trace
170964               (p_msg      => 'CALL Transaction Objects Diagnostics'
170965               ,p_level    => C_LEVEL_STATEMENT
170966               ,p_module   => l_log_module);
170967 
170968          END IF;
170969 
170970          insert_sources_236(
170971                           p_target_ledger_id => p_target_ledger_id
170972                         , p_language         => l_language
170973                         , p_sla_ledger_id    => l_sla_ledger_id
170974                         , p_pad_start_date   => p_pad_start_date
170975                         , p_pad_end_date     => p_pad_end_date
170976                           );
170977 
170978      END IF;
170979 
170980 l_created := EventClass_237(
170981    p_application_id         => p_application_id
170982  , p_base_ledger_id         => p_base_ledger_id
170983  , p_target_ledger_id       => p_target_ledger_id
170984  , p_language               => l_language
170985  , p_currency_code          => l_currency_code
170986  , p_sla_ledger_id          => l_sla_ledger_id
170987  , p_pad_start_date         => p_pad_start_date
170988  , p_pad_end_date           => p_pad_end_date
170989  , p_primary_ledger_id      => p_primary_ledger_id
170990 );
170991 
170992 
170993 
170994      IF ( g_diagnostics_mode ='Y' ) THEN
170995 
170996          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
170997           trace
170998               (p_msg      => 'CALL Transaction Objects Diagnostics'
170999               ,p_level    => C_LEVEL_STATEMENT
171000               ,p_module   => l_log_module);
171001 
171002          END IF;
171003 
171004          insert_sources_237(
171008                         , p_pad_start_date   => p_pad_start_date
171005                           p_target_ledger_id => p_target_ledger_id
171006                         , p_language         => l_language
171007                         , p_sla_ledger_id    => l_sla_ledger_id
171009                         , p_pad_end_date     => p_pad_end_date
171010                           );
171011 
171012      END IF;
171013 
171014 l_created := EventClass_238(
171015    p_application_id         => p_application_id
171016  , p_base_ledger_id         => p_base_ledger_id
171017  , p_target_ledger_id       => p_target_ledger_id
171018  , p_language               => l_language
171019  , p_currency_code          => l_currency_code
171020  , p_sla_ledger_id          => l_sla_ledger_id
171021  , p_pad_start_date         => p_pad_start_date
171022  , p_pad_end_date           => p_pad_end_date
171023  , p_primary_ledger_id      => p_primary_ledger_id
171024 );
171025 
171026 
171027 
171028      IF ( g_diagnostics_mode ='Y' ) THEN
171029 
171030          IF (C_LEVEL_STATEMENT >= g_log_level) THEN
171031           trace
171032               (p_msg      => 'CALL Transaction Objects Diagnostics'
171033               ,p_level    => C_LEVEL_STATEMENT
171034               ,p_module   => l_log_module);
171035 
171036          END IF;
171037 
171038          insert_sources_238(
171039                           p_target_ledger_id => p_target_ledger_id
171040                         , p_language         => l_language
171041                         , p_sla_ledger_id    => l_sla_ledger_id
171042                         , p_pad_start_date   => p_pad_start_date
171043                         , p_pad_end_date     => p_pad_end_date
171044                           );
171045 
171046      END IF;
171047 
171048 
171049  --
171050  -- Bug 4865292
171051  -- When the number of events and that of header extract do not match,
171052  -- set the no header extract flag to indicate there are some issues
171053  -- in header extract.
171054  --
171055  -- Event count context is set in xla_accounting_pkg.unit_processor.
171056  -- Build_Message for this error is called in xla_accounting_pkg.post_accounting
171057  -- to report it as a general error.
171058  --
171059  IF  xla_context_pkg.get_event_count_context <> g_hdr_extract_count
171060  AND xla_context_pkg.get_event_nohdr_context <> 'Y' THEN
171061 
171062      IF (C_LEVEL_STATEMENT >= g_log_level) THEN
171063         trace
171064           (p_msg      => '# of extracted headers and events does not match'
171065           ,p_level    => C_LEVEL_STATEMENT
171066           ,p_module   => l_log_module);
171067 
171068         trace
171069           (p_msg      => '# of extracted headers: '
171070                          ||g_hdr_extract_count
171071           ,p_level    => C_LEVEL_STATEMENT
171072           ,p_module   => l_log_module);
171073 
171074         trace
171075           (p_msg      => '# of events in xla_events_gt: '
171076                          ||xla_context_pkg.get_event_count_context
171077           ,p_level    => C_LEVEL_STATEMENT
171078           ,p_module   => l_log_module);
171079 
171080         trace
171081           (p_msg      => 'Event No Header Extract Context: '
171082                          ||xla_context_pkg.get_event_nohdr_context
171083           ,p_level    => C_LEVEL_STATEMENT
171084           ,p_module   => l_log_module);
171085 
171086      END IF;
171087 
171088 
171089      xla_context_pkg.set_event_nohdr_context
171090        (p_nohdr_extract_flag => 'Y'
171091        ,p_client_id => sys_context('USERENV','CLIENT_IDENTIFIER'));
171092 
171093      IF (C_LEVEL_STATEMENT >= g_log_level) THEN
171094         trace
171095           (p_msg      => 'No Header Extract Flag is set to Y'
171096           ,p_level    => C_LEVEL_STATEMENT
171097           ,p_module   => l_log_module);
171098      END IF;
171099 
171100  END IF;
171101 
171102 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
171103    trace
171104       (p_msg      => 'END of CreateHeadersAndLines'
171105       ,p_level    => C_LEVEL_PROCEDURE
171106       ,p_module   => l_log_module);
171107 END IF;
171108 
171109 RETURN l_created;
171110 EXCEPTION
171111 WHEN xla_exceptions_pkg.application_exception THEN
171112    RAISE;
171113 WHEN OTHERS THEN
171114    xla_exceptions_pkg.raise_message
171115       (p_location => 'XLA_00200_AAD_S_000002_PKG.CreateHeadersAndLines');
171116 END CreateHeadersAndLines;
171117 --
171118 --
171119 
171120 --
171121 --+============================================+
171122 --|                                            |
171123 --|  PUBLIC FUNCTION                           |
171124 --|                                            |
171125 --+============================================+
171126 --
171127 FUNCTION CreateJournalEntries
171128        (p_application_id         IN NUMBER
171129        ,p_base_ledger_id         IN NUMBER
171130        ,p_pad_start_date         IN DATE
171131        ,p_pad_end_date           IN DATE
171132        ,p_primary_ledger_id      IN NUMBER)
171133 RETURN NUMBER IS
171134 l_log_module                   VARCHAR2(240);
171135 l_array_ledgers                xla_accounting_cache_pkg.t_array_ledger_id;
171136 l_temp_result                  BOOLEAN;
171137 l_result                       NUMBER;
171138 BEGIN
171139 --
171140 IF g_log_enabled THEN
171141    l_log_module := C_DEFAULT_MODULE||'.CreateJournalEntries';
171142 END IF;
171143 --
171144 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
171145    trace
171146       (p_msg      => 'BEGIN of CreateJournalEntries'||
171147                      ' - p_base_ledger_id = '||TO_CHAR(p_base_ledger_id)
171148       ,p_level    => C_LEVEL_PROCEDURE
171149       ,p_module   => l_log_module);
171150 
171151 END IF;
171152 
171153 --
171154 g_diagnostics_mode:= xla_accounting_engine_pkg.g_diagnostics_mode;
171155 
171159       ,p_level    => C_LEVEL_STATEMENT
171156 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
171157    trace
171158       (p_msg      => 'g_diagnostics_mode = '||g_diagnostics_mode
171160       ,p_module   => l_log_module);
171161 END IF;
171162 --
171163 xla_ae_journal_entry_pkg.SetProductAcctDefinition
171164    (p_product_rule_code      => 'ACCRUAL'
171165    ,p_product_rule_type_code => 'S'
171166    ,p_product_rule_version   => ''
171167    ,p_product_rule_name      => 'Accrual Basis'
171168    ,p_amb_context_code       => 'DEFAULT'
171169    );
171170 
171171 l_array_ledgers :=
171172    xla_ae_journal_entry_pkg.GetAlternateCurrencyLedger
171173       (p_base_ledger_id  => p_base_ledger_id);
171174 
171175 FOR Idx IN 1 .. l_array_ledgers.COUNT LOOP
171176    l_temp_result :=
171177       XLA_AE_JOURNAL_ENTRY_PKG.GetLedgersInfo
171178          (p_application_id           => p_application_id
171179          ,p_base_ledger_id           => p_base_ledger_id
171180          ,p_target_ledger_id         => l_array_ledgers(Idx)
171181          ,p_primary_ledger_id        => p_primary_ledger_id
171182          ,p_pad_start_date           => p_pad_start_date
171183          ,p_pad_end_date             => p_pad_end_date);
171184 
171185    l_temp_result :=
171186       l_temp_result AND
171187       CreateHeadersAndLines
171188          (p_application_id             => p_application_id
171189          ,p_base_ledger_id             => p_base_ledger_id
171190          ,p_target_ledger_id           => l_array_ledgers(Idx)
171191          ,p_pad_start_date             => p_pad_start_date
171192          ,p_pad_end_date               => p_pad_end_date
171193          ,p_primary_ledger_id          => p_primary_ledger_id
171194          );
171195 END LOOP;
171196 
171197 
171198 IF (g_diagnostics_mode = 'Y' AND
171199     C_LEVEL_UNEXPECTED >= g_log_level AND
171200     xla_environment_pkg.g_Req_Id IS NOT NULL ) THEN
171201 
171202    xla_accounting_dump_pkg.acctg_event_extract_log(
171203     p_application_id  => p_application_id
171204     ,p_request_id     => xla_environment_pkg.g_Req_Id
171205    );
171206 
171207 END IF;
171208 
171209 CASE l_temp_result
171210   WHEN TRUE THEN l_result := 0;
171211   ELSE l_result := 2;
171212 END CASE;
171213 
171214 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
171215    trace
171216       (p_msg      => 'return value. = '||TO_CHAR(l_result)
171217       ,p_level    => C_LEVEL_PROCEDURE
171218       ,p_module   => l_log_module);
171219    trace
171220       (p_msg      => 'END of CreateJournalEntries '
171221       ,p_level    => C_LEVEL_PROCEDURE
171222       ,p_module   => l_log_module);
171223 END IF;
171224 
171225 RETURN l_result;
171226 EXCEPTION
171227 WHEN xla_exceptions_pkg.application_exception THEN
171228    IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
171229    trace
171230       (p_msg      => 'ERROR. = '||sqlerrm
171231       ,p_level    => C_LEVEL_PROCEDURE
171232       ,p_module   => l_log_module);
171233    END IF;
171234    RAISE;
171235 WHEN OTHERS THEN
171236    IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
171237    trace
171238       (p_msg      => 'ERROR. = '||sqlerrm
171239       ,p_level    => C_LEVEL_PROCEDURE
171240       ,p_module   => l_log_module);
171241    END IF;
171242    xla_exceptions_pkg.raise_message
171243       (p_location => 'XLA_00200_AAD_S_000002_PKG.CreateJournalEntries');
171244 END CreateJournalEntries;
171245 --
171246 --=============================================================================
171247 --
171248 --
171249 --
171250 --
171251 --
171252 --
171253 --
171254 --
171255 --
171256 --
171257 --
171258 --
171259 --
171260 --
171261 --
171262 --
171263 --
171264 --
171265 --
171266 --
171267 --
171268 --
171269 --=============================================================================
171270 --=============================================================================
171271 --          *********** Initialization routine **********
171272 --=============================================================================
171273 
171274 BEGIN
171275    g_log_level      := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
171276    g_log_enabled    := fnd_log.test
171277                           (log_level  => g_log_level
171278                           ,module     => C_DEFAULT_MODULE);
171279 
171280    IF NOT g_log_enabled  THEN
171281       g_log_level := C_LEVEL_LOG_DISABLED;
171282    END IF;
171283 --
171284 END XLA_00200_AAD_S_000002_PKG;
171285 --